ün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
            '_'
        ),
        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
        longDateFormat: {
            LT: 'HH.mm',
            LTS: 'HH.mm.ss',
            L: 'DD.MM.YYYY',
            LL: 'D. MMMM [dallas] YYYY',
            LLL: 'D. MMMM [dallas] YYYY HH.mm',
            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
        },
        meridiemParse: /d\'o|d\'a/i,
        isPM: function (input) {
            return "d'o" === input.toLowerCase();
        },
        meridiem: function (hours, minutes, isLower) {
            if (hours > 11) {
                return isLower ? "d'o" : "D'O";
            } else {
                return isLower ? "d'a" : "D'A";
            }
        },
        calendar: {
            sameDay: '[oxhi à] LT',
            nextDay: '[demà à] LT',
            nextWeek: 'dddd [à] LT',
            lastDay: '[ieiri à] LT',
            lastWeek: '[sür el] dddd [lasteu à] LT',
            sameElse: 'L',
        },
        relativeTime: {
            future: 'osprei %s',
            past: 'ja%s',
            s: processRelativeTime$8,
            ss: processRelativeTime$8,
            m: processRelativeTime$8,
            mm: processRelativeTime$8,
            h: processRelativeTime$8,
            hh: processRelativeTime$8,
            d: processRelativeTime$8,
            dd: processRelativeTime$8,
            M: processRelativeTime$8,
            MM: processRelativeTime$8,
            y: processRelativeTime$8,
            yy: processRelativeTime$8,
        },
        dayOfMonthOrdinalParse: /\d{1,2}\./,
        ordinal: '%d.',
        week: {
            dow: 1, // Monday is the first day of the week.
            doy: 4, // The week that contains Jan 4th is the first week of the year.
        },
    });

    function processRelativeTime$8(number, withoutSuffix, key, isFuture) {
        var format = {
            s: ['viensas secunds', "'iensas secunds"],
            ss: [number + ' secunds', '' + number + ' secunds'],
            m: ["'n míut", "'iens míut"],
            mm: [number + ' míuts', '' + number + ' míuts'],
            h: ["'n þora", "'iensa þora"],


.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/*
 * This file is available under and governed by the GNU General Public
 * License version 2 only, as published by the Free Software Foundation.
 * However, the following notice accompanied the original version of this
 * file:
 *
 * Copyright (c) 2012, Stephen Colebourne & Michael Nascimento Santos
 *
 * 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 JSR-310 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 OWNER 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.
 */
package java.time.chrono;

import java.time.DateTimeException;

/**
 * An era in the ISO calendar system.
 *

 * The ISO-8601 standard does not define eras.
 * A definition has therefore been created with two eras - 'Current era' (CE) for
 * years on or after 0001-01-01 (ISO), and 'Before current era' (BCE) for years before that.
 *
 *

 *
ISO years and eras

 *

 *

 * year-of-era
 * era
 * proleptic-year
 *

 *

 *

 *

 * 2	CE	2
 *

 *

 * 1	CE	1
 *

 *

 * 1	BCE	0
 *

 *

 * 2	BCE	-1
 *

 *

 *

 *

 * Do not use {@code


			line-height: _size(sidebar-height);
			overflow: hidden;
			padding: 0;
			text-align: center;
			top: 0;
			width: 100%;

			> .inner {
				@include vendor('flex-direction', 'row');
				@include vendor('align-items', 'stretch');
				height: inherit;
				line-height: inherit;
			}

			nav {
				height: inherit;
				line-height: inherit;

				ul {
					@include vendor('display', 'flex');
					height: inherit;
					line-height: inherit;
					margin: 0;

					li {
						display: block;
						height: inherit;
						line-height: inherit;
						margin: 0 0 0 2em;
						padding: 0;
					}
				}

				a {
					height: inherit;
					line-height: inherit;
					padding: 0;

					&:after {
						background-image: none;
						background-color: _palette(accent3);
					}
				}
			}
		}

		@include breakpoint('<=small') {
			display: none;
		}
	}/*!
 * Bootstrap v3.3.7 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{


ds playing. It might be wise to set these to continuous instead,
    and only play them when called for by a signal.
--]]

--==========================================================================================
--EARLY WARNING RADARS                      --EMITTER ID                    --BAND (NATO)
--==========================================================================================
--EWR 55G6                                  --55G6 EWR
--EWR IL13                                  --IL13 EWR

--These items are surface radars, but operate more like EWRs:
--SAM Roland EWR                            --Roland Radar
--SAM Hawk CWAR AN/MPQ-55                   --Hawk cwar

--==========================================================================================
--SEARCH RADARS                             --EMITTER ID                    --BAND (NATO)
--==========================================================================================
--MCC-SR Sborka "Dog Ear" SR                --Dog Ear radar                 --F/G
--SAM Hawk SR (AN/MPQ-50)                   --Hawk sr                       --H/I/J
--SAM SA-2/3/5 P19 "Flat Face" SR           --p-19 s-125 sr                 --E/F, ~12s rotation
add_emitter("p-19 s-125 sr", E_BAND_RADAR, 1.0, nil, {"RWR_SA2_SEARCH"})
--SAM SA-5 S-200 ST-68U "Tin Shield" SR     --RLS_19J6                      --E/F, ~12s rotation
add_emitter("RLS_19J6", E_BAND_RADAR, 1.0, nil, {"RWR_SA5_SEARCH"})
--SAM SA-10 S-300 "Grumble" Big Bird SR     --S-300PS 64H6E sr              --E/F, ~12s rotation
add_emitter("S-300PS 64H6E sr", E_BAND_RADAR, 1.0, nil, {"RWR_SA10_SR_BB"})
--SAM SA-10 S-300 "Grumble" Clam Shell SR   --S-300PS 40B6MD sr             --E/F, ~3s rotation
add_emitter("S-300PS 40B6MD sr", E_BAND_RADAR, 1.0, nil, {"RWR_SA10_SR_CS"})
--SAM SA-10 S-300 "Grumble" Tin Shield SR   --S-300PS 40B6MD sr_19J6        --E/F, ~10s rotation
add_emitter("S-300PS 40B6MD sr_19J6", E_BAND_RADAR, 1.0, nil, {"RWR_SA10_SR_TS"})
--SAM SA-11 Buk "Gadfly" Snow Drift SR      --SA-11 Buk SR 9S18M1           --E, ~12s rotation
add_emitter("SA-11 Buk SR 9S18M1", E_BAND_RADAR, 1.0, nil, {"RWR_SA11_SR"})
--SAM NASAMS SR MPQ64F1                     --NASAMS_Radar_MPQ64F1          --H/I

--==========================================================================================
--TRACKING RADARS                           --EMITTER ID                    --BAND (NATO)
--==========================================================================================
--AAA SON Fire Can							--SON_9							--E
add_emitter("SON_9", E_BAND_RADAR, 0.7, {LIGHT_REC}, {"RWR_AAA_FIRECAN_SON9"})
--SAM Avenger (Stinger)                     --M1097 Avenger                 --H/I
--SAM Chaparral M48                         --M48 Chaparral                 --D
--SAM Hawk TR (AN/MPQ-46)                   --Hawk tr                       --J (HPIR), out of band range, no sound
--SAM Linebacker - Bradley M6               --M6 Linebacker                 --H/I
--SAM Rapier Blindfire TR                   --rapier_fsa_blindfire_radar    --F
--SAM SA-2 S-75 "


import asyncio
from connect_to_knowldge_db import KnowldgeGraphDB

graphiti = KnowldgeGraphDB().graphiti_client()

async def main():

    try:
        query = "لماذا اللغة العربية مهمة؟"
        results = await graphiti.search(query)
        for result in results:
            print(f'UUID: {result.uuid}')
            print(f'Fact: {result.fact}')
            if hasattr(result, 'valid_at') and result.valid_at:
                print(f'Valid from: {result.valid_at}')
            if hasattr(result, 'invalid_at') and result.invalid_at:
                print(f'Valid until: {result.invalid_at}')
            print('---')

        if results and len(results) > 0:
            center_node_uuid = results[0].source_node_uuid
            print('\nReranking search results based on graph distance:')
            print(f'Using center node UUID: {center_node_uuid}')
            reranked_results = await graphiti.search(
                query, center_node_uuid=center_node_uuid
            )
        # Print reranked search results
        print('\nReranked Search Results:')
        for result in reranked_results:
            print(f'UUID: {result.uuid}')
            print(f'Fact: {result.fact}')
            if hasattr(result, 'valid_at') and result.valid_at:
                print(f'Valid from: {result.valid_at}')
            if hasattr(result, 'invalid_at') and result.invalid_at:
                print(f'Valid until: {result.invalid_at}')
            print('---')
        else:
            print('No results found in the initial search to use as center node.')

    finally:
        await graphiti.close()
        print('\nConnection closed')

if __name__ == "__main__":

    asyncio.run(main())


, Windows 10 v20H2
    // ntoskrnl.exe PAGE:0x6ddc50, 0x32828 bytes
    // ntoskrnl.exe PAGE:0x973728, 0x1fe000 bytes
    // ntoskrnl.exe PAGE:0x848aa8, 0x1fd000 bytes
    // ntoskrnl.exe PAGE:0x972008, 0x1fe000 bytes
    //
    _p25(sdk::unknown_ptr) get_object_property_keys;

    // [_PnpGetObjectPropertyKeysWorker]
    // Ldr = [ntoskrnl.exe, hal.dll]
    // => Windows 10 v1607, Windows 10 v2004, Windows 11, Windows 10 v20H2
    // ntoskrnl.exe PAGE:0x6dddb8, 0x32828 bytes
    // ntoskrnl.exe PAGE:0x9738a0, 0x1fe000 bytes
    // ntoskrnl.exe PAGE:0x848bc0, 0x1fd000 bytes
    // ntoskrnl.exe PAGE:0x972180, 0x1fe000 bytes
    //
    _p26(sdk::unknown_ptr) get_object_property_keys_worker;

    // [_PnpGetObjectPropertyLocales]
    // Ldr = [ntoskrnl.exe, hal.dll]
    // => Windows 10 v1607, Windows 10 v2004, Windows 11, Windows 10 v20H2
    // ntoskrnl.exe PAGE:0x6ddf20, 0x32828 bytes
    // ntoskrnl.exe PAGE:0x973a08, 0x1fe000 bytes
    // ntoskrnl.exe PAGE:0x8484f4, 0x1fd000 bytes
    // ntoskrnl.exe PAGE:0x9722e8, 0x1fe000 bytes
    //
    _p27(sdk::unknown_ptr) get_object_property_locales;

    // [_PnpGetObjectPropertyLocalesWorker]
    // Ldr = [ntoskrnl.exe, hal.dll]
    // => Windows 10 v1607, Windows 10 v2004, Windows 11, Windows 10 v20H2
    // ntoskrnl.exe PAGE:0x6de084, 0x32828 bytes
    // ntoskrnl.exe PAGE:0x973b7c, 0x1fe000 bytes
    // ntoskrnl.exe PAGE:0x848608, 0x1fd000 bytes
    // ntoskrnl.exe PAGE:0x97245c, 0x1fe000 bytes
    //
    _p28(sdk::unknown_ptr) get_object_property_locales_worker;

    // [_PnpGetObjectPropertyWorker]
    // Ldr = [ntoskrnl.exe, hal.dll]
    // => Windows 10 v1607, Windows 10 v2004, Windows 11, Windows 10 v20H2
    // ntoskrnl.exe PAGE:0x4410dc, 0x32828 bytes
    // ntoskrnl.exe PAGE:0x5d9888, 0x1fe000 bytes
    // ntoskrnl.exe PAGE:0x7125c0, 0x1fd000 bytes
    // ntoskrnl.exe PAGE:0x6a9658, 0x1fe000 bytes
    //
    _p29(sdk::unknown_ptr) get_object_property_worker;

    // [_PnpGetPropertiesSecurityDescriptor]
    // Ldr = [ntoskrnl.exe, hal.dll]
    // => Windows 10 v1607, Windows 10 v2004, Windows 11, Windows 10 v20H2
    // ntoskrnl.exe PAGE:0x6e269c, 0x32828 bytes
    // ntoskrnl.exe PAGE:0x749804, 0x1fe000 bytes
    // ntoskrnl.exe PAGE:0x73ace8, 0x1fd000 bytes
    // ntoskrnl.exe PAGE:0x7510c4, 0x1fe000 bytes
    //
    _p30(sdk::unknown_ptr) get_properties_security_descriptor;

    /


0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark-large>.jstree-striped{background-size:auto 64px}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-dark-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-dark-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-dark-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-default-dark-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-default-dark-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-dark-large .jstree-ok,#jstree-dnd.jstree-default-dark-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-dark-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-dark-large .jstree-er{background-position:-32px -64px}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-dark-large.jstree-rtl .js


ası (derleme zamanı hatası)
+ Tanımsız davranış. _(undefined behavior)_
+ Derleyiciye göre değişir. _(unspecified behavior / implementation defined)_

#### Çözüm;

Sorunun çözümüne geçmeden önde aşağıdaki bilgilere sahip olunması gerekiyor;
- **;** terminator token'ı, if statement, loop statement vb. dışında bir ifade(expression) içinde **sequence point** oluşturan operatörler vardır bunlar `&&`, `||`, `,`, `? :` operatörleridir.
- Operatörlerin bazılarının öncelik sıralaması: `+` `-` `++` `--` `&` `*` `sizeof` `!` `~` >>> `>` `>=` `<` `<=` >>> `&&` >>> `||` >>> `=` `+=` `-=` `*=` `/=` `>>=` `<<=` `&=` `^=` `|=`
- `&&` ve `||` operatörlerinin yönü sağdan soladır ve bu operatörler **short circuit** özelliğine sahiptir yani tüm ifadenin değeri baştan belirleniyorsa sonraki ifadeler çalıştırılmayacaktır.

```C
#include <stdio.h>

int main(void)
{
	int x, y, z, t; // 'declaration statement'

	x = y = z = t = 1; // 'assignment statement'
	x = ++y > 1 || z++ > 1 && ++t > 1; // Buradaki ifade '((++y > 1) || ((z++ > 1) && (++t > 1)))' şeklinde önceliklendirilecektir ve ilk ifade olan '++y > 1' ifadesi '2 > 1'den '1(true)' olacaktır, bundan sonraki ifadeler çalıştırılmaz çünkü sonucun '1(true)' olacağı belli olmuştur.
	printf("%d%d%d%d", x, y, z, t); // Standard outup'a '1222' gönderilir.

	return 0;
}
```

Sonuç olarak aşağıdaki gibi bir çıktı üretilecektir;
- 1211
#### Aşağıdaki C kodlarında kullanlan if deyimlerindeki hataları açıklayınız:

```c
double foo(void);
void bar(double);

int main(void)
{
	double dval = foo();

	if (dval > 3,4)
		bar(dval);
}
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
double foo(void);
void bar(double);

int main(void)
{
	double dval = foo();

	if (dval > 4.5);
		bar(dval);
}
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
int func(void);
void bar(int);

int main(void)
{
	int x = func();

	if (10 < x < 20)
		bar(x);
}
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
int func(void);
void bar(int);

int main(void)
{
	int x = func();

	if (x != 7  || x != 23)
		bar(x);
}
```

[Ödevin Cevabı](https://youtu.be/_Rz4t9N_z2Q)

### Cevap;

```c
double foo(void);
void bar(double);

int main(void)
{
	double dval = foo();

	if (dval > 3,4) // Buradaki ifade de '.' yerine ',' kullanılmıştır, ifade '(dval > 3), (4)' şeklinde yorumlanır ve ifadenin değeri sağ operantın değeridir. Buradaki ifade 'always true' durumundadır.
		bar(dval);
}
////////////////////////////////////////////////////////////////////


[1])
	}
	boundables := []common.Boundable{common.EmbeddedImage{
		Src: rect.Min,
		Dst: rect.Max,
		Image: fmt.Sprintf("./%s.png", os.Args[1]),
	}}
	boundables = append(boundables, common.ColoredBoundable{graph, "yellow"})

	outname := "out.svg"
	if len(os.Args) >= 4 {
		outname = os.Args[3]
	}

	if err := common.CreateSVG(outname, [][]common.Boundable{boundables}, common.SVGOptions{StrokeWidth: 2.0, Zoom: 2, Bounds: rect, Unflip: true}); err != nil {
		panic(err)
	}
}
package main

import (
	"./lib"
	"github.com/mitroadmaps/gomapinfer/common"
	"github.com/mitroadmaps/gomapinfer/googlemaps"

	"encoding/json"
	"fmt"
	"io/ioutil"
	"os"
)

const ZOOM = 18

func main() {
	pbfFname := os.Args[1]
	outDir := os.Args[2]

	regions := lib.GetRegions()

	boundList := make([]common.Rectangle, len(regions))
	for i, region := range regions {
		radius := common.Point{float64(region.RadiusX+2), float64(region.RadiusY+2)}.Scale(4096)
		extreme1 := googlemaps.PixelToLonLat(common.Point{-256, -256}.Sub(radius), region.CenterGPS, ZOOM)
		extreme2 := googlemaps.PixelToLonLat(common.Point{256, 256}.Add(radius), region.CenterGPS, ZOOM)
		r := extreme1.Bounds().Extend(extreme2)
		boundList[i] = r
		fmt.Printf("%s: %v\n", region.Name, r)
	}
	motorwayEdges := make([]map[int]bool, len(boundList))
	tunnelEdges := make([]map[int]bool, len(boundList))
	for i := range motorwayEdges {
		motorwayEdges[i] = make(map[int]bool)
		tunnelEdges[i] = make(map[int]bool)
	}
	graphs, err := common.LoadOSMMultiple(pbfFname, boundList, common.OSMOptions{
		Verbose: true,
		NoParking: true,
		MotorwayEdges: motorwayEdges,
		TunnelEdges: tunnelEdges,
	})
	if err != nil {
		panic(err)
	}
	for i, graph := range graphs {
		if err := graph.Write(fmt.Sprintf("%s/%s.graph", outDir, regions[i].Name)); err != nil {
			panic(err)
		}
		func() {
			bytes, err := json.Marshal(motorwayEdges[i])
			if err != nil {
				panic(err)
			}
			if err := ioutil.WriteFile(fmt.Sprintf("%s/%s.motorway.json", outDir, regions[i].Name), bytes, 0644); err != nil {
				panic(err)
			}
		}()
		func() {
			bytes, err := json.Marshal(tunnelEdges[i])
			if err != nil {
				panic(err)
			}
			if err := ioutil.WriteFile(fmt.Sprintf("%s/%s.tunnel.json",


et () );

        return wmCreateAccountRespone;
    }

    @Override
    public WmCreateAccountRespone koaloasTest9(WmCreateAccountRequest wmCreateAccountRequest) throws TException {
        WmCreateAccountRespone wmCreateAccountRespone = new WmCreateAccountRespone ();
        wmCreateAccountRespone.setCode ( 1 );
        wmCreateAccountRespone.setMessage ( "koalasTest9" );
        System.out.println ( "koaloasTest9 ...." + wmCreateAccountRequest + "------" + atomicInteger.incrementAndGet () );

        return wmCreateAccountRespone;
    }

    @Override
    public WmCreateAccountRespone koaloasTest10(WmCreateAccountRequest wmCreateAccountRequest) throws TException {
        WmCreateAccountRespone wmCreateAccountRespone = new WmCreateAccountRespone ();
        wmCreateAccountRespone.setCode ( 1 );
        wmCreateAccountRespone.setMessage ( "koalasTest10" );
        System.out.println ( "koaloasTest10 ...." + wmCreateAccountRequest + "------" + atomicInteger.incrementAndGet () );

        return wmCreateAccountRespone;
    }

    @Override
    public WmCreateAccountRespone koaloasTest11(WmCreateAccountRequest wmCreateAccountRequest) throws TException {
        WmCreateAccountRespone wmCreateAccountRespone = new WmCreateAccountRespone ();
        wmCreateAccountRespone.setCode ( 1 );
        wmCreateAccountRespone.setMessage ( "koalasTest11" );
        System.out.println ( "koaloasTest11 ...." + wmCreateAccountRequest + "------" + atomicInteger.incrementAndGet () );

        return wmCreateAccountRespone;
    }

    @Override
    public WmCreateAccountRespone koaloasTest12(WmCreateAccountRequest wmCreateAccountRequest) throws TException {
        WmCreateAccountRespone wmCreateAccountRespone = new WmCreateAccountRespone ();
        wmCreateAccountRespone.setCode ( 1 );
        wmCreateAccountRespone.setMessage ( "koalasTest12" );
        System.out.println ( "koaloasTest12 ...." + wmCreateAccountRequest + "------" + atomicInteger.incrementAndGet () );

        return wmCreateAccountRespone;
    }
}
package thrift.xml.client.impl;

import com.alibaba.fastjson.JSON;
import generic.GenericRequest;
import generic.GenericService;
import org.apache.thrift.TException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import thrift.domain.*;
import thrift.service.WmCreateAccountService;

import java.util.ArrayList;

@Service("testServiceSync")
public class TestServiceSync {

    @Autowired
    WmCreateAccountService.Iface wmCreateAccountService;

    @Autowired
    @Qualifier("wmCreateAccountService3")
    GenericService.Iface wmGenericService;

    public void getRemoteRpc() throws TException, KoalasRpcException, KoalasRpcException2, KoalasRpcException1 {
        WmCreateAccountRequest request= new WmCreateAccountRequest (  );
        //request.setSource ( 10 );
        request.setAccountType ( 1 );
        request.setPartnerId (9 );
        request.setPartnerType ( 1 );
        request.setPartnerName ( "你好啊-我是xml实现的服务端getRemoteRpc-异步" );
        request.setPoiFlag ( 1 );
        WmCreateAccountRespone respone = wmCreateAccountService.getRPC (  request);
        System.out.println (respone);
     }

    public void koaloasTest1() throws TException {
        WmCreateAccountRequest request= new WmCreateAccountRequest (  );
        //request.setSource ( 10 );
        request.setAccountType ( 1 );
        request.setPartnerId ( 1 );
        request.setPart


olist_dhx_terrace div.dhxcombo_option div.dhxcombo_option_text.dhxcombo_option_text_image {
	position: relative;
	padding: 0px 4px 0px 4px;
	margin-left: 20px;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-o-user-select: none;
	user-select: none;
	white-space: nowrap;
}
div.dhxcombolist_dhx_terrace div.dhxcombo_option div.dhxcombo_image {
	top: 5px;
}
div.dhxcombo_dhx_terrace div.dhxcombo_top_image div.dhxcombo_image,
div.dhxcombolist_dhx_terrace div.dhxcombo_option div.dhxcombo_image {
	position: absolute;
	top: 3px;
	left: 3px;
	width: 18px;
	height: 18px;
	background-repeat: no-repeat;
	background-position: center center;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-o-user-select: none;
	user-select: none;
	overflow: hidden;
	cursor: default;
}
div.dhxcombolist_dhx_terrace div.dhxcombo_option div.dhxcombo_image {
	top: 5px;
}
div.dhxcombo_dhx_terrace.dhxcombo_disabled {
	border: 1px solid #d4d4d4;
	background-color: #fcfcfc;
}
div.dhxcombo_dhx_terrace.dhxcombo_disabled input.dhxcombo_input {
	color: #bbbbbb;
	background-color: #fcfcfc;
}
div.dhxcombo_dhx_terrace.dhxcombo_disabled div.dhxcombo_select_button div.dhxcombo_select_img {
	background-image: url("../imgs/dhxcombo_terrace/dhxcombo_arrow_down_dis.gif");
	cursor: default;
}
.dhxgrid_combo_icon {
	position: absolute;
	z-index: 1;
	top: 0px;
	right: 0px;
}
div.dhxcombo_dhx_terrace.dhxcombo_in_grid {
	margin-left: -20px;
}
.dhxcombo_skin_detect {
	position: absolute;
	left: 0px;
	top: -100px;
	margin: 0;
	padding: 0;
	border: 0px solid white;
	width: 30px;
	height: 10px;
	overflow: hidden;
}
/*
Product Name: dhtmlxSuite
Version: 4.0.3
Edition: Professional
License: content of this file is covered by DHTMLX Commercial or Enterprise license. Usage without proper license is prohibited. To obtain it contact sales@dhtmlx.com
Copyright UAB Dinamenta http://www.dhtmlx.com
*/

/* skin detected, extra file: skins/dhx_terrace.less */

.dhxcolorpicker_skin_detect {
	position: absolute;
	left: 0px;
	top: -100px;
	margin: 0;
	padding: 0;
	border: 0px solid white;
	width: 30px;
	height: 10px;
	overflow: hidden;
}
.dhtmlxcp_dhx_terrace .dhxcp_g_area {
	position: absolute;
	width: 254px;
	height: 272px;
	border: 1px solid #cccccc;
	border-radius: 3px;
	background-color: #f5f5f5;
	box-shadow: 0px


side, positive outside)
    vec2 distanceFromEdges = abs(transformedPoint) - scissorExt;

    // Apply offset for smooth edge transition (0.5 creates half-pixel anti-aliased edges)
    vec2 smoothEdges = vec2(0.5, 0.5) - distanceFromEdges;

    // Clamp each component and multiply to get final mask value
    // Result is 1.0 inside, 0.0 outside, with smooth transition at edges
    return clamp(smoothEdges.x, 0.0, 1.0) * clamp(smoothEdges.y, 0.0, 1.0);
}

// Can improve text but a bit slower
//vec4 textureNice( sampler2D sam, vec2 uv )
//{
//    float textureResolution = float(textureSize(sam,0).x);
//    uv = uv*textureResolution + 0.5;
//    vec2 iuv = floor( uv );
//    vec2 fuv = fract( uv );
//    uv = iuv + fuv*fuv*(3.0-2.0*fuv);
//    uv = (uv - 0.5)/textureResolution;
//    return texture( sam, uv );
//}

void main()
{
    vec2 pixelSize = fwidth(fragTexCoord);
    vec2 edgeDistance = min(fragTexCoord, 1.0 - fragTexCoord);
    float edgeAlpha = smoothstep(0.0, pixelSize.x, edgeDistance.x) * smoothstep(0.0, pixelSize.y, edgeDistance.y);
    edgeAlpha = clamp(edgeAlpha, 0.0, 1.0);

    float mask = scissorMask(fragPos);
    vec4 color = fragColor;

    // Apply brush if active
    if (brushType > 0) {
        float factor = calculateBrushFactor();
        color = mix(brushColor1, brushColor2, factor);
    }

    vec4 textureColor = texture(texture0, fragTexCoord);
    color *= textureColor;

    color *= edgeAlpha * mask;

    finalColor = color;
}";

        public const string Vertex_VS = @"
#version 330
in vec3 vertexPosition;
in vec2 vertexTexCoord;
in vec4 vertexColor;

uniform mat4 mvp;

out vec2 fragTexCoord;
out vec4 fragColor;
out vec2 fragPos;

void main()
{
    fragTexCoord = vertexTexCoord;
    fragColor = vertexColor;
    fragPos = vertexPosition.xy;
    gl_Position = mvp * vec4(vertexPosition, 1.0);
}";

        Shader shader;
        int scissorMatLoc;
        int scissorExtLoc;

        int _brushMatLoc;
        int _brushTypeLoc;
        int _brushColor1Loc;
        int _brushColor2Loc;
        int _brushParamsLoc;
        int _brushParams2Loc;

        public RaylibCanvasRenderer()
        {
            // Load shader with scissoring support
            shader = LoadShaderFromMemory(Vertex_VS, Stroke_FS);
            scissorMatLoc = GetShaderLocation(shader, "scissorMat");
            scissorExtLoc = GetShaderLocation(shader, "scissorExt");

            _brushMatLoc = GetShaderLocation(shader, "brushMat");
            _brushTypeLoc = GetShaderLocation(shader, "brushType");
            _brushColor1Loc = GetShaderLocation(shader, "brushColor1");
            _brushColor2Loc = GetShaderLocation(shader, "brushColor2");
            _brushParamsLoc = GetShaderLocation(shader, "brushParams");
            _brushParams2Loc = GetShaderLocation(shader, "brushParams2");
        }

        public object CreateTexture(uint width, uint height)
        {
            unsafe
            {
                var data = new byte[width * height * 4];
                fixed (byte* dataPtr = data)
                {
                    Image image = new Image {
                        Data = (void*)dataPtr,
                        Width = (int)width,
                        Height = (int


e, it.confessTalk)
        }

        postJsonData<StateCode>(
            Paths.groupConfig, GroupConfigDTO(
                target = group.id,
                config = GroupDetailDTO(
                    name = "new name",
                    allowMemberInvite = true,
                    // TODO: other config
                )
            )
        ).also {
            assertEquals(StateCode.Success.code, it.code)
        }

        client.get(Paths.groupConfig) {
            parameter("target", group.id)
        }.body<GroupDetailDTO>().also {
            assertEquals("new name", it.name)
            assertEquals(true, it.allowMemberInvite)
        }
    }

    @Test
    fun testMemberInfo() = testHttpApplication {
        val bot = SetupMockBot.instance()
        val group = bot.addGroup(456, "test group")
        val member = group.addMember(456, "test member")
        member.active.apply {
            mockSetRank(1)
            mockSetPoint(2)
            mockSetTemperature(3)
            mockSetHonors(setOf(GroupHonorType.BRONZE, GroupHonorType.GOLDEN))
        }

        client.get(Paths.memberInfo) {
            parameter("target", group.id)
            parameter("memberId", member.id)
        }.body<MemberDTO>().also {
            assertEquals(member.id, it.id)
            assertEquals(member.nameCardOrNick, it.memberName)
            assertEquals(member.specialTitle, it.specialTitle)
            assertEquals(member.permission, it.permission)

            assertNotNull(it.active)
            assertEquals(1, it.active.rank)
            assertEquals(2, it.active.point)
            assertEquals(3, it.active.temperature)
            assertTrue(listOf(GroupHonor[GroupHonorType.BRONZE], GroupHonor[GroupHonorType.GOLDEN]).containsAll(it.active.honors))
        }

        postJsonData<StateCode>(
            Paths.memberInfo, MemberInfoDTO(
                target = group.id,
                memberId = member.id,
                info = MemberDetailDTO(
                    name = "new name",
                    specialTitle = "new special title",
                )
            )
        ).also {
            assertEquals(StateCode.Success.code, it.code)
        }

        client.get(Paths.memberInfo) {
            parameter("target", group.id)
            parameter("memberId", member.id)
        }.body<MemberDTO>().also {
            assertEquals("new name", it.memberName)
            assertEquals("new special title", it.specialTitle)
        }
    }

    @Test
    fun testMemberAdmin() = testHttpApplication {
        val bot = SetupMockBot.instance()
        val group = bot.addGroup(789, "test group")
        val member = group.addMember(789, "test member")

        assertEquals(MemberPermission.MEMBER, member.permission)

        postJsonData<StateCode>(Paths.memberAdmin, ModifyAdminDTO(
            target = group.id,
            memberId = member.id,
            assign = true
        )).also {
            assertEquals(StateCode.Success.code, it.code)
            assertEquals(MemberPermission.ADMINISTRATOR, member.permission)
        }
    }
}/*
 * Copyright 2020 Mamoe Technologies and contributors.
 *
 * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
 * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
 *
 * https://github.com/mamoe/mirai/blob/master/LICENSE
 */

package net.mamoe.mirai.api.http.adapter.webhook

import kotlinx.coroutines.CoroutineScope
import kotlin


   `config` (DinatConfig) — 包含模型所有参数的模型配置类。使用配置文件初始化不会加载与模型相关的权重，只会加载配置。查看 from_pretrained() 方法以加载模型权重。

裸 Dinat 模型变压器输出原始隐藏状态，没有特定的头部。这个模型是 PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) 子类。将其用作常规 PyTorch 模块，并参考 PyTorch 文档以获取有关一般用法和行为的所有信息。

#### `forward`

[< source >](https://github.com/huggingface/transformers/blob/v4.37.2/src/transformers/models/dinat/modeling_dinat.py#L727)

```py
( pixel_values: Optional = None output_attentions: Optional = None output_hidden_states: Optional = None return_dict: Optional = None ) → export const metadata = 'undefined';transformers.models.dinat.modeling_dinat.DinatModelOutput or tuple(torch.FloatTensor)
```

参数

+   `pixel_values` (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`) — 像素值。可以使用 AutoImageProcessor 获取像素值。详细信息请参阅 ViTImageProcessor.`call`()。

+   `output_attentions` (`bool`, *optional*) — 是否返回所有注意力层的注意力张量。有关更多详细信息，请查看返回张量下的 `attentions`。

+   `output_hidden_states` (`bool`, *optional*) — 是否返回所有层的隐藏状态。有关更多详细信息，请查看返回张量下的 `hidden_states`。

+   `return_dict` (`bool`, *optional*) — 是否返回 ModelOutput 而不是普通元组。

返回

`transformers.models.dinat.modeling_dinat.DinatModelOutput` 或 `tuple(torch.FloatTensor)`

一个 `transformers.models.dinat.modeling_dinat.DinatModelOutput` 或一个 `torch.FloatTensor` 元组（如果传递了 `return_dict=False` 或当 `config.return_dict=False` 时），包括根据配置（DinatConfig）和输入的不同元素。

+   `last_hidden_state` (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`) — 模型最后一层的隐藏状态输出序列。

+   `pooler_output` (`torch.FloatTensor` of shape `(batch_size, hidden_size)`, *optional*, returned when `add_pooling_layer=True` is passed) — 最后一层隐藏状态的平均池化。

+   `hidden_states` (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output


ivil Action No. 2013-0028
HERRING v. FOXHALL GYNECOLOGY et al	Doc No. 14 (memorandum opinion)
  by Judge John D. Bates

03/15/2013	Civil Action No. 2013-0027
HERRING v. V STREET FREDDIE HOUSE et al	Doc No. 15 (memorandum opinion)
  by Judge John D. Bates

03/15/2013	Criminal No. 2010-0256
USA v. DIAZ-ANTUNUEZ	Doc No. 309 (memorandum opinion)
  by Judge Rosemary M. Collyer

03/15/2013	Civil Action No. 2010-1223
MONTGOMERY v. SOLIS et al	Doc No. 48 (memorandum opinion and order)
  by Judge Robert L. Wilkins

03/15/2013	Civil Action No. 2009-2398
FREEDOM WATCH, INC. v. OBAMA et al	Doc No. 37 (memorandum opinion)
  by Judge Richard W. Roberts

03/14/2013	Civil Action No. 2012-1738
GRUNEWALD et al v. JARVIS et al	Doc No. 45 (memorandum and opinion)
  by Judge Robert L. Wilkins

03/14/2013	Civil Action No. 2012-0651
BEAN v. DISTRICT OF COLUMBIA COURTS et al	Doc No. 19 (memorandum opinion)
  by Judge Emmet G. Sullivan

03/14/2013	Civil Action No. 2011-2285
PUBLIC INVESTORS ARBITRATION BAR ASSOCIATION v. UNITED STATES SECURITIES AND EXCHANGE COMMISSION	Doc No. 21 (memorandum opinion)
  by Judge Beryl A. Howell

03/14/2013	Civil Action No. 2010-1919
KINDIG v. WHOLE FOODS MARKET GROUP, INC.	Doc No. 128 (memorandum opinion)
  by Magistrate Judge Alan Kay

03/13/2013	<


efault "projenrc"
   */
  readonly projenCodeDir?: string;
}

/**
 * Sets up a typescript project to use TypeScript for projenrc.
 */
export class Projenrc extends Component {
  private readonly rcfile: string;

  constructor(project: TypeScriptProject, options: ProjenrcOptions = {}) {
    super(project);

    this.rcfile = options.filename ?? '.projenrc.ts';

    const projensrc = options.projenCodeDir ?? 'projenrc';

    // tell eslint to take .projenrc.ts and *.ts files under `projen` into account as a dev-dependency
    project.tsconfigDev.addInclude(this.rcfile);
    project.eslint?.allowDevDeps(this.rcfile);
    project.eslint?.addIgnorePattern(`!${this.rcfile}`);

    project.tsconfigDev.addInclude(`${projensrc}/**/*.ts`);
    project.eslint?.allowDevDeps(`${projensrc}/**/*.ts`);
    project.eslint?.addIgnorePattern(`!${projensrc}/**/*.ts`);

    // this is the task projen executes when running `projen` without a
    // specific task (if this task is not defined, projen falls back to
    // running "node .projenrc.js").
    project.addDevDeps('ts-node@^9');

    // we use "tsconfig.dev.json" here to allow projen source files to reside
    // anywhere in the project tree.
    project.defaultTask.exec(`ts-node --project ${project.tsconfigDev.fileName} ${this.rcfile}`);

    this.generateProjenrc();
  }

  private generateProjenrc() {
    const rcfile = resolve(this.project.outdir, this.rcfile);
    if (existsSync(rcfile)) {
      return; // already exists
    }

    const bootstrap = this.project.newProject;
    if (!bootstrap) {
      return;
    }

    const parts = bootstrap.fqn.split('.');
    const moduleName = parts[0];
    const importName = parts[1];
    const className = parts.slice(1).join('.');

    const { renderedOptions, imports } = renderJavaScriptOptions({
      args: bootstrap.args,
      type: bootstrap.type,
      comments: bootstrap.comments,
    });

    imports.add(importName);

    const lines = new Array<string>();
    lines.push(`import { ${[...imports].sort().join(', ')} } from "${moduleName}";`);
    lines.push();
    lines.push(`const project = new ${className}(${renderedOptions});`);
    lines.push();
    lines.push('project.synth();');

    writeFileSync(rcfile, lines.join('\n'));
    this.project.logger.info(`Project definition file was created at ${rcfile}`);
  }
}import { readLines } from "./deps.ts";

async function main() {
  let input: number[][] = [];
  for await (const line of readLines(Deno.stdin)) {
    input.push(line.split("").map((x) => (x === "." ? 0 : 1)));
  }

  let space: number[][][][] = [[input]];

  space.unshift(
    zeroCube(space[0][0][0].length, space[0][0].length, space[0].length)
  );
  space.push(
    zeroCube(space[0][0][0].length, space[0][0].length, space[0].length)
  );

  for (let wi = 0; wi < space.length; wi++) {
    space[wi].unshift(zeroPlane(space[wi][0][0].length, space[wi][0].length));
    space[wi].push(zeroPlane(space[wi][0][0].length, space[wi][0].length));
  }

  for (let wi = 0; wi < space.length; wi++) {
    for (let zi = 0; zi < space[0].length; zi++) {
      let line: number[] = new Array(space[0][0][0].length).fill(0);
      space[wi][zi].unshift(line);
      let line2: number[] = new Array(space[0][0][0].length).fill(0);
      space[wi][zi].push(line2);
    }
  }


75rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((3em + 2.25rem)/ 4 + 1.75rem);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label:before,.was-validated .custom-control-input:valid~.custom-control-label:before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label:before,.was-validated .


val availableTypes = document.select(".chapvol-tab > a").map {
			it.attr("data-name")
		}
		val langTypePairs = document.select(".m-list div.tab-content").flatMap {
			val type = it.attr("data-name")

			it.select(".list-menu .dropdown-item").map { item ->
				ChapterBranch(
					type = type,
					langCode = item.attr("data-code").lowercase(),
					langTitle = item.attr("data-title"),
				)
			}
		}.filter {
			it.langCode == siteLang && availableTypes.contains(it.type)
		}

		val id = mangaUrl.substringAfterLast('.')

		return coroutineScope {
			langTypePairs.map {
				async {
					getChaptersBranch(id, it)
				}
			}.awaitAll().flatten()
		}
	}

	private suspend fun getChaptersBranch(mangaId: String, branch: ChapterBranch): List<MangaChapter> {
		val chapterElements = webClient
			.httpGet("https://$domain/ajax/read/$mangaId/${branch.type}/${branch.langCode}")
			.parseJson()
			.getJSONObject("result")
			.getString("html")
			.let(Jsoup::parseBodyFragment)
			.select("ul li a")

		if (branch.type == "chapter") {
			val doc = webClient
				.httpGet("https://$domain/ajax/manga/$mangaId/${branch.type}/${branch.langCode}")
				.parseJson()
				.getString("result")
				.let(Jsoup::parseBodyFragment)

			doc.select("ul li a").withIndex().forEach { (i, it) ->
				val date = it.select("span")[1].ownText()
				chapterElements[i].attr("upload-date", date)
				chapterElements[i].attr("other-title", it.attr("title"))
			}
		}

		return chapterElements.mapChapters(reversed = true) { _, it ->
			MangaChapter(
				id = generateUid(it.attr("href")),
				title = it.attr("title").ifBlank {
					"${branch.type.toTitleCase()} ${it.attr("data-number")}"
				},
				number = it.attr("data-number").toFloat(),
				volume = it.attr("other-title").let {
					volumeNumRegex.find(it)?.groupValues?.getOrNull(2)?.toInt() ?: 0
				},
				url = "${branch.type}/${it.attr("data-id")}",
				scanlator = null,
				uploadDate = dateFormat.parseSafe(it.attr("upload-date")),
				branch = "${branch.langTitle} ${branch.type.toTitleCase()}",
				source = source,
			)
		}
	}

	private val dateFormat = SimpleDateFormat("MMM dd, yyyy", Locale.ENGLISH)
	private val volumeNumRegex = Regex("""vol(ume)?\s*(\d+)""", RegexOption.IGNORE_CASE)

	override suspend fun getRelatedManga(seed: Manga): List<Manga> = coroutineScope {
		val document = webClient.httpGet(seed.url.toAbsoluteUrl(domain)).parseHtml()
		val total = document.select(
			"section.m-related a[href*=/manga/], .side-manga:not(:has(.head:contains(trending))) .unit",
		).size
		val mangas = ArrayList<Manga>(total)

		// "Related Manga"
		document.select("section.m-related a[href*=/manga/]").map {
			async {
				val url = it.attrAsRelativeUrl("href")

				val mangaDocument = webClient
					.httpGet(url.toAbsoluteUrl(domain))
					.parseHtml()

				val chaptersInManga = mangaDocument.select(".m-list div.tab-content .list-menu .dropdown-item")
					.map { it.attr("data-code").lowercase() }

				if (!chaptersInManga.contains


.try_write().unwrap().writeln( &format!( "c・c・c = {}", intersect_point_on_plane(&c,&c,&c) ) );

    } else if 0<(len-*starts) && &line[*starts..*starts+1] == "4" {
        *starts += 1;
        LOGGER.try_write().unwrap().writeln( "点ABは、同じ段にあるか？");
        LOGGER.try_write().unwrap().writeln( "A・B" );
        LOGGER.try_write().unwrap().writeln( "a{0,0} b{1,1} c{2,2} d{2,0}" );
        let a = Point{ x:0, y: 0 };
        let b = Point{ x:1, y: 1 };
        let c = Point{ x:2, y: 2 };
        let d = Point{ x:2, y: 0 };
        LOGGER.try_write().unwrap().writeln( &format!( "a・a = {}", match_argangle0_p_p(&a,&a) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "a・b = {}", match_argangle0_p_p(&a,&b) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "a・c = {}", match_argangle0_p_p(&a,&c) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "a・d = {}", match_argangle0_p_p(&a,&d) ) );

        LOGGER.try_write().unwrap().writeln( &format!( "b・a = {}", match_argangle0_p_p(&b,&a) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "b・b = {}", match_argangle0_p_p(&b,&b) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "b・c = {}", match_argangle0_p_p(&b,&c) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "b・d = {}", match_argangle0_p_p(&b,&d) ) );

        LOGGER.try_write().unwrap().writeln( &format!( "c・a = {}", match_argangle0_p_p(&c,&a) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "c・b = {}", match_argangle0_p_p(&c,&b) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "c・c = {}", match_argangle0_p_p(&c,&c) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "c・d = {}", match_argangle0_p_p(&c,&d) ) );

        LOGGER.try_write().unwrap().writeln( &format!( "d・a = {}", match_argangle0_p_p(&d,&a) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "d・b = {}", match_argangle0_p_p(&d,&b) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "d・c = {}", match_argangle0_p_p(&d,&c) ) );
        LOGGER.try_write().unwrap().writeln( &format!( "d・d = {}", match_argangle0_p_p(&d,&d) ) );

    } else if 0<(len-*starts) && &line[*starts..*starts+1] == "5" {
        *starts += 1;
        LOGGER.try_write().unwrap().writeln( "点ABは、４つの角度の直線上にあるか？");
        LOGGER.try_write().unwrap().writeln( "A・B" );
        LOGGER.try_write().unwrap().writeln( "a{0,0} b{1,1}


                    // and add one person to the group counter
                    for answer in characters {
                        customs.last_mut().unwrap().anyone.insert(answer);
                    }
                    groupmembercount += 1;
                }

            }
        }
    }

    // return the struct with counts and hashsets
    customs
}

fn main() -> Result<(), Error> {

    // process the file,
    let customsdb = readcustomforms("input.txt");
    let mut total: usize = 0;

    for customsform in &customsdb {
        total += customsform.anyone.len();
    }
    println!("Part One: total count is {}", total);

    total = 0;

    for customsform in &customsdb {
        total += customsform.everyone.len();
    }
    println!("Part Two: total count is {}", total);

    // Me main, me always happy
    Ok(())
}
<filename>engine/src/assets/mod.rs<gh_stars>10-100
mod gltf;
mod image;
mod material;
mod terrain;

pub use {
    self::{gltf::*, image::*, material::*, terrain::*},
    goods::*,
};

use {
    hecs::{Entity, World},
    std::{path::Path, sync::Arc},
};

pub type AssetKey = Arc<str>;
pub type Assets = Cache<AssetKey>;

pub trait Prefab {
    type Info: Send + 'static;

    /// Spawns this prefab into world.
    fn spawn(self, info: Self::Info, world: &mut World, entity: Entity);
}

/// Append string to asset key.
/// If string is url it is used as-is,
/// otherwise key and string are treated as `Path`s and are joined.
fn append_key(key: &AssetKey, string: &str) -> AssetKey {
    match url::Url::parse(string) {
        Ok(url) => Arc::from(url.as_str()),
        Err(_) => match Path::new(&**key).parent() {
            Some(parent) => Arc::from(parent.join(string).to_str().unwrap()),
            None => Arc::from(string),
        },
    }
}
/// This type is very widely used!! Interchangeable across 0.2 and 0.3.
pub struct Unchanged;

/// This type is not widely used. It will be removed in 0.3.0.
pub struct Removed;

/// This module contains a type that will be moved to a different module in
/// 0.3.0.
pub mod before {
    /// This type will be moved to a different module in 0.3.0.
    pub struct Moved;
}
<gh_stars>0
use broadcaster::BroadcastChannel;
use futures::StreamExt;
use tide::{Request, sse};

#[derive(Clone, Debug)]
struct State {
    channel: BroadcastChannel<String>
}

#[async_std::main]
async fn main() -> Result<(), std::io::Error> {
    tide::log::start();

    let channel = BroadcastChannel::new();
    let mut app = tide::with_state(State { channel });
    app.at("/emojis").get(sse::endpoint(emojis));
    app.at("/send/:emoji").get(send);
    app.listen("localhost:8080").await?;
    Ok(())
}

async fn emojis(request: Request<State>, sender: sse::Sender) -> Result<(), tide::Error> {
    let mut count: i64 = 0;
    let mut channel = request.state().channel.clone();
    while let Some(emoji) = channel.next().await {
        let id = format!("{}", count);
        sender.send("emoji", emoji, Some(&id)).await?;
        count += 1;
    }
    Ok(())
}

async fn send(request: Request<State>) -> tide::Result {
    let emoji = request.param("emoji")?;
    request.state().channel.send(&emoji.to_string()).await?;
    Ok(emoji.into())
}<reponame>SnakeSolid/rust-postgres-status
use super::util::handle_empty;
use super::


 = set.insert(1);
        assert_eq!(new_set.size(), 1);

        let map = ImmutableMap::new();
        let new_map = map.insert(1, "abc");
        assert_eq!(new_map.size(), 1);
        let new_map = new_map.insert(2, "def");
        assert_eq!(new_map.get_val_as_ref(2), Some(&"def"));
        let new_map = new_map.delete(1);
        assert_eq!(new_map.size(), 1);
    }
}
use super::prelude::*;
use crate::voicemail::Voicemail;
use chrono::prelude::*;
use humantime::format_duration;

