e3ebf5 1px 0 0px 0 inset;-o-box-shadow:#e3ebf5 0 1px 0px 0 inset, #e3ebf5 0 -1px 0px 0 inset, #e3ebf5 -1px 0 0px 0 inset, #e3ebf5 1px 0 0px 0 inset;box-shadow:#e3ebf5 0 1px 0px 0 inset, #e3ebf5 0 -1px 0px 0 inset, #e3ebf5 -1px 0 0px 0 inset, #e3ebf5 1px 0 0px 0 inset}.x-btn-group-header-default-framed{margin:2px 2px 0 2px}.x-btn-group-header-body-default-framed{padding:1px 0;background:#c2d8f0;-moz-border-radius-topleft:2px;-webkit-border-top-left-radius:2px;-o-border-top-left-radius:2px;-ms-border-top-left-radius:2px;-khtml-border-top-left-radius:2px;border-top-left-radius:2px;-moz-border-radius-topright:2px;-webkit-border-top-right-radius:2px;-o-border-top-right-radius:2px;-ms-border-top-right-radius:2px;-khtml-border-top-right-radius:2px;border-top-right-radius:2px}.x-btn-group-header-text-default-framed{font:normal 11px tahoma, arial, verdana, sans-serif;color:#3e6aaa}.x-datepicker{border:1px solid #1b376c;background-color:white;position:relative}.x-datepicker a{-moz-outline:0 none;outline:0 none;color:#15428b;text-decoration:none;border-width:0}.x-datepicker-inner,.x-datepicker-inner td,.x-datepicker-inner th{border-collapse:separate}.x-datepicker-header{position:relative;height:26px;background-image:none;background-color:#23427c;background-image:-webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #264888), color-stop(100%, #1f3a6c));background-image:-webkit-linear-gradient(top, #264888,#1f3a6c);background-image:-moz-linear-gradient(top, #264888,#1f3a6c);background-image:-o-linear-gradient(top, #264888,#1f3a6c);background-image:-ms-linear-gradient(top, #264888,#1f3a6c);background-image:linear-gradient(top, #264888,#1f3a6c)}.x-datepicker-prev,.x-datepicker-next{position:absolute;top:5px;width:18px}.x-datepicker-prev a,.x-datepicker-next a{display:block;width:16px;height:16px;background-position:top;background-repeat:no-repeat;cursor:pointer;text-decoration:none !important;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=70);opacity:0.7}.x-datepicker-prev a:hover,.x-datepicker-next a:hover{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);opacity:1}.x-datepicker-next{right:5px}.x-datepicker-next a{background-image:url('../../resources/themes/images/default/shared/right-btn.gif')}.x-datepicker-prev{left:5px}.x-datepicker-prev a{background-image:url('../../resources/themes/images/default/shared/left-btn.gif')}.x-item-disabled .x-datepicker-prev a:hover,.x-item-disabled .x-datepicker-next a:hover{filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=60);opacity:0.6}.x-datepicker-month{padding-top:3px}.x-datepicker-month .x-btn,.x-datepicker-month button,.x-datepicker-month .x-btn-tc,.x-datepicker-month .x-btn-tl,.x-datepicker-month .x-btn-tr,.x-datepicker-month .x-btn-mc,.x-datepicker-month .x-btn-ml,.


# Generated from /home/ronaldo/Desktop/projects/Scenest/src/scenest/grammar/AVScenarios.g4 by ANTLR 4.8
from antlr4 import *
from io import StringIO
from typing.io import TextIO
import sys