lazy_static! {
    static ref SEPERATORS: Vec<&'static str> = vec!["&&", "and", "und"];
}

pub fn command() -> Arc<Command> {
    Command::with_name("voicemail")
        .alias("tell")
        .command(move |context, args, msg, _user| {
            let user_id = msg.twitch_id().unwrap();
            let line = args.join(" ");
            let mut voicemail: Voicemail = match line.parse() {
                Ok(v) => v,
                Err(err) => {
                    return Ok(MessageResult::Error(format!(
                        "Could not parse voicemail: {}",
                        err
                    )))
                }
            };

            let conn = &context.conn();

            let channel_name = msg.channel().to_owned();
            let channel = database::Channel::by_name(conn, channel_name.trim_start_matches('#'))
                .context("Could not get channel from database")?
                .context("Channel is not in database")?;

            let bot_name = context.bot_name();
            voicemail.recipients.retain(|x| x != &bot_name);

            let now = Utc::now().naive_utc();
            let voicemails =
                database::Voicemail::new(conn, &voicemail, user_id as i64, channel.id, now)
                    .context("Could not insert voicemail(s) to database")?;
            if voicemail.schedule.is_none() {
                Ok(MessageResult::Message(format!(
                    "I'll send that message to {} when they next type in chat.",
                    voicemail.recipients.join(", ")
                )))
            } else {
                // actually schedule voicemail

                for voicemail in voicemails {
                    context.scheduler().schedule(voicemail).unwrap();
                }

                Ok(MessageResult::Message(format!(
                    "I'll send that message to {} in {}",
                    voicemail.recipients.join(", "),
                    format_duration(
                        voicemail
                            .schedule
                            .unwrap()
                            .signed_duration_since(now)
                            .to_std()
                            .unwrap_or_default()
                    ),
                )))
            }
        })
        .about("Send messages to other users or yourself")
        .description(
            "
=== USAGE

```
tell RECIPIENTS [SCHEDULE] MESSAGE
```

==== RECIPIENTS

A separated list of recipients.
Valid separators are `and`, `und`, `&&` and `,`.

.Example:
    nymn and pajlada

==== SCHEDLUE

To schedule a voicemail you need a marker and a value.

[cols=3*,options=header]
|===
| type
| markers
| value

| relative
| `in`
| A number and a unit, like `20 minutes`


= Mathf.Min(maxY - (contentSize.y - areaSize.y), maxY);
			}
			else
			{
				minY = 0;
				maxY = Mathf.Max(minY + contentSize.y - areaSize.y, minY);
			}
			caretPosition.y = minY - caretPosition.y;

			float minVisibleY = contentPosition.y;
			float maxVisibleY = contentPosition.y + areaSize.y;

			if(caretPosition.y < minVisibleY)
			{
				float diffY = minVisibleY - caretPosition.y;
				contentPosition.y = Mathf.Clamp(contentPosition.y - diffY, minY, maxY);
				ScrollArea scrollArea = textAreaTransform.GetComponent<ScrollArea>();
				if(immediately)
				{
					scrollArea.MoveContentImmediately(contentPosition);
				}
				else
				{
					scrollArea.MoveContentVertically(contentPosition, scroll


urn L(un, e, KA), e } _setActiveRows() { m.find(fn, this._element).forEach(t => { this._selected.includes(g.getDataAttribute(t, "index")) ? g.addClass(t, `active ${this._classes.selectableRow}`) : g.removeClass(t, `active ${this._classes.selectableRow}`) }) } _setEntries(t) { this._options = this._getOptions({ ...this._options, entries: t.target.value }), this._activePage > this.pages - 1 && (this._activePage = this.pages - 1), this._toggleDisableState(), this._renderRows() } _setSelected() { m.find(ql, this._element).forEach(t => { const e = g.getDataAttribute(t, "rowIndex"); t.checked = this._selected.includes(e) }), this._setActiveRows() } _setActiveSortIcon(t) { m.find(Gl, this._element).forEach(e => { const i = this._options.sortOrder === "desc" && e === t ? 180 : 0; g.style(e, { transform: `rotate(${i}deg)` }), e === t && this._options.sortOrder ? g.addClass(e, "opacity-100") : g.removeClass(e, "opacity-100") }) } _setup() { this._renderTable(), this._options.pagination && this._setupPagination(), this._options.edit && this._setupEditable(), this._options.clickableRows && this._setupClickableRows(), this._options.selectable && this._setupSelectable(), this._setupScroll(), this._setupSort() } _setupClickableRows() { m.find(fn, this._element).forEach(t => { const e = g.getDataAttribute(t, "index"); g.addClass(t, "cursor-pointer"), _.on(t, "click", i => { m.matches(i.target, ql) || _.trigger(this._element, XC, { index: e, row: this.rows[e] }) }) }) } _setupEditable() { m.find(fn, this._element).forEach(t => { const e = g.getDataAttribute(t, "index"); m.find(Xl, t).forEach(i => { _.on(i, "input", n => this._updateRow(n, e)) }) }) } _setupScroll() { const t = m.findOne(BC, this._element), e = {}; if (this._options.maxHeight && (e.maxHeight = this._getCSSValue(this._options.maxHeight)), this._options.maxWidth) { const i = this._getCSSValue(this._options.maxWidth); e.maxWidth = i, g.style(this._element, { maxWidth: i }) } if (g.style(t, e), g.addClass(t, `${this._classes.scroll}`), this._options.fixedHeader) { let i = m.find(HC, this._element); this._options.selectable && (i = i.filter((n, o) => (g.addClass(n, `${this._classes.fixedHeader} ${this._classes.color}`), o !== 0))), i.forEach((n, o) => { g.addClass(n, `${this._classes.fixedHeader} ${this._classes.color}`), this.columns[o].fixed && g.addClass(n, "!z-40") }) } this._perfectScrollbar = new ms(t) } _setupSort() { m.find(Gl, this._element).forEach(t => { const e = g.getDataAttribute(t, "sort"), [i] = m.parents(t, "th"); if (this.columns.sort) g.addClass(i, "cursor-pointer"); else return; e === this._options.sortField && this._setActiveSortIcon(t), _.on(i, "click", () => { this._options.sortField === e && this._options.sortOrder === "asc" ? this._options.sortOrder = "desc" : this._options.sortField === e && this._options.sortOrder === "desc" ? this._options.sortOrder = this._options.forceSort ? "asc" : null : this._options.sortOrder = "asc", this._options.sortField = e, this._activePage = 0, this._performSort(), this._setActiveSortIcon(t) }) }) } _performSort() { this._toggleDisableState(), this


WebRTCMultipleRoutes
	CEFChromium_SetWebRTCNonproxiedUDP
	CEFChromium_GetWebRTCNonproxiedUDP
	CEFChromium_SetBatterySaverModeState
	CEFChromium_GetBatterySaverModeState
	CEFChromium_SetHighEfficiencyMode
	CEFChromium_GetHighEfficiencyMode
	CEFChromium_SetLoadImagesAutomatically
	CEFChromium_GetLoadImagesAutomatically
	CEFChromium_SetQuicAllowed
	CEFChromium_GetQuicAllowed
	CEFChromium_SetOffline
	CEFChromium_GetOffline
	CEFChromium_SetDefaultWindowInfoExStyle
	CEFChromium_GetDefaultWindowInfoExStyle
	CEFChromium_SetBlock3rdPartyCookies
	CEFChromium_GetBlock3rdPartyCookies
	CEFChromium_SetAcceptCookies
	CEFChromium_GetAcceptCookies
	CEFChromium_SetAcceptLanguageList
	CEFChromium_GetAcceptLanguageList
	CEFChromium_SetPrintingEnabled
	CEFChromium_GetPrintingEnabled
	CEFChromium_SetYouTubeRestrict
	CEFChromium_GetYouTubeRestrict
	CEFChromium_SetSafeSearch
	CEFChromium_GetSafeSearch
	CEFChromium_SetAudioMuted
	CEFChromium_GetAudioMuted
	CEFChromium_SetDragOperations
	CEFChromium_GetDragOperations
	CEFChromium_GetFrameCount
	CEFChromium_SetSpellCheckerDicts
	CEFChromium_GetSpellCheckerDicts
	CEFChromium_SetSpellChecking
	CEFChromium_GetSpellChecking
	CEFChromium_SetAlwaysOpenPDFExternally
	CEFChromium_GetAlwaysOpenPDFExternally
	CEFChromium_SetAlwaysAuthorizePlugins
	CEFChromium_GetAlwaysAuthorizePlugins
	CEFChromium_SetAllowOutdatedPlugins
	CEFChromium_GetAllowOutdatedPlugins
	CEFChromium_SetSendReferrer
	CEFChromium_GetSendReferrer
	CEFChromium_SetDoNotTrack
	CEFChromium_GetDoNotTrack
	CEFChromium_SetZoomStep
	CEFChromium_GetZoomStep
	CEFChromium_SetZoomPct
	CEFChromium_GetZoomPct
	CEFChromium_SetZoomLevel
	CEFChromium_GetZoomLevel
	CEFChromium_SetDefaultEncoding
	CEFChromium_GetDefaultEncoding
	CEFChromium_SendProcessMessage
	CEFChromium_SendProcessMessageForJSONBytes
	CEFChromium_CefClient
	CEFChromium_SendProcessMessageForV8Value
	CEFChromium_SimulateMouseWheel
	CEFChromium_CloseAllConnections
	CEFChromium_RetrieveHTMLByFrameName
	CEFChromium_RetrieveHTMLByFrame
	CEFChromium_RetrieveHTMLByFrameIdentifier
	CEFChromium_RetrieveTextByFrameName
	CEFChromium_RetrieveTextByFrame
	CEFChromium_RetrieveTextByFrameIdentifier
	CEFChromium_ResolveHost
	CEFChromium_SetUserAgentOverride
	CEFChromium_ClearDataForOrigin
	CEFChromium_ClearCache
	CEFChromium_ToggleAudioMuted
	CEFChromium_ClipboardCopy
	CEFChromium_ClipboardPaste
	CEFChromium_ClipboardCut
	CEFChromium_ClipboardUndo
	CEFChromium_ClipboardRedo
	CEFChromium_ClipboardDel
	CEFChromium_SelectAll
	CEFChromium_IncZoomStep
	CEFChromium_DecZoomStep
	CEFChromium_IncZoomPct
	CEFChromium_DecZoomPct
	CEFChromium_ResetZoomStep
	CEFChromium_ResetZoomPc


 r3, r2
	ldrh	r2, [r4]
	lsr	r3, r0, #11
	mov	r6, r2
	mul	r6, r3
	cmp	r7, r6
	bcs	.Ls70
	mov	r3, #128
	lsl	r3, r3, #4
	sub	r3, r3, r2
	asr	r3, r3, #5
	add	r3, r2, r3
	strh	r3, [r4]
	ldr	r3, [sp, #28]
	cmp	r3, #0
	bne	.LsCB565
	b	.Ls18	@long jump
.LsCB565:
	ldr	r0, [sp, #44]
	cmp	r0, #6
	bgt	.Ls73
	mov	r1, #9
	str	r1, [sp, #44]
	b	.Ls75
.Ls73:
	mov	r2, #11
	str	r2, [sp, #44]
.Ls75:
	ldr	r0, [sp, #28]
	ldr	r1, [sp, #120]
	ldr	r2, [sp, #144]
	sub	r3, r0, r1
	ldrb	r3, [r2, r3]
	strb	r3, [r2, r0]
	mov	r2, r0
	mov	ip, r3
	add	r2, r2, #1
	mov	r1, r6
	b	.Ls49
.Ls70:
	lsr	r3, r2, #5
	sub	r3, r2, r3
	sub	r0, r0, r6
	sub	r7, r7, r6
	strh	r3, [r4]
	b	.Ls76
.Ls172:
	.align	2
.Ls171:
	.word	1846
	.word	16777215
	.word	3692
	.word	1636
.Ls64:
	lsr	r3, r0, #5
	sub	r3, r0, r3
	ldr	r0, .Ls173
	sub	r4, r4, r2
	sub	r7, r7, r2
	strh	r3, [r6]
	cmp	r4, r0
	bhi	.Ls77
	ldr	r1, [sp, #64]
	cmp	r5, r1
	bne	.LsCB621
	b	.Ls18	@long jump
.LsCB621:
	ldrb	r3, [r5]
	lsl	r2, r7, #8
	mov	r7, r2
	lsl	r4, r4, #8
	orr	r7, r7, r3
	add	r5, r5, #1
.Ls77:
	mov	r6, #216
	lsl	r6, r6, #1
	add	r6, r6, ip
	ldrh	r2, [r6]
	lsr	r3, r4, #11
	mov	r0, r2
	mul	r0, r3
	cmp	r7, r0
	bcs	.Ls80
	mov	r3, #128
	lsl	r3, r3, #4
	sub	r3, r3, r2
	asr	r3, r3, #5
	add	r3, r2, r3
	strh	r3, [r6]
	ldr	r2, [sp, #48]
	ldr	r3, [sp, #120]
	str	r3, [sp, #48]
	b	.Ls168
.Ls80:
	sub	r1, r4,


id="your-name">

 Your name here

Please fill this form :)

                <input type="text" placeholder="Your name" />
                <button>OK!</button>
                </form>

     <!DOCTYPE html>

    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <link
      href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css"
      rel="stylesheet"
    />
    <link rel="stylesheet" href="./styles/styleIndex.css" />
    <title>Document</title>

              Home

              Quiz

          Mitt Quiz

          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad nemo
          debitis itaque! Unde eaque odio expedita delectus! Libero quasi, nemo,
          facere ad inventore laudantium alias eligendi suscipit quam ducimus
          laborum.

          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad nemo
          debitis itaque! Unde eaque odio expedita delectus! Libero quasi, nemo,
          facere ad inventore laudantium alias eligendi suscipit quam ducimus
          laborum.

          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad nemo
          debitis itaque! Unde eaque odio expedita delectus! Libero quasi, nemo,
          facere ad inventore laudantium alias eligendi suscipit quam ducimus
          laborum.

          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad nemo
          debitis itaque! Unde eaque odio expedita delectus! Libero quasi, nemo,
          facere ad inventore laudantium alias eligendi suscipit quam ducimus
          laborum.

          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad nemo
          debitis itaque! Unde eaque odio expedita delectus! Libero quasi, nemo,
          facere ad inventore laudantium alias eligendi suscipit quam ducimus
          laborum.

          Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad nemo
          debitis itaque! Unde eaque odio expedita delectus! Libero quasi, nemo,
          facere ad inventore laudantium alias eligendi suscipit quam ducimus
          laborum.

        <p


//##################################################################################################
//
//   Custom Visualization Core library
//   Copyright (C) 2017 Ceetron Solutions AS
//
//   This library may be used under the terms of either the GNU General Public License or
//   the GNU Lesser General Public License as follows:
//
//   GNU General Public License Usage
//   This library is free software: you can redistribute it and/or modify
//   it under the terms of the GNU General Public License as published by
//   the Free Software Foundation, either version 3 of the License, or
//   (at your option) any later version.
//
//   This library is distributed in the hope that it will be useful, but WITHOUT ANY
//   WARRANTY; without even the implied warranty of MERCHANTABILITY or
//   FITNESS FOR A PARTICULAR PURPOSE.
//
//   See the GNU General Public License at <<http://www.gnu.org/licenses/gpl.html>>
//   for more details.
//
//   GNU Lesser General Public License Usage
//   This library is free software; you can redistribute it and/or modify
//   it under the terms of the GNU Lesser General Public License as published by
//   the Free Software Foundation; either version 2.1 of the License, or
//   (at your option) any later version.
//
//   This library is distributed in the hope that it will be useful, but WITHOUT ANY
//   WARRANTY; without even the implied warranty of MERCHANTABILITY or
//   FITNESS FOR A PARTICULAR PURPOSE.
//
//   See the GNU Lesser General Public License at <<http://www.gnu.org/licenses/lgpl-2.1.html>>
//   for more details.
//
//##################################################################################################

#pragma once

class QString;

namespace caf
{
class PdmUiFieldEditorHandle;
class PdmUiFieldHandle;

//==================================================================================================
///
//==================================================================================================
class PdmUiFieldEditorHelper
{
public:
    static PdmUiFieldEditorHandle* createFieldEditorForField( PdmUiFieldHandle* fieldHandle, const QString& uiConfigName );
};

} // end namespace caf


https://api.github.com/repos/foss42/apidash?raw=true".parse::<Uri>().unwrap();
    let req_builder = Request::builder()
              .method("GET")
              .uri(url)
              .header("User-Agent", "Test Agent")

              .body(Body::empty())?;

    let res = client.request(req_builder).await?;
    let status = res.status();
    let body_bytes = hyper::body::to_bytes(res).await?;
    let body = String::from_utf8(body_bytes.to_vec())?;

    println!("Response Status: {}", status);
    println!("Response: {:?}", body);

    Ok(())
}

""";
      expect(
          codeGen.getCode(
            CodegenLanguage.rustHyper,
            requestModelGet6,
            SupportedUriSchemes.https,
          ),
          expectedCode);
    });

    test('GET7', () {
      const expectedCode = r"""
use hyper::{Body, Client, Request, Uri};
use hyper_tls::HttpsConnector;
use tokio;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let https = HttpsConnector::new();
    let client = Client::builder().build::<_, hyper::Body>(https);
    let url = "https://api.apidash.dev".parse::<Uri>().unwrap();
    let req_builder = Request::builder()
              .method("GET")
              .uri(url)
              .body(Body::empty())?;

    let res = client.request(req_builder).await?;
    let status = res.status();
    let body_bytes = hyper::body::to_bytes(res).await?;
    let body = String::from_utf8(body_bytes.to_vec())?;

    println!("Response Status: {}", status);
    println!("Response: {:?}", body);

    Ok(())
}

""";
      expect(
          codeGen.getCode(
            CodegenLanguage.rustHyper,
            requestModelGet7,
            SupportedUriSchemes.https,
          ),
          expectedCode);
    });

    test('GET8', () {
      const expectedCode = r"""
use hyper::{Body, Client, Request, Uri};
use hyper_tls::HttpsConnector;
use tokio;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let https = HttpsConnector::new();
    let client = Client::builder().build::<_, hyper::Body>(https);
    let url = "https://api.github.com/repos/foss42/apidash?raw=true".parse::<Uri>().unwrap();
    let req_builder = Request::builder()
              .method("GET")
              .uri(url)
              .header("User-Agent", "Test Agent")

              .body(Body::empty())?;

    let res = client.request(req_builder).await?;
    let status = res.status();
    let body_bytes = hyper::body::to_bytes(res).await?;
    let body = String::from_utf8(body_bytes.to_vec())?;

    println!("Response Status: {}", status);
    println!("Response: {:?}", body);

    Ok(())
}

""";
      expect(
          codeGen.getCode(
            CodegenLanguage.rustHyper,
            requestModelGet8,
            SupportedUriSchemes.https,
          ),
          expectedCode);
    });
    test('GET9', () {
      const expectedCode = r"""
use hyper::{Body, Client, Request, Uri};
use hyper_tls::HttpsConnector;
use tokio;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let https = HttpsConnector::new();
    let client = Client::builder().build::<


ASI_I	wr	%r0, 0x0020, %asi
	.word 0xe49f6000  ! 7259: LDDA_I	ldda	[%r29, + 0x0000] %asi, %r18
	.word 0xe6ac8400  ! 7260: STBA_R	stba	%r19, [%r18 + %r0] 0x20
	.word 0x87802020  ! 7261: WRASI_I	wr	%r0, 0x0020, %asi
	.word 0x87802025  ! 7262: WRASI_I	wr	%r0, 0x0025, %asi
	mov	0x7e8, %r21
	.word 0xe4d504a0  ! 7264: LDSHA_R	ldsha	[%r20, %r0] 0x25, %r18
	mov	0x18, %r24
	.word 0xe2944400  ! 7266: LDUHA_R	lduha	[%r17, %r0] 0x20, %r17
	mov	0x7f0, %r20
	.word 0xeef78e60  ! 7268: STXA_R	stxa	%r23, [%r30 + %r0] 0x73
	.word 0xe0d4c400  ! 7269: LDSHA_R	ldsha	[%r19, %r0] 0x20, %r16
	.word 0xe4d76000  ! 7270: LDSHA_I	ldsha	[%r29, + 0x0000] %asi, %r18
	.word 0xe0bfce60  ! 7271: STDA_R	stda	%r16, [%r31 + %r0] 0x73
	.word 0xeabd84a0  ! 7272: STDA_R	stda	%r21, [%r22 + %r0] 0x25
	.word 0x87802074  ! 7273: WRASI_I	wr	%r0, 0x0074, %asi
	.word 0x87802020  ! 7274: WRASI_I	wr	%r0, 0x0020, %asi
	.word 0xec87a000  ! 7275: LDUWA_I	lduwa	[%r30, + 0x0000] %asi, %r22
	.word 0xe49fce60  ! 7276: LDDA_R	ldda	[%r31, %r0] 0x73, %r18
	mov	0x68, %r27
	mov	0x20, %r24
	.word 0xe68c8400  ! 7279: LDUBA_R	lduba	[%r18, %r0] 0x20, %r19
	.word 0x87802025  ! 7280: WRASI_I	wr	%r0, 0x0025, %asi
	mov	0x8, %r17
	mov	0x20, %r24
	.word 0xeebde000  ! 7283: STDA_I	stda	%r23, [%r23 + 0x0000] %asi
	mov	0x3c8, %r21
	.word 0xe6b44400  ! 7285: STHA_R	stha	%r19, [%r17 + %r0] 0x20
	.word 0xe6afce60  ! 7286: STBA_R	stba	%r19, [%r31 + %r0] 0x73
	.word 0xe8f44400  ! 7287: STXA_R	stxa	%r20, [%r17 + %r0] 0x20
	mov	0x40, %r26
	.word 0xe4c56000  ! 7289: LDSWA_I	ldswa	[%r21, + 0x0000] %asi, %r18
	.word 0xeaf7ce80  ! 7290: STXA_R	stxa	%r21, [%r31 + %r0] 0x74
	.word 0x87802074  !


gSuperframeDuration / 16;
        capDuration = activeSlot * (m_incomingFnlCapSlot + 1);
        endCapTime = Seconds((double)capDuration / symbolRate);
        // Obtain the end of the CAP by adjust the time it took to receive the beacon
        endCapTime -= (Simulator::Now() - m_macBeaconRxTime);

        NS_LOG_DEBUG("Incoming superframe CAP duration " << (endCapTime.GetSeconds() * symbolRate)
                                                         << " symbols (" << endCapTime.As(Time::S)
                                                         << ")");
        NS_LOG_DEBUG("Active Slots duration " << activeSlot << " symbols");

        m_capEvent =
            Simulator::Schedule(endCapTime, &LrWpanMac::StartCFP, this, SuperframeType::INCOMING);
    }

    CheckQueue();
}

void
LrWpanMac::StartCFP(SuperframeType superframeType)
{
    uint32_t activeSlot;
    uint64_t cfpDuration;
    Time endCfpTime;
    uint64_t symbolRate;

    symbolRate = (uint64_t)m_phy->GetDataOrSymbolRate(false); // symbols per second

    if (superframeType == INCOMING)
    {
        activeSlot = m_incomingSuperframeDuration / 16;
        cfpDuration = activeSlot * (15 - m_incomingFnlCapSlot);
        endCfpTime = Seconds((double)cfpDuration / symbolRate);
        if (cfpDuration > 0)
        {
            m_incSuperframeStatus = CFP;
        }

        NS_LOG_DEBUG("Incoming superframe CFP duration " << cfpDuration << " symbols ("
                                                         << endCfpTime.As(Time::S) << ")");

        m_incCfpEvent = Simulator::Schedule(endCfpTime,
                                            &LrWpanMac::StartInactivePeriod,
                                            this,
                                            SuperframeType::INCOMING);
    }
    else
    {
        activeSlot = m_superframeDuration / 16;
        cfpDuration = activeSlot * (15 - m_fnlCapSlot);
        endCfpTime = Seconds((double)cfpDuration / symbolRate);

        if (cfpDuration > 0)
        {
            m_outSuperframeStatus = CFP;
        }

        NS_LOG_DEBUG("Outgoing superframe CFP duration " << cfpDuration << " symbols ("
                                                         << endCfpTime.As(Time::S) << ")");

        m_cfpEvent = Simulator::Schedule(endCfpTime,
                                         &LrWpanMac::StartInactivePeriod,
                                         this,
                                         SuperframeType::OUTGOING);
    }
    // TODO: Start transmit or receive  GTS here.
}

void
LrWpanMac::StartInactivePeriod(SuperframeType superframeType)
{
    uint64_t inactiveDuration;
    Time endInactiveTime;
    uint64_t symbolRate;

    symbolRate = (uint64_t)m_phy->GetDataOrSymbolRate(false); // symbols per second

    if (superframeType == INCOMING)
    {
        inactiveDuration = m_incomingBeaconInterval - m_incomingSuperframeDuration;
        endInactiveTime = Seconds((double)inactiveDuration / symbolRate);

        if (inactiveDuration > 0)
        {
            m_incSuperframeStatus = INACTIVE;
        }

        NS_LOG_DEBUG("Incoming superframe Inactive Portion duration "
                     << inactiveDuration << " symbols (" << endInactiveTime.As(Time::S) << ")");
        m_beaconEvent = Simulator::Schedule(endInactiveTime, &LrWpanMac::AwaitBeacon, this);
    }
    else
    {
        inactiveDuration = m_beaconInterval - m_superframeDuration;
        endInactiveTime = Seconds((double)inactiveDuration / symbolRate);

        if (inactiveDuration > 0


 = height - (p.getY() * scaleY);
                ctx.lineTo(x, y + (band * BAND_WIDTH) * scaleY);
                oldX = x;
            }
            ctx.lineTo(oldX, height);
            ctx.lineTo(0, height);
            ctx.closePath();
            ctx.setFill(COLORS.get(band));
            ctx.fill();
        }
    }

    private void drawMultiTimeSeries(final List<XYSeries<T>> LIST_OF_SERIES) {
        // Aggregating data
        List<XYItem> minItems    = new LinkedList<>();
        List<XYItem> maxItems    = new LinkedList<>();
        List<XYItem> avgItems    = new LinkedList<>();
        List<XYItem> stdDevItems = new LinkedList<>();
        XYSeries<T> series0 = LIST_OF_SERIES.get(0);
        for (int i = 0 ; i < series0.getItems().size() ; i++) {
            T item = series0.getItems().get(i);
            double x = item.getX();
            double minYForX = Double.MAX_VALUE;
            double maxYForX = Double.MIN_VALUE;
            List<Double> valuesForX = new LinkedList<>();
            for (int j = 0 ; j < LIST_OF_SERIES.size() ; j++) {
                XYSeries<T> series        = LIST_OF_SERIES.get(j);
                Optional<T> optionalValue = series.getItems().stream().filter(si -> Double.compare(x, si.getX()) == 0).findFirst();
                if (optionalValue.isPresent()) {
                    minYForX = Math.min(minYForX, optionalValue.get().getY());
                    maxYForX = Math.max(maxYForX, optionalValue.get().getY());
                    valuesForX.add(optionalValue.get().getY());
                }
            }
            minItems.add(new XYChartItem(x, minYForX));
            maxItems.add(new XYChartItem(x, maxYForX));
            avgItems.add(new XYChartItem(x, Statistics.getAverage(valuesForX)));
            stdDevItems.add(new XYChartItem(x, Statistics.getStdDev(valuesForX)));
        }

        // Visualize data
        final double LOWER_BOUND_X = getLowerBoundX();
        final double LOWER_BOUND_Y = getLowerBoundY();

        double startX = (maxItems.get(0).getX() - LOWER_BOUND_X) * scaleX;
        double startY = height - (maxItems.get(0).getY() - LOWER_BOUND_Y) * scaleY;

        if (isEnvelopeVisible()) {
            ctx.setFill(getEnvelopeFill());
            ctx.setStroke(getEnvelopeStroke());
            ctx.setLineWidth(0.5);
            ctx.beginPath();
            ctx.moveTo(startX, startY);
            for (int i = 1; i < maxItems.size(); i++) {
                XYItem item = maxItems.get(i);
                double x    = (item.getX() - LOWER_BOUND_X) * scaleX;
                double y    = height - (item.getY() - LOWER_BOUND_Y) * scaleY;
                ctx.lineTo(x, y);
            }
            for (int i = minItems.size() - 1; i >= 0; i--) {
                XYItem item = minItems.get(i);
                double x    = (item.getX() - LOWER_BOUND_X) * scaleX;
                double y    = height - (item.getY() - LOWER_BOUND_Y) * scaleY;
                ctx.lineTo(x, y);
            }
            ctx.lineTo(startX, startY);
            ctx.closePath();
            ctx.fill();
            ctx.stroke();
        }

        for (XYSeries<T> SERIES : L


#ifndef SCENE_NEF_POLYHEDRON_ITEM_H
#define SCENE_NEF_POLYHEDRON_ITEM_H
#include  <CGAL/Three/Scene_item.h>
#include "Scene_nef_polyhedron_item_config.h"
#include "Nef_type_fwd.h"
#include <iostream>
#include <queue>
class Scene_surface_mesh_item;
struct Scene_nef_polyhedron_item_priv;
class SCENE_NEF_POLYHEDRON_ITEM_EXPORT Scene_nef_polyhedron_item
 : public CGAL::Three::Scene_item
{
  Q_OBJECT
public:
  Scene_nef_polyhedron_item();
//   Scene_nef_polyhedron_item(const Scene_nef_polyhedron_item&);
  Scene_nef_polyhedron_item(const Nef_polyhedron& p);
  Scene_nef_polyhedron_item(Nef_polyhedron* const p);
  ~Scene_nef_polyhedron_item();

  Scene_nef_polyhedron_item* clone() const;
  bool load_from_off(std::istream& in);
  bool load(std::istream& in);
  bool save(std::ostream& in) const;

  QFont font() const;
  QString toolTip() const;

  virtual void invalidateOpenGLBuffers();
  virtual void selection_changed(bool);
  // Indicate if rendering mode is supported
  virtual bool supportsRenderingMode(RenderingMode m) const { return m != Gouraud && m!=ShadedPoints; } // CHECK THIS!
  // OpenGL drawing in a display list
  void direct_draw() const;

  virtual void draw(CGAL::Three::Viewer_interface*) const;
  virtual void drawEdges() const {}
  virtual void drawEdges(CGAL::Three::Viewer_interface* viewer) const;
  virtual void drawPoints(CGAL::Three::Viewer_interface*) const;
  // Wireframe OpenGL drawing

  bool isFinite() const { return true; }
  bool isEmpty() const;
  void compute_bbox() const;

  Nef_polyhedron* nef_polyhedron();
  Nef_polyhedron* nef_polyhedron()const;

  bool is_simple() const;
  bool is_Triangle;
  // conversion operations
  static Scene_nef_polyhedron_item* from_polygon_mesh(Scene_surface_mesh_item*);

  Scene_surface_mesh_item* convert_to_surface_mesh() const;

  // Nef boolean operations
  Scene_nef_polyhedron_item&
  operator+=(const Scene_nef_polyhedron_item&); // union

  Scene_nef_polyhedron_item&
  operator*=(const Scene_nef_polyhedron_item&); // intersection

  Scene_nef_polyhedron_item&
  operator-=(const Scene_nef_polyhedron_item&); // difference

  static Scene_nef_polyhedron_item*
  sum(const Scene_nef_polyhedron_item&,
      const Scene_nef_polyhedron_item&);

  void convex_decomposition(std::list< Scene_surface_mesh_item*>&);
protected:
  friend struct Scene_nef_polyhedron_item_priv;
  Scene_nef_polyhedron_item_priv* d;
}; // end class Scene_nef_polyhedron_item

#endif // SCENE_NEF_POLYHEDRON_ITEM_H


#pragma once
#include "Linked.h"
using namespace std;

struct traveller
{
    string name;
    int age;
    LinkedStr toVisit;

    traveller() : toVisit() {}

    bool operator == (traveller& tour) {
        return name == tour.name
            && age == tour.age
            && toVisit == tour.toVisit;
    }

    bool operator != (traveller& tour) {
        return !((*this) == tour);
    }

    string giveJSON() {
        string json = "\t{\n";
        json += tab(2) + R"("name" : ")" + name + "\",\n";
        json += tab(2) + R"("age" : )" + to_string(age) + ",\n";
        json += tab(2) + R"("toVisit" : )" + toVisit.giveList() + "\n";
        json += "\t}";
        return json;
    }

    bool readJSON(ifstream& in) {
        string line, word;
        // read name from json
        while (in.get() != '"') in.ignore();
        getline(in, line, '\n');
        stringstream extraction1(line);
        while (getline(extraction1, word, '"'))
            if (word != "name" && word != " : " && word != ",")
                name += word;
        // read age from json
        while (in.get() != '"') in.ignore();
        getline(in, line, '\n');
        word = line.substr(line.find(':') + 2, line.find(',') - line.find(':') + 2);
        age = stoi(word);
        // read cities to visit from json
        while (in.get() != '"') in.ignore();
        getline(in, line, '\n');
        stringstream extraction3(line);
        while (getline(extraction3, word, '"'))
            if (word != "toVisit" && word != " : [" && word != ", " && word != "]")
                toVisit.insert(word);
        in >> line;
        return line == "}" ? true : false;
    }

    private: string tab(int limit = 1) {
        string space;
        for (int i = 0; i < limit; i++) space += '\t';
        return space;
    }
};

traveller giveTour() {
    traveller tour;
    system("cls");
    cout << "Enter your name: ";
    cin >> tour.name;
    system("cls");
    cout << "Enter your age: ";
    cin >> tour.age;
    system("cls");
    cout << "Start entering your future tours\n(type <done> to finish)\n";
    string city;
    while (true) {
        cin >> city;
        if (city == "done") break;
        tour.toVisit.insert(city);
    }
    system("cls");
    return tour;
}


class CreateCommunityImageFields extends StatelessWidget {
  final String? bannerImageUrl;
  final String? profileImageUrl;
  final Future<void> Function(String) updateBannerImage;
  final Future<void> Function(String) updateProfileImage;
  final Future<void> Function({required bool isBannerImage}) removeImage;

  const CreateCommunityImageFields({
    Key? key,
    this.bannerImageUrl,
    this.profileImageUrl,
    required this.updateBannerImage,
    required this.updateProfileImage,
    required this.removeImage,
  }) : super(key: key);

  Future<void> _editBannerPressed() async {
    String? url =
        await GetIt.instance<MediaHelperService>().pickImageViaCloudinary();
    url = url?.trim();
    if (url != null) {
      await updateBannerImage(url);
    }
  }

  Future<void> _editLogoPressed() async {
    String? url =
        await GetIt.instance<MediaHelperService>().pickImageViaCloudinary();
    url = url?.trim();
    if (url != null) {
      await updateProfileImage(url);
    }
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisSize: MainAxisSize.min,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        _buildLogoField(context),
        SizedBox(height: 16),
        _buildBackgroundField(context),
      ],
    );
  }

  Widget _buildLogoField(BuildContext context) => CreateCommunityImageField(
        text: context.l10n.logo,
        onTap: () => alertOnError(context, () => _editLogoPressed()),
        onTapRemove: () =>
            alertOnError(context, () => removeImage(isBannerImage: false)),
        isCircle: true,
        onImageSelect: updateProfileImage,
        image: profileImageUrl,
        isOptional: true,
      );

  Widget _buildBackgroundField(BuildContext context) =>
      CreateCommunityImageField(
        text: context.l10n.background,
        onTap: () => alertOnError(context, () => _editBannerPressed()),
        onTapRemove: () =>
            alertOnError(context, () => removeImage(isBannerImage: true)),
        onImageSelect: updateBannerImage,
        image: bannerImageUrl,
        isOptional: true,
      );
}

class CreateCommunityImageField extends StatelessWidget {
  final String text;
  final void Function() onTap;
  final void Function() onTapRemove;
  final bool isCircle;
  final String? image;
  final void Function(String)? onImageSelect;
  final bool isOptional;

  const CreateCommunityImageField({
    required this.text,
    required this.onTap,
    required this.onTapRemove,
    this.isCircle = false,
    this.image,
    this.onImageSelect,
    this.isOptional = false,
    Key? key,
  }) : super(key: key);

  bool get showImage => !isNullOrEmpty(image);

  double get size => 30.0;

  Widget _buildRemoveImageIcon(BuildContext context) {
    return CustomInkWell(
      onTap: onTapRemove,
      borderRadius: BorderRadius.circular(15),
      child: Container(
        alignment: Alignment.center,
        width: 30,
        height: 30,
        child: Icon(
          Icons.close,
          color: context.theme.colorScheme.onSurfaceVariant,
          size: 20,
        ),
      ),
    );
  }

  Widget _buildInkWellWidget(BuildContext context) {
    if (!showImage) {
      return CustomInkWell(
        onTap: onTap,
        borderRadius: BorderRadius.circular(isCircle ? 15 : 5),
        child: Container(
          alignment: Alignment.center,
          width: 30,
          height: 30,
          decoration: BoxDecoration(
            color: context.t


 0
        ) {
          const jgzTo = registry.hasOwnProperty(inpSplit[2]) ? registry[inpSplit[2]] : Number(inpSplit[2]);
          i += jgzTo - 1;
        }
        break;
    }
    if (recoveryQueue.length > 0) {
      return recoveryQueue[0];
    }
  }
  return 0;
};
export const playInstructions2 = (instructions: string[]) => {
  const playQueue: number[] = [];
  const recoveryQueue: number[] = [];
  const registry: Registry = {};
  for (let i = 0; i < instructions.length; i++) {
    const instruction = instructions[i];
    const inpSplit = instruction.split(' ');
    const instructionType = inpSplit[0];
    if (!registry.hasOwnProperty(inpSplit[1])) {
      registry[inpSplit[1]] = 0;
    }
    switch (instructionType) {
      case 'snd':
        playQueue.push(registry[inpSplit[1]]);
        break;
      case 'set':
        const setTo = registry.hasOwnProperty(inpSplit[2]) ? registry[inpSplit[2]] : Number(inpSplit[2]);
        registry[inpSplit[1]] = setTo;
        break;
      case 'add':
        const addTo = registry.hasOwnProperty(inpSplit[2]) ? registry[inpSplit[2]] : Number(inpSplit[2]);
        registry[inpSplit[1]] += addTo;
        break;
      case 'mul':
        const mulTo = registry.hasOwnProperty(inpSplit[2]) ? registry[inpSplit[2]] : Number(inpSplit[2]);
        registry[inpSplit[1]] = registry[inpSplit[1]] * mulTo;
        break;
      case 'mod':
        const modTo = registry.hasOwnProperty(inpSplit[2]) ? registry[inpSplit[2]] : Number(inpSplit[2]);
        registry[inpSplit[1]] = registry[inpSplit[1]] % modTo;
        break;
      case 'rcv':
        if (registry[inpSplit[1]] !== 0) {
          recoveryQueue.push(playQueue[playQueue.length - 1]);
        }
        break;
      case 'jgz':
        if (
          registry[inpSplit[1]] !== 0 &&
          Number(inpSplit[2]) + i < instructions.length &&
          Number(inpSplit[2]) + i >= 0
        ) {
          const jgzTo = registry.hasOwnProperty(inpSplit[2]) ? registry[inpSplit[2]] : Number(inpSplit[2]);
          i += jgzTo - 1;
        }
        break;
    }
    if (recoveryQueue.length > 0) {
      return recoveryQueue[0];
    }
  }
  return 0;
};
import { resolveHref } from '../href';

describe(resolveHref, () => {
  it(`passes strings back without resolution`, () => {
    [
      '/foobar',
      '/foo/[bar]',
      '/foo/[...bar]',
      '/(somn)/foobar',
      '/(somn)/other/(remove)/foobar',
      'Tot4lly Wr0n9',
    ].forEach((href) => {
      expect(resolveHref(href)).toBe(href);
    });
  });

  it(`adds dynamic query parameters`, () => {
    expect(resolveHref({ pathname: '/[some]', params: { some: 'value' } })).toBe('/value');
    expect(
      resolveHref({
        pathname: '/[some]/cool/[thing]',
        params: { some: 'value' },
      })
    ).toBe('/value/cool/[thing]');
    expect(
      resolveHref({
        pathname: '/[some]/cool/[thing]',
        params: { some: 'alpha', thing: 'beta' },
      })
    ).toBe('/alpha/cool/beta');
  });
  it(`allows nullish query


tions to [-90...14]

		if (m_iOrientation == TURRET_ORIENTATION_FLOOR)
		{
			if (vecAnglesToEnemy.x > 90)
				vecAnglesToEnemy.x = 90;
			else if (vecAnglesToEnemy.x < m_iMinPitch)
				vecAnglesToEnemy.x = m_iMinPitch;
		}
		else
		{
			if (vecAnglesToEnemy.x < -90)
				vecAnglesToEnemy.x = -90;
			else if (vecAnglesToEnemy.x > -m_iMinPitch)
				vecAnglesToEnemy.x = -m_iMinPitch;
		}

		//DevMsg( 1, "->[%.2f]\n", vec.x);

		m_vecGoalAngles.y = vecAnglesToEnemy.y;
		m_vecGoalAngles.x = vecAnglesToEnemy.x;

	}

	SpinUpCall();
	MoveTurret();
}

//=========================================================
// SearchThink
// This search function will sit with the turret deployed and look for a new target.
// After a set amount of time, the barrel will spin down. After m_flMaxWait, the turret will
// retact.
//=========================================================
void CNPC_BaseTurret::SearchThink(void)
{
	// ensure rethink
	SetTurretAnim(TURRET_ANIM_SPIN);
	StudioFrameAdvance( );
	SetNextThink( gpGlobals->curtime + 0.1 );

	if (m_flSpinUpTime == 0 && m_flMaxSpin)
		m_flSpinUpTime = gpGlobals->curtime + m_flMaxSpin;

	Ping( );

	CBaseEntity *pEnemy = GetEnemy();

	// If we have a target and we're still healthy
	if (pEnemy != NULL)
	{
		if (!pEnemy->IsAlive() )
			pEnemy = NULL;// Dead enemy forces a search for new one
	}

	// Acquire Target
	if (pEnemy == NULL)
	{
		GetSenses()->Look(TURRET_RANGE);
		pEnemy = BestEnemy();

		if ( pEnemy && !FVisible( pEnemy ) )
			 pEnemy = NULL;
	}

	// If we've found a target, spin up the barrel and start to attack
	if (pEnemy != NULL)
	{
		m_flLastSight = 0;
		m_flSpinUpTime = 0;
		SetThink(&CNPC_BaseTurret::ActiveThink);
	}
	else
	{
		// Are we out of time, do we need to retract?
 		if (gpGlobals->curtime > m_flLastSight)
		{
			//Before we retrace, make sure that we are spun down.
			m_flLastSight = 0;
			m_flSpinUpTime = 0;
			SetThink(&CNPC_BaseTurret::Retire);
		}
		// should we stop the spin?
		else if ((m_flSpinUpTime) && (gpGlobals->curtime > m_flSpinUpTime))
		{
			SpinDownCall();
		}

		// generic hunt for new victims
		m_vecGoalAngles.y = (m_vecGoalAngles.y + 0.1 * m_fTurnRate);
		if (m_vecGoalAngles.y >= 360)
			m_vecGoalAngles.y -= 360;
		MoveTurret();
	}

	SetEnemy( pEnemy );
}

//=========================================================
// AutoSearchThink -
//=========================================================
void CNPC_BaseTurret::AutoSearchThink(void)
{
	// ensure rethink
	StudioFrameAdvance( );
	SetNextThink( gpGlobals->curtime + 0


Exception, EncodingException {

			if (offset >= endOffset)
				throw e;
			return WIN1252.decode(XMLDoc[offset++]);
		}
		final public boolean skipChar(int ch)
			throws EOFException, ParseException, EncodingException {
			if (ch == WIN1252.decode(XMLDoc[offset])) {
				offset++;
				return true;
			} else {
				return false;
			}
		}
		final public long _getChar(int offset){
			int c = WIN1252.decode(XMLDoc[offset]);
			if (c=='\r' && XMLDoc[offset+1]=='\n')
				return (2L<<32)|'\n';
			return (1L<<32)|c;
		}
		final public char decode(int offset){
			return WIN1252.decode(XMLDoc[offset]);
		}
	}

	class WIN1253Reader implements IReader {
		public WIN1253Reader() {
		}
		final public int getChar()
			throws EOFException, ParseException, EncodingException {

			if (offset >= endOffset)
				throw e;
			return WIN1253.decode(XMLDoc[offset++]);
		}
		final public boolean skipChar(int ch)
			throws EOFException, ParseException, EncodingException {
			if (ch == WIN1253.decode(XMLDoc[offset])) {
				offset++;
				return true;
			} else {
				return false;
			}
		}
		final public long _getChar(int offset){
			int c = WIN1253.decode(XMLDoc[offset]);
			if (c=='\r' && XMLDoc[offset+1]=='\n')
				return (2L<<32)|'\n';
			return (1L<<32)|c;
		}
		final public char decode(int offset){
			return WIN1253.decode(XMLDoc[offset]);
		}
	}

	class WIN1254Reader implements IReader {
		public WIN1254Reader() {
		}
		final public int getChar()
			throws EOFException, ParseException, EncodingException {

			if (offset >= endOffset)
				throw e;
			return WIN1254.decode(XMLDoc[offset++]);
		}
		final public boolean skipChar(int ch)
			throws EOFException, ParseException, EncodingException {
			if (ch == WIN1254.decode(XMLDoc[offset])) {
				offset++;
				return true;
			} else {
				return false;
			}
		}
		final public long _getChar(int offset){
			int c = WIN1254.decode(XMLDoc[offset]);
			if (c=='\r' && XMLDoc[offset+1]=='\n')
				return (2L<<32)|'\n';
			return (1L<<32)|c;
		}
		final public char decode(int offset){
			return WIN1254.decode(XMLDoc[offset]);
		}
	}

	class WIN1255Reader implements IReader {
		public WIN1255Reader() {
		}
		final public int getChar()
			throws EOFException, ParseException, EncodingException {

			if (offset >= endOffset)
				throw e;
			return WIN1255.decode(XMLDoc[offset++]);
		}
		final public boolean skipChar(int ch)
			throws EOFException, ParseException, EncodingException {
			if (ch == WIN1255.decode(XMLDoc[offset])) {
				offset++;
				return true;
			} else {
				return false;
			}
		}
		final public long _getChar(int offset){
			int c = WIN1255.decode(XMLDoc[offset]);
			if (c=='\r' && XMLDoc[offset+1]=='\n')
				return (2L<<32)|'\n';
			return (1L<<32)|c;
		}
		final public char decode(int offset){
			return WIN1255.decode(XMLDoc[offset]);
		}
	}

	class WIN1256Reader implements IReader {
		public WIN1256Reader() {
		}
		final public int getChar()
			throws EOFException, ParseException, EncodingException


                  s += "Price: {: >8.2f}\n".format(price_simulated)
                    delta = market_result['delta'].mean()
                    s += "Delta: {: >8.2f}\n".format(delta)
                    hedge_units = market_result['hedge_units']
                    hedge_units_mean = hedge_units.mean()
                    hedge_units_stderr = hedge_units.std() / sqrt_path_count
                    s += "Hedge: {: >8.2f} ± {:.2f}\n".format(hedge_units_mean, hedge_units_stderr)
                    hedge_cost = market_result['hedge_cost']
                    hedge_cost_mean = hedge_cost.mean()
                    hedge_cost_stderr = hedge_cost.std() / sqrt_path_count
                    net_hedge_cost += hedge_cost
                    s += "Cash:  {: >8.2f} ± {:.2f}\n".format(-hedge_cost_mean, 3 * hedge_cost_stderr)
                    if len(dates) > 1:
                        market_name = market_result['market_name']
                        net_hedge_units[market_name] += hedge_units

                    s += '\n'

            for commodity in sorted(net_hedge_units.keys()):
                units = net_hedge_units[commodity]
                s += "Net hedge {:6} {: >8.2f} ± {: >.2f}\n".format(
                    commodity + ':', units.mean(), 3 * units.std() / sqrt_path_count)

            net_hedge_cost_mean = net_hedge_cost.mean()
            net_hedge_cost_stderr = net_hedge_cost.std() / sqrt_path_count

            s += "Net hedge cash:  {: >8.2f} ± {: >.2f}\n".format(-net_hedge_cost_mean, 3 * net_hedge_cost_stderr)
            s += '\n'
        s += "Fair value: {:.2f} ± {:.2f}\n".format(fair_value_mean, 3 * fair_value_stderr)
        return s