def serializedATN():
    with StringIO() as buf:
        buf.write("\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2^")
        buf.write("\u0305\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7")
        buf.write("\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r")
        buf.write("\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22\4\23")
        buf.write("\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30")
        buf.write("\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36")
        buf.write("\t\36\4\37\t\37\4 \t \4!\t!\4\"\t\"\4#\t#\4$\t$\4%\t%")
        buf.write("\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\4,\t,\4-\t-\4.")
        buf.write("\t.\4/\t/\4\60\t\60\4\61\t\61\4\62\t\62\4\63\t\63\4\64")
        buf.write("\t\64\4\65\t\65\4\66\t\66\4\67\t\67\48\t8\49\t9\4:\t:")
        buf.write("\4;\t;\4<\t<\4=\t=\4>\t>\4?\t?\4@\t@\4A\tA\4B\tB\4C\t")
        buf.write("C\4D\tD\4E\tE\4F\tF\4G\tG\4H\tH\4I\tI\4J\tJ\4K\tK\4L\t")
        buf.write("L\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT\4U\t")
        buf.write("U\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4")
        buf.write("^\t^\4_\t_\4`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\3\2\3\2")
        buf.write("\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3")
        buf.write("\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3\b")
        buf.write("\3\b\3\t\3\t\3\t\3\n\3\n\3\13\3\13\3\13\3\13\3\f\3\f\3")
        buf.write("\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\17\3\17\3\20")
        buf.write("\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21")
        buf.write("\3\21\3\21\3\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\24")
        buf.write("\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\26\3\26\3\26")
        buf.write("\3\26\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\31\3\31")
        buf.write("\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\32\3\32\3\32\3\32")
        buf.write("\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\33")
        buf.write("\3\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\34")
        buf.write("\3\34\3\35\3\35\3\35\3\35\3\36\3\36\3\36\3\36\3\36\3\36")
        buf.write("\3\37\3\37\3\37\3\37\3\37\3 \3 \3 \3 \3 \3 \3!\3!\3!\3")
        buf.write("!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3")
        buf.write("#\3#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3$\3%\3%\3&\3&\3\'\3\'")
        buf.write("\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3)\3)\3)\3*\3*\3*\3")
        buf.write("*\3*\3*\3*\3*\3*\3+\3+\3,\3,\3,\3-\3-\3-\3-\3-\3-\3-\3")
        buf.write("-\3-\3-\3-\3.\3.\3.\3.\3.\3.\3.\3.\3.\3/\3/\3/\3/\3/\3")
        buf.write("/\3/\3\60\3\60\3\60\3\60\3\61\3\61\3\61\3\61\3\61\3\62")
        buf.write("\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\62\3\63\3\63\3\63")
        buf.write("\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\63\3\64\3\64")
        buf.write("\3\65\3\65\3\65\3\65\3\65\3\65\3\66\3\66\3\66\3\66\3\66")
        buf.write("\3\67\3\67\3\67\3\67\3\67\38\38\38\38\39\39\39\39\39\3")
        buf.write("9\39\39\3:\3:\3:\3:\3:\3:\3;\3;\3;\3;\3;\3;\3;\3<\3<\3")
        buf.write("<\3<\3<\3<\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3=\3>\3")
        buf.write(">\3>\3>\3>\3>\3>\3>\3>\3>\3>\3?\3?\3?\3?\3?\3?\3@\3@\3")
        buf.write("A\3A\3A\3A\3B\3B\3B\3C\3C\3D\3D\3E\3E\3E\3F\3F\3F\3F\3")
        buf.write("G\3G\3H\3H\3H\3H\3I\3I\3J\3J\3J\3J\3J\3J\3K\3K\3K\3K\3")
        buf.write("K\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3")
        buf.write("M\3M\3N\3N\3N\3O\3O\3O\3P\3P\3Q\3Q\3Q\3Q\3Q\3R\3R\3S\3")
        buf.write("S\3T\3T\6T\u0278\nT\rT\16T\u0279\3T\3T\3U\3U\3V\3V\5V")
        buf.write("\u0282\nV\3W\3W\3X\3X\7X\u0288\nX\fX\16X\u028b\13X\3Y")
        buf.write("\3Y\3Y\3Y\3Z\3Z\3Z\3Z\3Z\5Z\u0296\nZ\3[\3[\3[\3\\\3\\")
        buf.write("\7\\\u029d\n\\\f\\\16\\\u02a0\13\\\3\\\3\\\7\\\u02a4\n")
        buf.write("\\\f\\\16\\\u02a7\13\\\3\\\3\\\7\\\u02ab\n\\\f\\\16\\")
        buf.write("\u02ae\13\\\3\\\3\\\7\\\u02b2\n\\\f\\\16\\\u02b5\13\\")
        buf.write("\3\\\3\\\7\\\u02b9\n\\\f\\\16\\\u02bc\13\\\3\\\3\\\7\\")
        buf.write("\u02c0\n\\\f\\\16\\\u02c3\13\\\3\\\3\\\3]\3]\3]\5]\u02ca")
        buf.write("\n]\3^\3^\3_\3_\3_\3`\3`\3`\3`\3`\3`\3`\3`\3`\3`\5`\u02db")
        buf.write("\n`\3a\3a\3a\3a\3b\6b\u02e2\nb\rb\16b\u02e3\3c\6c\u02e7")
        buf.write("\nc\rc\16c\u02e8\3c\3c\3d\3d\3d\3d\7d\u02f1\nd\fd\1


--
--  File ctex-zhconv.lua
--
--     Copyright (C) 2020 by Qing Lee <sobenlee@gmail.com>
--------------------------------------------------------------------------
--
--     This work may be distributed and/or modified under the
--     conditions of the LaTeX Project Public License, either
--     version 1.3c of this license or (at your option) any later
--     version. This version of this license is in
--        http://www.latex-project.org/lppl/lppl-1-3c.txt
--     and the latest version of this license is in
--        http://www.latex-project.org/lppl.txt
--     and version 1.3 or later is part of all distributions of
--     LaTeX version 2005/12/01 or later.
--
--     This work has the LPPL maintenance status "maintained".
--
--     The Current Maintainer of this work is Qing Lee.
--
--     This work consists of the files ctex-zhconv.lua, ctex-zhconv-make.lua
--               and the derived file  ctex-zhconv-index.lua.
--
--------------------------------------------------------------------------
--

if status.kpse_used ~= 1 then
  kpse.set_program_name("luatex")
end

local zhconv  = { }
zhconv.module = {
  name        = "ctex-zhconv",
  version     = "0.2",
  date        = "2020/05/02",
  description = "GBK/GB18030/Big5 encoder",
  author      = "Qing Lee",
  copyright   = "Qing Lee",
  license     = "LPPL v1.3c"
}

local utf = require("unicode").utf8
local ubyte, ugsub = utf.byte, utf.gsub

local floor = math.floor
local unpack, insert, sort = table.unpack, table.insert, table.sort
local char, format = string.char, string.format

zhconv.index = require("ctex-zhconv-index")
local index = zhconv.index

zhconv.mapping = { }
local mapping = zhconv.mapping

mapping.big5, mapping.gbk, mapping.gb18030 = { }, { }, { }
local gbk, gb18030, big5 = mapping.gbk, mapping.gb18030, mapping.big5

zhconv.bytes = { }
local bytes = zhconv.bytes

-- Let lead be pointer / 190 + 0x81.
-- Let trail be pointer % 190.
-- Let offset be 0x40 if trail is less than 0x3F and 0x41 otherwise.
-- Return two bytes whose values are lead and trail + offset.
function bytes.gbk (pointer)
  local lead = floor(pointer / 190) + 0x81
  local trail = pointer % 190
  local offset = trail < 0x3F and 0x40 or 0x41
  return format("%c%c", lead, trail + offset)
end

-- Let lead be pointer / 157 + 0x81.
-- If lead is less than 0xA1, return error with code point.
-- Let trail be pointer % 157.
-- Let offset be 0x40 if trail is less than 0x3F and 0x62 otherwise.
-- Return two bytes whose values are lead and trail + offset.
function bytes.big5 (pointer)
  local lead = floor(pointer / 157) + 0x81
  local trail = pointer % 157
  local offset = trail < 0x3F and 0x40 or 0x62
  return format("%c%c", lead, trail + offset)
end

-- Let byte1 be pointer / 10 / 126 / 10.
-- Set pointer to pointer - byte1 × 10 × 126 × 10.
-- Let byte2 be pointer / 10 / 126.
-- Set pointer to pointer - byte2 × 10 × 126.
-- Let byte3 be pointer / 10.
-- Let byte4 be pointer - b


0 86190034 */  lh      $t9, 0x0034($s0)           ## 00000034
/* 00434 80883BC4 44818000 */  mtc1    $at, $f16                  ## $f16 = 516.00
/* 00438 80883BC8 3C0C8088 */  lui     $t4, %hi(func_8088496C)    ## $t4 = 80880000
/* 0043C 80883BCC 258C496C */  addiu   $t4, $t4, %lo(func_8088496C) ## $t4 = 8088496C
/* 00440 80883BD0 AE0C0174 */  sw      $t4, 0x0174($s0)           ## 00000174
/* 00444 80883BD4 E6080024 */  swc1    $f8, 0x0024($s0)           ## 00000024
/* 00448 80883BD8 E60A0028 */  swc1    $f10, 0x0028($s0)          ## 00000028
/* 0044C 80883BDC A60E00B4 */  sh      $t6, 0x00B4($s0)           ## 000000B4
/* 00450 80883BE0 A61800B6 */  sh      $t8, 0x00B6($s0)           ## 000000B6
/* 00454 80883BE4 A61900B8 */  sh      $t9, 0x00B8($s0)           ## 000000B8
/* 00458 80883BE8 E610002C */  swc1    $f16, 0x002C($s0)          ## 0000002C
.L80883BEC:
/* 0045C 80883BEC 250843B0 */  addiu   $t0, $t0, %lo(func_808843B0) ## $t0 = 808843B0
/* 00460 80883BF0 1000000C */  beq     $zero, $zero, .L80883C24
/* 00464 80883BF4 AE080174 */  sw      $t0, 0x0174($s0)           ## 00000174
glabel L80883BF8
/* 00468 80883BF8 0C220E66 */  jal     func_80883998
/* 0046C 80883BFC 02002025 */  or      $a0, $s0, $zero            ## $a0 = 00000000
/* 00470 80883C00 3C098088 */  lui     $t1, %hi(func_80


awscdk.NewRestApi(this, jsii.String("RestApi"), &RestApiProps{
//   		CloudWatchRole: jsii.Boolean(true),
//   		Deploy: jsii.Boolean(false),
//   	})
//   	restApi.Root.AddMethod(jsii.String("ANY"))
//
//   	petsStack := NewPetsStack(this, &resourceNestedStackProps{
//   		restApiId: restApi.RestApiId,
//   		rootResourceId: restApi.RestApiRootResourceId,
//   	})
//   	booksStack := NewBooksStack(this, &resourceNestedStackProps{
//   		restApiId: restApi.*RestApiId,
//   		rootResourceId: restApi.*RestApiRootResourceId,
//   	})
//   	NewDeployStack(this, &deployStackProps{
//   		restApiId: restApi.*RestApiId,
//   		methods: petsStack.methods.concat(booksStack.methods),
//   	})
//
//   	awscdk.NewCfnOutput(this, jsii.String("PetsURL"), &CfnOutputProps{
//   		Value: fmt.Sprintf("https://%v.execute-api.%v.amazonaws.com/prod/pets", restApi.*RestApiId, this.Region),
//   	})
//
//   	awscdk.NewCfnOutput(this, jsii.String("BooksURL"), &CfnOutputProps{
//   		Value: fmt.Sprintf("https://%v.execute-api.%v.amazonaws.com/prod/books", restApi.*RestApiId, this.*Region),
//   	})
//   	return this
//   }
//
//   type resourceNestedStackProps struct {
//   	nestedStackProps
//   	restApiId *string
//   	rootResourceId *string
//   }
//
//   type petsStack struct {
//   	nestedStack
//   	methods []method
//   }
//
//   func newPetsStack(scope construct, props resourceNestedStackProps) *petsStack {
//   	this := &petsStack{}
//   	newNestedStack_Override(this, scope, jsii.String("integ-restapi-import-PetsStack"), props)
//
//   	api := awscdk.RestApi_FromRestApiAttributes(this, jsii.String("RestApi"), &RestApiAttributes{
//   		RestApiId: props.restApiId,
//   		RootResourceId: props.rootResourceId,
//   	})
//
//   	method := api.Root.AddResource(jsii.String("pets")).AddMethod(jsii.String("GET"), awscdk.NewMockIntegration(&IntegrationOptions{
//   		IntegrationResponses: []integrationResponse{
//   			&integrationResponse{
//   				StatusCode: jsii.String("200"),
//   			},
//   		},
//   		PassthroughBehavior: awscdk.PassthroughBehavior_NEVER,
//   		RequestTemplates: map[string]*string{
//   			"application/json": jsii.String("{ \"statusCode\": 200 }"),
//   		},
//   	}), &MethodOptions{
//   		MethodResponses: []methodResponse{
//   			&methodResponse{
//   				StatusCode: jsii.String("200"),
//   			},
//   		},
//   	})
//
//   	this.methods.push(method)
//   	return this
//   }
//
//   type booksStack struct {
//   	nestedStack
//   	methods []*method
//   }
//
//   func newBooksStack(scope construct, props resourceNestedStackProps) *booksStack {
//   	this := &booksStack{}
//   	newNestedStack_Override(this, scope, jsii.String("integ-restapi-import-BooksStack"), props)
//
//   	api := awscdk.RestApi_FromRestApiAttributes(this, jsii.String("RestApi"), &RestApiAttributes{
//   		RestApiId: props.restApiId,
//   		RootResourceId: props.rootResourceId,
//   	})
//
//   	method := api.Root.AddResource(


DataCrc[1]) || (sum[2] != skipInfo.DataCrc[2]) || (sum[3] != skipInfo.DataCrc[3]))
					throw new DecruncherException(agentName, string.Format(Resources.IDS_ARD_ERR_CRC, "Entry_Data"));
			}
		}

		/********************************************************************/
		/// <summary>
		/// Read next batch of crunched bytes
		/// </summary>
		/********************************************************************/
		private void ReadCrunchedBytes()
		{
			if (forceDecrunch || (decrunchBufferLeft == 0))
			{
				switch (entry.PackMode)
				{
					// Store
					case 0:
					{
						ExtractStore();
						break;
					}

					// Normal
					case 2:
					{
						ExtractNormal();
						break;
					}

					// Unknown
					default:
						throw new DecruncherException(agentName, Resources.IDS_ARD_ERR_UNKNOWN_CRUNCH_METHOD);
				}

				forceDecrunch = false;
			}
		}

		/********************************************************************/
		/// <summary>
		/// Entry is not crunched, so just copy the bytes
		/// </summary>
		/********************************************************************/
		private void ExtractStore()
		{
			if (crunchedBytesRead == 0)
			{
				// First time, initialize some status variables
				decrunchedBytesLeft = entry.DecrunchedSize;
				if (decrunchedBytesLeft > crunchedBytesLeft)
					decrunchedBytesLeft = crunchedBytesLeft;
			}

			int todo = Math.Min(16384, crunchedBytesLeft);
			int read = wrapperStream.Read(decrunchBuffer, 0, todo);

			crc32.Append(decrunchBuffer.AsSpan(0, read));
			decrunchBufferOffset = 0;
			decrunchBufferLeft = read;

			crunchedBytesLeft -= read;
			decrunchedBytesLeft -= read;

			crunchedBytesRead += read;
		}

		/********************************************************************/
		/// <summary>
		/// Decrunch the data
		/// </summary>
		/********************************************************************/
		private void ExtractNormal()
		{
			if (crunchedBytesRead == 0)
			{
				// First time, initialize some status variables
				globalControl = 0;
				globalShift = -16;
				lastOffset = 1;

				decrunchLength = 0;

				crunchedBytesLeft = entry.CrunchedSize;

				offsetLen = new byte[8];
				offsetTable = new ushort[128];
				huffman20Len = new byte[20];
				huffman20Table = new ushort[96];
				literalLen = new byte[768];
				literalTable = new ushort[5120];

				sourceEnd = (source = 16384) - 1024;
				pos = destinationEnd = destination = 258 + 65536;
			}

			if (forceDecrunch || (decrunchBufferLeft == 0))
			{
				int count;

				// Time to fill the buffer?
				if (pos == destination)
				{
					int temp;

					// Check if we have enough data and read some if not
					//
					// Have we exhausted the current read buffer?
					if (source >= sourceEnd)
					{
						temp = 0;
						if ((count = temp - source + 16384) != 0)
						{
							// Copy the remaining overrun to the start of the buffer
							do
							{
								readBuffer[temp++] = readBuffer[source++];
							}
							while (--count != 0);
						}

						source = 0;
						count = source - temp + 16384;

						// Make sure we don't read too much
						if (crunchedBytesLeft < count)
							count = crunchedBytesLeft;

						if (wrapperStream.Read(readBuffer, temp, count) != count)
							throw new DecruncherException(agentName, string.Format(Resources.IDS_ARD_ERR_EOF, "Data"));


24= 34350
w7xocmVu 34351
IFByb2R1Y3Rpb24= 34352
IHBvdmVy 34353
IGZhdG8= 34354
44CBCgo= 34355
IEhvbGlkYXk= 34356
0L7RhA== 34357
IOCkn+ClgA== 34358
Ij4m 34359
44CC44CCCgo= 34360
X2xpbWl0 34361
aW1pbmF0aW9u 34362
ZW1hcw== 34363
IHB1c2hpbmc= 34364
IHZlbnR1cmU= 34365
ZXhwZWN0 34366
IE9iZXI= 34367
IGdlbmVyYXRpb25z 34368
OgovLw== 34369
KSY= 34370
IEFkcw== 34371
YnJpcw== 34372
IG91dHM= 34373
4Ky/ 34374
IGVudm9s 34375
IGF0b20= 34376
IHZpc2liaWxpdHk= 34377
IGVsaw== 34378
IGLhu4s= 34379
IGZpbnM= 34380
LlJlc291cmNl 34381
KGRlZmF1bHQ= 34382
0L3QuNGP 34383
INC/0LvQsNGC 34384
dGFnZQ== 34385
bmFobWU= 34386
J107DQo= 34387
4LmI4Liy4Lin 34388
XSk7 34389
LWluY2g= 34390
INCw0q0= 34391
ZGF0ZXRpbWU= 34392
b3JjaA== 34393
IEFycmF5cw== 34394
4LS+4LSc 34395
X2NvbnRhaW5lcg== 34396
Pi4= 34397
IG94eWdlbg== 34398
YWphcw== 34399
CWxvbmc= 34400
5YWw 34401
IHVubGlrZQ== 34402
6L+O 34403
cG9zZXI= 34404
V2hpY2g= 34405
IFJFQUQ= 34406
IGZpY2g= 34407
INi52YTZhQ== 34408
INC/0YDQvtCy0L7QtA== 34409
IG1hbnVhbGx5 34410
R29k 34411
IOCkruCkvuCksA== 34412
INmE2YY= 34413
IHBsYWlz 34414
Li4uIg== 34415
IHBvcnRyYWl0 34416
INqv24zYpw== 34417
4LGN4LCl 34418
dGFz 34419
4LSZ4LWN4LSZ4LW+ 34420
Y2xvY2s= 34421
Q2xvc2Vk 34422
4KSV4KWN4KS34KS+ 34423
w7ZyZW4= 34424
IGFkbWl0dGVk 34425
IGt1bnN0 34426
IGFjdGl2ZWx5 34427
INiv2YY= 34428
ZmFj 34429
zrvOrg== 34430
IGxsZWdhcg== 34431
5pCc 34432
LXNpZGU= 34433
IG3DpA== 34434
Rlc= 34435
5YGl 34436
LXBhcnR5 34437
VHVuZXM= 34438
QkFTRQ== 34439
INmH2YbYp9mD 34440
IHNwb2tlcw== 34441
INC80LDQvA== 34442
IEZhaHI= 34443
anQ= 34444
QXJt 34445
4Z6H 34446
IGNvbXBhbmlvbg== 34447
em9u 34448
IERhdmU= 34449
IHNlbWFpbmU= 34450
ZXh0cmE= 34451
INmC2Lc= 34452
5qmf 34453
IG92ZXJuaWdodA==


://github.com/arco-design/arco-design/pull/577))
- 修复 `InputNumber` 组件小数点特定情况下无法删除的 bug。([#568](https://github.com/arco-design/arco-design/pull/568))
- 修复 `Typography` 组件在编辑状态时， `onStart` 入参错误的 bug([#555](https://github.com/arco-design/arco-design/pull/555))

## 2.29.1

2022-02-18

### 💎 优化

- 降低 `Typography` 组件折叠计算后，镜像 `dom` 对自动化测试的影响。([#554](https://github.com/arco-design/arco-design/pull/554))

### 🐛 问题修复

- `InputNumber`过滤掉多余的`allowClear` props([#549](https://github.com/arco-design/arco-design/pull/549))
- 修复 `Cascader` 组件多选情况下出现选中状态渲染出错的问题。([#544](https://github.com/arco-design/arco-design/pull/544))
- 修复 `Image.Preview` 组件在从缓存中加载图片的时候 `onload` 没有触发的问题([#539](https://github.com/arco-design/arco-design/pull/539))

## 2.29.0

2022-02-11

### 🚨 重点注意

- **优化照片墙类型的 `Upload` 组件 tip 文本的渲染位置。Dom 层级发生变动，进行样式覆盖的请重点注意一下。**

### 💎 优化

- 优化 `Cascader` 组件大数据下多选时候选中操作卡顿的问题。([#523](https://github.com/arco-design/arco-design/pull/523))

### 🆕 功能升级

- `TreeSelect` 的 `onChange` 函数新增节点信息参数([#526](https://github.com/arco-design/arco-design/pull/526))
- 升级 `b-validate` 版本以支持 `Form` 在 `validator` 中传入 `ReactNode`([#518](https://github.com/arco-design/arco-design/pull/518))
- `Checkbox` 支持通过传入函数类型的 `children` 自定义节点内容。([#513](https://github.com/arco-design/arco-design/pull/513))
- `Radio` 支持通过传入函数类型的 `children` 自定义节点内容。([#513](https://github.com/arco-design/arco-design/pull/513))
- `CheckBox` 完善组件 TS 类型定义继承原生 `label` 标签属性([#513](https://github.com/arco-design/arco-design/pull/513))
- `Tree` 组件支持通过 `actionOnClick` 属性设置点击节点时组件行为([#511](https://github.com/arco-design/arco-design/pull/511))
- `Form.Item` 支持通过 `hidden` 属性隐藏表单项([#509](https://github.com/arco-design/arco-design/pull/509))
- 支持通过 `clearFields` 方法清除表单项的值([#509](https://github.com/arco-design/arco-design/p


  while i < cmaplen {
                *(*(*sinfo).colormap.offset(2 as libc::c_int as isize)).offset(i as isize) =
                    read_byte(sinfo) as crate::jmorecfg_h::JSAMPLE;
                *(*(*sinfo).colormap.offset(1 as libc::c_int as isize)).offset(i as isize) =
                    read_byte(sinfo) as crate::jmorecfg_h::JSAMPLE;
                *(*(*sinfo).colormap.offset(0 as libc::c_int as isize)).offset(i as isize) =
                    read_byte(sinfo) as crate::jmorecfg_h::JSAMPLE;
                if *(*(*sinfo).colormap.offset(2 as libc::c_int as isize)).offset(i as isize)
                    as libc::c_int
                    != *(*(*sinfo).colormap.offset(1 as libc::c_int as isize)).offset(i as isize)
                        as libc::c_int
                    || *(*(*sinfo).colormap.offset(1 as libc::c_int as isize)).offset(i as isize)
                        as libc::c_int
                        != *(*(*sinfo).colormap.offset(0 as libc::c_int as isize))
                            .offset(i as isize) as libc::c_int
                {
                    gray = 0 as libc::c_int
                }
                i += 1
            }
        }
        4 => {
            /* BGR0 format (occurs in MS Windows files) */
            i = 0 as libc::c_int;
            while i < cmaplen {
                *(*(*sinfo).colormap.offset(2 as libc::c_int as isize)).offset(i as isize) =
                    read_byte(sinfo) as crate::jmorecfg_h::JSAMPLE;
                *(*(*sinfo).colormap.offset(1 as libc::c_int as isize)).offset(i as isize) =
                    read_byte(sinfo) as crate::jmorecfg_h::JSAMPLE;
                *(*(*sinfo).colormap.offset(0 as libc::c_int as isize)).offset(i as isize) =
                    read_byte(sinfo) as crate::jmorecfg_h::JSAMPLE;
                read_byte(sinfo);
                if *(*(*sinfo).colormap.offset(2 as libc::c_int as isize)).offset(i as isize)
                    as libc::c_int
                    != *(*(*sinfo).colormap.offset(1 as libc::c_int as isize)).offset(i as isize)
                        as libc::c_int
                    || *(*(*sinfo).colormap.offset(1 as libc::c_int as isize)).offset(i as isize)
                        as libc::c_int
                        != *(*(*sinfo).colormap.offset(0 as libc::c_int as isize))
                            .offset(i as isize) as libc::c_int
                {
                    gray = 0 as libc::c_int
                }
                i += 1
            }
        }
        _ => {
            (*(*(*sinfo).cinfo).err).msg_code = crate::cderror_h::JERR_BMP_BADCMAP as libc::c_int;
            Some(
                (*(*(*sinfo).cinfo).err)
                    .error_exit
                    .expect("non-null function pointer"),
            )
            .expect("non-null function pointer")(
                (*sinfo).cinfo as crate::jpeglib_h::j_common_ptr
            );
        }
    }
    if (*(*sinfo).cinfo).in_color_space as libc::c_uint
        == crate::jpeglib_h::JCS_UNKNOWN as libc::c_int as libc::c_uint
        && gray != 0
    {
        (*(*sinfo).cinfo).in_color_space = crate::jpeglib_h::JCS_


}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:"";background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}@media (min-width:576px){.swiper{width:600px}}@media (max-width:575.98px){.swiper{width:250px}.swiper .swiper-slide{max-width:300px}}.swiper-3d .swiper-slide-shadow{background:transparent}.swiper-slide{display:flex;align-items:center;justify-content:center;border-radius:18px;font-size:22px;font-weight:700;color:#fff}.swiper-slide>div{width:100%}.swiper-button-next:after,.swiper-button-prev:after{font-size:1rem;color:#0f172a}/*!
 * Bootstrap v5.2.0-beta1 (https://getbootstrap.com/)
 * Copyright 2011-2022 The Bootstrap Authors
 * Copyright 2011-2022 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */

// scss-docs-start import-stack
// Configuration
@import "functions";
@import "variables";
@import "maps";
@import "mixins";
@import "utilities";

// Layout & components
@import "root";
@import "reboot";
@import "type";
@import "images";
@import "containers";
@import "grid";
@import "tables";
@import "forms";
@import "buttons";
@import "transitions";
@import "dropdown";
@import "button-group";
@import "nav";
@import "navbar";
@import "card";
@import "accordion";
@import "breadcrumb";
@import "paginati


 it sees fit, and by using this App you are expected to review these Terms on a regular basis.\n"),
              buildheading("10.	Assignment"),
              buildParagraph(
                  "The OU Notes is allowed to assign, transfer, and subcontract its rights and/or obligations under these Terms without any notification. However, you are not allowed to assign, transfer, or subcontract any of your rights and/or obligations under these Terms.\n"),
              buildheading("11.	Entire Agreement"),
              buildParagraph(
                  "These Terms constitute the entire agreement between OU Notes and you in relation to your use of this App, and supersede all prior agreements and understandings.\n"),
              buildheading("12.	Governing Law & Jurisdiction"),
              buildParagraph(
                  "These Terms will be governed by and interpreted in accordance with the laws of the State of Telangana, and you submit to the non-exclusive jurisdiction of the state and federal courts located in Telangana for the resolution of any disputes.\n\n"),
            ],
          ),
        ),
      ),
    );
  }
}
import 'package:FSOUNotes/app/app.locator.dart';
import 'package:FSOUNotes/app/app.logger.dart';
import 'package:FSOUNotes/misc/course_info.dart';
import 'package:FSOUNotes/services/funtional_services/firebase_firestore/firestore_service.dart';
import 'package:logger/logger.dart';
import 'package:stacked/stacked.dart';

Logger log = getLogger("UserStatsViewModel");

class UserStatsViewModel extends FutureViewModel {
  FirestoreService _firestoreService = locator<FirestoreService>();

  List<College> _colleges = [];
  List<Branch> _branches = [];
  List<Sem> _semesters = [];
  List<College> get colleges => _colleges;
  List<Branch> get branches => _branches;
  List<Sem> get semesters => _semesters;

  Map<String, dynamic> userStats;

  fetchUserStats() async {
    setBusy(true);
    userStats = await _firestoreService.getUserStats();
    log.e(userStats);
    CourseInfo.colleges.forEach((college) async {
      _colleges.add(College(college, userStats[college]));
    });
    CourseInfo.branch.forEach((branch) async {
      _branches.add(Branch(branch, userStats[branch]));
    });
    CourseInfo.semesters.forEach((semester) async {
      _semesters.add(Sem(semester, userStats[semester]));
    });
    log.e(_colleges);
    log.e(_branches);
    log.e(_semesters);
    setBusy(false);
    notifyListeners();
  }

  Map<String, String> _clgs = {
    "Muffakham Jah College of Engineering and Technology": "MJCET",
    "Osmania University's College of Technology": "Osmania",
    "CBIT": "CBIT",
    "Vasavi": "VASAVI",
    "MVSR ": "MVSR",
    "Deccan College ": "DECCAN",
    "ISL Engineering College": "ISL",
    "Methodist ": "METHODIST",
    "Stanley College ": "STANLEY",
    "NGIT": "NGIT",
    "University College of Engineering": "UNIVERSITY",
    "Matrusri Engineering College": "MATRUSRI",
    "Swathi Institute of Technology & Science": "SWATHI",
    "JNTU Affiliated Colleges": "JNTU",
    "Other": "OTHER",
  };
  Map<String, String> get clgs => _clgs;

  @override
  Future futureToRun() => fetchUserStats();
}

class College {
  final String collegeName;
  final int noOfStudents;

  College(this.collegeName, this.noOfStudents);
}

class Sem {
  final String sem;
  final int noOfStudents;

  Sem(this.sem, this.noOfStu


L9.1 4.5l-1.2.2l3.4 3.4z"/>', "width": "1em", "height": "1em", "viewBox": "0 0 24 24", ...p }, null, 16);
var IconMovieOpenOutline = (p) => createBaseVNode("svg", { "aria-hidden": true, "role": "img", "innerHTML": '<path fill="currentColor" d="m20.84 2.18l-3.93.78l2.74 3.54l1.97-.4zm-6.87 1.36L12 3.93l2.75 3.53l1.96-.39zm-4.9.96l-1.97.41l2.75 3.53l1.96-.39zm-4.91 1l-.98.19a1.995 1.995 0 0 0-1.57 2.35L2 10l4.9-.97zM20 12v8H4v-8zm2-2H2v10a2 2 0 0 0 2 2h16c1.11 0 2-.89 2-2z"/>', "width": "1em", "height": "1em", "viewBox": "0 0 24 24", ...p }, null, 16);
var IconMovieOpenPlay = (p) => createBaseVNode("svg", { "aria-hidden": true, "role": "img", "innerHTML": '<path fill="currentColor" d="M14.75 7.46L12 3.93l1.97-.39l2.74 3.53zm6.87-1.36l-.78-3.92l-3.93.78l2.74 3.54zM4.16 5.5l-.98.19a2.008 2.008 0 0 0-1.57 2.35L2 10l4.9-.97zm7.65 2.55L9.07 4.5l-1.97.41l2.75 3.53zM2 10v10a2 2 0 0 0 2 2h9.81c-.51-.88-.81-1.9-.81-3c0-3.31 2.69-6 6-6c1.1 0 2.12.3 3 .81V10zm15 12l5-3l-5-3z"/>', "width": "1em", "height": "1em", "viewBox": "0 0 24 24", ...p }, null, 16);
var IconMovieOpenPlayOutline = (p) => createBaseVNode("svg", { "aria-hidden": true, "role": "img", "innerHTML": '<path fill="currentColor" d="M22 10v3.81c-.61-.35-1.28-.59-2-.72V12H4v8h9.09c.12.72.37 1.39.72 2H4a2 2 0 0 1-2-2V10zm-5.29-2.93l-2.74-3.53l-1.97.39l2.75 3.53zm4.91-.97l-.78-3.92l-3.93.78l2.74 3.54zm-9.81 1.95L9.07 4.5l-1.97.41l2.75 3.53zM4.16 5.5l-.98.19a1.995 1.995 0 0 0-1.57 2.35L2 10l4.9-.97zM17 22l5-3l-5-3z"/>', "width": "1em", "height": "1em", "viewBox": "0 0 24 24", ...p }, null, 16);
var IconMovieOpenPlus = (p) => createBaseVNode("svg", { "aria-hidden": true, "role": "img", "innerHTML": '<path fill="currentColor" d="m19.65 6.5l-2.74-3.54l3.93-.78l.78 3.92zm-2.94.57l-2.74-3.53l-1.97.39l2.75 3.53zM19 13c1.1 0 2.12.3 3 .81V10H


    $core.Iterable<$core.String>? metrics,
  }) {
    final $result = create();
    if (monitoredResource != null) {
      $result.monitoredResource = monitoredResource;
    }
    if (metrics != null) {
      $result.metrics.addAll(metrics);
    }
    return $result;
  }
  Monitoring_MonitoringDestination._() : super();
  factory Monitoring_MonitoringDestination.fromBuffer($core.List<$core.int> i,
          [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromBuffer(i, r);
  factory Monitoring_MonitoringDestination.fromJson($core.String i,
          [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) =>
      create()..mergeFromJson(i, r);

  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      _omitMessageNames ? '' : 'Monitoring.MonitoringDestination',
      package: const $pb.PackageName(_omitMessageNames ? '' : 'google.api'),
      createEmptyInstance: create)
    ..aOS(1, _omitFieldNames ? '' : 'monitoredResource')
    ..pPS(2, _omitFieldNames ? '' : 'metrics')
    ..hasRequiredFields = false;

  @$core.Deprecated('Using this can add significant overhead to your binary. '
      'Use [GeneratedMessageGenericExtensions.deepCopy] instead. '
      'Will be removed in next major version')
  Monitoring_MonitoringDestination clone() =>
      Monitoring_MonitoringDestination()..mergeFromMessage(this);
  @$core.Deprecated('Using this can add significant overhead to your binary. '
      'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
      'Will be removed in next major version')
  Monitoring_MonitoringDestination copyWith(
          void Function(Monitoring_MonitoringDestination) updates) =>
      super.copyWith(
              (message) => updates(message as Monitoring_MonitoringDestination))
          as Monitoring_MonitoringDestination;

  $pb.BuilderInfo get info_ => _i;

  @$core.pragma('dart2js:noInline')
  static Monitoring_MonitoringDestination create() =>
      Monitoring_MonitoringDestination._();
  Monitoring_MonitoringDestination createEmptyInstance() => create();
  static $pb.PbList<Monitoring_MonitoringDestination> createRepeated() =>
      $pb.PbList<Monitoring_MonitoringDestination>();
  @$core.pragma('dart2js:noInline')
  static Monitoring_MonitoringDestination getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<Monitoring_MonitoringDestination>(
          create);
  static Monitoring_MonitoringDestination? _defaultInstance;

  /// The monitored resource type. The type must be defined in
  /// [Service.monitored_resources][google.api.Service.monitored_resources]
  /// section.
  @$pb.TagNumber(1)
  $core.String get monitoredResource => $_getSZ(0);
  @$pb.TagNumber(1)
  set monitoredResource($core.String v) {
    $_setString(0, v);
  }

  @$pb.TagNumber(1)
  $core.bool hasMonitoredResource() => $_has(0);
  @$pb.TagNumber(1)
  void clearMonitoredResource() => clearField(1);

  /// Types of the metrics to report to this monitoring destination.
  /// Each type must be defined in
  /// [Service.metrics][google.api.Service.metrics] section.
  @$pb.TagNumber(2)
  $core.List<$core.String> get metrics => $_getList(1);
}

///  Monitoring configuration of the service.
///
///  The example below shows how to configure monitored resources and metrics
///  for monitoring. In the example, a monitored resource and two metrics are
///  defined. The `library.googleapis.com/book/returned_count` metric is sent
///  to both producer and consumer projects, whereas the
///  `library.googleapis.com/book/num_overdue` metric is only sent to the
///  consume


从库的自动切换。通过部署多个实例，就形成了一个哨兵集群。哨兵集群中的多个实例共同判断，可以降低对主库下线的误判率。

但是，我们还是要考虑一个问题：如果有哨兵实例在运行时发生了故障，主从库还能正常切换吗？

实际上，一旦多个实例组成了**哨兵集群**，即使有哨兵实例出现故障挂掉了，其他哨兵还能继续协作完成主从库切换的工作，包括判定主库是不是处于下线状态，选择新主库，以及通知从库和客户端。

如果你部署过哨兵集群的话就会知道，在配置哨兵的信息时，我们只需要用到下面的这个配置项，设置**主库的IP**和**端口**，并没有配置其他哨兵的连接信息。

```
sentinel monitor <master-name> <ip> <redis-port> <quorum>
```

这些哨兵实例既然都不知道彼此的地址，又是怎么组成集群的呢？要弄明白这个问题，我们就需要学习一下哨兵集群的组成和运行机制了。

## 基于pub/sub机制的哨兵集群组成

哨兵实例之间可以相互发现，要归功于 Redis 提供的 pub/sub 机制，也就是发布/订阅机制。

哨兵只要和主库建立起了连接，就可以在主库上发布消息了，比如说发布它自己的连接信息（IP 和端口）。同时，它也可以从主库上订阅消息，获得其他哨兵发布的连接信息。当多个哨兵实例都在主库上做了发布和订阅操作后，它们之间就能知道彼此的 IP 地址和端口。

<!-- [[[read_end]]] -->

除了哨兵实例，我们自己编写的应用程序也可以通过 Redis 进行消息的发布和订阅。所以，为了区分不同应用的消息，Redis 会以频道的形式，对这些消息进行分门别类的管理。所谓的频道，实际上就是消息的类别。当消息类别相同时，它们就属于同一个频道。反之，就属于不同的频道。**只有订阅了同一个频道的应用，才能通过发布的消息进行信息交换**。

在主从集群中，主库上有一个名为“`__sentinel__:hello`”的频道，不同哨兵就是通过它来相互发现，实现互相通信的。

我来举个例子，具体说明一下。在下图中，哨兵 1 把自己的 IP（172.16.19.3）和端口（26579）发布到“`__sentinel__:hello`


, DragEventArgs e)
        {
            if (!IsInitialized) return;
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
                if (files.Length > 0)
                {
                    Task.Run(() =>
                    {
                        Thread.Sleep(500);
                        Dispatcher.Invoke(() =>
                        {
                            sfPanel.Background = Brushes.Transparent;
                            foreach (var f in files)
                            {
                                var ext = System.IO.Path.GetExtension(f).ToLowerInvariant();
                                if (!(
                                    ext == ".sf1" ||
                                    ext == ".sf2" ||
                                    ext == ".sfz" ||
                                    ext == ".sfark" ||
                                    ext == ".sfpack"
                                )) continue;
                                if (IsValidSF(f))
                                {
                                    SoundfontData sf


*/

	/* We use a neat trick for the following loop.  Normally we would
	   have to test for two termination conditions
	   1. a character in the stopset was found
	   and
	   2. the end of the string was found
	   As a sign that the character is in the stopset we store its
	   value in the table.  The value of NUL is NUL so the loop
	   terminates for NUL in every case.  */

L(3):	addl $4, %eax		/* adjust pointer for full loop round */

	movb (%eax), %cl	/* get byte from string */
	testb %cl, (%esp,%ecx)	/* is it contained in stopset? */
	jz L(4)			/* no => start of token */

	movb 1(%eax), %cl	/* get byte from string */
	testb %cl, (%esp,%ecx)	/* is it contained in stopset? */
	jz L(5)			/* no => start of token */

	movb 2(%eax), %cl	/* get byte from string */
	testb %cl, (%esp,%ecx)	/* is it contained in stopset? */
	jz L(6)			/* no => start of token */

	movb 3(%eax), %cl	/* get byte from string */
	testb %cl, (%esp,%ecx)	/* is it contained in stopset? */
	jnz L(3)		/* yes => start of loop */

	incl %eax		/* adjust pointer */
L(6):	incl %eax
L(5):	incl %eax

	/* Now we have to terminate the string.  */

L(4):	leal -4(%eax), %edx	/* We use %EDX for the next run.  */

L(7):	addl $4, %edx		/* adjust pointer for full loop round */

	movb (%


:left}div.dt-buttons.buttons-right{float:right}div.dt-button-collection{position:absolute;top:0;left:0;width:150px;margin-top:3px;padding:8px 8px 4px 8px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.4);background-color:white;overflow:hidden;z-index:2002;border-radius:5px;box-shadow:3px 3px 5px rgba(0,0,0,0.3);z-index:2002;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection button.dt-button,div.dt-button-collection div.dt-button,div.dt-button-collection a.dt-button{position:relative;left:0;right:0;display:block;float:none;margin-bottom:4px;margin-right:0}div.dt-button-collection button.dt-button:active:not(.disabled),div.dt-button-collection button.dt-button.active:not(.disabled),div.dt-button-collection div.dt-button:active:not(.disabled),div.dt-button-collection div.dt-button.active:not(.disabled),div.dt-button-collection a.dt-button:active:not(.disabled),div.dt-button-collection a.dt-button.active:not(.disabled){background-color:#dadada;background-image:-webkit-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-moz-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-ms-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-o-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:linear-gradient(to bottom, #f0f0f0 0%, #dadada 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f0f0f0', EndColorStr='#dadada');box-shadow:inset 1px 1px 3px #666}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-150px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:300px;padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px;padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px;padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:-ms-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background


_provenance", std::move(use_provenance)}};
  SendJSON(res, msg);
  res.status = 200;
}

int main(int argc, char* argv[]) {
  std::stringstream usage;
  usage << std::endl
        << std::endl
        << "  " << argv[0] << " \\" << std::endl
        << std::endl

        // Print the version and exit.
        << "    [--version]" << std::endl
        << std::endl;

  google::InitGoogleLogging(argv[0]);
  google::InstallFailureSignalHandler();
  google::SetUsageMessage(usage.str());
  SetVersion();
  google::ParseCommandLineFlags(&argc, &argv, true);

  svr.set_logger([](const httplib::Request& req, const httplib::Response&) {
    LOG(INFO) << req.method << " " << req.path;
  });
  svr.set_mount_point("/", FLAGS_home);
  svr.set_pre_routing_handler(PreRoutingHandler);
  svr.Post("/action/module", LoadModule);
  svr.Post("/action/decompile", Decompile);
  svr.Post("/action/remove-phi-nodes", RemovePhi);
  svr.Post("/action/lower-switches", LowerSwitches);
  svr.Post("/action/remove-array-arguments", RemoveArrayArguments);
  svr.Post("/action/remove-insertvalue", RemoveInsertValue);
  svr.Post("/action/run", Run);
  svr.Post("/action/fixpoint", Fixpoint);
  svr.Post("/action/stop", Stop);
  svr.Post("/action/loadAngha", LoadAngha);

  svr.Get("/action/module", PrintModule);
  svr.Get("/action/ast", PrintAST);
  svr.Get("/action/angha", ListAngha);
  svr.Get("/action/provenance", PrintProvenance);

  LOG(INFO) << "Listening";
  svr.listen(FLAGS_address.c_str(), FLAGS_port);

  google::ShutDownCommandLineFlags();
  google::ShutdownGoogleLogging();

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

#include <inttypes.h>
#include <stdlib.h>

#include <cfenv>
#include <cfloat>
#include <cstdio>

#define HAS_FEATURE_AVX 1
#define HAS_FEATURE_AVX512 0

#ifndef ADDRESS_SIZE_BITS
#  define ADDRESS_SIZE_BITS 64
#endif

#include "mcsema/Arch/X86/Runtime/Registers.h"
#include "remill/Arch/X86/Runtime/State.h"

#ifndef PRIx64
#  define PRIx64 "llx"
#endif

#ifndef PRIx32
#  define PRIx32 "x"
#endif

#if ADDRESS_SIZE_BITS == 64
#  define PRIxADDR PRIx64
#else
#  define PRIxADDR PRIx32
#endif

extern "C" {

// Debug registers.
uint64_t DR0;
uint64_t DR1;
uint64_t DR2;
uint64_t DR3;
uint64_t DR4;
uint64_t DR5;
uint64_t DR6;
uint64_t DR7;

// Control regs.
CR0Reg gCR0;


KafkaStreamsFactory.html">Use

Tree

Deprecated

Index

Help

All Classes

SEARCH:
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">

JavaScript is disabled on your browser.

Summary:

Nested |

Field |

Constr |

Method

Detail:

Field |

Constr |

Method

Package io.streamthoughts.azkarra.runtime.context.internal

Class ContextAwareKafkaStreamsFactorySupplier.DelegateKafkaStreamsFactory

java.lang.Object

io.streamthoughts.azkarra.runtime.context.internal.DelegatingExecutionEnvironmentAware<KafkaStreamsFactory>

io.streamthoughts.azkarra.runtime.context.internal.ContextAwareKafkaStreamsFactorySupplier.DelegateKafkaStreamsFactory

All Implem


    mProject->moveGuide(mGuide, mNewPosition);
}

int MoveGuideCommand::id() const
{
    return -1;
}

QDebug operator<<(QDebug debug, const MoveGuideCommand *command)
{
    QDebugStateSaver saver(debug);
    if (!command)
        return debug << "MoveGuideCommand(0x0)";

    debug.nospace() << "(MoveGuideCommand guide.position=" << command->mGuide.position()
        << " guide.orientation=" << command->mGuide.orientation()
        << " newPosition" << command->mNewPosition
        << ")";
    return debug;
}
/*
    Copyright 2023, Mitch Curtis

    This file is part of Slate.

    Slate 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.

    Slate is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Slate. If not, see <http://www.gnu.org/licenses/>.
*/

#include "mergelayerscommand.h"

#include <QLoggingCategory>

#include "imagelayer.h"
#include "layeredimageproject.h"

Q_LOGGING_CATEGORY(lcMergeLayersCommand, "app.undo.mergeLayersCommand")

MergeLayersCommand::MergeLayersCommand(LayeredImageProject *project,
        int sourceIndex, ImageLayer *sourceLayer, int targetIndex, ImageLayer *targetLayer,
    UndoCommand *parent) :
    UndoCommand(parent),
    mProject(project),
    mSourceIndex(sourceIndex),
    mSourceLayer(sourceLayer),
    mTargetIndex(targetIndex),
    mTargetLayer(targetLayer),
    mPreviousTargetLayerImage(*mTargetLayer->image())
{
    qCDebug(lcMergeLayersCommand) << "constructed" << this;
}

void MergeLayersCommand::undo()
{
    qCDebug(lcMergeLayersCommand) << "undoing" << this;
    // Restore the source layer..
    mProject->addLayer(mSourceLayerGuard.release(), mSourceIndex);
    // The source layer is the layer that was current before the merge,
    // so restore the current layer index too.
    mProject->setCurrentLayerIndex(mSourceIndex, true);
    // .. and then restore the target layer.
    mProject->setLayerImage(mTargetIndex, mPreviousTargetLayerImage);
}

void MergeLayersCommand::redo()
{
    qCDebug(lcMergeLayersCommand) << "redoing" << this;
    mProject->mergeLayers(mSourceIndex, mTargetIndex);
    // The source layer loses its QObject parent, so manage it to prevent leaks.
    mSourceLayerGuard.reset(mSourceLayer);
}

int MergeLayersCommand::id() const
{
    return -1;
}

bool MergeLayersCommand::modifiesContents() const
{
    return true;
}

QDebug operator<<(QDebug debug, const MergeLayersCommand *command)
{
    QDebugStateSaver saver(debug);
    if (!command)
        return debug << "MergeLayersCommand(0x0)";

    debug.nospace() << "(MergeLayersCommand sourceIndex=" << command->mSourceIndex
        << " targetIndex=" << command->mTargetIndex
        << ")";
    return debug;
}
/*
    Copyright 2023, Mitch Curtis

    This file is part of Slate.

    Slate 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


  try {
            // Set EVENT_NUM event handlers for i element
            var tagName = getTagName(id[i]);
            if (!inArr(demicm.tags, tagName)) {
                updatePropfCache(id[i]);
            }
            for (var j = 0; j < demicm.EVENT_NUM; j++) {
                var rEvt = randPropf(tagName, id[i], 'evt');
                if (id[i][rEvt] == null) {
                    id[i][rEvt] = new Function('writeFileIE("e://fuzzlog.txt","//id_' + i
                        + '[\'' + rEvt + '\'] = function()");writeFileIE("e://fuzzlog.txt","/-{");eventHandler();');
                }
            }
        } catch (e) {
            writeFileIE("e://fuzzlog.txt",'// Error: setEvtHandler: ' + e.message);
        }
    }
}

function addTextNode() {
    for (var i = 0; i < demicm.TEXT_NUM; i++) {
        try {
            var rStr = randStr(rand(0x100));
            var rId = randId(true);

            if (percent(demicm.REF_TEXT_PER)) {
                // Add ref textNode
                writeFileIE("e://fuzzlog.txt",'id_' + id.length + ' = document.createTextNode("' + rStr + '");');
                id[id.length] = document.createTextNode(rStr);
                writeFileIE("e://fuzzlog.txt",'id_' + (id.length - 1) + '.id = ' + (id.length - 1) + ';');
                id[id.length - 1].id = id.length - 1;

                writeFileIE("e://fuzzlog.txt",'id_' + rId + '.appendChild(id_' + (id.length - 1) + ');');
                id[rId].appendChild(id[id.length - 1]);
            } else {
                // Add no ref textNode
                writeFileIE("e://fuzzlog.txt",'id_' + rId + '.appendChild(document.createTextNode("' + rStr + '"));');
                id[rId].appendChild(document.createTextNode(rStr));
            }
        } catch (e) {
            writeFileIE("e://fuzzlog.txt",'// Error: addTextNode: ' + e.message);
        }
    }
}

function appendForm(rId, rTxt) {
    // Add form
    writeFileIE("e://fuzzlog.txt",'id_' + id.length + ' = document.createElement("form");');
    id[id.length] = document.createElement('form');
    writeFileIE("e://fuzzlog.txt",'id_' + (id.length - 1) + '.id = ' + (id.length - 1) + ';');
    id[id.length - 1].id = id.length - 1;
    var formId = id.length - 1;

    writeFileIE("e://fuzzlog.txt",'id_' + rId + '.appendChild(id_' + (id.length - 1) + ');');
    id[rId].appendChild(id[id.length - 1]);

    // Add input text
    writeFileIE("e://fuzzlog.txt",'id_' + id.length + ' = document.createElement("input");');
    id[id.length] = document.createElement('input');
    writeFileIE("e://fuzzlog.txt",'id_' + (id.length - 1) + '.id = ' + (id.length - 1) + ';');
    id[id.length - 1].id = id.length - 1;
    writeFileIE("e://fuzzlog.txt",'id_' + (id.length - 1) + '.type = "text";');
    id[id.length - 1].type = 'text';
    var inputTextId = id.length - 1


{
        SqlClearCursor::new(self.client.clone())
    }
    #[doc = "Execute SQL"]
    pub fn query<B>(&self) -> SqlQuery<B>
    where
        B: Serialize,
    {
        SqlQuery::new(self.client.clone())
    }
    #[doc = "Translate SQL into Elasticsearch queries"]
    pub fn translate<B>(&self) -> SqlTranslate<B>
    where
        B: Serialize,
    {
        SqlTranslate::new(self.client.clone())
    }
}
impl Elasticsearch {
    #[doc = "Sql APIs"]
    pub fn sql(&self) -> Sql {
        Sql::new(self.clone())
    }
}net.sf.jasperreports.engine.fill.JRReadOnlyPropertyException
<reponame>lemmi/AOC-2017
pub mod input {
    use std::io;
    use std::io::Stdin;
    use std::io::BufRead;
    use std::io::Lines;

    pub struct LineFilter<'a> {
        lines: Lines<io::StdinLock<'a>>,
    }

    pub fn lines<'a>(stdin: &'a Stdin) -> LineFilter<'a> {
        LineFilter{lines: stdin.lock().lines()}
    }

    impl<'a> Iterator for LineFilter<'a> {
        type Item = String;
        fn next(&mut self) -> Option<String> {
            self.lines.by_ref()
                .map(|l| l.unwrap())
                .skip_while(
                    |l| l.trim()
                    .is_empty())
                .next()
        }
    }
}

pub mod hash {
    use std::fmt;
    use std::slice::Iter;
    use std::str::FromStr;

    fn reverse_wrapped(s: &mut[u8], pos: usize, length: usize) {
        let mut l = pos;
        let mut r = pos + length - 1;

        while l < r {
            s.swap(l%256, r%256);

            l += 1;
            r -= 1;
        }
    }

    fn knot_hash(input: &[u8]) -> [u8; 256] {
        let mut hash = [0u8; 256];
        for (i, h) in hash.iter_mut().enumerate() {
            *h = i as u8;
        }

        let mut pos = 0;
        let mut skip = 0;
        let postfix = [17, 31, 73, 47, 23];

        for _ in 0..64 {
            for l in input.iter().chain(&postfix) {
                let l = *l as usize;
                reverse_wrapped(&mut hash, pos, l);

                pos = (pos +l + skip) % 256;
                skip = (skip + 1) % 256;
            }
        }

        hash
    }

    pub struct Knot([u8; 16]);
    impl fmt::Display for Knot {
        fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
            for c in self.0.iter() {
                write!(f, "{:02x}", c)?;
            }
            Ok(())
        }
    }

    impl Knot {
        pub fn iter(&self) -> Iter<u8> {
            self.0.iter()
        }
    }

    impl FromStr for Knot {
        type Err = ();
        fn from_str(input: &str) -> Result<Self,Self::Err> {
            let sparse = knot_hash(input.as_bytes());
            let mut ret = [0u8; 16];
            for (i, chunk) in sparse.chunks(16).enumerate() {
                ret[i] = chunk.iter().fold(0, |sum, x| sum ^ x);
            }
            Ok(Knot(ret))
        }
    }
}

pub mod graph {
    use std::collections::HashMap;
    use std::collections::HashSet;
    use std::collections::VecDeque;
    use std::hash::H


![Garchomp](../../assets/sprites/garchomp/front.gif "Garchomp: It is said that when one runs at high speed, its wings create blades of wind that can fell nearby trees.")
[Garchomp](../../pokemon/garchomp.md/)
Lv. 76 | ![Salamence](../../assets/sprites/salamence/front.gif "Salamence: As a result of its long-held dream of flying, its cellular structure changed, and wings grew out.")
[Salamence](../../pokemon/salamence.md/)
Lv. 77 |

### Important Trainers

1. [Ace Trainer Wyver](important_trainers.md#ace-trainer-wyver)
# Route 206 — Trainer Rosters

### Generic Trainers

| Trainer | P1 | P2 | P3 | P4 | P5 | P6 |
|:-------:|:--:|:--:|:--:|:--:|:--:|:--:|
| ![Cyclist Axel](../../assets/trainers/cyclist.png "Cyclist Axel")
Cyclist Axel | ![Pichu](../../assets/sprites/pichu/front.gif "Pichu: The electric sacs in its cheeks are small. If even a little electricity leaks, it becomes shocked.")
[Pichu](../../pokemon/pichu.md/)
Lv. 19 | ![Pichu](../../assets/sprites/pichu/front.gif "Pichu: The electric sacs in its cheeks are small. If even a little electricity leaks, it becomes shocked.")
[Pichu](../../pokemon/pichu.md/)
Lv. 19 | ![Pikachu](../../assets/sprites/pikachu/front.gif "Pikachu: It occasionally uses an electric shock to recharge a fellow PIKACHU that is in a weakened state.")
[Pikachu](../../pokemon/pikachu.md/)
Lv. 19 |
| ![Cyclist Megan](../../assets/trainers/cyclist.png "Cyclist Megan")
Cyclist Megan | ![Pidgeotto](../../assets/sprites/pidgeotto/front.gif "Pidgeotto: It flies over its wide territory in search of prey, downing it with its highly developed claws.")
[Pidgeotto](../../pokemon/pidgeotto.md/)
Lv. 21 |
| ![Cyclist James](../../assets/trainers/cyclist.png "Cyclist James")
Cyclist James | ![Ponyta](../../assets/sprites/ponyta/front.gif "Ponyta: As a newborn, it can barely stand. However, through galloping, its legs are made tougher and faster.")
[Ponyta](../../pokemon/ponyta.md/)
Lv. 20 | ![Flaaffy](../../assets/sprites/flaaffy/front.gif "Flaaffy: If its coat becomes fully charged with electricity, its tail lights up. It fires hair that zaps on impact.")
[Flaaffy](../../pokemon/flaaffy.md/)
Lv. 20 |
| ![Cyclist Nicole](../../assets/trainers/cyclist.png "Cyclist Nicole")
Cyclist Nicole | ![Taillow](../../assets/sprites/taillow/front.gif "Taillow: It has a gutsy spirit that makes it bravely take on tough foes. It flies in search of warm climates.")
[Taillow](../../pokemon/taillow.md/)
Lv. 19 | ![Doduo](../../assets/sprites/doduo/front.gif "Doduo: The brains in its two heads appear to communicate emotions to each other with a telepathic power.")
[Doduo](../../pokemon/doduo.md/)
Lv. 19 | ![Wingull](../../assets/sprites/wingull/front.gif "Wingull: It soars high in the sky, riding on updrafts like a glider. It carries food tucked in its bill.")
[Wingull](../../pokemon/wingull.md/)
Lv.


hedPassword, hash);
};
import { Platform } from 'expo-modules-core';

import { DocumentPickerAsset, DocumentPickerOptions, DocumentPickerResult } from './types';

export default {
  get name(): string {
    return 'ExpoDocumentPicker';
  },

  async getDocumentAsync({
    type = '*/*',
    multiple = false,
  }: DocumentPickerOptions): Promise<DocumentPickerResult> {
    // SSR guard
    if (!Platform.isDOMAvailable) {
      return { canceled: true, assets: null };
    }

    const input = document.createElement('input');
    input.style.display = 'none';
    input.setAttribute('type', 'file');
    input.setAttribute('accept', Array.isArray(type) ? type.join(',') : type);
    input.setAttribute('id', String(Math.random()));
    if (multiple) {
      input.setAttribute('multiple', 'multiple');
    }

    document.body.appendChild(input);

    return new Promise((resolve, reject) => {
      input.addEventListener('change', async () => {
        if (input.files) {
          const results: Promise<DocumentPickerAsset>[] = [];
          for (let i = 0; i < input.files.length; i++) {
            results.push(readFileAsync(input.files[i]));
          }
          try {
            const assets = await Promise.all(results);
            resolve({ canceled: false, assets, output: input.files });
          } catch (e) {
            reject(e);
          }
        } else {
          resolve({ canceled: true, assets: null });
        }

        document.body.removeChild(input);
      });

      const event = new MouseEvent('click');
      input.dispatchEvent(event);
    });
  },
};

function readFileAsync(targetFile: File): Promise<DocumentPickerAsset> {
  return new Promise((resolve, reject) => {
    const mimeType = targetFile.type;

    const reader = new FileReader();
    reader.onerror = () => {
      reject(new Error(`Failed to read the selected media because the operation failed.`));
    };
    reader.onload = ({ target }) => {
      const uri = (target as any).result;
      resolve({
        uri,
        mimeType,
        name: targetFile.name,
        lastModified: targetFile.lastModified,
        size: targetFile.size,
        file: targetFile,
      });
    };

    // Read in the image file as a binary string.
    reader.readAsDataURL(targetFile);
  });
}
import { MessageEmbed } from 'discord.js'
import { EventStore } from 'klasa'
import StarboundBaseEvent from '@structures/StarboundBaseEvent'
import { Player } from '@services/StarboundService'

export default class StarboundPlayerJoinEvent extends StarboundBaseEvent {
  constructor(store: EventStore, file: string[], directory: string) {
    super(store, file, directory, {
      name: 'StarboundPlayerJoinEvent',
      enabled: true,
      event: 'join',
      emitter: 'starbound',
      once: false,
    })
  }

  run({ discordName, playerName }: Player) {
    const embed = new MessageEmbed().setColor('GREEN')

    if (discordName) {
      embed
        .setDescription(`${discordName} joined the server.`)
        .setFooter(`Playing as ${playerName}.`)
    } else {
      embed
        .setDescription(`**<${playerName}>** joined the server.`)
        .setFooter(`Not linked to Discord.`)
    }

    this.channel?.send(embed)
  }
}
import BreakoutGame from './game/breakout';
import { EventType, EventInfo, EventData, InitEventInfo } from './types/Event


her.decipher(b));
        }
    }

    #[test]
    fn cipher_bytes_str() {
        let text = "this is a test";

        let cipher = classic::rot13_alpha();

        let cipher_text = encipher_bytes(&cipher, text);
        assert_eq!("guvf vf n grfg".as_bytes(), &cipher_text[..]);

        let restored_text = decipher_bytes(&cipher, cipher_text);
        assert_eq!(text.as_bytes(), &restored_text[..]);
    }

    #[test]
    fn cipher_bytes_vec() {
        let text = Vec::from(&b"this is a test"[..]);

        let cipher = classic::rot13_alpha();

        let cipher_text = encipher_bytes(&cipher, &text);
        assert_eq!("guvf vf n grfg".as_bytes(), &cipher_text[..]);

        let restored_text = decipher_bytes(&cipher, cipher_text);
        assert_eq!(text, restored_text);
    }
}

use serde::{Serialize, Deserialize};

#[derive(Serialize)]
pub struct BenchmarkSubmission {
    pub sub_id: i32,
    pub ident: String,
    pub data: String
}

///BenchmarkInfo object which contains
///benchmark name and test names
#[derive(Serialize, Deserialize)]
pub struct BenchmarkInfo {
    pub root: String,
    pub name: String,
    pub index: String,
    pub tests: Vec<String>
}

#[derive(Deserialize)]
pub struct BenchyConfig {
    pub name: String,
    pub root: String,
    pub port: u16,
    pub tests: Vec<String>,
    pub index: String,

    //runner variables
    pub prepare_cmd: Option<String>,
    pub execute_cmd: String,
    pub cleanup_cmd: Option<String>,
    pub path: String,
}

<gh_stars>1-10
use crate::error::Error;
use byteorder::{LittleEndian, ReadBytesExt};
use std::io::Read;

#[derive(Clone, Debug)]
pub struct SymbolTableNode {
    pub signature: [u8; 4],
    pub version: u8,
    pub reserved: u8,
    pub symbols: u16,
}

#[derive(Clone, Debug)]
pub struct SymbolTableEntry {
    pub link_name_offset: u64,
    pub object_header_address: u64,
    pub cache_type: u32,
    pub reserved: u32,
    pub scratch: [u8; 16],
}

impl SymbolTableNode {
    pub fn read(input: &mut impl Read) -> Result<Self, Error> {
        Ok(SymbolTableNode {
            signature: {
                let mut result = [0; 4];
                input.read_exact(&mut result)?;
                result
            },
            version: input.read_u8()?,
            reserved: input.read_u8()?,
            symbols: input.read_u16::<LittleEndian>()?,
        })
    }
}

impl SymbolTableEntry {
    pub fn read(input: &mut impl Read) -> Result<SymbolTableEntry, Error> {
        Ok(SymbolTableEntry {
            link_name_offset: input.read_u64::<LittleEndian>()?,
            object_header_address: input.read_u64::<LittleEndian>()?,
            cache_type: input.read_u32::<LittleEndian>()?,
            reserved: input.read_u32::<LittleEndian>()?,
            scratch: {
                let mut result = [0; 16];
                input.read_exact(&mut result)?;
                result
            },
        })
    }
}
<filename>ex08/src/hash_func.rs
extern crate rand;

use self::rand::{thread_rng, Rng};

use std::vec::Vec;

pub struct HashMap<T> where T: Clone {
	a:


/*-
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright (c) 1993
 *	The Regents of the University of California.  All rights reserved.
 *
 * This code is derived from software contributed to Berkeley by
 * Paul Borman at Krystal Technologies.
 *
 * Copyright (c) 2011 The FreeBSD Foundation
 *
 * Portions of this software were developed by David Chisnall
 * under sponsorship from the FreeBSD Foundation.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. 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.
 * 3. Neither the name of the University 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 REGENTS 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 REGENTS 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.
 */

#include <ctype.h>
#include <stdio.h>
#include <runetype.h>
#include <wchar.h>
#include "mblocal.h"

__ct_rune_t
___tolower_l(__ct_rune_t c, locale_t l)
{
	size_t lim;
	FIX_LOCALE(l);
	_RuneRange *rr = &XLOCALE_CTYPE(l)->runes->__maplower_ext;
	_RuneEntry *base, *re;

	if (c < 0 || c == EOF)
		return(c);

	/* Binary search -- see bsearch.c for explanation. */
	base = rr->__ranges;
	for (lim = rr->__nranges; lim != 0; lim >>= 1) {
		re = base + (lim >> 1);
		if (re->__min <= c && c <= re->__max)
			return (re->__map + c - re->__min);
		else if (c > re->__max) {
			base = re + 1;
			lim--;
		}
	}

	return(c);
}
__ct_rune_t
___tolower(__ct_rune_t c)
{
	return ___tolower_l(c, __get_locale());
}


						Size = UDim2.new(0, 40, 0, 26),

							SelfModules.UI.Create("ImageLabel", {
								Name = "Overlay",
								BackgroundColor3 = SelfModules.UI.Color.Add(Library.Theme.SectionColor, Color3.fromRGB(25, 25, 25)),
								Position = UDim2.new(0, 2, 0, 2),
								Size = UDim2.new(0, 22, 0, 22),
								Image = "http://www.roblox.com/asset/?id=7827504335",
								ImageTransparency = 1,
							}, UDim.new(0, 5)),
						}, UDim.new(0, 5))
					}, UDim.new(0, 5)),
				}, UDim.new(0, 5))

				-- Functions

				function Toggle:Set(bool, instant)
					Tab.Flags[Toggle.Flag] = bool

					tween(Toggle.Frame.Holder.Indicator.Overlay, instant and 0 or 0.25, { ImageTransparency = bool and 0 or 1, Position = bool and UDim2.new(1, -24, 0, 2) or UDim2.new(0, 2, 0, 2) })
					tween(Toggle.Frame.Holder.Indicator.Overlay, "Cosmetic", instant and 0 or 0.25, { BackgroundColor3 = bool and SelfModules.UI.Color.Add(Library.Theme.Accent, Color3.fromRGB(50, 50, 50)) or SelfModules.UI.Color.Add(Library.Theme.SectionColor, Color3.fromRGB(25, 25, 25)) })

					pcall(task.spawn, Toggle.Callback, bool)
				end

				-- Scripts

				Section.List[#Section.List + 1] = Toggle
				Tab.Flags[Toggle.Flag] = options.default == true
				Toggle.Frame.Parent = Section.Frame.List

				Toggle.Frame.Holder.InputBegan:Connect(function(input)
					if input.UserInputType == Enum.UserInputType.MouseButton1 then
						Toggle:Set(not Tab.Flags[Toggle.Flag], false)
					end
				end)

				Toggle:Set(options.default == true, true)

				return Toggle
			end

			-- Label

			function Section:AddLabel(name)
				local Label = {
					Name = name,
					Type = "Label",
				}

				Label.Frame = SelfModules.UI.Create("Frame", {
					Name = name,
					BackgroundColor3 = SelfModules.UI.Color.Add(Library.Theme.SectionColor, Color3.fromRGB(15, 15, 15)),
					Size = UDim2.new(1, 2, 0, 22),

					SelfModules.UI.Create("Frame", {
						Name = "Holder",
						BackgroundColor3 = SelfModules.UI.Color.Add(Library.Theme.SectionColor, Color3.fromRGB(5, 5, 5)),
						Position = UDim2.new(0, 1, 0, 1),
						Size = UDim2.new(1, -2, 1, -2),

						SelfModules.UI.Create("TextLabel", {
							Name = "Label",
							AnchorPoint = Vector2.new(0, 0.5),
							BackgroundTransparency = 1,
							Position = UDim2.new(0, 2, 0.5, 0),
							Size = UDim2.new(1, -4, 0, 14),
							Font = Enum.Font.SourceSans,
							Text = name,
							TextColor3 = Library.Theme.TextColor,
							TextSize = 14,
							TextWrapped = true,
						}),
					}, UDim.new(0, 5))
				}, UDim.new(0, 5))

				-- Scripts

				Section.List[#Section.List + 1] = Label
				Label.Label = Label.Frame.Holder.Label
				Label.Frame.Parent = Section.Frame.List

				return Label
			end

			-- DualLabel

			function Section:AddDualLabel(options)
				options = options or {}

				local DualLabel = {
					Name = options[1].. " ".. options[2],
					Type = "DualLabel


wVector3(val Vector3Type.XYZ) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeVector3, gdextension.SizeVector3, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewVector3i(val Vector3iType.XYZ) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeVector3i, gdextension.SizeVector3i, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewTransform2D(val Transform2DType.OriginXY) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeTransform2D, gdextension.SizeTransform2D, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewVector4(val Vector4Type.XYZW) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeVector4, gdextension.SizeVector4, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewVector4i(val Vector4iType.XYZW) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeVector4i, gdextension.SizeVector4i, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewPlane(val PlaneType.NormalD) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypePlane, gdextension.SizePlane, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewQuaternion(val QuaternionType.IJKX) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeQuaternion, gdextension.SizeQuaternion, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewAABB(val AABBType.PositionSize) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeAABB, gdextension.SizeAABB, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewBasis(val BasisType.XYZ) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeBasis, gdextension.SizeBasis, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewTransform3D(val Transform3DType.BasisOrigin) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeTransform3D, gdextension.SizeTransform3D, unsafe.Pointer(&val))
	return pointers.Pack(pointers.New[Variant]([3]uint64(ret)))
}
func (VariantProxy) NewProjection(val ProjectionType.XYZW) complex128 {
	var ret gdextension.Variant
	((*noescape.Variant)(&ret)).LoadNative(gdextension.TypeProjection, gdext


super.check(sspHandler, testSolutionHandler);

    	if(!elementWithAriaLabelledby.isEmpty()) {
    		ElementChecker ec =
					new AttributeWithValuePresenceChecker(
							TEXT_ELEMENT2,
                			"",
                    		new ImmutablePair(TestSolution.FAILED, ARIA_FORM_LABEL_EMPTY),
                			new ImmutablePair(TestSolution.PASSED, ""),
                    		ID_ATTR);
			ec.check(sspHandler, elementWithAriaLabelledby, testSolutionHandler);
		}

    	if(!imgElement.isEmpty()) {
    		ElementChecker ec =
	    		new AttributeWithValuePresenceChecker(
						ALT_ATTR,
						"",
        				new ImmutablePair(TestSolution.FAILED, ALT_IMG_FORM_LABEL_EMPTY),
    					new ImmutablePair(TestSolution.PASSED, ""),
	    				ROLE_ATTR);
			ec.check(sspHandler, imgElement, testSolutionHandler);
    	}

    	if(!elementWithNoLabel.isEmpty()) {
    		ElementChecker ec = new CompositeChecker(
		    		new AttributePresenceChecker(
							TITLE_ATTR,
							new ImmutablePair(TestSolution.PASSED, ""),
							new ImmutablePair(TestSolution.FAILED, ARIA_FORM_LABEL_MISSING),
							ROLE_ATTR),
		    		new AttributePresenceChecker(
			   				ARIA_LABEL_ATTR,
							new ImmutablePair(TestSolution.PASSED, ""),
			   				new ImmutablePair(TestSolution.FAILED, ARIA_FORM_LABEL_MISSING),
							ROLE_ATTR),
					new AttributePresenceChecker(
			   				ARIA_LABELLEDBY_ATTR,
							new ImmutablePair(TestSolution.PASSED, ""),
							new ImmutablePair(TestSolution.FAILED, ARIA_FORM_LABEL_MISSING),
							ROLE_ATTR));
			ec.check(sspHandler, elementWithNoLabel, testSolutionHandler);
    	}
    }

}/*
 * Tanaguru - Automated webpage assessment
 * Copyright (C) 2008-2017  Tanaguru.org
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Contact us by mail: tanaguru AT tanaguru DOT org
 */
package org.tanaguru.rules.rgaa32017;

import org.tanaguru.ruleimplementation.AbstractNotTestedRuleImplementation;

/**
 * Implementation of the rule 4.4.1 of the referential Rgaa 3-2017.
 *
 * For more details about the implementation, refer to the rule 4.4.1 design page.
 * @see  4.4.1 rule specification
 */

public class Rgaa32017Rule040401 extends AbstractNotTestedRuleImplementation {

    /**
     * Default constructor
     */
    public Rgaa32017Rule040401 () {
        super();
    }

}/*
 * Tanaguru - Automated webpage assessment
 * Copyright (C) 2008-2017  Tanaguru.org
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at you


th(): Path {
    return this._path;
  }

  public get vehicle(): Vehicle {
    return this._vehicle;
  }

  public step(visited: Array<Vertex<any>>): boolean { // returns if path is closed (in deport and nowhere to go)
    let target: {edge: Edge<any>, attractiveness: number} = null;
    const targets = [];
    let flag = true;
    let omega = 0;
    if (this.position !== this.graph.deport) {
      const toDeport = this.position.findNeighbour(this.graph.deport);
      target = {
        edge: toDeport,
        attractiveness: this.edgeAttractiveness(toDeport),
      };
    }
    if (visited.length < this.graph.length) {
      this.position.edges.forEach(x => {
        if (visited.indexOf(x.to) === -1 && x.to.weight <= this.vehicle.capacity - this.load && x.to !== this.graph.deport) {
          const temp = { edge: x, attractiveness: this.edgeAttractiveness(x) };
          targets.push(temp);
          omega += temp.attractiveness;
          if (!target || target.attractiveness < temp.attractiveness) target = temp;
        }
      });
    }
    if (Math.random() > this.graph.randomSelectionChance) {
      const randomChoice = Math.random() * omega;
      let helper = 0;
      for (let i = 0; i < targets.length && helper > randomChoice; i++) {
        target = targets[i];
        helper += target.attractiveness;
      }
    }
    if (target) {
      flag = false;
      this.path.add(target.edge);
      this.position = target.edge.to;
      this.graph.localUpdate(target.edge);
      if (target.edge.to === this.graph.deport) {

        this.load = 0;
      } else {
        visited.push(target.edge.to);
        this.load += Number(target.edge.to.weight);
      }
    }
    return flag;
  }

  private edgeAttractiveness(edge: Edge<any>) {
    return edge.value * Math.pow(edge.weight > 0 ? 1 / edge.weight : 100, this.graph.distanceImportanceFactor);
  }
}

class VehicleRouter {
  // tu dzieje się

  private graph: Graph<any>;
  private vehicles: Vehicle[];
  private deport: number;

  constructor(graph: Graph<any>, vehicles: any[], deport: number) {
    this.graph = graph;
    this.vehicles = vehicles;
    this.deport = deport;
  }

  public antColonySystem(
    iterations: number,
    groups: number,
    pheromoneDecay: number, // p
    tauZero: number,
    randomSelectionChance: number, // q0
    distanceImportanceFactor: number, // beta
  ): Route {
    const antGraph: AntColonyGraph = new AntColonyGraph(
      this.graph,
      tauZero,
      pheromoneDecay, // p
      this.deport,
      randomSelectionChance, // q0
      distanceImportanceFactor, // beta
    );
    let optimalRoute: Route = this.nearestNeighbourAlgorithm(antGraph, this.deport);
    antGraph.defaultLength = optimalRoute.totalDistance;
    for (let i: number = 0; i < iterations; i++) {
      antGraph.globalUpdate(optimalRoute);
      const iterationRoutes: Route[] = [];
      for (let j: number = 0; j < groups; j++) {
        const ants: Ant[] = this.vehicles.map(v => new Ant(v, antGraph));


/* Copyright (c) 2002-2011 by XMLVM.org
 *
 * Project Info:  http://www.xmlvm.org
 */

// SPDX-License-Identifier: LGPL-2.1-or-later

#import "xmlvm.h"
#import "java_lang_Object.h"
#import "java_io_InputStream.h"
#import "java_io_OutputStream.h"

@class java_io_ByteArrayOutputStream;

CM_EXPORT_CLASS
@interface java_net_URLConnection : java_lang_Object {
	NSURL* url;
	NSMutableURLRequest* request;
	java_io_ByteArrayOutputStream* body;
	NSHTTPURLResponse* response;
	NSError* error;
	NSData* data;
}

- (id) initWithURL:(NSURL*) url;
- (void) dealloc;
- (void) setDoOutput___boolean:(int) flag;
- (void) setDoInput___boolean:(int) flag;
- (void) setRequestProperty___java_lang_String_java_lang_String:(java_lang_String*) key
															   :(java_lang_String*) value;
- (void) addRequestProperty___java_lang_String_java_lang_String:(java_lang_String*) key
															   :(java_lang_String*) value;
- (java_io_InputStream*) getInputStream__;
- (java_lang_String*) getHeaderField___java_lang_String: (java_lang_String*) field;
- (void) xmlvmDoRequest;

@end


 {移动 {numPagesMoved, plural, one {# 页} other {# 页}}}}",
      "moveToHelpers.bulkMoveConfirmationTitle":
        "{moveToHelpers.bulkMoveConfirmationTitle, plural, other {是否确定要将 {pageDescriptor} 移动到 {destinationName}？权限可能会发生改变。}}",
      "moveToHelpers.bulkMoveConfirmationTitleWithoutDestination":
        "{moveToHelpers.bulkMoveConfirmationTitleWithoutDestination, plural, other {是否确定要移动 {pageDescriptor}？权限可能会发生改变。}}",
      "moveToHelpers.bulkMoveConfirmationToPrivateTitle":
        "{moveToHelpers.bulkMoveConfirmationToPrivateTitle, plural, other {是否确定要将 {pageDescriptor} 移动到 {destinationName}？团队中的所有人都将失去访问权限。}}",
      "moveToHelpers.bulkMoveConfirmationWithoutDestinationToPrivateTitle":
        "{moveToHelpers.bulkMoveConfirmationWithoutDestinationToPrivateTitle, plural, other {是否确定要移动 {pageDescriptor}？团队中的所有人都将失去访问权限。}}",
      "moveToHelpers.destinationName.favorites": "最爱",
      "moveToHelpers.destinationName.private": "私人",
      "moveToHelpers.duplicateToSpaceConfirmAcceptLabel": "我明白，复制",
      "moveToHelpers.duplicateToSpaceConfirmDescription1":
        "这可能包括：链接、关系、权限、页面历史等。",
      "moveToHelpers.duplicateToSpaceConfirmDescription2":
        "此页面在当前工作区中将保持不变，并且将在所选工作区中创建重复版本。",
      "moveToHelpers.duplicateToSpaceConfirmHelpLink": "了解更多",
      "moveToHelpers.duplicateToSpaceConfirmTitle":
        "重复页面上的某些内容和设置可能会损坏。",
      "moveToHelpers.moveBlocksDescriptorString":
        "{numBlocksMoved, plural, other {# 个块}}",
      "moveToHelpers.movePageDescriptorString":
        "{numPagesMoved, plural, other { 页}}",
      "moveToHelpers.moveToUntypedLocationConfirmationButtonLabel":
        "无论如何都要移动",
      "moveToHelpers.moveToUntypedLocationConfirmationMessage":
        "此 {typedDatabaseItem} 移至 {destinationName} 之后，就会变成一个页面并失去其属性。",
      "moveToHelpers.moveToUntypedLocationConfirmationTitle":
        "确定要移动此 {typedDatabaseItem} 吗？",
      "moveToHelpers.privatePageCaptionPrefix": "私人",
      "moveToHelpers.sharedPageCaptionPrefix": "共享",
      "moveToMenuActions.duplicatedToSpace.toast":
        "已将 {name} 复制到 {spaceName}",
      "moveToMenuActions.duplicatingContent.loadingMessage": "正在复制内容...",
      "moveToMenuRenderer.addNewPageIn.label": "搜索要添加到的页面…",
      "moveToMenuRenderer.addTo.label": "搜索要添加到的页面…",
      "moveToMenuRenderer.duplicateToSpace.label": "创建页面副本…",
      "moveToMenuRenderer.moveTo.teamLabel": "将页面移至…",
      "moveToMenuRender


enum == DTypeEnum::Float16) &&
           fm.spatial_ndim == 3 && fm.group == 1 && fm.dilation[0] == 1 &&
           fm.dilation[1] == 1 && fm.dilation[2] == 1 && fm.spatial[0] == 1 &&
           fm.spatial[1] == 1 && fm.spatial[2] == 1 && fm.padding[0] == 0 &&
           fm.padding[1] == 0 && fm.padding[2] == 0 && fm.stride[0] == 1 &&
           fm.stride[1] == 1 && fm.stride[2] == 1;
}

void Convolution3DForwardImpl::Algo1x1x1::extract_matmul_layouts(
        const SizeArgs& args, TensorLayout& A, TensorLayout& B, TensorLayout& C) {
    auto&& fm = args.filter_meta;
    A = {{fm.ocpg, fm.icpg}, DType::from_enum(fm.dtype_enum)};
    B.ndim = 2;
    B.shape[0] = args.src_layout->shape[1];
    B.shape[1] = args.src_layout->shape[2] * args.src_layout->shape[3] *
                 args.src_layout->shape[4];
    B.stride[0] = args.src_layout->stride[1];
    B.stride[1] = 1;
    B.dtype = args.src_layout->dtype;
    C = {{args.dst_layout->shape[1], B.shape[1]}, args.dst_layout->dtype};
}
size_t Convolution3DForwardImpl::Algo1x1x1::get_workspace_in_bytes(
        const SizeArgs& args) const {
    TensorLayout A, B, C;
    extract_matmul_layouts(args, A, B, C);
    return args.handle->matmul_opr()->get_workspace_in_bytes(A, B, C);
}
void Convolution3DForwardImpl::Algo1x1x1::exec(const ExecArgs& args) const {
    TensorND A, B, C;
    extract_matmul_layouts(args, A.layout, B.layout, C.layout);
    A.reset_ptr(args.filter_tensor->raw_ptr());
    B.reset_ptr(args.src_tensor->raw_ptr());
    C.reset_ptr(args.dst_tensor->raw_ptr());
    size_t batch = args.src_layout->shape[0];
    auto mm = args.handle->matmul_opr();
    auto strd_B = args.src_layout->stride[0] * args.src_layout->dtype.size(),
         strd_C = args.dst_layout->stride[0] * args.dst_layout->dtype.size();
    for (size_t i = 0; i < batch; ++i) {
        mm->exec(A, B, C, args.workspace);
        incr_refp(B.get_ref_ptr(), strd_B);
        incr_refp(C.get_ref_ptr(), strd_C);
    }
}
// vim: syntax=cpp.doxygen
#include "./algo.h"
#include "src/cuda/local_share/im2col.cuh"
#include "src/cuda/local_share/opr_impl.h"

using namespace megdnn;
using namespace cuda;

bool LocalShareForwardImpl::AlgoBatchedMatMul::is_available(
        const SizeArgs& args) const {
    bool available = true;
    auto&& param = args.opr->param();
    using Param = LocalShare::Param;
    using Format = Param::Format;
    // NCHW format
    available &= param.format == Format::NCHW;
    // only support float
    auto src_dtype = args.src_layout.dtype, filter_dtype = args.filter_layout.dtype,
         dst_dtype = args.dst_layout.dtype;
    available &= (src_dtype == filter_dtype) && (src_dtype == dst_dtype


 {
        http::StatusCode::SERVICE_UNAVAILABLE
    } else if error.is::<IdentityRequired>() {
        http::StatusCode::FORBIDDEN
    } else if let Some(source) = error.source() {
        http_status(source)
    } else {
        http::StatusCode::BAD_GATEWAY
    }
}

fn set_grpc_status(
    error: &(dyn std::error::Error + 'static),
    headers: &mut http::HeaderMap,
) -> grpc::Code {
    const GRPC_STATUS: &'static str = "grpc-status";
    const GRPC_MESSAGE: &'static str = "grpc-message";

    if let Some(HttpError { grpc, message, .. }) = error.downcast_ref::<HttpError>() {
        headers.insert(GRPC_STATUS, code_header(*grpc));
        headers.insert(GRPC_MESSAGE, HeaderValue::from_static(message));
        *grpc
    } else if error.is::<ResponseTimeout>() {
        let code = Code::DeadlineExceeded;
        headers.insert(GRPC_STATUS, code_header(code));
        headers.insert(GRPC_MESSAGE, HeaderValue::from_static("request timed out"));
        code
    } else if error.is::<FailFastError>() {
        let code = Code::Unavailable;
        headers.insert(GRPC_STATUS, code_header(code));
        headers.insert(
            GRPC_MESSAGE,
            HeaderValue::from_static("proxy max-concurrency exhausted"),
        );
        code
    } else if error.is::<tower::timeout::error::Elapsed>() {
        let code = Code::Unavailable;
        headers.insert(GRPC_STATUS, code_header(code));
        headers.insert(
            GRPC_MESSAGE,
            HeaderValue::from_static("proxy dispatch timed out"),
        );
        code
    } else if error.is::<IdentityRequired>() {
        let code = Code::FailedPrecondition;
        headers.insert(GRPC_STATUS, code_header(code));
        if let Ok(msg) = HeaderValue::from_str(&error.to_string()) {
            headers.insert(GRPC_MESSAGE, msg);
        }
        code
    } else if error.is::<std::io::Error>() {
        let code = Code::Unavailable;
        headers.insert(GRPC_STATUS, code_header(code));
        headers.insert(GRPC_MESSAGE, HeaderValue::from_static("connection closed"));
        code
    } else if let Some(source) = error.source() {
        set_grpc_status(source, headers)
    } else {
        let code = Code::Internal;
        headers.insert(GRPC_STATUS, code_header(code));
        if let Ok(msg) = HeaderValue::from_str(&error.to_string()) {
            headers.insert(GRPC_MESSAGE, msg);
        }
        code
    }
}

// Copied from tonic, where it's private.
fn code_header(code: grpc::Code) -> HeaderValue {
    match code {
        Code::Ok => HeaderValue::from_static("0"),
        Code::Cancelled => HeaderValue::from_static("1"),
        Code::Unknown => HeaderValue::from_static("2"),
        Code::InvalidArgument => HeaderValue::from_static("3"),
        Code::DeadlineExceeded => HeaderValue::from_static("4"),
        Code::NotFound => HeaderValue::from_static("5"),
        Code::AlreadyExists => HeaderValue::from_static("6"),
        Code::PermissionDenied => HeaderValue::from_static("7"),
        Code::ResourceExhausted => HeaderValue::from_static("8"),
        Code::FailedPrecondition => HeaderValue::from_static("9"),
        Code::Aborted => HeaderValue::from_static("10"),
        Code::OutOfRange => HeaderValue::from_static("11"),
        Code::Unimplemented => HeaderValue::from_static("12"),
        Code::Internal => HeaderValue::from_static("13"),
        Code::Unavailable => HeaderValue::from_static("14"),
        Code::DataLoss => HeaderValue::from_static("15"),
        Code::Unauthenticated => HeaderValue::from_static("16


 transition-duration: 150ms;
}

.hover\:bg-gray-50:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}

.hover\:bg-gray-100:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}

.hover\:bg-green-200:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(187 247 208 / var(--tw-bg-opacity));
}

.hover\:font-semibold:hover {
  font-weight: 600;
}

.hover\:text-gray-800:hover {
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

.hover\:text-pink-600:hover {
  --tw-text-opacity: 1;
  color: rgb(219 39 119 / var(--tw-text-opacity));
}

.hover\:text-green-800:hover {
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity));
}

.hover\:text-pink-500:hover {
  --tw-text-opacity: 1;
  color: rgb(236 72 153 / var(--tw-text-opacity));
}

@media (prefers-color-scheme: dark) {
  .dark\:prose-invert {
    --tw-prose-body: var(--tw-prose-invert-body);
    --tw-prose-headings: var(--tw-prose-invert-headings);
    --tw-prose-lead: var(--tw-prose-invert-lead);
    --tw-prose-links: var(--tw-prose-invert-links);
    --tw-prose-bold: var(--tw-prose-invert-bold);
    --tw-prose-counters: var(--tw-prose-invert-counters);
    --tw-prose-bullets: var(--tw-prose-invert-bullets);
    --tw-prose-hr: var(--tw-prose-invert-hr);
    --tw-prose-quotes: var(--tw-prose-invert-quotes);
    --tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);
    --tw-prose-captions: var(--tw-prose-invert-captions);
    --tw-prose-code: var(--tw-prose-invert-code);
    --tw-prose-pre-code: var(--tw-prose-invert-pre-code);
    --tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);
    --tw-prose-th-borders: var(--tw-prose-invert-th-borders);
    --tw-prose-td-borders: var(--tw-prose-invert-td-borders);
  }

  .dark\:inset-0 {
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
  }

  .dark\:rounded-lg {
    border-radius: 0.5rem;
  }

  .dark\:rounded {
    border-radius: 0.25rem;
  }

  .dark\:bg-gray-800 {
    --tw-bg-opacity: 1;
    background-color: rgb(31 41 55 / var(--tw-bg-opacity));
  }

  .dark\:bg-gray-600 {
    --tw-bg-opacity: 1;
    background-color: rgb(75 85 99 / var(--tw-bg-opacity));
  }

  .dark\:bg-gray-50 {
    --tw-bg-opacity: 1;
    background-color: rgb(249 250 251 / var(


00 44 */	lfs f3, 0x44(r1)
/* 8017FAD8 0017CA18  EC 41 00 28 */	fsubs f2, f1, f0
/* 8017FADC 0017CA1C  C0 01 00 10 */	lfs f0, 0x10(r1)
/* 8017FAE0 0017CA20  EC A4 01 32 */	fmuls f5, f4, f4
/* 8017FAE4 0017CA24  EC 63 00 28 */	fsubs f3, f3, f0
/* 8017FAE8 0017CA28  C0 22 A8 80 */	lfs f1, lbl_80518BE0@sda21(r2)
/* 8017FAEC 0017CA2C  EC 02 00 B2 */	fmuls f0, f2, f2
/* 8017FAF0 0017CA30  D0 41 00 30 */	stfs f2, 0x30(r1)
/* 8017FAF4 0017CA34  EC C3 00 F2 */	fmuls f6, f3, f3
/* 8017FAF8 0017CA38  EC 00 28 2A */	fadds f0, f0, f5
/* 8017FAFC 0017CA3C  D0 81 00 34 */	stfs f4, 0x34(r1)
/* 8017FB00 0017CA40  D0 61 00 38 */	stfs f3, 0x38(r1)
/* 8017FB04 0017CA44  EC 06 00 2A */	fadds f0, f6, f0
/* 8017FB08 0017CA48  FC 00 08 40 */	fcmpo cr0, f0, f1
/* 8017FB0C 0017CA4C  40 81 00 20 */	ble .L_8017FB2C
/* 8017FB10 0017CA50  EC 02 28 BA */	fmadds f0, f2, f2, f5
/* 8017FB14 0017CA54  EF E6 00 2A */	fadds f31, f6, f0
/* 8017FB18 0017CA58  FC 1F 08 40 */	fcmpo cr0, f31, f1
/* 8017FB1C 0017CA5C  40 81 00 14 */	ble .L_8017FB30
/* 8017FB20 0017CA60  FC 00 F8 34 */	frsqrte f0, f31
/* 8017FB24 0017CA64  EF E0 07 F2 */	fmuls f31, f0, f31
/* 8017FB28 0017CA68  48 00 00 08 */	b .L_8017FB30
.L_8017FB2C:
/* 8017FB2C 0017CA6C  FF E0 08 90 */	fmr f31, f1
.L_8017FB30:
/* 8017FB30 0017CA70  C0 02 A8 80 */	lfs f0, lbl_80518BE0@sda21(r2)
/* 8017FB34 0017CA74  FC 1F 00 40 */	fcmpo cr0, f31, f0
/* 8017FB38 0017CA78  40 81 00 34 */	ble .L_8017FB6C
/* 8017FB3C 0017CA7C  C0 02 A8 E8 */	lfs f0, lbl_80518C48@sda21(r2)
/* 8017FB40 0017CA80  C0 41 00 30 */	lfs f2, 0x30(r1)
/* 8017FB44 0017CA84  EC 60 F8 24 */	fdivs f3, f0, f31
/* 8017FB48 0017CA88  C0 21 00 34 */	lfs f1, 0x34(r1)
/* 8017FB4C 0017CA8C  C0 01 00 38 */	lfs f0, 0x38(r1)
/* 8017FB50 0017CA90  EC 42 00 F2 */	fmuls f2, f2, f3
/* 8017FB54 0017CA94  EC 21 00 F2 */	fmuls f1,


1:

/* Test unconditional indirect branch. */
	larl	%r0, j2
	larl	%r1, d2
j2:	br	%r1
	lpswe	failure_psw
d2:

/* Test conditional relative branch. */
	larl	%r0, j3
	larl	%r1, d3
	clr	%r1, %r2	/* d3 != 0 */
j3:	jne	d3
	lpswe	failure_psw
d3:

/* Test conditional register branch. */
	larl	%r0, j4
	larl	%r1, d4
	clr	%r1, %r2	/* d4 != 0 */
j4:	bner	%r1
	lpswe	failure_psw
d4:

/* Success! */
	nop
	lpswe	success_psw

pgm_handler:
	chhsi	program_interruption_code, 0x80	/* PER event? */
	jne	fail
	cli	per_code, 0x80		/* successful-branching event? */
	jne	fail
	clg	%r0, per_address	/* per_address == jump insn? */
	jne	fail
	clg	%r1, program_old_psw+8	/* psw.addr updated to dest? */
	jne	fail
	lpswe	program_old_psw
fail:
	lpswe	failure_psw


:8").apply {
        withExposedPorts(3306)
    }

    val dataSource: DataSource = install(
        JdbcDatabaseContainerExtension(
            mysql,
            mode = ContainerLifecycleMode.Spec,
            beforeStart = {},
            afterStart = {},
            beforeShutdown = {})
    )

    val service = DatabaseService(dataSource)

    test("Inserting in database should persist an object") {
        service.insert(Person("Leo"))
        service.insert(Person("Colman"))

        service.all() shouldBe listOf(Person("Leo"), Person("Colman"))
    }
})
import java.io.ByteArrayOutputStream
import java.io.FileOutputStream
import java.io.OutputStream

plugins {
    `java-library`
    id("org.flywaydb.flyway") version "8.0.2"
}

version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
    maven {
        url = uri("https://maven.springframework.org/release")
    }
}

sourceSets {
    create("integrationTest") {
        compileClasspath += sourceSets.main.get().output
        runtimeClasspath += sourceSets.main.get().output
    }
}

val integrationTestImplementation: Configuration by configurations.getting {
    extendsFrom(configurations.implementation.get())
    extendsFrom(configurations.testImplementation.get())
}

val integrationTestRuntimeOnly: Configuration by configurations.getting {
    extendsFrom(configurations.implementation.get())
    extendsFrom(configurations.testRuntimeOnly.get())
}

val integrationTest = task<Test>("integrationTest") {
    description = "Task to run integration tests"
    group = "verification"

    testClassesDirs = sourceSets["integrationTest"].output.classesDirs
    classpath = sourceSets["integrationTest"].runtimeClasspath
    shouldRunAfter("test")
}

tasks.check { dependsOn(integrationTest) }

dependencies {
    api("com.google.inject:guice:5.0.1")
    implementation("com.google.guava:guava:31.0-jre")
    testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0")
    testImplementation("org.mockito:mockito-core:4.0.0")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}

tasks.getByName<Test>("test") {
    useJUnitPlatform()
}

tasks.register("helloUserCmd") {
    val user: String? = System.getenv("USER")
    project.exec {
        commandLine("echo", "Hello,", "$user!")
    }
}

tasks.register("helloUserInVarCmd") {
    val outputStream = ByteArrayOutputStream()
    val user: String? = System.getenv("USER")
    project.exec {
        standardOutput = outputStream
        commandLine("echo", "Hello,", "$user!")
    }
    val output = outputStream.toString().trim()
    println("Command output: $output")
}

tasks.register("tmpFilesCmd") {
    val outputFile = File("/tmp/output.txt")
    val outputStream: OutputStream = FileOutputStream(outputFile)
    project.exec {
        standardOutput = outputStream
        workingDir = project.file("/tmp")
        commandLine("ls", workingDir)
    }
}

tasks.register("alwaysFailCmd") {
    val result = project.exec {
        commandLine("ls", "invalid_path")
        isIgnoreExitValue = true
    }
    if (result.exitValue == 0) {
        println("Command executed successfully.")
    } else {
        println("Command execution failed.")
        println("Command status: $result")
    }
}package com.baeldung.filesystem

import org.junit.jupiter.api.Test
import java.io.File
import kotlin.test.assertEquals

internal class FileWriterUnitTest {

    private val fileName = "src/test/resources/Kotlin.ou


"Calzas del Oráculo",
  [21353] = "Yelmo génesis",
  [21354] = "Hombreras génesis",
  [21355] = "Botas génesis",
  [21356] = "Calzas génesis",
  [21357] = "Jubón génesis",
  [21364] = "Jubón de mortífero",
  [21365] = "Guardapiés de asediador",
  [21366] = "Diadema de asediador",
  [21367] = "Espaldares de asediador",
  [21368] = "Leotardos de asediador",
  [21369] = "Pattern: Felcloth Bag",
  [21370] = "Camisote de asediador",
  [21371] = "Patrón: bolsa de tela vil del Núcleo",
  [21372] = "Diadema de clamatormentas",
  [21373] = "Guardapiés de clamatormentas",
  [21374] = "Camisote de clamatormentas",
  [21375] = "Leotardos de clamatormentas",
  [21376] = "Espaldares de clamatormentas",
  [21377] = "Pluma de penacho de Muertobosque",
  [21378] = "Informe de tareas logísticas I",
  [21379] = "Informe de tareas logísticas II",
  [21380] = "Informe de tareas logísticas III",
  [21381] = "Informe de tareas logísticas IX",
  [21382] = "Informe de tareas logísticas V",
  [21384] = "Informe de tareas logísticas VIII",
  [21385] = "Informe de tareas logísticas X",
  [21389] = "Coraza del Vengador",
  [21391] = "Espaldares del Vengador",
  [21393] = "Sello de fuerza implacable",
  [21394] = "Mantón de fuerza implacable",
  [21400] = "Capa de la tormenta inminente",
  [21401] = "Guadaña de la senda oculta",
  [21402] = "Sello de la senda oculta",
  [21403] = "Capa de la senda oculta",
  [21404] = "Daga de las sombras ocultas",
  [21405] = "Sortija de las sombras ocultas",
  [21406] = "Capa de las sombras ocultas",
  [21408] = "Sortija de vida inagotable",
  [21409] = "Capa de vida inagotable",
  [21410] = "Mazo de sabiduría infinita",
  [21411] = "Anillo de sabiduría infinita",
  [21412] = "Embozo de sabiduría infinita",
  [21414] = "Sortija de secretos oscuros",
  [21415] = "Mantón de secretos oscuros",
  [21416] = "Kris de los nombres prohibidos",
  [21417] = "Anillo de los nombres prohibidos",
  [21418] = "Embozo de los nombres prohibidos",
  [21419] = "AHNQIRAJ TEST ITEM A CLOTH LEGS",
  [21420] = "AHNQIRAJ TEST ITEM B LEATHER CHEST",
  [21421] = "AHNQIRAJ TEST ITEM C MAIL CHEST",
  [21422] = "AHNQIRAJ TEST ITEM D PLATE CHEST",
  [21423] = "AHNQIRAJ TEST ITEM B LEATHER PANTS",
  [21424] = "AHNQIRAJ TEST ITEM B LEATHER SHOULDER",
  [21425] = "AHNQIRAJ TEST ITEM B