diff --git a/crates/cpu/src/decoder/simple_power_isa.rs b/crates/cpu/src/decoder/simple_power_isa.rs index 5caf6a4..1f1f7ad 100644 --- a/crates/cpu/src/decoder/simple_power_isa.rs +++ b/crates/cpu/src/decoder/simple_power_isa.rs @@ -6,7 +6,8 @@ use crate::{ instruction::{ AddSubMOp, BranchMOp, CompareMOp, CompareMode, ConditionMode, LoadMOp, LoadStoreConversion, LoadStoreWidth, LogicalFlagsMOp, LogicalFlagsMOpImm, LogicalMOp, Lut4, MOp, MOpDestReg, - MOpRegNum, MoveRegMOp, OutputIntegerMode, StoreMOp, + MOpRegNum, MoveRegMOp, OutputIntegerMode, ShiftRotateMOp, ShiftRotateMOpImm, + ShiftRotateMode, StoreMOp, }, powerisa_instructions_xml::{ InstructionBitFieldName, InstructionBitFieldsInner, Instructions, TextLineItem, @@ -14,7 +15,10 @@ use crate::{ register::{ PRegFlags, PRegFlagsPowerISA, PRegFlagsPowerISAView, PRegFlagsViewTrait, ViewUnused, }, - util::array_vec::{ArrayVec, Length}, + util::{ + Rotate, + array_vec::{ArrayVec, Length}, + }, }; use fayalite::{ int::{BoolOrIntType, UIntInRange}, @@ -22,7 +26,10 @@ use fayalite::{ prelude::*, ty::StaticType, }; -use std::{collections::BTreeMap, ops::RangeInclusive}; +use std::{ + collections::{BTreeMap, btree_map::Entry}, + ops::RangeInclusive, +}; #[rustfmt::skip] const FP_MNEMONICS: &[&str] = &[ @@ -218,6 +225,10 @@ impl_fields! { struct FieldDS(SInt<14>); #[name = "LI"] struct FieldLI(SInt<24>); + #[name = "SH"] + struct FieldSH(UInt<5>); + #[name = "sh"] + struct FieldSh(UInt<6>); #[name = "SI"] struct FieldSI(SInt<16>); #[name = "si0"] @@ -397,6 +408,20 @@ impl DecodeState { fields_inner: &'static InstructionBitFieldsInner, ) { let mut last_start = word.ty().width(); + struct FieldPieces { + filled_pieces: Vec>, + piece_count: usize, + } + let mut fields_pieces = BTreeMap::new(); + for bit_field in fields_inner.fields() { + fields_pieces + .entry(Self::bit_field_name(bit_field.name())) + .or_insert_with(|| FieldPieces { + filled_pieces: Vec::with_capacity(1), + piece_count: 0, + }) + .piece_count += 1; + } for bit_field in fields_inner.fields().iter().rev() { let bit_number_text = match bit_field.bit_number().text() { "3031" => "30 31", @@ -436,6 +461,10 @@ impl DecodeState { if name.contains(char::is_alphabetic) { for (cond_name, cond_value) in self.conditions() { if name == cond_name { + assert_eq!( + fields_pieces[name].piece_count, 1, + "can't apply conditions to a field with more than one piece: name {name:?}", + ); name = cond_value; break; } @@ -444,15 +473,33 @@ impl DecodeState { if name == "any value*" || name.bytes().all(|b| b == b'/') { // wildcard } else if name.contains(char::is_alphabetic) { - let wire = wire_with_loc( - &format!("{}_{name}", self.mnemonic) - .replace(|c: char| !c.is_ascii_alphanumeric(), "_"), - SourceLocation::caller(), - field.ty(), - ); - connect(wire, field); - if fields.insert(name, wire).is_some() { - panic!("duplicate field name: {name:?}\nheader: {:#?}", self.header); + let Some(field_pieces) = fields_pieces.get_mut(name) else { + unreachable!(); + }; + field_pieces.filled_pieces.push(field); + if field_pieces.filled_pieces.len() == field_pieces.piece_count { + let wire = wire_with_loc( + &format!("{}_{name}", self.mnemonic) + .replace(|c: char| !c.is_ascii_alphanumeric(), "_"), + SourceLocation::caller(), + UInt[field_pieces + .filled_pieces + .iter() + .map(|v| v.ty().width()) + .sum::()], + ); + // filled_pieces are in lsb to msb order + let mut filled_pieces = field_pieces.filled_pieces.drain(..); + let Some(mut value) = filled_pieces.next() else { + unreachable!(); + }; + let mut shift = value.ty().width(); + for next_value in filled_pieces { + value = value | (next_value << shift); + shift += next_value.ty().width(); + } + connect(wire, value); + fields.insert(name, wire); } } else { let value: u32 = name.parse().expect("bit field name must have at least one letter, be all `/`, or be a valid decimal number"); @@ -1856,6 +1903,139 @@ impl DecodeState { ); }); } + /// for `slw[.]/srw[.]/srawi[.]/sraw[.]/sld[.]/sradi[.]/srd[.]/srad[.]` + #[hdl] + fn decode_shift(&mut self) { + let (is_32bit, is_signed, is_right_shift, is_immediate) = + match self.mnemonic.trim_end_matches('.') { + "slw" => (true, false, false, false), + "srw" => (true, false, true, false), + "srawi" => (true, true, true, true), + "sraw" => (true, true, true, false), + "sld" => (false, false, false, false), + "sradi" => (false, true, true, true), + "srd" => (false, false, true, false), + "srad" => (false, true, true, false), + _ => unreachable!("{:?}", self.mnemonic), + }; + if is_immediate { + assert!(is_signed); + assert!(is_right_shift); + assert_eq!(self.arguments, Some("RA,RS,SH")); + if is_32bit { + self.decode_scope( + |this, (FieldRA(ra), FieldRS(rs), FieldSH(sh), FieldRc(rc))| { + // TODO: handle SO propagation + connect( + ArrayVec::len(this.output), + 1usize.cast_to_static::>(), + ); + connect( + this.output[0], + ShiftRotateMOp::shift_rotate( + MOpDestReg::new( + [gpr(ra), MOpRegNum::power_isa_xer_ca_ca32_reg()], + [(MOpRegNum::POWER_ISA_CR_0_REG_NUM, rc)], + ), + [ + gpr(rs).value, + MOpRegNum::const_zero().value, + MOpRegNum::const_zero().value, + ], + #[hdl] + ShiftRotateMOpImm { + shift_rotate_amount: HdlSome(sh.cast_to_static::>()), + shift_rotate_right: true, + dest_logic_op: HdlNone(), + }, + OutputIntegerMode.Full64(), + ShiftRotateMode.SignExt32To64BitThenShift(), + ), + ); + }, + ); + } else { + self.decode_scope( + |this, (FieldRA(ra), FieldRS(rs), FieldSh(sh), FieldRc(rc))| { + // TODO: handle SO propagation + connect( + ArrayVec::len(this.output), + 1usize.cast_to_static::>(), + ); + connect( + this.output[0], + ShiftRotateMOp::shift_rotate( + MOpDestReg::new( + [gpr(ra), MOpRegNum::power_isa_xer_ca_ca32_reg()], + [(MOpRegNum::POWER_ISA_CR_0_REG_NUM, rc)], + ), + [ + gpr(rs).value, + MOpRegNum::const_zero().value, + MOpRegNum::const_zero().value, + ], + #[hdl] + ShiftRotateMOpImm { + shift_rotate_amount: HdlSome(sh.rotate_right(1)), + shift_rotate_right: true, + dest_logic_op: HdlNone(), + }, + OutputIntegerMode.Full64(), + ShiftRotateMode.ShiftSigned64(), + ), + ); + }, + ); + } + } else { + assert_eq!(self.arguments, Some("RA,RS,RB")); + self.decode_scope( + |this, (FieldRA(ra), FieldRS(rs), FieldRB(rb), FieldRc(rc))| { + // TODO: handle SO propagation + connect( + ArrayVec::len(this.output), + 1usize.cast_to_static::>(), + ); + connect( + this.output[0], + ShiftRotateMOp::shift_rotate( + MOpDestReg::new( + [ + gpr(ra), + if is_signed && is_right_shift { + MOpRegNum::power_isa_xer_ca_ca32_reg() + } else { + MOpRegNum::const_zero() + }, + ], + [(MOpRegNum::POWER_ISA_CR_0_REG_NUM, rc)], + ), + if !is_signed && is_right_shift { + [MOpRegNum::const_zero().value, gpr(rs).value, gpr(rb).value] + } else { + [gpr(rs).value, MOpRegNum::const_zero().value, gpr(rb).value] + }, + #[hdl] + ShiftRotateMOpImm { + shift_rotate_amount: HdlNone(), + shift_rotate_right: is_right_shift, + dest_logic_op: HdlNone(), + }, + OutputIntegerMode.Full64(), + match (is_32bit, is_signed, is_right_shift) { + (false, _, false) => ShiftRotateMode.FunnelShift2x64Bit(), + (false, false, true) => ShiftRotateMode.FunnelShift2x64Bit(), + (false, true, true) => ShiftRotateMode.ShiftSigned64(), + (true, _, false) => ShiftRotateMode.FunnelShift2x32Bit(), + (true, false, true) => ShiftRotateMode.FunnelShift2x32Bit(), + (true, true, true) => ShiftRotateMode.SignExt32To64BitThenShift(), + }, + ), + ); + }, + ); + } + } /// for `mcrxrx` #[hdl] fn decode_mcrxrx(&mut self) { @@ -2084,9 +2264,7 @@ const DECODE_FNS: &[(&[&str], DecodeFn)] = &[ "slw", "slw.", "srw", "srw.", "srawi", "srawi.", "sraw", "sraw.", "sld", "sld.", "sradi", "sradi.", "srd", "srd.", "srad", "srad.", ], - |_state| { - // TODO - }, + DecodeState::decode_shift, ), (&["extswsli", "extswsli."], |_state| { // TODO diff --git a/crates/cpu/src/instruction.rs b/crates/cpu/src/instruction.rs index 24f2537..1d386be 100644 --- a/crates/cpu/src/instruction.rs +++ b/crates/cpu/src/instruction.rs @@ -1605,17 +1605,22 @@ impl LogicalMOp for ShiftRotateMode { diff --git a/crates/cpu/src/util.rs b/crates/cpu/src/util.rs index ec9e17f..4e8f946 100644 --- a/crates/cpu/src/util.rs +++ b/crates/cpu/src/util.rs @@ -38,6 +38,54 @@ pub trait Rotate { fn rotate_right(&self, amount: Amount) -> Self::Output; } +impl Rotate for Expr> { + type Output = Self; + /// like [`usize::rotate_left`] + fn rotate_left(&self, amount: usize) -> Self::Output { + if self.ty().width() == 0 { + return *self; + } + let amount = amount % self.ty().width(); + let l = *self << amount; + let r = *self >> (self.ty().width() - amount); + (l | r).cast_to(self.ty()) + } + /// like [`usize::rotate_right`] + fn rotate_right(&self, amount: usize) -> Self::Output { + if self.ty().width() == 0 { + return *self; + } + let amount = amount % self.ty().width(); + let l = *self << (self.ty().width() - amount); + let r = *self >> amount; + (l | r).cast_to(self.ty()) + } +} + +impl Rotate for SimValue> { + type Output = Self; + /// like [`usize::rotate_left`] + fn rotate_left(&self, amount: usize) -> Self::Output { + if self.ty().width() == 0 { + return self.clone(); + } + let amount = amount % self.ty().width(); + let l = self << amount; + let r = self >> (self.ty().width() - amount); + (l | r).cast_to(self.ty()) + } + /// like [`usize::rotate_right`] + fn rotate_right(&self, amount: usize) -> Self::Output { + if self.ty().width() == 0 { + return self.clone(); + } + let amount = amount % self.ty().width(); + let l = self << (self.ty().width() - amount); + let r = self >> amount; + (l | r).cast_to(self.ty()) + } +} + impl Rotate>> for Expr> { type Output = Self; /// like [`usize::rotate_left`] @@ -176,3 +224,59 @@ impl Rotate>> retval } } + +impl Rotate for Expr> { + type Output = Self; + /// like [`<[T]>::rotate_left`](slice::rotate_left) + fn rotate_left(&self, amount: usize) -> Self::Output { + if self.ty().len() == 0 { + return self.clone(); + } + let amount = amount % self.ty().len(); + let mut retval = Vec::from_iter(*self); + retval.rotate_left(amount); + ArrayLiteral::new( + self.ty().element(), + retval.into_iter().map(Expr::canonical).collect(), + ) + .to_expr() + } + /// like [`<[T]>::rotate_right`](slice::rotate_right) + fn rotate_right(&self, amount: usize) -> Self::Output { + if self.ty().len() == 0 { + return self.clone(); + } + let amount = amount % self.ty().len(); + let mut retval = Vec::from_iter(*self); + retval.rotate_right(amount); + ArrayLiteral::new( + self.ty().element(), + retval.into_iter().map(Expr::canonical).collect(), + ) + .to_expr() + } +} + +impl Rotate for SimValue> { + type Output = Self; + /// like [`<[T]>::rotate_left`](slice::rotate_left) + fn rotate_left(&self, amount: usize) -> Self::Output { + if self.ty().len() == 0 { + return self.clone(); + } + let amount = amount % self.ty().len(); + let mut retval = self.clone(); + AsMut::<[SimValue]>::as_mut(&mut SimValue::value_mut(&mut retval)).rotate_left(amount); + retval + } + /// like [`<[T]>::rotate_right`](slice::rotate_right) + fn rotate_right(&self, amount: usize) -> Self::Output { + if self.ty().len() == 0 { + return self.clone(); + } + let amount = amount % self.ty().len(); + let mut retval = self.clone(); + AsMut::<[SimValue]>::as_mut(&mut SimValue::value_mut(&mut retval)).rotate_right(amount); + retval + } +} diff --git a/crates/cpu/tests/simple_power_isa_decoder/expected/decode_one_insn.vcd b/crates/cpu/tests/simple_power_isa_decoder/expected/decode_one_insn.vcd index ce50c0d..b3516cd 100644 --- a/crates/cpu/tests/simple_power_isa_decoder/expected/decode_one_insn.vcd +++ b/crates/cpu/tests/simple_power_isa_decoder/expected/decode_one_insn.vcd @@ -8634,9 +8634,137 @@ $var string 1 DA \$tag $end $scope struct HdlSome $end $upscope $end $upscope $end -$var wire 3 EA mcrxrx_BF $end +$var wire 5 EA slw_RB $end +$var wire 5 FA slw_RA $end +$var wire 5 GA slw_RS $end +$scope struct flag_reg_1_76 $end +$var string 1 HA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 IA slw__RB $end +$var wire 5 JA slw__RA $end +$var wire 5 KA slw__RS $end +$scope struct flag_reg_1_77 $end +$var string 1 LA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 MA srw_RB $end +$var wire 5 NA srw_RA $end +$var wire 5 OA srw_RS $end +$scope struct flag_reg_1_78 $end +$var string 1 PA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 QA srw__RB $end +$var wire 5 RA srw__RA $end +$var wire 5 SA srw__RS $end +$scope struct flag_reg_1_79 $end +$var string 1 TA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 UA srawi_SH $end +$var wire 5 VA srawi_RA $end +$var wire 5 WA srawi_RS $end +$scope struct flag_reg_1_80 $end +$var string 1 XA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 YA srawi__SH $end +$var wire 5 ZA srawi__RA $end +$var wire 5 [A srawi__RS $end +$scope struct flag_reg_1_81 $end +$var string 1 \A \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 ]A sraw_RB $end +$var wire 5 ^A sraw_RA $end +$var wire 5 _A sraw_RS $end +$scope struct flag_reg_1_82 $end +$var string 1 `A \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 aA sraw__RB $end +$var wire 5 bA sraw__RA $end +$var wire 5 cA sraw__RS $end +$scope struct flag_reg_1_83 $end +$var string 1 dA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 eA sld_RB $end +$var wire 5 fA sld_RA $end +$var wire 5 gA sld_RS $end +$scope struct flag_reg_1_84 $end +$var string 1 hA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 iA sld__RB $end +$var wire 5 jA sld__RA $end +$var wire 5 kA sld__RS $end +$scope struct flag_reg_1_85 $end +$var string 1 lA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 6 mA sradi_sh $end +$var wire 5 nA sradi_RA $end +$var wire 5 oA sradi_RS $end +$scope struct flag_reg_1_86 $end +$var string 1 pA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 6 qA sradi__sh $end +$var wire 5 rA sradi__RA $end +$var wire 5 sA sradi__RS $end +$scope struct flag_reg_1_87 $end +$var string 1 tA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 uA srd_RB $end +$var wire 5 vA srd_RA $end +$var wire 5 wA srd_RS $end +$scope struct flag_reg_1_88 $end +$var string 1 xA \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 yA srd__RB $end +$var wire 5 zA srd__RA $end +$var wire 5 {A srd__RS $end +$scope struct flag_reg_1_89 $end +$var string 1 |A \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 }A srad_RB $end +$var wire 5 ~A srad_RA $end +$var wire 5 !B srad_RS $end +$scope struct flag_reg_1_90 $end +$var string 1 "B \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 5 #B srad__RB $end +$var wire 5 $B srad__RA $end +$var wire 5 %B srad__RS $end +$scope struct flag_reg_1_91 $end +$var string 1 &B \$tag $end +$scope struct HdlSome $end +$upscope $end +$upscope $end +$var wire 3 'B mcrxrx_BF $end $scope struct power_isa_cr_reg_43 $end -$var wire 8 FA value $end +$var wire 8 (B value $end $upscope $end $upscope $end $enddefinitions $end @@ -11685,8 +11813,72 @@ sHdlNone\x20(0) AA b10100 BA b1 CA sHdlSome\x20(1) DA -b0 EA -b11111111 FA +b1010 EA +b10100 FA +b1 GA +sHdlNone\x20(0) HA +b1010 IA +b10100 JA +b1 KA +sHdlSome\x20(1) LA +b1010 MA +b10100 NA +b1 OA +sHdlNone\x20(0) PA +b1010 QA +b10100 RA +b1 SA +sHdlSome\x20(1) TA +b1010 UA +b10100 VA +b1 WA +sHdlNone\x20(0) XA +b1010 YA +b10100 ZA +b1 [A +sHdlSome\x20(1) \A +b1010 ]A +b10100 ^A +b1 _A +sHdlNone\x20(0) `A +b1010 aA +b10100 bA +b1 cA +sHdlSome\x20(1) dA +b1010 eA +b10100 fA +b1 gA +sHdlNone\x20(0) hA +b1010 iA +b10100 jA +b1 kA +sHdlSome\x20(1) lA +b10100 mA +b10100 nA +b1 oA +sHdlNone\x20(0) pA +b10100 qA +b10100 rA +b1 sA +sHdlSome\x20(1) tA +b1010 uA +b10100 vA +b1 wA +sHdlNone\x20(0) xA +b1010 yA +b10100 zA +b1 {A +sHdlSome\x20(1) |A +b1010 }A +b10100 ~A +b1 !B +sHdlNone\x20(0) "B +b1010 #B +b10100 $B +b1 %B +sHdlSome\x20(1) &B +b0 'B +b11111111 (B $end #1000000 00 @@ -11737,6 +11929,8 @@ b101011001111010 A@ b101011001111010 E@ b101011001111010 I@ b101011001111010 M@ +b10101 mA +b10101 qA #2000000 b1 $ 10 @@ -11806,6 +12000,8 @@ b101011001111001 A@ b101011001111001 E@ b101011001111001 I@ b101011001111001 M@ +b10100 mA +b10100 qA #3000000 00 0? @@ -11855,6 +12051,8 @@ b101011001111011 A@ b101011001111011 E@ b101011001111011 I@ b101011001111011 M@ +b10101 mA +b10101 qA #4000000 sAddSubI\x20(1) " b10 $ @@ -12707,6 +12905,54 @@ b0 ?A b0 @A b0 BA b0 CA +b10 EA +b0 FA +b0 GA +b10 IA +b0 JA +b0 KA +b10 MA +b0 NA +b0 OA +b10 QA +b0 RA +b0 SA +b10 UA +b0 VA +b0 WA +b10 YA +b0 ZA +b0 [A +b10 ]A +b0 ^A +b0 _A +b10 aA +b0 bA +b0 cA +b10 eA +b0 fA +b0 gA +b10 iA +b0 jA +b0 kA +b100 mA +b0 nA +b0 oA +b100 qA +b0 rA +b0 sA +b10 uA +b0 vA +b0 wA +b10 yA +b0 zA +b0 {A +b10 }A +b0 ~A +b0 !B +b10 #B +b0 $B +b0 %B #5000000 sDupLow32\x20(1) $# 1%# @@ -12720,7 +12966,7 @@ sDupLow32\x20(1) P# sDupLow32\x20(1) _# 1`# sDupLow32\x20(1) n# -s\x20(7) o# +sShiftSigned64\x20(7) o# sDupLow32\x20(1) z# sS8\x20(7) {# sDupLow32\x20(1) ($ @@ -12749,7 +12995,7 @@ sDupLow32\x20(1) M' sDupLow32\x20(1) \' 1]' sDupLow32\x20(1) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' sDupLow32\x20(1) w' sS8\x20(7) x' sDupLow32\x20(1) %( @@ -12797,7 +13043,7 @@ sDupLow32\x20(1) G+ sDupLow32\x20(1) V+ 1W+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sDupLow32\x20(1) q+ s\x20(15) r+ sDupLow32\x20(1) }+ @@ -13167,6 +13413,22 @@ b1 9A b1 \x20(7) o# +sShiftSigned64\x20(7) o# sSignExt16\x20(5) z# sS8\x20(7) {# sSignExt16\x20(5) ($ @@ -13522,7 +13800,7 @@ sSignExt16\x20(5) M' sSignExt16\x20(5) \' 1]' sSignExt16\x20(5) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' sSignExt16\x20(5) w' sS8\x20(7) x' sSignExt16\x20(5) %( @@ -13564,7 +13842,7 @@ sSignExt16\x20(5) G+ sSignExt16\x20(5) V+ 1W+ sSignExt16\x20(5) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sSignExt16\x20(5) q+ s\x20(15) r+ sSignExt16\x20(5) }+ @@ -13911,6 +14189,22 @@ b11 9A b11 \x20(7) o# +sShiftSigned64\x20(7) o# sDupLow32\x20(1) z# s\x20(15) {# sDupLow32\x20(1) ($ @@ -19653,7 +20123,7 @@ sDupLow32\x20(1) M' sDupLow32\x20(1) \' 1]' sDupLow32\x20(1) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' sDupLow32\x20(1) w' sS8\x20(7) x' sDupLow32\x20(1) %( @@ -19701,7 +20171,7 @@ sDupLow32\x20(1) G+ sDupLow32\x20(1) V+ 1W+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sDupLow32\x20(1) q+ s\x20(15) r+ sDupLow32\x20(1) }+ @@ -20071,6 +20541,22 @@ b1 9A b1 \x20(7) o# +sShiftSigned64\x20(7) o# sSignExt16\x20(5) z# s\x20(15) {# sSignExt16\x20(5) ($ @@ -20426,7 +20928,7 @@ sSignExt16\x20(5) M' sSignExt16\x20(5) \' 1]' sSignExt16\x20(5) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' sSignExt16\x20(5) w' sS8\x20(7) x' sSignExt16\x20(5) %( @@ -20468,7 +20970,7 @@ sSignExt16\x20(5) G+ sSignExt16\x20(5) V+ 1W+ sSignExt16\x20(5) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sSignExt16\x20(5) q+ s\x20(15) r+ sSignExt16\x20(5) }+ @@ -20815,6 +21317,22 @@ b11 9A b11 \x20(7) l' +sShiftSigned64\x20(7) l' sDupLow32\x20(1) w' sS8\x20(7) x' sDupLow32\x20(1) %( @@ -26711,7 +27407,7 @@ sDupLow32\x20(1) G+ sDupLow32\x20(1) V+ 1W+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sDupLow32\x20(1) q+ s\x20(15) r+ sDupLow32\x20(1) }+ @@ -27081,6 +27777,22 @@ b1 9A b1 \x20(7) l' +sShiftSigned64\x20(7) l' sSignExt16\x20(5) w' sS8\x20(7) x' sSignExt16\x20(5) %( @@ -27478,7 +28206,7 @@ sSignExt16\x20(5) G+ sSignExt16\x20(5) V+ 1W+ sSignExt16\x20(5) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sSignExt16\x20(5) q+ s\x20(15) r+ sSignExt16\x20(5) }+ @@ -27825,6 +28553,22 @@ b11 9A b11 \x20(7) l' +sShiftSigned64\x20(7) l' sDupLow32\x20(1) w' sS8\x20(7) x' sDupLow32\x20(1) %( @@ -33528,7 +34448,7 @@ sDupLow32\x20(1) G+ sDupLow32\x20(1) V+ 1W+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sDupLow32\x20(1) q+ s\x20(15) r+ sDupLow32\x20(1) }+ @@ -33898,6 +34818,22 @@ b1 9A b1 \x20(7) l' +sShiftSigned64\x20(7) l' sSignExt16\x20(5) w' sS8\x20(7) x' sSignExt16\x20(5) %( @@ -34295,7 +35247,7 @@ sSignExt16\x20(5) G+ sSignExt16\x20(5) V+ 1W+ sSignExt16\x20(5) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sSignExt16\x20(5) q+ s\x20(15) r+ sSignExt16\x20(5) }+ @@ -34642,6 +35594,22 @@ b11 9A b11 \x20(7) l' +sShiftSigned64\x20(7) l' sDupLow32\x20(1) w' sS8\x20(7) x' sDupLow32\x20(1) %( @@ -40613,7 +41773,7 @@ sDupLow32\x20(1) G+ sDupLow32\x20(1) V+ 1W+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sDupLow32\x20(1) q+ s\x20(15) r+ sDupLow32\x20(1) }+ @@ -40983,6 +42143,22 @@ b1 9A b1 \x20(7) l' +sShiftSigned64\x20(7) l' sSignExt16\x20(5) w' sS8\x20(7) x' sSignExt16\x20(5) %( @@ -41380,7 +42572,7 @@ sSignExt16\x20(5) G+ sSignExt16\x20(5) V+ 1W+ sSignExt16\x20(5) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sSignExt16\x20(5) q+ s\x20(15) r+ sSignExt16\x20(5) }+ @@ -41727,6 +42919,22 @@ b11 9A b11 \x20(7) l' +sShiftSigned64\x20(7) l' sDupLow32\x20(1) w' sS8\x20(7) x' sDupLow32\x20(1) %( @@ -47532,7 +48916,7 @@ sDupLow32\x20(1) G+ sDupLow32\x20(1) V+ 1W+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sDupLow32\x20(1) q+ s\x20(15) r+ sDupLow32\x20(1) }+ @@ -47902,6 +49286,22 @@ b1 9A b1 \x20(7) l' +sShiftSigned64\x20(7) l' sSignExt16\x20(5) w' sS8\x20(7) x' sSignExt16\x20(5) %( @@ -48299,7 +49715,7 @@ sSignExt16\x20(5) G+ sSignExt16\x20(5) V+ 1W+ sSignExt16\x20(5) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ sSignExt16\x20(5) q+ s\x20(15) r+ sSignExt16\x20(5) }+ @@ -48646,6 +50062,22 @@ b11 9A b11 \x20(7) l' +sShiftSigned64\x20(7) l' b11111111 r' b10 t' b1001000000000 u' @@ -58916,7 +60668,7 @@ b10 b+ b1001000000000 c+ 0d+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b11111111 l+ b10 n+ b1001000000000 o+ @@ -59821,8 +61573,56 @@ b1 ?A b0 @A b1 BA b0 CA -b0 EA -b11111111 FA +b10 EA +b1 FA +b0 GA +b10 IA +b1 JA +b0 KA +b10 MA +b1 NA +b0 OA +b10 QA +b1 RA +b0 SA +b10 UA +b1 VA +b0 WA +b10 YA +b1 ZA +b0 [A +b10 ]A +b1 ^A +b0 _A +b10 aA +b1 bA +b0 cA +b10 eA +b1 fA +b0 gA +b10 iA +b1 jA +b0 kA +b101 mA +b1 nA +b0 oA +b101 qA +b1 rA +b0 sA +b10 uA +b1 vA +b0 wA +b10 yA +b1 zA +b0 {A +b10 }A +b1 ~A +b0 !B +b10 #B +b1 $B +b0 %B +b0 'B +b11111111 (B #91000000 b1110000111000 + b1110000111000 : @@ -59995,6 +61795,22 @@ b1 :A b1 =A b1 @A b1 CA +b1 GA +b1 KA +b1 OA +b1 SA +b1 WA +b1 [A +b1 _A +b1 cA +b1 gA +b1 kA +b1 oA +b1 sA +b1 wA +b1 {A +b1 !B +b1 %B #92000000 b1011 $ b1001 ( @@ -61181,8 +62997,56 @@ b101 ?A b1111 @A b101 BA b1111 CA -b11 EA -b1011 FA +b10100 EA +b101 FA +b1111 GA +b10100 IA +b101 JA +b1111 KA +b10100 MA +b101 NA +b1111 OA +b10100 QA +b101 RA +b1111 SA +b10100 UA +b101 VA +b1111 WA +b10100 YA +b101 ZA +b1111 [A +b10100 ]A +b101 ^A +b1111 _A +b10100 aA +b101 bA +b1111 cA +b10100 eA +b101 fA +b1111 gA +b10100 iA +b101 jA +b1111 kA +b101001 mA +b101 nA +b1111 oA +b101001 qA +b101 rA +b1111 sA +b10100 uA +b101 vA +b1111 wA +b10100 yA +b101 zA +b1111 {A +b10100 }A +b101 ~A +b1111 !B +b10100 #B +b101 $B +b1111 %B +b11 'B +b1011 (B #93000000 b11111111 $ b11111111 ( @@ -61292,7 +63156,7 @@ b10 h' b1000111000000 i' 0j' sDupLow32\x20(1) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b11111111 r' b10 t' b1000111000000 u' @@ -61448,7 +63312,7 @@ b10 b+ b1000111000000 c+ 0d+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b11111111 l+ b10 n+ b1000111000000 o+ @@ -62353,8 +64217,56 @@ b1 ?A b0 @A b1 BA b0 CA -b0 EA -b11111111 FA +b10 EA +b1 FA +b0 GA +b10 IA +b1 JA +b0 KA +b10 MA +b1 NA +b0 OA +b10 QA +b1 RA +b0 SA +b10 UA +b1 VA +b0 WA +b10 YA +b1 ZA +b0 [A +b10 ]A +b1 ^A +b0 _A +b10 aA +b1 bA +b0 cA +b10 eA +b1 fA +b0 gA +b10 iA +b1 jA +b0 kA +b101 mA +b1 nA +b0 oA +b101 qA +b1 rA +b0 sA +b10 uA +b1 vA +b0 wA +b10 yA +b1 zA +b0 {A +b10 }A +b1 ~A +b0 !B +b10 #B +b1 $B +b0 %B +b0 'B +b11111111 (B #94000000 b1110000111000 + b1110000111000 : @@ -62527,6 +64439,22 @@ b1 :A b1 =A b1 @A b1 CA +b1 GA +b1 KA +b1 OA +b1 SA +b1 WA +b1 [A +b1 _A +b1 cA +b1 gA +b1 kA +b1 oA +b1 sA +b1 wA +b1 {A +b1 !B +b1 %B #95000000 b1011 $ b1001 ( @@ -63709,8 +65637,56 @@ b101 ?A b1111 @A b101 BA b1111 CA -b11 EA -b1011 FA +b10100 EA +b101 FA +b1111 GA +b10100 IA +b101 JA +b1111 KA +b10100 MA +b101 NA +b1111 OA +b10100 QA +b101 RA +b1111 SA +b10100 UA +b101 VA +b1111 WA +b10100 YA +b101 ZA +b1111 [A +b10100 ]A +b101 ^A +b1111 _A +b10100 aA +b101 bA +b1111 cA +b10100 eA +b101 fA +b1111 gA +b10100 iA +b101 jA +b1111 kA +b101001 mA +b101 nA +b1111 oA +b101001 qA +b101 rA +b1111 sA +b10100 uA +b101 vA +b1111 wA +b10100 yA +b101 zA +b1111 {A +b10100 }A +b101 ~A +b1111 !B +b10100 #B +b101 $B +b1111 %B +b11 'B +b1011 (B #96000000 b11111111 $ b11111111 ( @@ -63820,7 +65796,7 @@ b10 h' b1001110000000 i' 0j' sDupLow32\x20(1) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b11111111 r' b10 t' b1001110000000 u' @@ -63976,7 +65952,7 @@ b10 b+ b1001110000000 c+ 0d+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b11111111 l+ b10 n+ b1001110000000 o+ @@ -64881,8 +66857,56 @@ b1 ?A b0 @A b1 BA b0 CA -b0 EA -b11111111 FA +b10 EA +b1 FA +b0 GA +b10 IA +b1 JA +b0 KA +b10 MA +b1 NA +b0 OA +b10 QA +b1 RA +b0 SA +b10 UA +b1 VA +b0 WA +b10 YA +b1 ZA +b0 [A +b10 ]A +b1 ^A +b0 _A +b10 aA +b1 bA +b0 cA +b10 eA +b1 fA +b0 gA +b10 iA +b1 jA +b0 kA +b101 mA +b1 nA +b0 oA +b101 qA +b1 rA +b0 sA +b10 uA +b1 vA +b0 wA +b10 yA +b1 zA +b0 {A +b10 }A +b1 ~A +b0 !B +b10 #B +b1 $B +b0 %B +b0 'B +b11111111 (B #97000000 b1110000111000 + b1110000111000 : @@ -65055,6 +67079,22 @@ b1 :A b1 =A b1 @A b1 CA +b1 GA +b1 KA +b1 OA +b1 SA +b1 WA +b1 [A +b1 _A +b1 cA +b1 gA +b1 kA +b1 oA +b1 sA +b1 wA +b1 {A +b1 !B +b1 %B #98000000 b1011 $ b1001 ( @@ -66225,8 +68265,56 @@ b101 ?A b1111 @A b101 BA b1111 CA -b11 EA -b1011 FA +b10100 EA +b101 FA +b1111 GA +b10100 IA +b101 JA +b1111 KA +b10100 MA +b101 NA +b1111 OA +b10100 QA +b101 RA +b1111 SA +b10100 UA +b101 VA +b1111 WA +b10100 YA +b101 ZA +b1111 [A +b10100 ]A +b101 ^A +b1111 _A +b10100 aA +b101 bA +b1111 cA +b10100 eA +b101 fA +b1111 gA +b10100 iA +b101 jA +b1111 kA +b101001 mA +b101 nA +b1111 oA +b101001 qA +b101 rA +b1111 sA +b10100 uA +b101 vA +b1111 wA +b10100 yA +b101 zA +b1111 {A +b10100 }A +b101 ~A +b1111 !B +b10100 #B +b101 $B +b1111 %B +b11 'B +b1011 (B #99000000 b11111111 $ b11111111 ( @@ -66336,7 +68424,7 @@ b10 h' b1000110000000 i' 0j' sDupLow32\x20(1) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b11111111 r' b10 t' b1000110000000 u' @@ -66492,7 +68580,7 @@ b10 b+ b1000110000000 c+ 0d+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b11111111 l+ b10 n+ b1000110000000 o+ @@ -67397,8 +69485,56 @@ b1 ?A b0 @A b1 BA b0 CA -b0 EA -b11111111 FA +b10 EA +b1 FA +b0 GA +b10 IA +b1 JA +b0 KA +b10 MA +b1 NA +b0 OA +b10 QA +b1 RA +b0 SA +b10 UA +b1 VA +b0 WA +b10 YA +b1 ZA +b0 [A +b10 ]A +b1 ^A +b0 _A +b10 aA +b1 bA +b0 cA +b10 eA +b1 fA +b0 gA +b10 iA +b1 jA +b0 kA +b101 mA +b1 nA +b0 oA +b101 qA +b1 rA +b0 sA +b10 uA +b1 vA +b0 wA +b10 yA +b1 zA +b0 {A +b10 }A +b1 ~A +b0 !B +b10 #B +b1 $B +b0 %B +b0 'B +b11111111 (B #100000000 b1110000111000 + b1110000111000 : @@ -67571,6 +69707,22 @@ b1 :A b1 =A b1 @A b1 CA +b1 GA +b1 KA +b1 OA +b1 SA +b1 WA +b1 [A +b1 _A +b1 cA +b1 gA +b1 kA +b1 oA +b1 sA +b1 wA +b1 {A +b1 !B +b1 %B #101000000 b1011 $ b1001 ( @@ -68749,8 +70901,56 @@ b101 ?A b1111 @A b101 BA b1111 CA -b11 EA -b1011 FA +b10100 EA +b101 FA +b1111 GA +b10100 IA +b101 JA +b1111 KA +b10100 MA +b101 NA +b1111 OA +b10100 QA +b101 RA +b1111 SA +b10100 UA +b101 VA +b1111 WA +b10100 YA +b101 ZA +b1111 [A +b10100 ]A +b101 ^A +b1111 _A +b10100 aA +b101 bA +b1111 cA +b10100 eA +b101 fA +b1111 gA +b10100 iA +b101 jA +b1111 kA +b101001 mA +b101 nA +b1111 oA +b101001 qA +b101 rA +b1111 sA +b10100 uA +b101 vA +b1111 wA +b10100 yA +b101 zA +b1111 {A +b10100 }A +b101 ~A +b1111 !B +b10100 #B +b101 $B +b1111 %B +b11 'B +b1011 (B #102000000 b11111111 $ b11111111 ( @@ -68860,7 +71060,7 @@ b10 h' b1000001000000 i' 0j' sDupLow32\x20(1) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b11111111 r' b10 t' b1000001000000 u' @@ -69016,7 +71216,7 @@ b10 b+ b1000001000000 c+ 0d+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b11111111 l+ b10 n+ b1000001000000 o+ @@ -69921,8 +72121,56 @@ b1 ?A b0 @A b1 BA b0 CA -b0 EA -b11111111 FA +b10 EA +b1 FA +b0 GA +b10 IA +b1 JA +b0 KA +b10 MA +b1 NA +b0 OA +b10 QA +b1 RA +b0 SA +b10 UA +b1 VA +b0 WA +b10 YA +b1 ZA +b0 [A +b10 ]A +b1 ^A +b0 _A +b10 aA +b1 bA +b0 cA +b10 eA +b1 fA +b0 gA +b10 iA +b1 jA +b0 kA +b101 mA +b1 nA +b0 oA +b101 qA +b1 rA +b0 sA +b10 uA +b1 vA +b0 wA +b10 yA +b1 zA +b0 {A +b10 }A +b1 ~A +b0 !B +b10 #B +b1 $B +b0 %B +b0 'B +b11111111 (B #103000000 b1110000111000 + b1110000111000 : @@ -70095,6 +72343,22 @@ b1 :A b1 =A b1 @A b1 CA +b1 GA +b1 KA +b1 OA +b1 SA +b1 WA +b1 [A +b1 _A +b1 cA +b1 gA +b1 kA +b1 oA +b1 sA +b1 wA +b1 {A +b1 !B +b1 %B #104000000 b1011 $ b1001 ( @@ -71265,8 +73529,56 @@ b101 ?A b1111 @A b101 BA b1111 CA -b11 EA -b1011 FA +b10100 EA +b101 FA +b1111 GA +b10100 IA +b101 JA +b1111 KA +b10100 MA +b101 NA +b1111 OA +b10100 QA +b101 RA +b1111 SA +b10100 UA +b101 VA +b1111 WA +b10100 YA +b101 ZA +b1111 [A +b10100 ]A +b101 ^A +b1111 _A +b10100 aA +b101 bA +b1111 cA +b10100 eA +b101 fA +b1111 gA +b10100 iA +b101 jA +b1111 kA +b101001 mA +b101 nA +b1111 oA +b101001 qA +b101 rA +b1111 sA +b10100 uA +b101 vA +b1111 wA +b10100 yA +b101 zA +b1111 {A +b10100 }A +b101 ~A +b1111 !B +b10100 #B +b101 $B +b1111 %B +b11 'B +b1011 (B #105000000 b11111111 $ b11111111 ( @@ -71376,7 +73688,7 @@ b10 h' b1001001000000 i' 0j' sDupLow32\x20(1) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b11111111 r' b10 t' b1001001000000 u' @@ -71532,7 +73844,7 @@ b10 b+ b1001001000000 c+ 0d+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b11111111 l+ b10 n+ b1001001000000 o+ @@ -72437,8 +74749,56 @@ b1 ?A b0 @A b1 BA b0 CA -b0 EA -b11111111 FA +b10 EA +b1 FA +b0 GA +b10 IA +b1 JA +b0 KA +b10 MA +b1 NA +b0 OA +b10 QA +b1 RA +b0 SA +b10 UA +b1 VA +b0 WA +b10 YA +b1 ZA +b0 [A +b10 ]A +b1 ^A +b0 _A +b10 aA +b1 bA +b0 cA +b10 eA +b1 fA +b0 gA +b10 iA +b1 jA +b0 kA +b101 mA +b1 nA +b0 oA +b101 qA +b1 rA +b0 sA +b10 uA +b1 vA +b0 wA +b10 yA +b1 zA +b0 {A +b10 }A +b1 ~A +b0 !B +b10 #B +b1 $B +b0 %B +b0 'B +b11111111 (B #106000000 b1110000111000 + b1110000111000 : @@ -72611,6 +74971,22 @@ b1 :A b1 =A b1 @A b1 CA +b1 GA +b1 KA +b1 OA +b1 SA +b1 WA +b1 [A +b1 _A +b1 cA +b1 gA +b1 kA +b1 oA +b1 sA +b1 wA +b1 {A +b1 !B +b1 %B #107000000 b1011 $ b1001 ( @@ -73794,8 +76170,56 @@ b101 ?A b1111 @A b101 BA b1111 CA -b11 EA -b1011 FA +b10100 EA +b101 FA +b1111 GA +b10100 IA +b101 JA +b1111 KA +b10100 MA +b101 NA +b1111 OA +b10100 QA +b101 RA +b1111 SA +b10100 UA +b101 VA +b1111 WA +b10100 YA +b101 ZA +b1111 [A +b10100 ]A +b101 ^A +b1111 _A +b10100 aA +b101 bA +b1111 cA +b10100 eA +b101 fA +b1111 gA +b10100 iA +b101 jA +b1111 kA +b101001 mA +b101 nA +b1111 oA +b101001 qA +b101 rA +b1111 sA +b10100 uA +b101 vA +b1111 wA +b10100 yA +b101 zA +b1111 {A +b10100 }A +b101 ~A +b1111 !B +b10100 #B +b101 $B +b1111 %B +b11 'B +b1011 (B #108000000 b11111111 $ b11111111 ( @@ -73905,7 +76329,7 @@ b10 h' b1000100000000 i' 0j' sDupLow32\x20(1) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b11111111 r' b10 t' b1000100000000 u' @@ -74061,7 +76485,7 @@ b10 b+ b1000100000000 c+ 0d+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b11111111 l+ b10 n+ b1000100000000 o+ @@ -74966,8 +77390,56 @@ b1 ?A b0 @A b1 BA b0 CA -b0 EA -b11111111 FA +b10 EA +b1 FA +b0 GA +b10 IA +b1 JA +b0 KA +b10 MA +b1 NA +b0 OA +b10 QA +b1 RA +b0 SA +b10 UA +b1 VA +b0 WA +b10 YA +b1 ZA +b0 [A +b10 ]A +b1 ^A +b0 _A +b10 aA +b1 bA +b0 cA +b10 eA +b1 fA +b0 gA +b10 iA +b1 jA +b0 kA +b101 mA +b1 nA +b0 oA +b101 qA +b1 rA +b0 sA +b10 uA +b1 vA +b0 wA +b10 yA +b1 zA +b0 {A +b10 }A +b1 ~A +b0 !B +b10 #B +b1 $B +b0 %B +b0 'B +b11111111 (B #109000000 b1110000111000 + b1110000111000 : @@ -75140,6 +77612,22 @@ b1 :A b1 =A b1 @A b1 CA +b1 GA +b1 KA +b1 OA +b1 SA +b1 WA +b1 [A +b1 _A +b1 cA +b1 gA +b1 kA +b1 oA +b1 sA +b1 wA +b1 {A +b1 !B +b1 %B #110000000 b1011 $ b1001 ( @@ -76322,8 +78810,56 @@ b101 ?A b1111 @A b101 BA b1111 CA -b11 EA -b1011 FA +b10100 EA +b101 FA +b1111 GA +b10100 IA +b101 JA +b1111 KA +b10100 MA +b101 NA +b1111 OA +b10100 QA +b101 RA +b1111 SA +b10100 UA +b101 VA +b1111 WA +b10100 YA +b101 ZA +b1111 [A +b10100 ]A +b101 ^A +b1111 _A +b10100 aA +b101 bA +b1111 cA +b10100 eA +b101 fA +b1111 gA +b10100 iA +b101 jA +b1111 kA +b101001 mA +b101 nA +b1111 oA +b101001 qA +b101 rA +b1111 sA +b10100 uA +b101 vA +b1111 wA +b10100 yA +b101 zA +b1111 {A +b10100 }A +b101 ~A +b1111 !B +b10100 #B +b101 $B +b1111 %B +b11 'B +b1011 (B #111000000 b11111111 $ b11111111 ( @@ -76433,7 +78969,7 @@ b10 h' b1001101000000 i' 0j' sDupLow32\x20(1) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b11111111 r' b10 t' b1001101000000 u' @@ -76589,7 +79125,7 @@ b10 b+ b1001101000000 c+ 0d+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b11111111 l+ b10 n+ b1001101000000 o+ @@ -77494,8 +80030,56 @@ b1 ?A b0 @A b1 BA b0 CA -b0 EA -b11111111 FA +b10 EA +b1 FA +b0 GA +b10 IA +b1 JA +b0 KA +b10 MA +b1 NA +b0 OA +b10 QA +b1 RA +b0 SA +b10 UA +b1 VA +b0 WA +b10 YA +b1 ZA +b0 [A +b10 ]A +b1 ^A +b0 _A +b10 aA +b1 bA +b0 cA +b10 eA +b1 fA +b0 gA +b10 iA +b1 jA +b0 kA +b101 mA +b1 nA +b0 oA +b101 qA +b1 rA +b0 sA +b10 uA +b1 vA +b0 wA +b10 yA +b1 zA +b0 {A +b10 }A +b1 ~A +b0 !B +b10 #B +b1 $B +b0 %B +b0 'B +b11111111 (B #112000000 b1110000111000 + b1110000111000 : @@ -77668,6 +80252,22 @@ b1 :A b1 =A b1 @A b1 CA +b1 GA +b1 KA +b1 OA +b1 SA +b1 WA +b1 [A +b1 _A +b1 cA +b1 gA +b1 kA +b1 oA +b1 sA +b1 wA +b1 {A +b1 !B +b1 %B #113000000 sTransformedMove\x20(1) ! sAddSub\x20(0) " @@ -78480,6 +81080,54 @@ b0 ?A b0 @A b0 BA b0 CA +b0 EA +b0 FA +b0 GA +b0 IA +b0 JA +b0 KA +b0 MA +b0 NA +b0 OA +b0 QA +b0 RA +b0 SA +b0 UA +b0 VA +b0 WA +b0 YA +b0 ZA +b0 [A +b0 ]A +b0 ^A +b0 _A +b0 aA +b0 bA +b0 cA +b0 eA +b0 fA +b0 gA +b0 iA +b0 jA +b0 kA +b0 mA +b0 nA +b0 oA +b0 qA +b0 rA +b0 sA +b0 uA +b0 vA +b0 wA +b0 yA +b0 zA +b0 {A +b0 }A +b0 ~A +b0 !B +b0 #B +b0 $B +b0 %B #114000000 b1101 $ b1111 ( @@ -79400,8 +82048,40 @@ b11100 ?A b10100 @A b11100 BA b10100 CA -b101 EA -b1101 FA +b11100 FA +b10100 GA +b11100 JA +b10100 KA +b11100 NA +b10100 OA +b11100 RA +b10100 SA +b11100 VA +b10100 WA +b11100 ZA +b10100 [A +b11100 ^A +b10100 _A +b11100 bA +b10100 cA +b11100 fA +b10100 gA +b11100 jA +b10100 kA +b11100 nA +b10100 oA +b11100 rA +b10100 sA +b11100 vA +b10100 wA +b11100 zA +b10100 {A +b11100 ~A +b10100 !B +b11100 $B +b10100 %B +b101 'B +b1101 (B #115000000 b11111111 ( b11111111 7 @@ -79642,6 +82322,22 @@ b0 9A b0 \x20(7) l' +sShiftSigned64\x20(7) l' b10001101000100 u' sDupLow32\x20(1) w' sS8\x20(7) x' @@ -97416,7 +101008,7 @@ sDupLow32\x20(1) V+ 1X+ b10001101000100 c+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b10001101000100 o+ sDupLow32\x20(1) q+ s\x20(15) r+ @@ -98161,6 +101753,54 @@ b1 ?A b0 @A b1 BA b0 CA +b100 EA +b1 FA +b0 GA +b100 IA +b1 JA +b0 KA +b100 MA +b1 NA +b0 OA +b100 QA +b1 RA +b0 SA +b100 UA +b1 VA +b0 WA +b100 YA +b1 ZA +b0 [A +b100 ]A +b1 ^A +b0 _A +b100 aA +b1 bA +b0 cA +b100 eA +b1 fA +b0 gA +b100 iA +b1 jA +b0 kA +b1000 mA +b1 nA +b0 oA +b1000 qA +b1 rA +b0 sA +b100 uA +b1 vA +b0 wA +b100 yA +b1 zA +b0 {A +b100 }A +b1 ~A +b0 !B +b100 #B +b1 $B +b0 %B #155000000 b0 ( b0 7 @@ -98563,6 +102203,22 @@ b10001 9A b10001 \x20(7) l' +sShiftSigned64\x20(7) l' b10001101000100 u' sDupLow32\x20(1) w' sS8\x20(7) x' @@ -101250,7 +105018,7 @@ sDupLow32\x20(1) V+ 1X+ b10001101000100 c+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b10001101000100 o+ sDupLow32\x20(1) q+ s\x20(15) r+ @@ -101995,6 +105763,54 @@ b1 ?A b0 @A b1 BA b0 CA +b100 EA +b1 FA +b0 GA +b100 IA +b1 JA +b0 KA +b100 MA +b1 NA +b0 OA +b100 QA +b1 RA +b0 SA +b100 UA +b1 VA +b0 WA +b100 YA +b1 ZA +b0 [A +b100 ]A +b1 ^A +b0 _A +b100 aA +b1 bA +b0 cA +b100 eA +b1 fA +b0 gA +b100 iA +b1 jA +b0 kA +b1000 mA +b1 nA +b0 oA +b1000 qA +b1 rA +b0 sA +b100 uA +b1 vA +b0 wA +b100 yA +b1 zA +b0 {A +b100 }A +b1 ~A +b0 !B +b100 #B +b1 $B +b0 %B #163000000 b0 ( b0 7 @@ -102397,6 +106213,22 @@ b10001 9A b10001 \x20(7) l' +sShiftSigned64\x20(7) l' b10001101000100 u' sDupLow32\x20(1) w' sS8\x20(7) x' @@ -124817,7 +129609,7 @@ sDupLow32\x20(1) V+ 1X+ b10001101000100 c+ sDupLow32\x20(1) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b10001101000100 o+ sDupLow32\x20(1) q+ s\x20(15) r+ @@ -125562,6 +130354,54 @@ b1 ?A b0 @A b1 BA b0 CA +b100 EA +b1 FA +b0 GA +b100 IA +b1 JA +b0 KA +b100 MA +b1 NA +b0 OA +b100 QA +b1 RA +b0 SA +b100 UA +b1 VA +b0 WA +b100 YA +b1 ZA +b0 [A +b100 ]A +b1 ^A +b0 _A +b100 aA +b1 bA +b0 cA +b100 eA +b1 fA +b0 gA +b100 iA +b1 jA +b0 kA +b1000 mA +b1 nA +b0 oA +b1000 qA +b1 rA +b0 sA +b100 uA +b1 vA +b0 wA +b100 yA +b1 zA +b0 {A +b100 }A +b1 ~A +b0 !B +b100 #B +b1 $B +b0 %B #205000000 b0 ( b0 7 @@ -125964,6 +130804,22 @@ b10001 9A b10001 @@ -138533,6 +143917,22 @@ b1101 :A b1101 =A b1101 @A b1101 CA +b1101 GA +b1101 KA +b1101 OA +b1101 SA +b1101 WA +b1101 [A +b1101 _A +b1101 cA +b1101 gA +b1101 kA +b1101 oA +b1101 sA +b1101 wA +b1101 {A +b1101 !B +b1101 %B #235000000 sCompareI\x20(7) " b0 ) @@ -138915,6 +144315,38 @@ b1100 :A b1100 =A b1100 @A b1100 CA +b10 EA +b1100 GA +b10 IA +b1100 KA +b10 MA +b1100 OA +b10 QA +b1100 SA +b10 UA +b1100 WA +b10 YA +b1100 [A +b10 ]A +b1100 _A +b10 aA +b1100 cA +b10 eA +b1100 gA +b10 iA +b1100 kA +b100 mA +b1100 oA +b100 qA +b1100 sA +b10 uA +b1100 wA +b10 yA +b1100 {A +b10 }A +b1100 !B +b10 #B +b1100 %B #236000000 b1000100110101011 + 0/ @@ -139327,6 +144759,38 @@ b1101 :A b1101 =A b1101 @A b1101 CA +b10001 EA +b1101 GA +b10001 IA +b1101 KA +b10001 MA +b1101 OA +b10001 QA +b1101 SA +b10001 UA +b1101 WA +b10001 YA +b1101 [A +b10001 ]A +b1101 _A +b10001 aA +b1101 cA +b10001 eA +b1101 gA +b10001 iA +b1101 kA +b100011 mA +b1101 oA +b100011 qA +b1101 sA +b10001 uA +b1101 wA +b10001 yA +b1101 {A +b10001 }A +b1101 !B +b10001 #B +b1101 %B #237000000 sCompare\x20(6) " b100101 ) @@ -139749,6 +145213,38 @@ b1100 :A b1100 =A b1100 @A b1100 CA +b101 EA +b1100 GA +b101 IA +b1100 KA +b101 MA +b1100 OA +b101 QA +b1100 SA +b101 UA +b1100 WA +b101 YA +b1100 [A +b101 ]A +b1100 _A +b101 aA +b1100 cA +b101 eA +b1100 gA +b101 iA +b1100 kA +b1010 mA +b1100 oA +b1010 qA +b1100 sA +b101 uA +b1100 wA +b101 yA +b1100 {A +b101 }A +b1100 !B +b101 #B +b1100 %B #238000000 0/ 0> @@ -139909,6 +145405,22 @@ b1101 :A b1101 =A b1101 @A b1101 CA +b1101 GA +b1101 KA +b1101 OA +b1101 SA +b1101 WA +b1101 [A +b1101 _A +b1101 cA +b1101 gA +b1101 kA +b1101 oA +b1101 sA +b1101 wA +b1101 {A +b1101 !B +b1101 %B #239000000 11 1@ @@ -140168,6 +145680,22 @@ b1100 :A b1100 =A b1100 @A b1100 CA +b1100 GA +b1100 KA +b1100 OA +b1100 SA +b1100 WA +b1100 [A +b1100 _A +b1100 cA +b1100 gA +b1100 kA +b1100 oA +b1100 sA +b1100 wA +b1100 {A +b1100 !B +b1100 %B #240000000 1. 1= @@ -140329,6 +145857,22 @@ b1101 :A b1101 =A b1101 @A b1101 CA +b1101 GA +b1101 KA +b1101 OA +b1101 SA +b1101 WA +b1101 [A +b1101 _A +b1101 cA +b1101 gA +b1101 kA +b1101 oA +b1101 sA +b1101 wA +b1101 {A +b1101 !B +b1101 %B #241000000 0. 1/ @@ -140596,6 +146140,22 @@ b1100 :A b1100 =A b1100 @A b1100 CA +b1100 GA +b1100 KA +b1100 OA +b1100 SA +b1100 WA +b1100 [A +b1100 _A +b1100 cA +b1100 gA +b1100 kA +b1100 oA +b1100 sA +b1100 wA +b1100 {A +b1100 !B +b1100 %B #242000000 sLogicalI\x20(4) " b100011 $ @@ -140701,7 +146261,7 @@ b11111111 f' b1111111111000100110101000 i' 1j' sSignExt16\x20(5) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b11111111 r' b1111111111000100110101000 u' 1v' @@ -140833,7 +146393,7 @@ b11111111 `+ b1111111111000100110101000 c+ 1d+ sSignExt16\x20(5) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b11111111 l+ b1111111111000100110101000 o+ 1p+ @@ -141627,8 +147187,56 @@ b11 ?A b100 @A b11 BA b100 CA -b1 EA -b1001 FA +b10001 EA +b11 FA +b100 GA +b10001 IA +b11 JA +b100 KA +b10001 MA +b11 NA +b100 OA +b10001 QA +b11 RA +b100 SA +b10001 UA +b11 VA +b100 WA +b10001 YA +b11 ZA +b100 [A +b10001 ]A +b11 ^A +b100 _A +b10001 aA +b11 bA +b100 cA +b10001 eA +b11 fA +b100 gA +b10001 iA +b11 jA +b100 kA +b100011 mA +b11 nA +b100 oA +b100011 qA +b11 rA +b100 sA +b10001 uA +b11 vA +b100 wA +b10001 yA +b11 zA +b100 {A +b10001 }A +b11 ~A +b100 !B +b10001 #B +b11 $B +b100 %B +b1 'B +b1001 (B #243000000 b1000100 * b1101010110000000000000000 + @@ -142690,7 +148298,55 @@ b0 @A b0 BA b0 CA b0 EA -b11111111 FA +b0 FA +b0 GA +b0 IA +b0 JA +b0 KA +b0 MA +b0 NA +b0 OA +b0 QA +b0 RA +b0 SA +b0 UA +b0 VA +b0 WA +b0 YA +b0 ZA +b0 [A +b0 ]A +b0 ^A +b0 _A +b0 aA +b0 bA +b0 cA +b0 eA +b0 fA +b0 gA +b0 iA +b0 jA +b0 kA +b0 mA +b0 nA +b0 oA +b0 qA +b0 rA +b0 sA +b0 uA +b0 vA +b0 wA +b0 yA +b0 zA +b0 {A +b0 }A +b0 ~A +b0 !B +b0 #B +b0 $B +b0 %B +b0 'B +b11111111 (B #246000000 b100011 $ b100100 ( @@ -142782,7 +148438,7 @@ b0 h' b1111111111000100110101000 i' 1j' sSignExt16\x20(5) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b0 t' b1111111111000100110101000 u' 1v' @@ -142908,7 +148564,7 @@ b0 b+ b1111111111000100110101000 c+ 1d+ sSignExt16\x20(5) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b0 n+ b1111111111000100110101000 o+ 1p+ @@ -143680,8 +149336,56 @@ b11 ?A b100 @A b11 BA b100 CA -b1 EA -b1001 FA +b10001 EA +b11 FA +b100 GA +b10001 IA +b11 JA +b100 KA +b10001 MA +b11 NA +b100 OA +b10001 QA +b11 RA +b100 SA +b10001 UA +b11 VA +b100 WA +b10001 YA +b11 ZA +b100 [A +b10001 ]A +b11 ^A +b100 _A +b10001 aA +b11 bA +b100 cA +b10001 eA +b11 fA +b100 gA +b10001 iA +b11 jA +b100 kA +b100011 mA +b11 nA +b100 oA +b100011 qA +b11 rA +b100 sA +b10001 uA +b11 vA +b100 wA +b10001 yA +b11 zA +b100 {A +b10001 }A +b11 ~A +b100 !B +b10001 #B +b11 $B +b100 %B +b1 'B +b1001 (B #247000000 b0 * b1000100110101011 + @@ -144694,7 +150398,55 @@ b0 @A b0 BA b0 CA b0 EA -b11111111 FA +b0 FA +b0 GA +b0 IA +b0 JA +b0 KA +b0 MA +b0 NA +b0 OA +b0 QA +b0 RA +b0 SA +b0 UA +b0 VA +b0 WA +b0 YA +b0 ZA +b0 [A +b0 ]A +b0 ^A +b0 _A +b0 aA +b0 bA +b0 cA +b0 eA +b0 fA +b0 gA +b0 iA +b0 jA +b0 kA +b0 mA +b0 nA +b0 oA +b0 qA +b0 rA +b0 sA +b0 uA +b0 vA +b0 wA +b0 yA +b0 zA +b0 {A +b0 }A +b0 ~A +b0 !B +b0 #B +b0 $B +b0 %B +b0 'B +b11111111 (B #249000000 b100011 $ b100100 ( @@ -144785,7 +150537,7 @@ b0 h' b1111111111000100110101000 i' 1j' sSignExt16\x20(5) k' -s\x20(7) l' +sShiftSigned64\x20(7) l' b0 t' b1111111111000100110101000 u' 1v' @@ -144911,7 +150663,7 @@ b0 b+ b1111111111000100110101000 c+ 1d+ sSignExt16\x20(5) e+ -s\x20(7) f+ +sShiftSigned64\x20(7) f+ b0 n+ b1111111111000100110101000 o+ 1p+ @@ -145683,8 +151435,56 @@ b11 ?A b100 @A b11 BA b100 CA -b1 EA -b1001 FA +b10001 EA +b11 FA +b100 GA +b10001 IA +b11 JA +b100 KA +b10001 MA +b11 NA +b100 OA +b10001 QA +b11 RA +b100 SA +b10001 UA +b11 VA +b100 WA +b10001 YA +b11 ZA +b100 [A +b10001 ]A +b11 ^A +b100 _A +b10001 aA +b11 bA +b100 cA +b10001 eA +b11 fA +b100 gA +b10001 iA +b11 jA +b100 kA +b100011 mA +b11 nA +b100 oA +b100011 qA +b11 rA +b100 sA +b10001 uA +b11 vA +b100 wA +b10001 yA +b11 zA +b100 {A +b10001 }A +b11 ~A +b100 !B +b10001 #B +b11 $B +b100 %B +b1 'B +b1001 (B #250000000 sLogical\x20(3) " b100101 ) @@ -145989,6 +151789,22 @@ b101 #A b101 'A b101 +A b101 /A +b101 EA +b101 IA +b101 MA +b101 QA +b101 UA +b101 YA +b101 ]A +b101 aA +b101 eA +b101 iA +b1010 mA +b1010 qA +b101 uA +b101 yA +b101 }A +b101 #B #251000000 sHdlSome\x20(1) ' sHdlSome\x20(1) 6 @@ -146250,7 +152066,7 @@ sHdlNone\x20(0) S sHdlNone\x20(0) b 1i sHdlNone\x20(0) q -s\x20(7) x +sShiftSigned64\x20(7) x sHdlNone\x20(0) } sS8\x20(7) &" sHdlNone\x20(0) +" @@ -146786,6 +152602,22 @@ b100 #A b100 'A b100 +A b100 /A +b100 EA +b100 IA +b100 MA +b100 QA +b100 UA +b100 YA +b100 ]A +b100 aA +b100 eA +b100 iA +b1000 mA +b1000 qA +b100 uA +b100 yA +b100 }A +b100 #B #258000000 sAluBranch\x20(0) ! sLogical\x20(3) " @@ -147028,6 +152860,22 @@ b101 #A b101 'A b101 +A b101 /A +b101 EA +b101 IA +b101 MA +b101 QA +b101 UA +b101 YA +b101 ]A +b101 aA +b101 eA +b101 iA +b1010 mA +b1010 qA +b101 uA +b101 yA +b101 }A +b101 #B #259000000 b100100 ) b100100 8 @@ -147229,6 +153077,22 @@ b100 #A b100 'A b100 +A b100 /A +b100 EA +b100 IA +b100 MA +b100 QA +b100 UA +b100 YA +b100 ]A +b100 aA +b100 eA +b100 iA +b1000 mA +b1000 qA +b100 uA +b100 yA +b100 }A +b100 #B #260000000 sHdlNone\x20(0) ' b100101 ) @@ -147460,6 +153324,22 @@ b101 #A b101 'A b101 +A b101 /A +b101 EA +b101 IA +b101 MA +b101 QA +b101 UA +b101 YA +b101 ]A +b101 aA +b101 eA +b101 iA +b1010 mA +b1010 qA +b101 uA +b101 yA +b101 }A +b101 #B #261000000 sHdlSome\x20(1) ' sHdlSome\x20(1) 6 @@ -148342,6 +154222,22 @@ b0 #A b0 'A b0 +A b0 /A +b0 EA +b0 IA +b0 MA +b0 QA +b0 UA +b0 YA +b0 ]A +b0 aA +b0 eA +b0 iA +b0 mA +b0 qA +b0 uA +b0 yA +b0 }A +b0 #B #269000000 sHdlSome\x20(1) ' sHdlSome\x20(1) 6 @@ -148772,56 +154668,4991 @@ b11110110101 E@ b11110110101 I@ b11110110101 M@ #274000000 +sShiftRotate\x20(5) " +sHdlNone\x20(0) ' +b100101 * +sFull64\x20(0) - +00 +01 +sHdlNone\x20(0) 6 +b100101 9 +sFull64\x20(0) < +0? +0@ +sHdlNone\x20(0) E +b100101 H +0K +0L +sHdlNone\x20(0) S +b100101 V +sFull64\x20(0) Y +0\ +0] +sHdlNone\x20(0) b +b100101 e +sFull64\x20(0) h +0k +0l +sHdlNone\x20(0) q +b100101 t +sFull64\x20(0) w +sFunnelShift2x32Bit\x20(2) x +sHdlNone\x20(0) } +b100101 "" +sFull64\x20(0) %" +sU32\x20(2) &" +sHdlNone\x20(0) +" +b100101 ." +sFull64\x20(0) 1" +sU32\x20(2) 2" +sHdlNone\x20(0) 7" +b100101 :" +0=" +sEq\x20(0) >" +0@" +0A" +sHdlNone\x20(0) G" +b100101 J" +0M" +sEq\x20(0) N" +0P" +0Q" +b101 S" +sHdlNone\x20(0) W" +b100101 Z" +sStore\x20(1) ]" +sHdlNone\x20(0) b" +b100101 e" +sWidth8Bit\x20(0) h" +sHdlNone\x20(0) n" +b100101 q" +sWidth8Bit\x20(0) t" +b1111100100000110010100000110000 g& +b1000001100101000001100 k& +b1000001100101000001100 l& +b1000001100101000001100 m& +b1000001100101000001100 n& +b101000001100 o& +b10100000110000 }& +b10100000110000 .' +b10100000110000 =' +b10100000110000 K' +b10100000110000 Z' +b10100000110000 i' +b10100000110000 u' +b10100000110000 #( +b10100000110000 /( +b10100000110000 ?( +b10100000110000 O( +b10100000110000 Z( +b10100000110000 f( +b101000001100 l( +b10100000110000 z( +b10100000110000 +) +b10100000110000 :) +b10100000110000 H) +b10100000110000 W) +b10100000110000 f) +b10100000110000 r) +b10100000110000 ~) +b10100000110000 ,* +b10100000110000 <* +b10100000110000 L* +b10100000110000 W* +b10100000110000 c* +b101000001100 i* +b10100000110000 w* +b10100000110000 (+ +b10100000110000 7+ +b10100000110000 E+ +b10100000110000 T+ +b10100000110000 c+ +b10100000110000 o+ +b10100000110000 {+ +b10100000110000 ), +b10100000110000 9, +b10100000110000 I, +b10100000110000 T, +b10100000110000 `, +b101000001100 f, +b10100000110000 t, +b10100000110000 %- +b10100000110000 4- +b10100000110000 B- +b10100000110000 Q- +b10100000110000 `- +b10100000110000 l- +b10100000110000 x- +b10100000110000 &. +b10100000110000 6. +b10100000110000 F. +b10100000110000 Q. +b10100000110000 ]. +b1 c. +0*0 +0:0 +b1 `0 +0'2 +072 +b1 ]2 +b1 Z4 +b1 W6 +b1 T8 +b101 Q: +b1001 V: +b101 W: +b1001 \: +b101 ]: +b1001 b: +b101 c: +b1001 h: +b101 i: +b1001 n: +b101 o: +b1001 t: +b101 u: +b1001 z: +b101 {: +b1001 "; +b10100000110000 '; +b110010100000110000 +; +b101 1; +b10100000110000 5; +b101 9; +b10100000110000 =; +b110010100000110000 A; +b101 G; +b10100000110000 K; +b101 O; +b10100000110000 S; +b110010100000110000 W; +b101 ]; +b10100000110000 a; +b101 e; +b10100000110000 i; +b110010100000110000 m; +b101 s; +b10100000110000 w; +b101 {; +b101000001100 !< +b110010100000110000 %< +b101 +< +b101 /< +b101000001100 3< +b110010100000110000 7< +b101 =< +b101000001100 A< +b101 E< +b10100000110000 I< +b110010100000110000 M< +b101 S< +b10100000110000 W< +b101 \< +b10100000110000 a< +b110010100000110000 e< +b101 k< +b10100000110000 o< +b101 t< +b10100000110000 y< +b110010100000110000 }< +b101 %= +b10100000110000 )= +b101 .= +b101000001100 3= +b110010100000110000 7= +b101 == +b101000001100 A= +b101 F= +b10100000110000 K= +b110010100000110000 O= +b10100000110000 U= +0Y= +b10100000 Z= +b101 ]= +b101 b= +b101 g= +b101 l= +b10100000110000 q= +b10100000110000 u= +b101 y= +b101 ~= +b101 %> +b101 *> +b10100000110000 /> +b101 3> +b101 8> +b101 => +b101 B> +b101 G> +b101 L> +b101 Q> +b101 V> +b101 [> +b101 `> +b101 e> +b101 j> +b101 o> +b101 t> +b101 y> +b101 ~> +b10100000110000 u? +b101 {? +b10100000110000 #@ +b101 )@ +b101 /@ +b101 5@ +b10100000110000 9@ +b10100000110000 =@ +b10100000110000 A@ +b10100000110000 E@ +b10100000110000 I@ +b10100000110000 M@ +b101 Q@ +b101 U@ +b101 Y@ +b101 ]@ +b101 a@ +b101 e@ +b101 i@ +b101 m@ +b101 q@ +b101 u@ +b101 y@ +b101 }@ +b101 #A +b101 'A +b101 +A +b101 /A +b101 EA +b101 IA +b101 MA +b101 QA +b101 UA +b101 YA +b101 ]A +b101 aA +b101 eA +b101 iA +b1010 mA +b1010 qA +b101 uA +b101 yA +b101 }A +b101 #B +#275000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110010100000110001 g& +b10100000110001 '; +b110010100000110001 +; +b10100000110001 5; +b10100000110001 =; +b110010100000110001 A; +b10100000110001 K; +b10100000110001 S; +b110010100000110001 W; +b10100000110001 a; +b10100000110001 i; +b110010100000110001 m; +b10100000110001 w; +b110010100000110001 %< +b110010100000110001 7< +b10100000110001 I< +b110010100000110001 M< +b10100000110001 W< +b10100000110001 a< +b110010100000110001 e< +b10100000110001 o< +b10100000110001 y< +b110010100000110001 }< +b10100000110001 )= +b110010100000110001 7= +b10100000110001 K= +b110010100000110001 O= +b10100000110001 U= +1Y= +b10100000110001 q= +b10100000110001 u= +b10100000110001 /> +b10100000110001 u? +b10100000110001 #@ +b10100000110001 9@ +b10100000110001 =@ +b10100000110001 A@ +b10100000110001 E@ +b10100000110001 I@ +b10100000110001 M@ +#276000000 +sHdlNone\x20(0) ' +b0 ( +b100100 ) +b10000000 + +sHdlNone\x20(0) 6 +b0 7 +b100100 8 +b10000000 : +sHdlNone\x20(0) E +b0 F +b100100 G +b10000000 I +sHdlNone\x20(0) S +b0 T +b100100 U +b10000000 W +sHdlNone\x20(0) b +b0 c +b100100 d +b10000000 f +sHdlNone\x20(0) q +b0 r +b100100 s +b10000000 u +sHdlNone\x20(0) } +b0 ~ +b100100 !" +b10000000 #" +sHdlNone\x20(0) +" +b0 ," +b100100 -" +b10000000 /" +sHdlNone\x20(0) 7" +b0 8" +b100100 9" +b10000000 ;" +sHdlNone\x20(0) G" +b0 H" +b100100 I" +b10000000 K" +sHdlNone\x20(0) W" +b0 X" +b100100 Y" +b10000000 [" +sHdlNone\x20(0) b" +b0 c" +b100100 d" +b10000000 f" +sHdlNone\x20(0) n" +b0 o" +b100100 p" +b10000000 r" +b1111100100000110010110000110000 g& +b1000001100101100001100 k& +b1000001100101100001100 l& +b1000001100101100001100 m& +b1000001100101100001100 n& +b101100001100 o& +b10110000110000 }& +b10110000110000 .' +b10110000110000 =' +b10110000110000 K' +b10110000110000 Z' +b10110000110000 i' +b10110000110000 u' +b10110000110000 #( +b10110000110000 /( +b10110000110000 ?( +b10110000110000 O( +b10110000110000 Z( +b10110000110000 f( +b101100001100 l( +b10110000110000 z( +b10110000110000 +) +b10110000110000 :) +b10110000110000 H) +b10110000110000 W) +b10110000110000 f) +b10110000110000 r) +b10110000110000 ~) +b10110000110000 ,* +b10110000110000 <* +b10110000110000 L* +b10110000110000 W* +b10110000110000 c* +b101100001100 i* +b10110000110000 w* +b10110000110000 (+ +b10110000110000 7+ +b10110000110000 E+ +b10110000110000 T+ +b10110000110000 c+ +b10110000110000 o+ +b10110000110000 {+ +b10110000110000 ), +b10110000110000 9, +b10110000110000 I, +b10110000110000 T, +b10110000110000 `, +b101100001100 f, +b10110000110000 t, +b10110000110000 %- +b10110000110000 4- +b10110000110000 B- +b10110000110000 Q- +b10110000110000 `- +b10110000110000 l- +b10110000110000 x- +b10110000110000 &. +b10110000110000 6. +b10110000110000 F. +b10110000110000 Q. +b10110000110000 ]. +b10110000110000 '; +b110010110000110000 +; +b10110000110000 5; +b10110000110000 =; +b110010110000110000 A; +b10110000110000 K; +b10110000110000 S; +b110010110000110000 W; +b10110000110000 a; +b10110000110000 i; +b110010110000110000 m; +b10110000110000 w; +b101100001100 !< +b110010110000110000 %< +b101100001100 3< +b110010110000110000 7< +b101100001100 A< +b10110000110000 I< +b110010110000110000 M< +b10110000110000 W< +b10110000110000 a< +b110010110000110000 e< +b10110000110000 o< +b10110000110000 y< +b110010110000110000 }< +b10110000110000 )= +b101100001100 3= +b110010110000110000 7= +b101100001100 A= +b10110000110000 K= +b110010110000110000 O= +b10110000110000 U= +0Y= +b10110000 Z= +b10110000110000 q= +b10110000110000 u= +b10110000110000 /> +b10110000110000 u? +b10110000110000 #@ +b10110000110000 9@ +b10110000110000 =@ +b10110000110000 A@ +b10110000110000 E@ +b10110000110000 I@ +b10110000110000 M@ +#277000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110010110000110001 g& +b10110000110001 '; +b110010110000110001 +; +b10110000110001 5; +b10110000110001 =; +b110010110000110001 A; +b10110000110001 K; +b10110000110001 S; +b110010110000110001 W; +b10110000110001 a; +b10110000110001 i; +b110010110000110001 m; +b10110000110001 w; +b110010110000110001 %< +b110010110000110001 7< +b10110000110001 I< +b110010110000110001 M< +b10110000110001 W< +b10110000110001 a< +b110010110000110001 e< +b10110000110001 o< +b10110000110001 y< +b110010110000110001 }< +b10110000110001 )= +b110010110000110001 7= +b10110000110001 K= +b110010110000110001 O= +b10110000110001 U= +1Y= +b10110000110001 q= +b10110000110001 u= +b10110000110001 /> +b10110000110001 u? +b10110000110001 #@ +b10110000110001 9@ +b10110000110001 =@ +b10110000110001 A@ +b10110000110001 E@ +b10110000110001 I@ +b10110000110001 M@ +#278000000 +b100 % +sHdlNone\x20(0) ' +b100100 ( +b0 ) +b0 * +b10000001 + +10 +b100 4 +sHdlNone\x20(0) 6 +b100100 7 +b0 8 +b0 9 +b10000001 : +1? +b100 C +sHdlNone\x20(0) E +b100100 F +b0 G +b0 H +b10000001 I +b100 Q +sHdlNone\x20(0) S +b100100 T +b0 U +b0 V +b10000001 W +1\ +b100 ` +sHdlNone\x20(0) b +b100100 c +b0 d +b0 e +b10000001 f +1k +b100 o +sHdlNone\x20(0) q +b100100 r +b0 s +b0 t +b10000001 u +sSignExt32To64BitThenShift\x20(6) x +b100 { +sHdlNone\x20(0) } +b100100 ~ +b0 !" +b0 "" +b10000001 #" +sU8\x20(6) &" +b100 )" +sHdlNone\x20(0) +" +b100100 ," +b0 -" +b0 ." +b10000001 /" +sU8\x20(6) 2" +b100 5" +sHdlNone\x20(0) 7" +b100100 8" +b0 9" +b0 :" +b10000001 ;" +1@" +b100 E" +sHdlNone\x20(0) G" +b100100 H" +b0 I" +b0 J" +b10000001 K" +1P" +b100 U" +sHdlNone\x20(0) W" +b100100 X" +b0 Y" +b0 Z" +b10000001 [" +b100 `" +sHdlNone\x20(0) b" +b100100 c" +b0 d" +b0 e" +b10000001 f" +b100 l" +sHdlNone\x20(0) n" +b100100 o" +b0 p" +b0 q" +b10000001 r" +b1111100100000110000011001110000 g& +b1000001100000110011100 k& +b1000001100000110011100 l& +b1000001100000110011100 m& +b1000001100000110011100 n& +b110011100 o& +b11001110000 }& +b11001110000 .' +b11001110000 =' +b11001110000 K' +b11001110000 Z' +b11001110000 i' +b11001110000 u' +b11001110000 #( +b11001110000 /( +b11001110000 ?( +b11001110000 O( +b11001110000 Z( +b11001110000 f( +b110011100 l( +b11001110000 z( +b11001110000 +) +b11001110000 :) +b11001110000 H) +b11001110000 W) +b11001110000 f) +b11001110000 r) +b11001110000 ~) +b11001110000 ,* +b11001110000 <* +b11001110000 L* +b11001110000 W* +b11001110000 c* +b110011100 i* +b11001110000 w* +b11001110000 (+ +b11001110000 7+ +b11001110000 E+ +b11001110000 T+ +b11001110000 c+ +b11001110000 o+ +b11001110000 {+ +b11001110000 ), +b11001110000 9, +b11001110000 I, +b11001110000 T, +b11001110000 `, +b110011100 f, +b11001110000 t, +b11001110000 %- +b11001110000 4- +b11001110000 B- +b11001110000 Q- +b11001110000 `- +b11001110000 l- +b11001110000 x- +b11001110000 &. +b11001110000 6. +b11001110000 F. +b11001110000 Q. +b11001110000 ]. +b0 c. +1*0 +1:0 +b0 `0 +1'2 +172 +b0 ]2 +b0 Z4 +b0 W6 +b0 T8 +b0 Q: +b11111111 V: +b0 W: +b11111111 \: +b0 ]: +b11111111 b: +b0 c: +b11111111 h: +b0 i: +b11111111 n: +b0 o: +b11111111 t: +b0 u: +b11111111 z: +b0 {: +b11111111 "; +b11001110000 '; +b110000011001110000 +; +b0 1; +b11001110000 5; +b0 9; +b11001110000 =; +b110000011001110000 A; +b0 G; +b11001110000 K; +b0 O; +b11001110000 S; +b110000011001110000 W; +b0 ]; +b11001110000 a; +b0 e; +b11001110000 i; +b110000011001110000 m; +b0 s; +b11001110000 w; +b0 {; +b110011100 !< +b110000011001110000 %< +b0 +< +b0 /< +b110011100 3< +b110000011001110000 7< +b0 =< +b110011100 A< +b0 E< +b11001110000 I< +b110000011001110000 M< +b0 S< +b11001110000 W< +b0 \< +b11001110000 a< +b110000011001110000 e< +b0 k< +b11001110000 o< +b0 t< +b11001110000 y< +b110000011001110000 }< +b0 %= +b11001110000 )= +b0 .= +b110011100 3= +b110000011001110000 7= +b0 == +b110011100 A= +b0 F= +b11001110000 K= +b110000011001110000 O= +b11001110000 U= +0Y= +b11001 Z= +b0 ]= +b0 b= +b0 g= +b0 l= +b11001110000 q= +b11001110000 u= +b0 y= +b0 ~= +b0 %> +b0 *> +b11001110000 /> +b0 3> +b0 8> +b0 => +b0 B> +b0 G> +b0 L> +b0 Q> +b0 V> +b0 [> +b0 `> +b0 e> +b0 j> +b0 o> +b0 t> +b0 y> +b0 ~> +b11001110000 u? +b0 {? +b11001110000 #@ +b0 )@ +b0 /@ +b0 5@ +b11001110000 9@ +b11001110000 =@ +b11001110000 A@ +b11001110000 E@ +b11001110000 I@ +b11001110000 M@ +b0 Q@ +b0 U@ +b0 Y@ +b0 ]@ +b0 a@ +b0 e@ +b0 i@ +b0 m@ +b0 q@ +b0 u@ +b0 y@ +b0 }@ +b0 #A +b0 'A +b0 +A +b0 /A +b0 EA +b0 IA +b0 MA +b0 QA +b0 UA +b0 YA +b0 ]A +b0 aA +b0 eA +b0 iA +b0 mA +b0 qA +b0 uA +b0 yA +b0 }A +b0 #B +#279000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110000011001110001 g& +b11001110001 '; +b110000011001110001 +; +b11001110001 5; +b11001110001 =; +b110000011001110001 A; +b11001110001 K; +b11001110001 S; +b110000011001110001 W; +b11001110001 a; +b11001110001 i; +b110000011001110001 m; +b11001110001 w; +b110000011001110001 %< +b110000011001110001 7< +b11001110001 I< +b110000011001110001 M< +b11001110001 W< +b11001110001 a< +b110000011001110001 e< +b11001110001 o< +b11001110001 y< +b110000011001110001 }< +b11001110001 )= +b110000011001110001 7= +b11001110001 K= +b110000011001110001 O= +b11001110001 U= +1Y= +b11001110001 q= +b11001110001 u= +b11001110001 /> +b11001110001 u? +b11001110001 #@ +b11001110001 9@ +b11001110001 =@ +b11001110001 A@ +b11001110001 E@ +b11001110001 I@ +b11001110001 M@ +#280000000 +sHdlNone\x20(0) ' +b10001011 + +sHdlNone\x20(0) 6 +b10001011 : +sHdlNone\x20(0) E +b10001011 I +sHdlNone\x20(0) S +b10001011 W +sHdlNone\x20(0) b +b10001011 f +sHdlNone\x20(0) q +b10001011 u +sHdlNone\x20(0) } +b10001011 #" +sHdlNone\x20(0) +" +b10001011 /" +sHdlNone\x20(0) 7" +b10001011 ;" +sHdlNone\x20(0) G" +b10001011 K" +sHdlNone\x20(0) W" +b10001011 [" +sHdlNone\x20(0) b" +b10001011 f" +sHdlNone\x20(0) n" +b10001011 r" +b1111100100000110010111001110000 g& +b1000001100101110011100 k& +b1000001100101110011100 l& +b1000001100101110011100 m& +b1000001100101110011100 n& +b101110011100 o& +b10111001110000 }& +b10111001110000 .' +b10111001110000 =' +b10111001110000 K' +b10111001110000 Z' +b10111001110000 i' +b10111001110000 u' +b10111001110000 #( +b10111001110000 /( +b10111001110000 ?( +b10111001110000 O( +b10111001110000 Z( +b10111001110000 f( +b101110011100 l( +b10111001110000 z( +b10111001110000 +) +b10111001110000 :) +b10111001110000 H) +b10111001110000 W) +b10111001110000 f) +b10111001110000 r) +b10111001110000 ~) +b10111001110000 ,* +b10111001110000 <* +b10111001110000 L* +b10111001110000 W* +b10111001110000 c* +b101110011100 i* +b10111001110000 w* +b10111001110000 (+ +b10111001110000 7+ +b10111001110000 E+ +b10111001110000 T+ +b10111001110000 c+ +b10111001110000 o+ +b10111001110000 {+ +b10111001110000 ), +b10111001110000 9, +b10111001110000 I, +b10111001110000 T, +b10111001110000 `, +b101110011100 f, +b10111001110000 t, +b10111001110000 %- +b10111001110000 4- +b10111001110000 B- +b10111001110000 Q- +b10111001110000 `- +b10111001110000 l- +b10111001110000 x- +b10111001110000 &. +b10111001110000 6. +b10111001110000 F. +b10111001110000 Q. +b10111001110000 ]. +b1 c. +0*0 +0:0 +b1 `0 +0'2 +072 +b1 ]2 +b1 Z4 +b1 W6 +b1 T8 +b101 Q: +b1001 V: +b101 W: +b1001 \: +b101 ]: +b1001 b: +b101 c: +b1001 h: +b101 i: +b1001 n: +b101 o: +b1001 t: +b101 u: +b1001 z: +b101 {: +b1001 "; +b10111001110000 '; +b110010111001110000 +; +b101 1; +b10111001110000 5; +b101 9; +b10111001110000 =; +b110010111001110000 A; +b101 G; +b10111001110000 K; +b101 O; +b10111001110000 S; +b110010111001110000 W; +b101 ]; +b10111001110000 a; +b101 e; +b10111001110000 i; +b110010111001110000 m; +b101 s; +b10111001110000 w; +b101 {; +b101110011100 !< +b110010111001110000 %< +b101 +< +b101 /< +b101110011100 3< +b110010111001110000 7< +b101 =< +b101110011100 A< +b101 E< +b10111001110000 I< +b110010111001110000 M< +b101 S< +b10111001110000 W< +b101 \< +b10111001110000 a< +b110010111001110000 e< +b101 k< +b10111001110000 o< +b101 t< +b10111001110000 y< +b110010111001110000 }< +b101 %= +b10111001110000 )= +b101 .= +b101110011100 3= +b110010111001110000 7= +b101 == +b101110011100 A= +b101 F= +b10111001110000 K= +b110010111001110000 O= +b10111001110000 U= +0Y= +b10111001 Z= +b101 ]= +b101 b= +b101 g= +b101 l= +b10111001110000 q= +b10111001110000 u= +b101 y= +b101 ~= +b101 %> +b101 *> +b10111001110000 /> +b101 3> +b101 8> +b101 => +b101 B> +b101 G> +b101 L> +b101 Q> +b101 V> +b101 [> +b101 `> +b101 e> +b101 j> +b101 o> +b101 t> +b101 y> +b101 ~> +b10111001110000 u? +b101 {? +b10111001110000 #@ +b101 )@ +b101 /@ +b101 5@ +b10111001110000 9@ +b10111001110000 =@ +b10111001110000 A@ +b10111001110000 E@ +b10111001110000 I@ +b10111001110000 M@ +b101 Q@ +b101 U@ +b101 Y@ +b101 ]@ +b101 a@ +b101 e@ +b101 i@ +b101 m@ +b101 q@ +b101 u@ +b101 y@ +b101 }@ +b101 #A +b101 'A +b101 +A +b101 /A +b101 EA +b101 IA +b101 MA +b101 QA +b101 UA +b101 YA +b101 ]A +b101 aA +b101 eA +b101 iA +b1010 mA +b1010 qA +b101 uA +b101 yA +b101 }A +b101 #B +#281000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110010111001110001 g& +b10111001110001 '; +b110010111001110001 +; +b10111001110001 5; +b10111001110001 =; +b110010111001110001 A; +b10111001110001 K; +b10111001110001 S; +b110010111001110001 W; +b10111001110001 a; +b10111001110001 i; +b110010111001110001 m; +b10111001110001 w; +b110010111001110001 %< +b110010111001110001 7< +b10111001110001 I< +b110010111001110001 M< +b10111001110001 W< +b10111001110001 a< +b110010111001110001 e< +b10111001110001 o< +b10111001110001 y< +b110010111001110001 }< +b10111001110001 )= +b110010111001110001 7= +b10111001110001 K= +b110010111001110001 O= +b10111001110001 U= +1Y= +b10111001110001 q= +b10111001110001 u= +b10111001110001 /> +b10111001110001 u? +b10111001110001 #@ +b10111001110001 9@ +b10111001110001 =@ +b10111001110001 A@ +b10111001110001 E@ +b10111001110001 I@ +b10111001110001 M@ +#282000000 +sHdlNone\x20(0) ' +b10100001 + +sHdlNone\x20(0) 6 +b10100001 : +sHdlNone\x20(0) E +b10100001 I +sHdlNone\x20(0) S +b10100001 W +sHdlNone\x20(0) b +b10100001 f +sHdlNone\x20(0) q +b10100001 u +sHdlNone\x20(0) } +b10100001 #" +sHdlNone\x20(0) +" +b10100001 /" +sHdlNone\x20(0) 7" +b10100001 ;" +sHdlNone\x20(0) G" +b10100001 K" +sHdlNone\x20(0) W" +b10100001 [" +sHdlNone\x20(0) b" +b10100001 f" +sHdlNone\x20(0) n" +b10100001 r" +b1111100100000111000011001110000 g& +b1000001110000110011100 k& +b1000001110000110011100 l& +b1000001110000110011100 m& +b1000001110000110011100 n& +b10000110011100 o& +b1111111111000011001110000 }& +1~& +b1111111111000011001110000 .' +1/' +b1111111111000011001110000 =' +1>' +b1111111111000011001110000 K' +1L' +b1111111111000011001110000 Z' +1[' +b1111111111000011001110000 i' +1j' +b1111111111000011001110000 u' +1v' +b1111111111000011001110000 #( +1$( +b1111111111000011001110000 /( +10( +b1111111111000011001110000 ?( +1@( +b1111111111000011001110000 O( +1P( +b1111111111000011001110000 Z( +1[( +b1111111111000011001110000 f( +1g( +b10000110011100 l( +b1111111111000011001110000 z( +1{( +b1111111111000011001110000 +) +1,) +b1111111111000011001110000 :) +1;) +b1111111111000011001110000 H) +1I) +b1111111111000011001110000 W) +1X) +b1111111111000011001110000 f) +1g) +b1111111111000011001110000 r) +1s) +b1111111111000011001110000 ~) +1!* +b1111111111000011001110000 ,* +1-* +b1111111111000011001110000 <* +1=* +b1111111111000011001110000 L* +1M* +b1111111111000011001110000 W* +1X* +b1111111111000011001110000 c* +1d* +b10000110011100 i* +b1111111111000011001110000 w* +1x* +b1111111111000011001110000 (+ +1)+ +b1111111111000011001110000 7+ +18+ +b1111111111000011001110000 E+ +1F+ +b1111111111000011001110000 T+ +1U+ +b1111111111000011001110000 c+ +1d+ +b1111111111000011001110000 o+ +1p+ +b1111111111000011001110000 {+ +1|+ +b1111111111000011001110000 ), +1*, +b1111111111000011001110000 9, +1:, +b1111111111000011001110000 I, +1J, +b1111111111000011001110000 T, +1U, +b1111111111000011001110000 `, +1a, +b10000110011100 f, +b1111111111000011001110000 t, +1u, +b1111111111000011001110000 %- +1&- +b1111111111000011001110000 4- +15- +b1111111111000011001110000 B- +1C- +b1111111111000011001110000 Q- +1R- +b1111111111000011001110000 `- +1a- +b1111111111000011001110000 l- +1m- +b1111111111000011001110000 x- +1y- +b1111111111000011001110000 &. +1'. +b1111111111000011001110000 6. +17. +b1111111111000011001110000 F. +1G. +b1111111111000011001110000 Q. +1R. +b1111111111000011001110000 ]. +1^. +b0 c. +1*0 +1:0 +b0 `0 +1'2 +172 +b0 ]2 +b0 Z4 +b0 W6 +b0 T8 +b10000 Q: +b1100 V: +b10000 W: +b1100 \: +b10000 ]: +b1100 b: +b10000 c: +b1100 h: +b10000 i: +b1100 n: +b10000 o: +b1100 t: +b10000 u: +b1100 z: +b10000 {: +b1100 "; +b1000011001110000 '; +b111000011001110000 +; +b10000 1; +b1000011001110000 5; +b10000 9; +b1000011001110000 =; +b111000011001110000 A; +b10000 G; +b1000011001110000 K; +b10000 O; +b1000011001110000 S; +b111000011001110000 W; +b10000 ]; +b1000011001110000 a; +b10000 e; +b1000011001110000 i; +b111000011001110000 m; +b10000 s; +b1000011001110000 w; +b10000 {; +b10000110011100 !< +b111000011001110000 %< +b10000 +< +b10000 /< +b10000110011100 3< +b111000011001110000 7< +b10000 =< +b10000110011100 A< +b10000 E< +b1000011001110000 I< +b111000011001110000 M< +b10000 S< +b1000011001110000 W< +b10000 \< +b1000011001110000 a< +b111000011001110000 e< +b10000 k< +b1000011001110000 o< +b10000 t< +b1000011001110000 y< +b111000011001110000 }< +b10000 %= +b1000011001110000 )= +b10000 .= +b10000110011100 3= +b111000011001110000 7= +b10000 == +b10000110011100 A= +b10000 F= +b1000011001110000 K= +b111000011001110000 O= +b1000011001110000 U= +0Y= +b1000011001 Z= +b10000 ]= +b10000 b= +b10000 g= +b10000 l= +b1000011001110000 q= +b1000011001110000 u= +b10000 y= +b10000 ~= +b10000 %> +b10000 *> +b1000011001110000 /> +b10000 3> +b10000 8> +b10000 => +b10000 B> +b10000 G> +b10000 L> +b10000 Q> +b10000 V> +b10000 [> +b10000 `> +b10000 e> +b10000 j> +b10000 o> +b10000 t> +b10000 y> +b10000 ~> +b1000011001110000 u? +b10000 {? +b1000011001110000 #@ +b10000 )@ +b10000 /@ +b10000 5@ +b1000011001110000 9@ +b1000011001110000 =@ +b1000011001110000 A@ +b1000011001110000 E@ +b1000011001110000 I@ +b1000011001110000 M@ +b10000 Q@ +b10000 U@ +b10000 Y@ +b10000 ]@ +b10000 a@ +b10000 e@ +b10000 i@ +b10000 m@ +b10000 q@ +b10000 u@ +b10000 y@ +b10000 }@ +b10000 #A +b10000 'A +b10000 +A +b10000 /A +b10000 EA +b10000 IA +b10000 MA +b10000 QA +b10000 UA +b10000 YA +b10000 ]A +b10000 aA +b10000 eA +b10000 iA +b100000 mA +b100000 qA +b10000 uA +b10000 yA +b10000 }A +b10000 #B +#283000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000111000011001110001 g& +b1000011001110001 '; +b111000011001110001 +; +b1000011001110001 5; +b1000011001110001 =; +b111000011001110001 A; +b1000011001110001 K; +b1000011001110001 S; +b111000011001110001 W; +b1000011001110001 a; +b1000011001110001 i; +b111000011001110001 m; +b1000011001110001 w; +b111000011001110001 %< +b111000011001110001 7< +b1000011001110001 I< +b111000011001110001 M< +b1000011001110001 W< +b1000011001110001 a< +b111000011001110001 e< +b1000011001110001 o< +b1000011001110001 y< +b111000011001110001 }< +b1000011001110001 )= +b111000011001110001 7= +b1000011001110001 K= +b111000011001110001 O= +b1000011001110001 U= +1Y= +b1000011001110001 q= +b1000011001110001 u= +b1000011001110001 /> +b1000011001110001 u? +b1000011001110001 #@ +b1000011001110001 9@ +b1000011001110001 =@ +b1000011001110001 A@ +b1000011001110001 E@ +b1000011001110001 I@ +b1000011001110001 M@ +#284000000 +sHdlNone\x20(0) ' +b10111111 + +sHdlNone\x20(0) 6 +b10111111 : +sHdlNone\x20(0) E +b10111111 I +sHdlNone\x20(0) S +b10111111 W +sHdlNone\x20(0) b +b10111111 f +sHdlNone\x20(0) q +b10111111 u +sHdlNone\x20(0) } +b10111111 #" +sHdlNone\x20(0) +" +b10111111 /" +sHdlNone\x20(0) 7" +b10111111 ;" +sHdlNone\x20(0) G" +b10111111 K" +sHdlNone\x20(0) W" +b10111111 [" +sHdlNone\x20(0) b" +b10111111 f" +sHdlNone\x20(0) n" +b10111111 r" +b1111100100000111111111001110000 g& +b1000001111111110011100 k& +b1000001111111110011100 l& +b1000001111111110011100 m& +b1000001111111110011100 n& +b11111110011100 o& +b1111111111111111001110000 }& +b1111111111111111001110000 .' +b1111111111111111001110000 =' +b1111111111111111001110000 K' +b1111111111111111001110000 Z' +b1111111111111111001110000 i' +b1111111111111111001110000 u' +b1111111111111111001110000 #( +b1111111111111111001110000 /( +b1111111111111111001110000 ?( +b1111111111111111001110000 O( +b1111111111111111001110000 Z( +b1111111111111111001110000 f( +b11111110011100 l( +b1111111111111111001110000 z( +b1111111111111111001110000 +) +b1111111111111111001110000 :) +b1111111111111111001110000 H) +b1111111111111111001110000 W) +b1111111111111111001110000 f) +b1111111111111111001110000 r) +b1111111111111111001110000 ~) +b1111111111111111001110000 ,* +b1111111111111111001110000 <* +b1111111111111111001110000 L* +b1111111111111111001110000 W* +b1111111111111111001110000 c* +b11111110011100 i* +b1111111111111111001110000 w* +b1111111111111111001110000 (+ +b1111111111111111001110000 7+ +b1111111111111111001110000 E+ +b1111111111111111001110000 T+ +b1111111111111111001110000 c+ +b1111111111111111001110000 o+ +b1111111111111111001110000 {+ +b1111111111111111001110000 ), +b1111111111111111001110000 9, +b1111111111111111001110000 I, +b1111111111111111001110000 T, +b1111111111111111001110000 `, +b11111110011100 f, +b1111111111111111001110000 t, +b1111111111111111001110000 %- +b1111111111111111001110000 4- +b1111111111111111001110000 B- +b1111111111111111001110000 Q- +b1111111111111111001110000 `- +b1111111111111111001110000 l- +b1111111111111111001110000 x- +b1111111111111111001110000 &. +b1111111111111111001110000 6. +b1111111111111111001110000 F. +b1111111111111111001110000 Q. +b1111111111111111001110000 ]. +b11 c. +0*0 +0:0 +b11 `0 +0'2 +072 +b11 ]2 +b11 Z4 +b11 W6 +b11 T8 +b11111 Q: +b1111 V: +b11111 W: +b1111 \: +b11111 ]: +b1111 b: +b11111 c: +b1111 h: +b11111 i: +b1111 n: +b11111 o: +b1111 t: +b11111 u: +b1111 z: +b11111 {: +b1111 "; +b1111111001110000 '; +b111111111001110000 +; +b11111 1; +b1111111001110000 5; +b11111 9; +b1111111001110000 =; +b111111111001110000 A; +b11111 G; +b1111111001110000 K; +b11111 O; +b1111111001110000 S; +b111111111001110000 W; +b11111 ]; +b1111111001110000 a; +b11111 e; +b1111111001110000 i; +b111111111001110000 m; +b11111 s; +b1111111001110000 w; +b11111 {; +b11111110011100 !< +b111111111001110000 %< +b11111 +< +b11111 /< +b11111110011100 3< +b111111111001110000 7< +b11111 =< +b11111110011100 A< +b11111 E< +b1111111001110000 I< +b111111111001110000 M< +b11111 S< +b1111111001110000 W< +b11111 \< +b1111111001110000 a< +b111111111001110000 e< +b11111 k< +b1111111001110000 o< +b11111 t< +b1111111001110000 y< +b111111111001110000 }< +b11111 %= +b1111111001110000 )= +b11111 .= +b11111110011100 3= +b111111111001110000 7= +b11111 == +b11111110011100 A= +b11111 F= +b1111111001110000 K= +b111111111001110000 O= +b1111111001110000 U= +0Y= +b1111111001 Z= +b11111 ]= +b11111 b= +b11111 g= +b11111 l= +b1111111001110000 q= +b1111111001110000 u= +b11111 y= +b11111 ~= +b11111 %> +b11111 *> +b1111111001110000 /> +b11111 3> +b11111 8> +b11111 => +b11111 B> +b11111 G> +b11111 L> +b11111 Q> +b11111 V> +b11111 [> +b11111 `> +b11111 e> +b11111 j> +b11111 o> +b11111 t> +b11111 y> +b11111 ~> +b1111111001110000 u? +b11111 {? +b1111111001110000 #@ +b11111 )@ +b11111 /@ +b11111 5@ +b1111111001110000 9@ +b1111111001110000 =@ +b1111111001110000 A@ +b1111111001110000 E@ +b1111111001110000 I@ +b1111111001110000 M@ +b11111 Q@ +b11111 U@ +b11111 Y@ +b11111 ]@ +b11111 a@ +b11111 e@ +b11111 i@ +b11111 m@ +b11111 q@ +b11111 u@ +b11111 y@ +b11111 }@ +b11111 #A +b11111 'A +b11111 +A +b11111 /A +b11111 EA +b11111 IA +b11111 MA +b11111 QA +b11111 UA +b11111 YA +b11111 ]A +b11111 aA +b11111 eA +b11111 iA +b111110 mA +b111110 qA +b11111 uA +b11111 yA +b11111 }A +b11111 #B +#285000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000111111111001110001 g& +b1111111001110001 '; +b111111111001110001 +; +b1111111001110001 5; +b1111111001110001 =; +b111111111001110001 A; +b1111111001110001 K; +b1111111001110001 S; +b111111111001110001 W; +b1111111001110001 a; +b1111111001110001 i; +b111111111001110001 m; +b1111111001110001 w; +b111111111001110001 %< +b111111111001110001 7< +b1111111001110001 I< +b111111111001110001 M< +b1111111001110001 W< +b1111111001110001 a< +b111111111001110001 e< +b1111111001110001 o< +b1111111001110001 y< +b111111111001110001 }< +b1111111001110001 )= +b111111111001110001 7= +b1111111001110001 K= +b111111111001110001 O= +b1111111001110001 U= +1Y= +b1111111001110001 q= +b1111111001110001 u= +b1111111001110001 /> +b1111111001110001 u? +b1111111001110001 #@ +b1111111001110001 9@ +b1111111001110001 =@ +b1111111001110001 A@ +b1111111001110001 E@ +b1111111001110001 I@ +b1111111001110001 M@ +#286000000 +sHdlNone\x20(0) ' +b100101 * +b10000000 + +sHdlNone\x20(0) 6 +b100101 9 +b10000000 : +sHdlNone\x20(0) E +b100101 H +b10000000 I +sHdlNone\x20(0) S +b100101 V +b10000000 W +sHdlNone\x20(0) b +b100101 e +b10000000 f +sHdlNone\x20(0) q +b100101 t +b10000000 u +sHdlNone\x20(0) } +b100101 "" +b10000000 #" +sHdlNone\x20(0) +" +b100101 ." +b10000000 /" +sHdlNone\x20(0) 7" +b100101 :" +b10000000 ;" +sHdlNone\x20(0) G" +b100101 J" +b10000000 K" +sHdlNone\x20(0) W" +b100101 Z" +b10000000 [" +sHdlNone\x20(0) b" +b100101 e" +b10000000 f" +sHdlNone\x20(0) n" +b100101 q" +b10000000 r" +b1111100100000110010111000110000 g& +b1000001100101110001100 k& +b1000001100101110001100 l& +b1000001100101110001100 m& +b1000001100101110001100 n& +b101110001100 o& +b10111000110000 }& +0~& +b10111000110000 .' +0/' +b10111000110000 =' +0>' +b10111000110000 K' +0L' +b10111000110000 Z' +0[' +b10111000110000 i' +0j' +b10111000110000 u' +0v' +b10111000110000 #( +0$( +b10111000110000 /( +00( +b10111000110000 ?( +0@( +b10111000110000 O( +0P( +b10111000110000 Z( +0[( +b10111000110000 f( +0g( +b101110001100 l( +b10111000110000 z( +0{( +b10111000110000 +) +0,) +b10111000110000 :) +0;) +b10111000110000 H) +0I) +b10111000110000 W) +0X) +b10111000110000 f) +0g) +b10111000110000 r) +0s) +b10111000110000 ~) +0!* +b10111000110000 ,* +0-* +b10111000110000 <* +0=* +b10111000110000 L* +0M* +b10111000110000 W* +0X* +b10111000110000 c* +0d* +b101110001100 i* +b10111000110000 w* +0x* +b10111000110000 (+ +0)+ +b10111000110000 7+ +08+ +b10111000110000 E+ +0F+ +b10111000110000 T+ +0U+ +b10111000110000 c+ +0d+ +b10111000110000 o+ +0p+ +b10111000110000 {+ +0|+ +b10111000110000 ), +0*, +b10111000110000 9, +0:, +b10111000110000 I, +0J, +b10111000110000 T, +0U, +b10111000110000 `, +0a, +b101110001100 f, +b10111000110000 t, +0u, +b10111000110000 %- +0&- +b10111000110000 4- +05- +b10111000110000 B- +0C- +b10111000110000 Q- +0R- +b10111000110000 `- +0a- +b10111000110000 l- +0m- +b10111000110000 x- +0y- +b10111000110000 &. +0'. +b10111000110000 6. +07. +b10111000110000 F. +0G. +b10111000110000 Q. +0R. +b10111000110000 ]. +0^. +b1 c. +b1 `0 +b1 ]2 +b1 Z4 +b1 W6 +b1 T8 +b101 Q: +b1001 V: +b101 W: +b1001 \: +b101 ]: +b1001 b: +b101 c: +b1001 h: +b101 i: +b1001 n: +b101 o: +b1001 t: +b101 u: +b1001 z: +b101 {: +b1001 "; +b10111000110000 '; +b110010111000110000 +; +b101 1; +b10111000110000 5; +b101 9; +b10111000110000 =; +b110010111000110000 A; +b101 G; +b10111000110000 K; +b101 O; +b10111000110000 S; +b110010111000110000 W; +b101 ]; +b10111000110000 a; +b101 e; +b10111000110000 i; +b110010111000110000 m; +b101 s; +b10111000110000 w; +b101 {; +b101110001100 !< +b110010111000110000 %< +b101 +< +b101 /< +b101110001100 3< +b110010111000110000 7< +b101 =< +b101110001100 A< +b101 E< +b10111000110000 I< +b110010111000110000 M< +b101 S< +b10111000110000 W< +b101 \< +b10111000110000 a< +b110010111000110000 e< +b101 k< +b10111000110000 o< +b101 t< +b10111000110000 y< +b110010111000110000 }< +b101 %= +b10111000110000 )= +b101 .= +b101110001100 3= +b110010111000110000 7= +b101 == +b101110001100 A= +b101 F= +b10111000110000 K= +b110010111000110000 O= +b10111000110000 U= +0Y= +b10111000 Z= +b101 ]= +b101 b= +b101 g= +b101 l= +b10111000110000 q= +b10111000110000 u= +b101 y= +b101 ~= +b101 %> +b101 *> +b10111000110000 /> +b101 3> +b101 8> +b101 => +b101 B> +b101 G> +b101 L> +b101 Q> +b101 V> +b101 [> +b101 `> +b101 e> +b101 j> +b101 o> +b101 t> +b101 y> +b101 ~> +b10111000110000 u? +b101 {? +b10111000110000 #@ +b101 )@ +b101 /@ +b101 5@ +b10111000110000 9@ +b10111000110000 =@ +b10111000110000 A@ +b10111000110000 E@ +b10111000110000 I@ +b10111000110000 M@ +b101 Q@ +b101 U@ +b101 Y@ +b101 ]@ +b101 a@ +b101 e@ +b101 i@ +b101 m@ +b101 q@ +b101 u@ +b101 y@ +b101 }@ +b101 #A +b101 'A +b101 +A +b101 /A +b101 EA +b101 IA +b101 MA +b101 QA +b101 UA +b101 YA +b101 ]A +b101 aA +b101 eA +b101 iA +b1010 mA +b1010 qA +b101 uA +b101 yA +b101 }A +b101 #B +#287000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110010111000110001 g& +b10111000110001 '; +b110010111000110001 +; +b10111000110001 5; +b10111000110001 =; +b110010111000110001 A; +b10111000110001 K; +b10111000110001 S; +b110010111000110001 W; +b10111000110001 a; +b10111000110001 i; +b110010111000110001 m; +b10111000110001 w; +b110010111000110001 %< +b110010111000110001 7< +b10111000110001 I< +b110010111000110001 M< +b10111000110001 W< +b10111000110001 a< +b110010111000110001 e< +b10111000110001 o< +b10111000110001 y< +b110010111000110001 }< +b10111000110001 )= +b110010111000110001 7= +b10111000110001 K= +b110010111000110001 O= +b10111000110001 U= +1Y= +b10111000110001 q= +b10111000110001 u= +b10111000110001 /> +b10111000110001 u? +b10111000110001 #@ +b10111000110001 9@ +b10111000110001 =@ +b10111000110001 A@ +b10111000110001 E@ +b10111000110001 I@ +b10111000110001 M@ +#288000000 +b0 % +sHdlNone\x20(0) ' +b0 + +1. +00 +b0 4 +sHdlNone\x20(0) 6 +b0 : +1= +0? +b0 C +sHdlNone\x20(0) E +b0 I +1N +b0 Q +sHdlNone\x20(0) S +b0 W +1Z +0\ +b0 ` +sHdlNone\x20(0) b +b0 f +1i +0k +b0 o +sHdlNone\x20(0) q +b0 u +sFunnelShift2x64Bit\x20(3) x +b0 { +sHdlNone\x20(0) } +b0 #" +sS32\x20(3) &" +b0 )" +sHdlNone\x20(0) +" +b0 /" +sS32\x20(3) 2" +b0 5" +sHdlNone\x20(0) 7" +b0 ;" +sSGt\x20(4) >" +0@" +b0 E" +sHdlNone\x20(0) G" +b0 K" +sSGt\x20(4) N" +0P" +b0 U" +sHdlNone\x20(0) W" +b0 [" +b0 `" +sHdlNone\x20(0) b" +b0 f" +b0 l" +sHdlNone\x20(0) n" +b0 r" +b1111100100000110010100000110110 g& +b1000001100101000001101 k& +b1000001100101000001101 l& +b1000001100101000001101 m& +b1000001100101000001101 n& +b101000001101 o& +b10100000110100 }& +b10100000110100 .' +b10100000110100 =' +b10100000110100 K' +b10100000110100 Z' +b10100000110100 i' +b10100000110100 u' +b10100000110100 #( +b10100000110100 /( +b10100000110100 ?( +b10100000110100 O( +b10100000110100 Z( +b10100000110100 f( +b101000001101 l( +b10100000110100 z( +b10100000110100 +) +b10100000110100 :) +b10100000110100 H) +b10100000110100 W) +b10100000110100 f) +b10100000110100 r) +b10100000110100 ~) +b10100000110100 ,* +b10100000110100 <* +b10100000110100 L* +b10100000110100 W* +b10100000110100 c* +b101000001101 i* +b10100000110100 w* +b10100000110100 (+ +b10100000110100 7+ +b10100000110100 E+ +b10100000110100 T+ +b10100000110100 c+ +b10100000110100 o+ +b10100000110100 {+ +b10100000110100 ), +b10100000110100 9, +b10100000110100 I, +b10100000110100 T, +b10100000110100 `, +b101000001101 f, +b10100000110100 t, +b10100000110100 %- +b10100000110100 4- +b10100000110100 B- +b10100000110100 Q- +b10100000110100 `- +b10100000110100 l- +b10100000110100 x- +b10100000110100 &. +b10100000110100 6. +b10100000110100 F. +b10100000110100 Q. +b10100000110100 ]. +b10100000110110 '; +b110010100000110110 +; +b10100000110110 5; +b10100000110110 =; +b110010100000110110 A; +b10100000110110 K; +b10100000110110 S; +b110010100000110110 W; +b10100000110110 a; +b10100000110110 i; +b110010100000110110 m; +b10100000110110 w; +b101000001101 !< +b110010100000110110 %< +b101000001101 3< +b110010100000110110 7< +b101000001101 A< +b10100000110110 I< +b110010100000110110 M< +b10100000110110 W< +b10100000110110 a< +b110010100000110110 e< +b10100000110110 o< +b10100000110110 y< +b110010100000110110 }< +b10100000110110 )= +b101000001101 3= +b110010100000110110 7= +b101000001101 A= +b10100000110110 K= +b110010100000110110 O= +b10100000110110 U= +0Y= +b10100000 Z= +b10100000110110 q= +b10100000110110 u= +b10100000110110 /> +b10100000110110 u? +b10100000110110 #@ +b10100000110110 9@ +b10100000110110 =@ +b10100000110110 A@ +b10100000110110 E@ +b10100000110110 I@ +b10100000110110 M@ +b1011 mA +b1011 qA +#289000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110010100000110111 g& +b10100000110111 '; +b110010100000110111 +; +b10100000110111 5; +b10100000110111 =; +b110010100000110111 A; +b10100000110111 K; +b10100000110111 S; +b110010100000110111 W; +b10100000110111 a; +b10100000110111 i; +b110010100000110111 m; +b10100000110111 w; +b110010100000110111 %< +b110010100000110111 7< +b10100000110111 I< +b110010100000110111 M< +b10100000110111 W< +b10100000110111 a< +b110010100000110111 e< +b10100000110111 o< +b10100000110111 y< +b110010100000110111 }< +b10100000110111 )= +b110010100000110111 7= +b10100000110111 K= +b110010100000110111 O= +b10100000110111 U= +1Y= +b10100000110111 q= +b10100000110111 u= +b10100000110111 /> +b10100000110111 u? +b10100000110111 #@ +b10100000110111 9@ +b10100000110111 =@ +b10100000110111 A@ +b10100000110111 E@ +b10100000110111 I@ +b10100000110111 M@ +#290000000 +sHdlNone\x20(0) ' +b0 ( +b100100 ) +b10000000 + +sHdlNone\x20(0) 6 +b0 7 +b100100 8 +b10000000 : +sHdlNone\x20(0) E +b0 F +b100100 G +b10000000 I +sHdlNone\x20(0) S +b0 T +b100100 U +b10000000 W +sHdlNone\x20(0) b +b0 c +b100100 d +b10000000 f +sHdlNone\x20(0) q +b0 r +b100100 s +b10000000 u +sHdlNone\x20(0) } +b0 ~ +b100100 !" +b10000000 #" +sHdlNone\x20(0) +" +b0 ," +b100100 -" +b10000000 /" +sHdlNone\x20(0) 7" +b0 8" +b100100 9" +b10000000 ;" +sHdlNone\x20(0) G" +b0 H" +b100100 I" +b10000000 K" +sHdlNone\x20(0) W" +b0 X" +b100100 Y" +b10000000 [" +sHdlNone\x20(0) b" +b0 c" +b100100 d" +b10000000 f" +sHdlNone\x20(0) n" +b0 o" +b100100 p" +b10000000 r" +b1111100100000110010110000110110 g& +b1000001100101100001101 k& +b1000001100101100001101 l& +b1000001100101100001101 m& +b1000001100101100001101 n& +b101100001101 o& +b10110000110100 }& +b10110000110100 .' +b10110000110100 =' +b10110000110100 K' +b10110000110100 Z' +b10110000110100 i' +b10110000110100 u' +b10110000110100 #( +b10110000110100 /( +b10110000110100 ?( +b10110000110100 O( +b10110000110100 Z( +b10110000110100 f( +b101100001101 l( +b10110000110100 z( +b10110000110100 +) +b10110000110100 :) +b10110000110100 H) +b10110000110100 W) +b10110000110100 f) +b10110000110100 r) +b10110000110100 ~) +b10110000110100 ,* +b10110000110100 <* +b10110000110100 L* +b10110000110100 W* +b10110000110100 c* +b101100001101 i* +b10110000110100 w* +b10110000110100 (+ +b10110000110100 7+ +b10110000110100 E+ +b10110000110100 T+ +b10110000110100 c+ +b10110000110100 o+ +b10110000110100 {+ +b10110000110100 ), +b10110000110100 9, +b10110000110100 I, +b10110000110100 T, +b10110000110100 `, +b101100001101 f, +b10110000110100 t, +b10110000110100 %- +b10110000110100 4- +b10110000110100 B- +b10110000110100 Q- +b10110000110100 `- +b10110000110100 l- +b10110000110100 x- +b10110000110100 &. +b10110000110100 6. +b10110000110100 F. +b10110000110100 Q. +b10110000110100 ]. +b10110000110110 '; +b110010110000110110 +; +b10110000110110 5; +b10110000110110 =; +b110010110000110110 A; +b10110000110110 K; +b10110000110110 S; +b110010110000110110 W; +b10110000110110 a; +b10110000110110 i; +b110010110000110110 m; +b10110000110110 w; +b101100001101 !< +b110010110000110110 %< +b101100001101 3< +b110010110000110110 7< +b101100001101 A< +b10110000110110 I< +b110010110000110110 M< +b10110000110110 W< +b10110000110110 a< +b110010110000110110 e< +b10110000110110 o< +b10110000110110 y< +b110010110000110110 }< +b10110000110110 )= +b101100001101 3= +b110010110000110110 7= +b101100001101 A= +b10110000110110 K= +b110010110000110110 O= +b10110000110110 U= +0Y= +b10110000 Z= +b10110000110110 q= +b10110000110110 u= +b10110000110110 /> +b10110000110110 u? +b10110000110110 #@ +b10110000110110 9@ +b10110000110110 =@ +b10110000110110 A@ +b10110000110110 E@ +b10110000110110 I@ +b10110000110110 M@ +#291000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110010110000110111 g& +b10110000110111 '; +b110010110000110111 +; +b10110000110111 5; +b10110000110111 =; +b110010110000110111 A; +b10110000110111 K; +b10110000110111 S; +b110010110000110111 W; +b10110000110111 a; +b10110000110111 i; +b110010110000110111 m; +b10110000110111 w; +b110010110000110111 %< +b110010110000110111 7< +b10110000110111 I< +b110010110000110111 M< +b10110000110111 W< +b10110000110111 a< +b110010110000110111 e< +b10110000110111 o< +b10110000110111 y< +b110010110000110111 }< +b10110000110111 )= +b110010110000110111 7= +b10110000110111 K= +b110010110000110111 O= +b10110000110111 U= +1Y= +b10110000110111 q= +b10110000110111 u= +b10110000110111 /> +b10110000110111 u? +b10110000110111 #@ +b10110000110111 9@ +b10110000110111 =@ +b10110000110111 A@ +b10110000110111 E@ +b10110000110111 I@ +b10110000110111 M@ +#292000000 +b100 % +sHdlNone\x20(0) ' +b100100 ( +b0 ) +b0 * +b10000001 + +10 +b100 4 +sHdlNone\x20(0) 6 +b100100 7 +b0 8 +b0 9 +b10000001 : +1? +b100 C +sHdlNone\x20(0) E +b100100 F +b0 G +b0 H +b10000001 I +b100 Q +sHdlNone\x20(0) S +b100100 T +b0 U +b0 V +b10000001 W +1\ +b100 ` +sHdlNone\x20(0) b +b100100 c +b0 d +b0 e +b10000001 f +1k +b100 o +sHdlNone\x20(0) q +b100100 r +b0 s +b0 t +b10000001 u +sShiftSigned64\x20(7) x +b100 { +sHdlNone\x20(0) } +b100100 ~ +b0 !" +b0 "" +b10000001 #" +sS8\x20(7) &" +b100 )" +sHdlNone\x20(0) +" +b100100 ," +b0 -" +b0 ." +b10000001 /" +sS8\x20(7) 2" +b100 5" +sHdlNone\x20(0) 7" +b100100 8" +b0 9" +b0 :" +b10000001 ;" +1@" +b100 E" +sHdlNone\x20(0) G" +b100100 H" +b0 I" +b0 J" +b10000001 K" +1P" +b100 U" +sHdlNone\x20(0) W" +b100100 X" +b0 Y" +b0 Z" +b10000001 [" +b100 `" +sHdlNone\x20(0) b" +b100100 c" +b0 d" +b0 e" +b10000001 f" +b100 l" +sHdlNone\x20(0) n" +b100100 o" +b0 p" +b0 q" +b10000001 r" +b1111100100000110000011001110100 g& +b1000001100000110011101 k& +b1000001100000110011101 l& +b1000001100000110011101 m& +b1000001100000110011101 n& +b110011101 o& +b11001110100 }& +b11001110100 .' +b11001110100 =' +b11001110100 K' +b11001110100 Z' +b11001110100 i' +b11001110100 u' +b11001110100 #( +b11001110100 /( +b11001110100 ?( +b11001110100 O( +b11001110100 Z( +b11001110100 f( +b110011101 l( +b11001110100 z( +b11001110100 +) +b11001110100 :) +b11001110100 H) +b11001110100 W) +b11001110100 f) +b11001110100 r) +b11001110100 ~) +b11001110100 ,* +b11001110100 <* +b11001110100 L* +b11001110100 W* +b11001110100 c* +b110011101 i* +b11001110100 w* +b11001110100 (+ +b11001110100 7+ +b11001110100 E+ +b11001110100 T+ +b11001110100 c+ +b11001110100 o+ +b11001110100 {+ +b11001110100 ), +b11001110100 9, +b11001110100 I, +b11001110100 T, +b11001110100 `, +b110011101 f, +b11001110100 t, +b11001110100 %- +b11001110100 4- +b11001110100 B- +b11001110100 Q- +b11001110100 `- +b11001110100 l- +b11001110100 x- +b11001110100 &. +b11001110100 6. +b11001110100 F. +b11001110100 Q. +b11001110100 ]. +b0 c. +1*0 +1:0 +b0 `0 +1'2 +172 +b0 ]2 +b0 Z4 +b0 W6 +b0 T8 +b0 Q: +b11111111 V: +b0 W: +b11111111 \: +b0 ]: +b11111111 b: +b0 c: +b11111111 h: +b0 i: +b11111111 n: +b0 o: +b11111111 t: +b0 u: +b11111111 z: +b0 {: +b11111111 "; +b11001110100 '; +b110000011001110100 +; +b0 1; +b11001110100 5; +b0 9; +b11001110100 =; +b110000011001110100 A; +b0 G; +b11001110100 K; +b0 O; +b11001110100 S; +b110000011001110100 W; +b0 ]; +b11001110100 a; +b0 e; +b11001110100 i; +b110000011001110100 m; +b0 s; +b11001110100 w; +b0 {; +b110011101 !< +b110000011001110100 %< +b0 +< +b0 /< +b110011101 3< +b110000011001110100 7< +b0 =< +b110011101 A< +b0 E< +b11001110100 I< +b110000011001110100 M< +b0 S< +b11001110100 W< +b0 \< +b11001110100 a< +b110000011001110100 e< +b0 k< +b11001110100 o< +b0 t< +b11001110100 y< +b110000011001110100 }< +b0 %= +b11001110100 )= +b0 .= +b110011101 3= +b110000011001110100 7= +b0 == +b110011101 A= +b0 F= +b11001110100 K= +b110000011001110100 O= +b11001110100 U= +0Y= +b11001 Z= +b0 ]= +b0 b= +b0 g= +b0 l= +b11001110100 q= +b11001110100 u= +b0 y= +b0 ~= +b0 %> +b0 *> +b11001110100 /> +b0 3> +b0 8> +b0 => +b0 B> +b0 G> +b0 L> +b0 Q> +b0 V> +b0 [> +b0 `> +b0 e> +b0 j> +b0 o> +b0 t> +b0 y> +b0 ~> +b11001110100 u? +b0 {? +b11001110100 #@ +b0 )@ +b0 /@ +b0 5@ +b11001110100 9@ +b11001110100 =@ +b11001110100 A@ +b11001110100 E@ +b11001110100 I@ +b11001110100 M@ +b0 Q@ +b0 U@ +b0 Y@ +b0 ]@ +b0 a@ +b0 e@ +b0 i@ +b0 m@ +b0 q@ +b0 u@ +b0 y@ +b0 }@ +b0 #A +b0 'A +b0 +A +b0 /A +b0 EA +b0 IA +b0 MA +b0 QA +b0 UA +b0 YA +b0 ]A +b0 aA +b0 eA +b0 iA +b0 mA +b0 qA +b0 uA +b0 yA +b0 }A +b0 #B +#293000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110000011001110101 g& +b11001110101 '; +b110000011001110101 +; +b11001110101 5; +b11001110101 =; +b110000011001110101 A; +b11001110101 K; +b11001110101 S; +b110000011001110101 W; +b11001110101 a; +b11001110101 i; +b110000011001110101 m; +b11001110101 w; +b110000011001110101 %< +b110000011001110101 7< +b11001110101 I< +b110000011001110101 M< +b11001110101 W< +b11001110101 a< +b110000011001110101 e< +b11001110101 o< +b11001110101 y< +b110000011001110101 }< +b11001110101 )= +b110000011001110101 7= +b11001110101 K= +b110000011001110101 O= +b11001110101 U= +1Y= +b11001110101 q= +b11001110101 u= +b11001110101 /> +b11001110101 u? +b11001110101 #@ +b11001110101 9@ +b11001110101 =@ +b11001110101 A@ +b11001110101 E@ +b11001110101 I@ +b11001110101 M@ +#294000000 +sHdlNone\x20(0) ' +b10001011 + +sHdlNone\x20(0) 6 +b10001011 : +sHdlNone\x20(0) E +b10001011 I +sHdlNone\x20(0) S +b10001011 W +sHdlNone\x20(0) b +b10001011 f +sHdlNone\x20(0) q +b10001011 u +sHdlNone\x20(0) } +b10001011 #" +sHdlNone\x20(0) +" +b10001011 /" +sHdlNone\x20(0) 7" +b10001011 ;" +sHdlNone\x20(0) G" +b10001011 K" +sHdlNone\x20(0) W" +b10001011 [" +sHdlNone\x20(0) b" +b10001011 f" +sHdlNone\x20(0) n" +b10001011 r" +b1111100100000110010111001110100 g& +b1000001100101110011101 k& +b1000001100101110011101 l& +b1000001100101110011101 m& +b1000001100101110011101 n& +b101110011101 o& +b10111001110100 }& +b10111001110100 .' +b10111001110100 =' +b10111001110100 K' +b10111001110100 Z' +b10111001110100 i' +b10111001110100 u' +b10111001110100 #( +b10111001110100 /( +b10111001110100 ?( +b10111001110100 O( +b10111001110100 Z( +b10111001110100 f( +b101110011101 l( +b10111001110100 z( +b10111001110100 +) +b10111001110100 :) +b10111001110100 H) +b10111001110100 W) +b10111001110100 f) +b10111001110100 r) +b10111001110100 ~) +b10111001110100 ,* +b10111001110100 <* +b10111001110100 L* +b10111001110100 W* +b10111001110100 c* +b101110011101 i* +b10111001110100 w* +b10111001110100 (+ +b10111001110100 7+ +b10111001110100 E+ +b10111001110100 T+ +b10111001110100 c+ +b10111001110100 o+ +b10111001110100 {+ +b10111001110100 ), +b10111001110100 9, +b10111001110100 I, +b10111001110100 T, +b10111001110100 `, +b101110011101 f, +b10111001110100 t, +b10111001110100 %- +b10111001110100 4- +b10111001110100 B- +b10111001110100 Q- +b10111001110100 `- +b10111001110100 l- +b10111001110100 x- +b10111001110100 &. +b10111001110100 6. +b10111001110100 F. +b10111001110100 Q. +b10111001110100 ]. +b1 c. +0*0 +0:0 +b1 `0 +0'2 +072 +b1 ]2 +b1 Z4 +b1 W6 +b1 T8 +b101 Q: +b1001 V: +b101 W: +b1001 \: +b101 ]: +b1001 b: +b101 c: +b1001 h: +b101 i: +b1001 n: +b101 o: +b1001 t: +b101 u: +b1001 z: +b101 {: +b1001 "; +b10111001110100 '; +b110010111001110100 +; +b101 1; +b10111001110100 5; +b101 9; +b10111001110100 =; +b110010111001110100 A; +b101 G; +b10111001110100 K; +b101 O; +b10111001110100 S; +b110010111001110100 W; +b101 ]; +b10111001110100 a; +b101 e; +b10111001110100 i; +b110010111001110100 m; +b101 s; +b10111001110100 w; +b101 {; +b101110011101 !< +b110010111001110100 %< +b101 +< +b101 /< +b101110011101 3< +b110010111001110100 7< +b101 =< +b101110011101 A< +b101 E< +b10111001110100 I< +b110010111001110100 M< +b101 S< +b10111001110100 W< +b101 \< +b10111001110100 a< +b110010111001110100 e< +b101 k< +b10111001110100 o< +b101 t< +b10111001110100 y< +b110010111001110100 }< +b101 %= +b10111001110100 )= +b101 .= +b101110011101 3= +b110010111001110100 7= +b101 == +b101110011101 A= +b101 F= +b10111001110100 K= +b110010111001110100 O= +b10111001110100 U= +0Y= +b10111001 Z= +b101 ]= +b101 b= +b101 g= +b101 l= +b10111001110100 q= +b10111001110100 u= +b101 y= +b101 ~= +b101 %> +b101 *> +b10111001110100 /> +b101 3> +b101 8> +b101 => +b101 B> +b101 G> +b101 L> +b101 Q> +b101 V> +b101 [> +b101 `> +b101 e> +b101 j> +b101 o> +b101 t> +b101 y> +b101 ~> +b10111001110100 u? +b101 {? +b10111001110100 #@ +b101 )@ +b101 /@ +b101 5@ +b10111001110100 9@ +b10111001110100 =@ +b10111001110100 A@ +b10111001110100 E@ +b10111001110100 I@ +b10111001110100 M@ +b101 Q@ +b101 U@ +b101 Y@ +b101 ]@ +b101 a@ +b101 e@ +b101 i@ +b101 m@ +b101 q@ +b101 u@ +b101 y@ +b101 }@ +b101 #A +b101 'A +b101 +A +b101 /A +b101 EA +b101 IA +b101 MA +b101 QA +b101 UA +b101 YA +b101 ]A +b101 aA +b101 eA +b101 iA +b1010 mA +b1010 qA +b101 uA +b101 yA +b101 }A +b101 #B +#295000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110010111001110101 g& +b10111001110101 '; +b110010111001110101 +; +b10111001110101 5; +b10111001110101 =; +b110010111001110101 A; +b10111001110101 K; +b10111001110101 S; +b110010111001110101 W; +b10111001110101 a; +b10111001110101 i; +b110010111001110101 m; +b10111001110101 w; +b110010111001110101 %< +b110010111001110101 7< +b10111001110101 I< +b110010111001110101 M< +b10111001110101 W< +b10111001110101 a< +b110010111001110101 e< +b10111001110101 o< +b10111001110101 y< +b110010111001110101 }< +b10111001110101 )= +b110010111001110101 7= +b10111001110101 K= +b110010111001110101 O= +b10111001110101 U= +1Y= +b10111001110101 q= +b10111001110101 u= +b10111001110101 /> +b10111001110101 u? +b10111001110101 #@ +b10111001110101 9@ +b10111001110101 =@ +b10111001110101 A@ +b10111001110101 E@ +b10111001110101 I@ +b10111001110101 M@ +#296000000 +sHdlNone\x20(0) ' +b10100001 + +sHdlNone\x20(0) 6 +b10100001 : +sHdlNone\x20(0) E +b10100001 I +sHdlNone\x20(0) S +b10100001 W +sHdlNone\x20(0) b +b10100001 f +sHdlNone\x20(0) q +b10100001 u +sHdlNone\x20(0) } +b10100001 #" +sHdlNone\x20(0) +" +b10100001 /" +sHdlNone\x20(0) 7" +b10100001 ;" +sHdlNone\x20(0) G" +b10100001 K" +sHdlNone\x20(0) W" +b10100001 [" +sHdlNone\x20(0) b" +b10100001 f" +sHdlNone\x20(0) n" +b10100001 r" +b1111100100000111000011001110100 g& +b1000001110000110011101 k& +b1000001110000110011101 l& +b1000001110000110011101 m& +b1000001110000110011101 n& +b10000110011101 o& +b1111111111000011001110100 }& +1~& +b1111111111000011001110100 .' +1/' +b1111111111000011001110100 =' +1>' +b1111111111000011001110100 K' +1L' +b1111111111000011001110100 Z' +1[' +b1111111111000011001110100 i' +1j' +b1111111111000011001110100 u' +1v' +b1111111111000011001110100 #( +1$( +b1111111111000011001110100 /( +10( +b1111111111000011001110100 ?( +1@( +b1111111111000011001110100 O( +1P( +b1111111111000011001110100 Z( +1[( +b1111111111000011001110100 f( +1g( +b10000110011101 l( +b1111111111000011001110100 z( +1{( +b1111111111000011001110100 +) +1,) +b1111111111000011001110100 :) +1;) +b1111111111000011001110100 H) +1I) +b1111111111000011001110100 W) +1X) +b1111111111000011001110100 f) +1g) +b1111111111000011001110100 r) +1s) +b1111111111000011001110100 ~) +1!* +b1111111111000011001110100 ,* +1-* +b1111111111000011001110100 <* +1=* +b1111111111000011001110100 L* +1M* +b1111111111000011001110100 W* +1X* +b1111111111000011001110100 c* +1d* +b10000110011101 i* +b1111111111000011001110100 w* +1x* +b1111111111000011001110100 (+ +1)+ +b1111111111000011001110100 7+ +18+ +b1111111111000011001110100 E+ +1F+ +b1111111111000011001110100 T+ +1U+ +b1111111111000011001110100 c+ +1d+ +b1111111111000011001110100 o+ +1p+ +b1111111111000011001110100 {+ +1|+ +b1111111111000011001110100 ), +1*, +b1111111111000011001110100 9, +1:, +b1111111111000011001110100 I, +1J, +b1111111111000011001110100 T, +1U, +b1111111111000011001110100 `, +1a, +b10000110011101 f, +b1111111111000011001110100 t, +1u, +b1111111111000011001110100 %- +1&- +b1111111111000011001110100 4- +15- +b1111111111000011001110100 B- +1C- +b1111111111000011001110100 Q- +1R- +b1111111111000011001110100 `- +1a- +b1111111111000011001110100 l- +1m- +b1111111111000011001110100 x- +1y- +b1111111111000011001110100 &. +1'. +b1111111111000011001110100 6. +17. +b1111111111000011001110100 F. +1G. +b1111111111000011001110100 Q. +1R. +b1111111111000011001110100 ]. +1^. +b0 c. +1*0 +1:0 +b0 `0 +1'2 +172 +b0 ]2 +b0 Z4 +b0 W6 +b0 T8 +b10000 Q: +b1100 V: +b10000 W: +b1100 \: +b10000 ]: +b1100 b: +b10000 c: +b1100 h: +b10000 i: +b1100 n: +b10000 o: +b1100 t: +b10000 u: +b1100 z: +b10000 {: +b1100 "; +b1000011001110100 '; +b111000011001110100 +; +b10000 1; +b1000011001110100 5; +b10000 9; +b1000011001110100 =; +b111000011001110100 A; +b10000 G; +b1000011001110100 K; +b10000 O; +b1000011001110100 S; +b111000011001110100 W; +b10000 ]; +b1000011001110100 a; +b10000 e; +b1000011001110100 i; +b111000011001110100 m; +b10000 s; +b1000011001110100 w; +b10000 {; +b10000110011101 !< +b111000011001110100 %< +b10000 +< +b10000 /< +b10000110011101 3< +b111000011001110100 7< +b10000 =< +b10000110011101 A< +b10000 E< +b1000011001110100 I< +b111000011001110100 M< +b10000 S< +b1000011001110100 W< +b10000 \< +b1000011001110100 a< +b111000011001110100 e< +b10000 k< +b1000011001110100 o< +b10000 t< +b1000011001110100 y< +b111000011001110100 }< +b10000 %= +b1000011001110100 )= +b10000 .= +b10000110011101 3= +b111000011001110100 7= +b10000 == +b10000110011101 A= +b10000 F= +b1000011001110100 K= +b111000011001110100 O= +b1000011001110100 U= +0Y= +b1000011001 Z= +b10000 ]= +b10000 b= +b10000 g= +b10000 l= +b1000011001110100 q= +b1000011001110100 u= +b10000 y= +b10000 ~= +b10000 %> +b10000 *> +b1000011001110100 /> +b10000 3> +b10000 8> +b10000 => +b10000 B> +b10000 G> +b10000 L> +b10000 Q> +b10000 V> +b10000 [> +b10000 `> +b10000 e> +b10000 j> +b10000 o> +b10000 t> +b10000 y> +b10000 ~> +b1000011001110100 u? +b10000 {? +b1000011001110100 #@ +b10000 )@ +b10000 /@ +b10000 5@ +b1000011001110100 9@ +b1000011001110100 =@ +b1000011001110100 A@ +b1000011001110100 E@ +b1000011001110100 I@ +b1000011001110100 M@ +b10000 Q@ +b10000 U@ +b10000 Y@ +b10000 ]@ +b10000 a@ +b10000 e@ +b10000 i@ +b10000 m@ +b10000 q@ +b10000 u@ +b10000 y@ +b10000 }@ +b10000 #A +b10000 'A +b10000 +A +b10000 /A +b10000 EA +b10000 IA +b10000 MA +b10000 QA +b10000 UA +b10000 YA +b10000 ]A +b10000 aA +b10000 eA +b10000 iA +b100000 mA +b100000 qA +b10000 uA +b10000 yA +b10000 }A +b10000 #B +#297000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000111000011001110101 g& +b1000011001110101 '; +b111000011001110101 +; +b1000011001110101 5; +b1000011001110101 =; +b111000011001110101 A; +b1000011001110101 K; +b1000011001110101 S; +b111000011001110101 W; +b1000011001110101 a; +b1000011001110101 i; +b111000011001110101 m; +b1000011001110101 w; +b111000011001110101 %< +b111000011001110101 7< +b1000011001110101 I< +b111000011001110101 M< +b1000011001110101 W< +b1000011001110101 a< +b111000011001110101 e< +b1000011001110101 o< +b1000011001110101 y< +b111000011001110101 }< +b1000011001110101 )= +b111000011001110101 7= +b1000011001110101 K= +b111000011001110101 O= +b1000011001110101 U= +1Y= +b1000011001110101 q= +b1000011001110101 u= +b1000011001110101 /> +b1000011001110101 u? +b1000011001110101 #@ +b1000011001110101 9@ +b1000011001110101 =@ +b1000011001110101 A@ +b1000011001110101 E@ +b1000011001110101 I@ +b1000011001110101 M@ +#298000000 +sHdlNone\x20(0) ' +b10111111 + +sHdlNone\x20(0) 6 +b10111111 : +sHdlNone\x20(0) E +b10111111 I +sHdlNone\x20(0) S +b10111111 W +sHdlNone\x20(0) b +b10111111 f +sHdlNone\x20(0) q +b10111111 u +sHdlNone\x20(0) } +b10111111 #" +sHdlNone\x20(0) +" +b10111111 /" +sHdlNone\x20(0) 7" +b10111111 ;" +sHdlNone\x20(0) G" +b10111111 K" +sHdlNone\x20(0) W" +b10111111 [" +sHdlNone\x20(0) b" +b10111111 f" +sHdlNone\x20(0) n" +b10111111 r" +b1111100100000111111111001110100 g& +b1000001111111110011101 k& +b1000001111111110011101 l& +b1000001111111110011101 m& +b1000001111111110011101 n& +b11111110011101 o& +b1111111111111111001110100 }& +b1111111111111111001110100 .' +b1111111111111111001110100 =' +b1111111111111111001110100 K' +b1111111111111111001110100 Z' +b1111111111111111001110100 i' +b1111111111111111001110100 u' +b1111111111111111001110100 #( +b1111111111111111001110100 /( +b1111111111111111001110100 ?( +b1111111111111111001110100 O( +b1111111111111111001110100 Z( +b1111111111111111001110100 f( +b11111110011101 l( +b1111111111111111001110100 z( +b1111111111111111001110100 +) +b1111111111111111001110100 :) +b1111111111111111001110100 H) +b1111111111111111001110100 W) +b1111111111111111001110100 f) +b1111111111111111001110100 r) +b1111111111111111001110100 ~) +b1111111111111111001110100 ,* +b1111111111111111001110100 <* +b1111111111111111001110100 L* +b1111111111111111001110100 W* +b1111111111111111001110100 c* +b11111110011101 i* +b1111111111111111001110100 w* +b1111111111111111001110100 (+ +b1111111111111111001110100 7+ +b1111111111111111001110100 E+ +b1111111111111111001110100 T+ +b1111111111111111001110100 c+ +b1111111111111111001110100 o+ +b1111111111111111001110100 {+ +b1111111111111111001110100 ), +b1111111111111111001110100 9, +b1111111111111111001110100 I, +b1111111111111111001110100 T, +b1111111111111111001110100 `, +b11111110011101 f, +b1111111111111111001110100 t, +b1111111111111111001110100 %- +b1111111111111111001110100 4- +b1111111111111111001110100 B- +b1111111111111111001110100 Q- +b1111111111111111001110100 `- +b1111111111111111001110100 l- +b1111111111111111001110100 x- +b1111111111111111001110100 &. +b1111111111111111001110100 6. +b1111111111111111001110100 F. +b1111111111111111001110100 Q. +b1111111111111111001110100 ]. +b11 c. +0*0 +0:0 +b11 `0 +0'2 +072 +b11 ]2 +b11 Z4 +b11 W6 +b11 T8 +b11111 Q: +b1111 V: +b11111 W: +b1111 \: +b11111 ]: +b1111 b: +b11111 c: +b1111 h: +b11111 i: +b1111 n: +b11111 o: +b1111 t: +b11111 u: +b1111 z: +b11111 {: +b1111 "; +b1111111001110100 '; +b111111111001110100 +; +b11111 1; +b1111111001110100 5; +b11111 9; +b1111111001110100 =; +b111111111001110100 A; +b11111 G; +b1111111001110100 K; +b11111 O; +b1111111001110100 S; +b111111111001110100 W; +b11111 ]; +b1111111001110100 a; +b11111 e; +b1111111001110100 i; +b111111111001110100 m; +b11111 s; +b1111111001110100 w; +b11111 {; +b11111110011101 !< +b111111111001110100 %< +b11111 +< +b11111 /< +b11111110011101 3< +b111111111001110100 7< +b11111 =< +b11111110011101 A< +b11111 E< +b1111111001110100 I< +b111111111001110100 M< +b11111 S< +b1111111001110100 W< +b11111 \< +b1111111001110100 a< +b111111111001110100 e< +b11111 k< +b1111111001110100 o< +b11111 t< +b1111111001110100 y< +b111111111001110100 }< +b11111 %= +b1111111001110100 )= +b11111 .= +b11111110011101 3= +b111111111001110100 7= +b11111 == +b11111110011101 A= +b11111 F= +b1111111001110100 K= +b111111111001110100 O= +b1111111001110100 U= +0Y= +b1111111001 Z= +b11111 ]= +b11111 b= +b11111 g= +b11111 l= +b1111111001110100 q= +b1111111001110100 u= +b11111 y= +b11111 ~= +b11111 %> +b11111 *> +b1111111001110100 /> +b11111 3> +b11111 8> +b11111 => +b11111 B> +b11111 G> +b11111 L> +b11111 Q> +b11111 V> +b11111 [> +b11111 `> +b11111 e> +b11111 j> +b11111 o> +b11111 t> +b11111 y> +b11111 ~> +b1111111001110100 u? +b11111 {? +b1111111001110100 #@ +b11111 )@ +b11111 /@ +b11111 5@ +b1111111001110100 9@ +b1111111001110100 =@ +b1111111001110100 A@ +b1111111001110100 E@ +b1111111001110100 I@ +b1111111001110100 M@ +b11111 Q@ +b11111 U@ +b11111 Y@ +b11111 ]@ +b11111 a@ +b11111 e@ +b11111 i@ +b11111 m@ +b11111 q@ +b11111 u@ +b11111 y@ +b11111 }@ +b11111 #A +b11111 'A +b11111 +A +b11111 /A +b11111 EA +b11111 IA +b11111 MA +b11111 QA +b11111 UA +b11111 YA +b11111 ]A +b11111 aA +b11111 eA +b11111 iA +b111110 mA +b111110 qA +b11111 uA +b11111 yA +b11111 }A +b11111 #B +#299000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000111111111001110101 g& +b1111111001110101 '; +b111111111001110101 +; +b1111111001110101 5; +b1111111001110101 =; +b111111111001110101 A; +b1111111001110101 K; +b1111111001110101 S; +b111111111001110101 W; +b1111111001110101 a; +b1111111001110101 i; +b111111111001110101 m; +b1111111001110101 w; +b111111111001110101 %< +b111111111001110101 7< +b1111111001110101 I< +b111111111001110101 M< +b1111111001110101 W< +b1111111001110101 a< +b111111111001110101 e< +b1111111001110101 o< +b1111111001110101 y< +b111111111001110101 }< +b1111111001110101 )= +b111111111001110101 7= +b1111111001110101 K= +b111111111001110101 O= +b1111111001110101 U= +1Y= +b1111111001110101 q= +b1111111001110101 u= +b1111111001110101 /> +b1111111001110101 u? +b1111111001110101 #@ +b1111111001110101 9@ +b1111111001110101 =@ +b1111111001110101 A@ +b1111111001110101 E@ +b1111111001110101 I@ +b1111111001110101 M@ +#300000000 +sHdlNone\x20(0) ' +b11000001 + +sHdlNone\x20(0) 6 +b11000001 : +sHdlNone\x20(0) E +b11000001 I +sHdlNone\x20(0) S +b11000001 W +sHdlNone\x20(0) b +b11000001 f +sHdlNone\x20(0) q +b11000001 u +sHdlNone\x20(0) } +b11000001 #" +sHdlNone\x20(0) +" +b11000001 /" +sHdlNone\x20(0) 7" +b11000001 ;" +sHdlNone\x20(0) G" +b11000001 K" +sHdlNone\x20(0) W" +b11000001 [" +sHdlNone\x20(0) b" +b11000001 f" +sHdlNone\x20(0) n" +b11000001 r" +b1111100100000110000011001110110 g& +b1000001100000110011101 k& +b1000001100000110011101 l& +b1000001100000110011101 m& +b1000001100000110011101 n& +b110011101 o& +b11001110100 }& +0~& +b11001110100 .' +0/' +b11001110100 =' +0>' +b11001110100 K' +0L' +b11001110100 Z' +0[' +b11001110100 i' +0j' +b11001110100 u' +0v' +b11001110100 #( +0$( +b11001110100 /( +00( +b11001110100 ?( +0@( +b11001110100 O( +0P( +b11001110100 Z( +0[( +b11001110100 f( +0g( +b110011101 l( +b11001110100 z( +0{( +b11001110100 +) +0,) +b11001110100 :) +0;) +b11001110100 H) +0I) +b11001110100 W) +0X) +b11001110100 f) +0g) +b11001110100 r) +0s) +b11001110100 ~) +0!* +b11001110100 ,* +0-* +b11001110100 <* +0=* +b11001110100 L* +0M* +b11001110100 W* +0X* +b11001110100 c* +0d* +b110011101 i* +b11001110100 w* +0x* +b11001110100 (+ +0)+ +b11001110100 7+ +08+ +b11001110100 E+ +0F+ +b11001110100 T+ +0U+ +b11001110100 c+ +0d+ +b11001110100 o+ +0p+ +b11001110100 {+ +0|+ +b11001110100 ), +0*, +b11001110100 9, +0:, +b11001110100 I, +0J, +b11001110100 T, +0U, +b11001110100 `, +0a, +b110011101 f, +b11001110100 t, +0u, +b11001110100 %- +0&- +b11001110100 4- +05- +b11001110100 B- +0C- +b11001110100 Q- +0R- +b11001110100 `- +0a- +b11001110100 l- +0m- +b11001110100 x- +0y- +b11001110100 &. +0'. +b11001110100 6. +07. +b11001110100 F. +0G. +b11001110100 Q. +0R. +b11001110100 ]. +0^. +b0 c. +1*0 +1:0 +b0 `0 +1'2 +172 +b0 ]2 +b0 Z4 +b0 W6 +b0 T8 +b0 Q: +b11111111 V: +b0 W: +b11111111 \: +b0 ]: +b11111111 b: +b0 c: +b11111111 h: +b0 i: +b11111111 n: +b0 o: +b11111111 t: +b0 u: +b11111111 z: +b0 {: +b11111111 "; +b11001110110 '; +b110000011001110110 +; +b0 1; +b11001110110 5; +b0 9; +b11001110110 =; +b110000011001110110 A; +b0 G; +b11001110110 K; +b0 O; +b11001110110 S; +b110000011001110110 W; +b0 ]; +b11001110110 a; +b0 e; +b11001110110 i; +b110000011001110110 m; +b0 s; +b11001110110 w; +b0 {; +b110011101 !< +b110000011001110110 %< +b0 +< +b0 /< +b110011101 3< +b110000011001110110 7< +b0 =< +b110011101 A< +b0 E< +b11001110110 I< +b110000011001110110 M< +b0 S< +b11001110110 W< +b0 \< +b11001110110 a< +b110000011001110110 e< +b0 k< +b11001110110 o< +b0 t< +b11001110110 y< +b110000011001110110 }< +b0 %= +b11001110110 )= +b0 .= +b110011101 3= +b110000011001110110 7= +b0 == +b110011101 A= +b0 F= +b11001110110 K= +b110000011001110110 O= +b11001110110 U= +0Y= +b11001 Z= +b0 ]= +b0 b= +b0 g= +b0 l= +b11001110110 q= +b11001110110 u= +b0 y= +b0 ~= +b0 %> +b0 *> +b11001110110 /> +b0 3> +b0 8> +b0 => +b0 B> +b0 G> +b0 L> +b0 Q> +b0 V> +b0 [> +b0 `> +b0 e> +b0 j> +b0 o> +b0 t> +b0 y> +b0 ~> +b11001110110 u? +b0 {? +b11001110110 #@ +b0 )@ +b0 /@ +b0 5@ +b11001110110 9@ +b11001110110 =@ +b11001110110 A@ +b11001110110 E@ +b11001110110 I@ +b11001110110 M@ +b0 Q@ +b0 U@ +b0 Y@ +b0 ]@ +b0 a@ +b0 e@ +b0 i@ +b0 m@ +b0 q@ +b0 u@ +b0 y@ +b0 }@ +b0 #A +b0 'A +b0 +A +b0 /A +b0 EA +b0 IA +b0 MA +b0 QA +b0 UA +b0 YA +b0 ]A +b0 aA +b0 eA +b0 iA +b1 mA +b1 qA +b0 uA +b0 yA +b0 }A +b0 #B +#301000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110000011001110111 g& +b11001110111 '; +b110000011001110111 +; +b11001110111 5; +b11001110111 =; +b110000011001110111 A; +b11001110111 K; +b11001110111 S; +b110000011001110111 W; +b11001110111 a; +b11001110111 i; +b110000011001110111 m; +b11001110111 w; +b110000011001110111 %< +b110000011001110111 7< +b11001110111 I< +b110000011001110111 M< +b11001110111 W< +b11001110111 a< +b110000011001110111 e< +b11001110111 o< +b11001110111 y< +b110000011001110111 }< +b11001110111 )= +b110000011001110111 7= +b11001110111 K= +b110000011001110111 O= +b11001110111 U= +1Y= +b11001110111 q= +b11001110111 u= +b11001110111 /> +b11001110111 u? +b11001110111 #@ +b11001110111 9@ +b11001110111 =@ +b11001110111 A@ +b11001110111 E@ +b11001110111 I@ +b11001110111 M@ +#302000000 +sHdlNone\x20(0) ' +b11111111 + +sHdlNone\x20(0) 6 +b11111111 : +sHdlNone\x20(0) E +b11111111 I +sHdlNone\x20(0) S +b11111111 W +sHdlNone\x20(0) b +b11111111 f +sHdlNone\x20(0) q +b11111111 u +sHdlNone\x20(0) } +b11111111 #" +sHdlNone\x20(0) +" +b11111111 /" +sHdlNone\x20(0) 7" +b11111111 ;" +sHdlNone\x20(0) G" +b11111111 K" +sHdlNone\x20(0) W" +b11111111 [" +sHdlNone\x20(0) b" +b11111111 f" +sHdlNone\x20(0) n" +b11111111 r" +b1111100100000111111111001110110 g& +b1000001111111110011101 k& +b1000001111111110011101 l& +b1000001111111110011101 m& +b1000001111111110011101 n& +b11111110011101 o& +b1111111111111111001110100 }& +1~& +b1111111111111111001110100 .' +1/' +b1111111111111111001110100 =' +1>' +b1111111111111111001110100 K' +1L' +b1111111111111111001110100 Z' +1[' +b1111111111111111001110100 i' +1j' +b1111111111111111001110100 u' +1v' +b1111111111111111001110100 #( +1$( +b1111111111111111001110100 /( +10( +b1111111111111111001110100 ?( +1@( +b1111111111111111001110100 O( +1P( +b1111111111111111001110100 Z( +1[( +b1111111111111111001110100 f( +1g( +b11111110011101 l( +b1111111111111111001110100 z( +1{( +b1111111111111111001110100 +) +1,) +b1111111111111111001110100 :) +1;) +b1111111111111111001110100 H) +1I) +b1111111111111111001110100 W) +1X) +b1111111111111111001110100 f) +1g) +b1111111111111111001110100 r) +1s) +b1111111111111111001110100 ~) +1!* +b1111111111111111001110100 ,* +1-* +b1111111111111111001110100 <* +1=* +b1111111111111111001110100 L* +1M* +b1111111111111111001110100 W* +1X* +b1111111111111111001110100 c* +1d* +b11111110011101 i* +b1111111111111111001110100 w* +1x* +b1111111111111111001110100 (+ +1)+ +b1111111111111111001110100 7+ +18+ +b1111111111111111001110100 E+ +1F+ +b1111111111111111001110100 T+ +1U+ +b1111111111111111001110100 c+ +1d+ +b1111111111111111001110100 o+ +1p+ +b1111111111111111001110100 {+ +1|+ +b1111111111111111001110100 ), +1*, +b1111111111111111001110100 9, +1:, +b1111111111111111001110100 I, +1J, +b1111111111111111001110100 T, +1U, +b1111111111111111001110100 `, +1a, +b11111110011101 f, +b1111111111111111001110100 t, +1u, +b1111111111111111001110100 %- +1&- +b1111111111111111001110100 4- +15- +b1111111111111111001110100 B- +1C- +b1111111111111111001110100 Q- +1R- +b1111111111111111001110100 `- +1a- +b1111111111111111001110100 l- +1m- +b1111111111111111001110100 x- +1y- +b1111111111111111001110100 &. +1'. +b1111111111111111001110100 6. +17. +b1111111111111111001110100 F. +1G. +b1111111111111111001110100 Q. +1R. +b1111111111111111001110100 ]. +1^. +b11 c. +0*0 +0:0 +b11 `0 +0'2 +072 +b11 ]2 +b11 Z4 +b11 W6 +b11 T8 +b11111 Q: +b1111 V: +b11111 W: +b1111 \: +b11111 ]: +b1111 b: +b11111 c: +b1111 h: +b11111 i: +b1111 n: +b11111 o: +b1111 t: +b11111 u: +b1111 z: +b11111 {: +b1111 "; +b1111111001110110 '; +b111111111001110110 +; +b11111 1; +b1111111001110110 5; +b11111 9; +b1111111001110110 =; +b111111111001110110 A; +b11111 G; +b1111111001110110 K; +b11111 O; +b1111111001110110 S; +b111111111001110110 W; +b11111 ]; +b1111111001110110 a; +b11111 e; +b1111111001110110 i; +b111111111001110110 m; +b11111 s; +b1111111001110110 w; +b11111 {; +b11111110011101 !< +b111111111001110110 %< +b11111 +< +b11111 /< +b11111110011101 3< +b111111111001110110 7< +b11111 =< +b11111110011101 A< +b11111 E< +b1111111001110110 I< +b111111111001110110 M< +b11111 S< +b1111111001110110 W< +b11111 \< +b1111111001110110 a< +b111111111001110110 e< +b11111 k< +b1111111001110110 o< +b11111 t< +b1111111001110110 y< +b111111111001110110 }< +b11111 %= +b1111111001110110 )= +b11111 .= +b11111110011101 3= +b111111111001110110 7= +b11111 == +b11111110011101 A= +b11111 F= +b1111111001110110 K= +b111111111001110110 O= +b1111111001110110 U= +0Y= +b1111111001 Z= +b11111 ]= +b11111 b= +b11111 g= +b11111 l= +b1111111001110110 q= +b1111111001110110 u= +b11111 y= +b11111 ~= +b11111 %> +b11111 *> +b1111111001110110 /> +b11111 3> +b11111 8> +b11111 => +b11111 B> +b11111 G> +b11111 L> +b11111 Q> +b11111 V> +b11111 [> +b11111 `> +b11111 e> +b11111 j> +b11111 o> +b11111 t> +b11111 y> +b11111 ~> +b1111111001110110 u? +b11111 {? +b1111111001110110 #@ +b11111 )@ +b11111 /@ +b11111 5@ +b1111111001110110 9@ +b1111111001110110 =@ +b1111111001110110 A@ +b1111111001110110 E@ +b1111111001110110 I@ +b1111111001110110 M@ +b11111 Q@ +b11111 U@ +b11111 Y@ +b11111 ]@ +b11111 a@ +b11111 e@ +b11111 i@ +b11111 m@ +b11111 q@ +b11111 u@ +b11111 y@ +b11111 }@ +b11111 #A +b11111 'A +b11111 +A +b11111 /A +b11111 EA +b11111 IA +b11111 MA +b11111 QA +b11111 UA +b11111 YA +b11111 ]A +b11111 aA +b11111 eA +b11111 iA +b111111 mA +b111111 qA +b11111 uA +b11111 yA +b11111 }A +b11111 #B +#303000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000111111111001110111 g& +b1111111001110111 '; +b111111111001110111 +; +b1111111001110111 5; +b1111111001110111 =; +b111111111001110111 A; +b1111111001110111 K; +b1111111001110111 S; +b111111111001110111 W; +b1111111001110111 a; +b1111111001110111 i; +b111111111001110111 m; +b1111111001110111 w; +b111111111001110111 %< +b111111111001110111 7< +b1111111001110111 I< +b111111111001110111 M< +b1111111001110111 W< +b1111111001110111 a< +b111111111001110111 e< +b1111111001110111 o< +b1111111001110111 y< +b111111111001110111 }< +b1111111001110111 )= +b111111111001110111 7= +b1111111001110111 K= +b111111111001110111 O= +b1111111001110111 U= +1Y= +b1111111001110111 q= +b1111111001110111 u= +b1111111001110111 /> +b1111111001110111 u? +b1111111001110111 #@ +b1111111001110111 9@ +b1111111001110111 =@ +b1111111001110111 A@ +b1111111001110111 E@ +b1111111001110111 I@ +b1111111001110111 M@ +#304000000 +sHdlNone\x20(0) ' +b100101 * +b10000000 + +sHdlNone\x20(0) 6 +b100101 9 +b10000000 : +sHdlNone\x20(0) E +b100101 H +b10000000 I +sHdlNone\x20(0) S +b100101 V +b10000000 W +sHdlNone\x20(0) b +b100101 e +b10000000 f +sHdlNone\x20(0) q +b100101 t +b10000000 u +sHdlNone\x20(0) } +b100101 "" +b10000000 #" +sHdlNone\x20(0) +" +b100101 ." +b10000000 /" +sHdlNone\x20(0) 7" +b100101 :" +b10000000 ;" +sHdlNone\x20(0) G" +b100101 J" +b10000000 K" +sHdlNone\x20(0) W" +b100101 Z" +b10000000 [" +sHdlNone\x20(0) b" +b100101 e" +b10000000 f" +sHdlNone\x20(0) n" +b100101 q" +b10000000 r" +b1111100100000110010111000110100 g& +b1000001100101110001101 k& +b1000001100101110001101 l& +b1000001100101110001101 m& +b1000001100101110001101 n& +b101110001101 o& +b10111000110100 }& +0~& +b10111000110100 .' +0/' +b10111000110100 =' +0>' +b10111000110100 K' +0L' +b10111000110100 Z' +0[' +b10111000110100 i' +0j' +b10111000110100 u' +0v' +b10111000110100 #( +0$( +b10111000110100 /( +00( +b10111000110100 ?( +0@( +b10111000110100 O( +0P( +b10111000110100 Z( +0[( +b10111000110100 f( +0g( +b101110001101 l( +b10111000110100 z( +0{( +b10111000110100 +) +0,) +b10111000110100 :) +0;) +b10111000110100 H) +0I) +b10111000110100 W) +0X) +b10111000110100 f) +0g) +b10111000110100 r) +0s) +b10111000110100 ~) +0!* +b10111000110100 ,* +0-* +b10111000110100 <* +0=* +b10111000110100 L* +0M* +b10111000110100 W* +0X* +b10111000110100 c* +0d* +b101110001101 i* +b10111000110100 w* +0x* +b10111000110100 (+ +0)+ +b10111000110100 7+ +08+ +b10111000110100 E+ +0F+ +b10111000110100 T+ +0U+ +b10111000110100 c+ +0d+ +b10111000110100 o+ +0p+ +b10111000110100 {+ +0|+ +b10111000110100 ), +0*, +b10111000110100 9, +0:, +b10111000110100 I, +0J, +b10111000110100 T, +0U, +b10111000110100 `, +0a, +b101110001101 f, +b10111000110100 t, +0u, +b10111000110100 %- +0&- +b10111000110100 4- +05- +b10111000110100 B- +0C- +b10111000110100 Q- +0R- +b10111000110100 `- +0a- +b10111000110100 l- +0m- +b10111000110100 x- +0y- +b10111000110100 &. +0'. +b10111000110100 6. +07. +b10111000110100 F. +0G. +b10111000110100 Q. +0R. +b10111000110100 ]. +0^. +b1 c. +b1 `0 +b1 ]2 +b1 Z4 +b1 W6 +b1 T8 +b101 Q: +b1001 V: +b101 W: +b1001 \: +b101 ]: +b1001 b: +b101 c: +b1001 h: +b101 i: +b1001 n: +b101 o: +b1001 t: +b101 u: +b1001 z: +b101 {: +b1001 "; +b10111000110100 '; +b110010111000110100 +; +b101 1; +b10111000110100 5; +b101 9; +b10111000110100 =; +b110010111000110100 A; +b101 G; +b10111000110100 K; +b101 O; +b10111000110100 S; +b110010111000110100 W; +b101 ]; +b10111000110100 a; +b101 e; +b10111000110100 i; +b110010111000110100 m; +b101 s; +b10111000110100 w; +b101 {; +b101110001101 !< +b110010111000110100 %< +b101 +< +b101 /< +b101110001101 3< +b110010111000110100 7< +b101 =< +b101110001101 A< +b101 E< +b10111000110100 I< +b110010111000110100 M< +b101 S< +b10111000110100 W< +b101 \< +b10111000110100 a< +b110010111000110100 e< +b101 k< +b10111000110100 o< +b101 t< +b10111000110100 y< +b110010111000110100 }< +b101 %= +b10111000110100 )= +b101 .= +b101110001101 3= +b110010111000110100 7= +b101 == +b101110001101 A= +b101 F= +b10111000110100 K= +b110010111000110100 O= +b10111000110100 U= +0Y= +b10111000 Z= +b101 ]= +b101 b= +b101 g= +b101 l= +b10111000110100 q= +b10111000110100 u= +b101 y= +b101 ~= +b101 %> +b101 *> +b10111000110100 /> +b101 3> +b101 8> +b101 => +b101 B> +b101 G> +b101 L> +b101 Q> +b101 V> +b101 [> +b101 `> +b101 e> +b101 j> +b101 o> +b101 t> +b101 y> +b101 ~> +b10111000110100 u? +b101 {? +b10111000110100 #@ +b101 )@ +b101 /@ +b101 5@ +b10111000110100 9@ +b10111000110100 =@ +b10111000110100 A@ +b10111000110100 E@ +b10111000110100 I@ +b10111000110100 M@ +b101 Q@ +b101 U@ +b101 Y@ +b101 ]@ +b101 a@ +b101 e@ +b101 i@ +b101 m@ +b101 q@ +b101 u@ +b101 y@ +b101 }@ +b101 #A +b101 'A +b101 +A +b101 /A +b101 EA +b101 IA +b101 MA +b101 QA +b101 UA +b101 YA +b101 ]A +b101 aA +b101 eA +b101 iA +b1010 mA +b1010 qA +b101 uA +b101 yA +b101 }A +b101 #B +#305000000 +sHdlSome\x20(1) ' +sHdlSome\x20(1) 6 +sHdlSome\x20(1) E +sHdlSome\x20(1) S +sHdlSome\x20(1) b +sHdlSome\x20(1) q +sHdlSome\x20(1) } +sHdlSome\x20(1) +" +sHdlSome\x20(1) 7" +sHdlSome\x20(1) G" +sHdlSome\x20(1) W" +sHdlSome\x20(1) b" +sHdlSome\x20(1) n" +b1111100100000110010111000110101 g& +b10111000110101 '; +b110010111000110101 +; +b10111000110101 5; +b10111000110101 =; +b110010111000110101 A; +b10111000110101 K; +b10111000110101 S; +b110010111000110101 W; +b10111000110101 a; +b10111000110101 i; +b110010111000110101 m; +b10111000110101 w; +b110010111000110101 %< +b110010111000110101 7< +b10111000110101 I< +b110010111000110101 M< +b10111000110101 W< +b10111000110101 a< +b110010111000110101 e< +b10111000110101 o< +b10111000110101 y< +b110010111000110101 }< +b10111000110101 )= +b110010111000110101 7= +b10111000110101 K= +b110010111000110101 O= +b10111000110101 U= +1Y= +b10111000110101 q= +b10111000110101 u= +b10111000110101 /> +b10111000110101 u? +b10111000110101 #@ +b10111000110101 9@ +b10111000110101 =@ +b10111000110101 A@ +b10111000110101 E@ +b10111000110101 I@ +b10111000110101 M@ +#306000000 sLogicalFlags\x20(2) " b1011 $ +b0 % sHdlNone\x20(0) ' b100 ( b11111110 * b110000100100100 + sZeroExt8\x20(6) - -1. 0/ 00 -01 b1011 3 +b0 4 sHdlNone\x20(0) 6 b100 7 b11111110 9 b110000100100100 : sZeroExt8\x20(6) < -1= 0> 0? -0@ b1011 B +b0 C sHdlNone\x20(0) E b100 F b11111110 H b110000100100100 I -0K +1L 1M -1N b1011 P +b0 Q sHdlNone\x20(0) S b100 T b11111110 V b110000100100100 W sZeroExt8\x20(6) Y -1Z 0[ 0\ -0] b1011 _ +b0 ` sHdlNone\x20(0) b b100 c b11111110 e b110000100100100 f sZeroExt8\x20(6) h -1i 0j 0k -0l b1011 n +b0 o sHdlNone\x20(0) q b100 r b11111110 t @@ -148829,6 +159660,7 @@ b110000100100100 u sZeroExt8\x20(6) w sFunnelShift2x16Bit\x20(1) x b1011 z +b0 { sHdlNone\x20(0) } b100 ~ b11111110 "" @@ -148836,6 +159668,7 @@ b110000100100100 #" sZeroExt8\x20(6) %" sS64\x20(1) &" b1011 (" +b0 )" sHdlNone\x20(0) +" b100 ," b11111110 ." @@ -148843,33 +159676,34 @@ b110000100100100 /" sZeroExt8\x20(6) 1" sS64\x20(1) 2" b1011 4" +b0 5" sHdlNone\x20(0) 7" b100 8" b11111110 :" b110000100100100 ;" -0=" sParity\x20(7) >" 0?" 0@" -0A" b1011 D" +b0 E" sHdlNone\x20(0) G" b100 H" b11111110 J" b110000100100100 K" -0M" sParity\x20(7) N" 0O" 0P" -0Q" b10 S" b1011 T" +b0 U" sHdlNone\x20(0) W" b100 X" b11111110 Z" b110000100100100 [" +sLoad\x20(0) ]" b1 ^" b1011 _" +b0 `" sHdlNone\x20(0) b" b100 c" b11111110 e" @@ -148878,6 +159712,7 @@ sWidth32Bit\x20(2) h" sSignExt\x20(1) i" b1 j" b1011 k" +b0 l" sHdlNone\x20(0) n" b100 o" b11111110 q" @@ -149045,6 +159880,7 @@ b10010000000 Q. sWidth32Bit\x20(2) S. b10010000000 ]. sWidth32Bit\x20(2) _. +b0 c. b0 d. b1100 e. sZeroExt8\x20(6) s. @@ -149066,10 +159902,13 @@ sZeroExt8\x20(6) w/ sU32\x20(2) x/ 0%0 sSLt\x20(3) &0 +1*0 050 sSLt\x20(3) 60 +1:0 sWidth32Bit\x20(2) P0 sWidth32Bit\x20(2) \0 +b0 `0 b0 a0 b1100 b0 sZeroExt8\x20(6) p0 @@ -149091,10 +159930,13 @@ sZeroExt8\x20(6) t1 sCmpEqB\x20(10) u1 0"2 sSLt\x20(3) #2 +1'2 022 sSLt\x20(3) 32 +172 sWidth32Bit\x20(2) M2 sWidth32Bit\x20(2) Y2 +b0 ]2 b0 ^2 b1100 _2 sZeroExt8\x20(6) m2 @@ -149120,6 +159962,7 @@ sSLt\x20(3) ~3 sSLt\x20(3) 04 sWidth32Bit\x20(2) J4 sWidth32Bit\x20(2) V4 +b0 Z4 b0 [4 b1100 \4 sZeroExt8\x20(6) j4 @@ -149145,6 +159988,7 @@ sSLt\x20(3) {5 sSLt\x20(3) -6 sWidth32Bit\x20(2) G6 sWidth32Bit\x20(2) S6 +b0 W6 b0 X6 b1100 Y6 sZeroExt8\x20(6) g6 @@ -149170,6 +160014,7 @@ sSLt\x20(3) x7 sSLt\x20(3) *8 sWidth32Bit\x20(2) D8 sWidth32Bit\x20(2) P8 +b0 T8 b0 U8 b1100 V8 sZeroExt8\x20(6) d8 @@ -149195,30 +160040,46 @@ sSLt\x20(3) u9 sSLt\x20(3) ': sWidth32Bit\x20(2) A: sWidth32Bit\x20(2) M: +b0 Q: b0 R: b1100 S: b1011 T: +b11111111 V: +b0 W: b0 X: b1100 Y: b1011 Z: +b11111111 \: +b0 ]: b0 ^: b1100 _: b1011 `: +b11111111 b: +b0 c: b0 d: b1100 e: b1011 f: +b11111111 h: +b0 i: b0 j: b1100 k: b1011 l: +b11111111 n: +b0 o: b0 p: b1100 q: b1011 r: +b11111111 t: +b0 u: b0 v: b1100 w: b1011 x: +b11111111 z: +b0 {: b0 |: b1100 }: b1011 ~: +b11111111 "; b11 $; b1011 %; b10010000000 '; @@ -149226,6 +160087,7 @@ b0 (; b1100 ); b0 *; b10010000000 +; +b0 1; b0 2; b1100 3; b0 4; @@ -149233,6 +160095,7 @@ b10010000000 5; b0 6; b1100 7; b0 8; +b0 9; b0 :; b1100 ;; b0 <; @@ -149241,6 +160104,7 @@ b0 >; b1100 ?; b0 @; b10010000000 A; +b0 G; b0 H; b1100 I; b0 J; @@ -149248,6 +160112,7 @@ b10010000000 K; b0 L; b1100 M; b0 N; +b0 O; b0 P; b1100 Q; b0 R; @@ -149256,6 +160121,7 @@ b0 T; b1100 U; b0 V; b10010000000 W; +b0 ]; b0 ^; b1100 _; b0 `; @@ -149263,6 +160129,7 @@ b10010000000 a; b0 b; b1100 c; b0 d; +b0 e; b0 f; b1100 g; b0 h; @@ -149271,6 +160138,7 @@ b0 j; b1100 k; b0 l; b10010000000 m; +b0 s; b0 t; b1100 u; b0 v; @@ -149278,6 +160146,7 @@ b10010000000 w; b0 x; b1100 y; b0 z; +b0 {; b0 |; b1100 }; b0 ~; @@ -149286,9 +160155,11 @@ b0 "< b1100 #< b0 $< b10010000000 %< +b0 +< b0 ,< b1100 -< b0 .< +b0 /< b0 0< b1100 1< b0 2< @@ -149297,6 +160168,7 @@ b0 4< b1100 5< b0 6< b10010000000 7< +b0 =< b0 >< b1100 ?< b0 @< @@ -149304,6 +160176,7 @@ b100100000 A< b0 B< b1100 C< b0 D< +b0 E< b0 F< b1100 G< b0 H< @@ -149312,6 +160185,7 @@ b0 J< b1100 K< b0 L< b10010000000 M< +b0 S< b0 T< b1100 U< b0 V< @@ -149320,6 +160194,7 @@ b0 X< b1100 Y< b100000 Z< b0 [< +b0 \< b0 ]< b1100 ^< b100000 _< @@ -149329,6 +160204,7 @@ b0 b< b1100 c< b0 d< b10010000000 e< +b0 k< b0 l< b1100 m< b0 n< @@ -149337,6 +160213,7 @@ b0 p< b1100 q< b100000 r< b0 s< +b0 t< b0 u< b1100 v< b100000 w< @@ -149346,6 +160223,7 @@ b0 z< b1100 {< b0 |< b10010000000 }< +b0 %= b0 &= b1100 '= b0 (= @@ -149354,6 +160232,7 @@ b0 *= b1100 += b100000 ,= b0 -= +b0 .= b0 /= b1100 0= b100000 1= @@ -149363,6 +160242,7 @@ b0 4= b1100 5= b0 6= b10010000000 7= +b0 == b0 >= b1100 ?= b0 @= @@ -149371,6 +160251,7 @@ b0 B= b1100 C= b100000 D= b0 E= +b0 F= b0 G= b1100 H= b100000 I= @@ -149388,12 +160269,16 @@ b0 X= b10010 Z= b0 [= b1100 \= +b0 ]= b0 ^= b1100 _= +b0 b= b0 c= b1100 d= +b0 g= b0 h= b1100 i= +b0 l= b0 m= b1100 n= b10010000000 q= @@ -149402,47 +160287,67 @@ b1100 s= b10010000000 u= b0 v= b1100 w= +b0 y= b0 z= b1100 {= +b0 ~= b0 !> b1100 "> +b0 %> b0 &> b1100 '> +b0 *> b0 +> b1100 ,> b10010000000 /> b0 0> b1100 1> +b0 3> b0 4> b1100 5> +b0 8> b0 9> b1100 :> +b0 => b0 >> b1100 ?> +b0 B> b0 C> b1100 D> +b0 G> b0 H> b1100 I> +b0 L> b0 M> b1100 N> +b0 Q> b0 R> b1100 S> +b0 V> b0 W> b1100 X> +b0 [> b0 \> b1100 ]> +b0 `> b0 a> b1100 b> +b0 e> b0 f> b1100 g> +b0 j> b0 k> b1100 l> +b0 o> b0 p> b1100 q> +b0 t> b0 u> b1100 v> +b0 y> b0 z> b1100 {> +b0 ~> b0 !? b1100 "? b0 %? @@ -149489,6 +160394,7 @@ b10010000000 u? b0 v? b11 x? b1011 z? +b0 {? b0 |? b11 ~? b1011 "@ @@ -149496,12 +160402,15 @@ b10010000000 #@ b0 $@ b11 &@ b1011 (@ +b0 )@ b0 *@ b11 ,@ b1011 .@ +b0 /@ b0 0@ b11 2@ b1011 4@ +b0 5@ b0 6@ b11 7@ b1011 8@ @@ -149523,36 +160432,52 @@ b1100 K@ b10010000000 M@ b0 N@ b1100 O@ +b0 Q@ b0 R@ b1100 S@ +b0 U@ b0 V@ b1100 W@ +b0 Y@ b0 Z@ b1100 [@ +b0 ]@ b0 ^@ b1100 _@ +b0 a@ b0 b@ b1100 c@ +b0 e@ b0 f@ b1100 g@ +b0 i@ b0 j@ b1100 k@ +b0 m@ b0 n@ b1100 o@ +b0 q@ b0 r@ b1100 s@ +b0 u@ b0 v@ b1100 w@ +b0 y@ b0 z@ b1100 {@ +b0 }@ b0 ~@ b1100 !A +b0 #A b0 $A b1100 %A +b0 'A b0 (A b1100 )A +b0 +A b0 ,A b1100 -A +b0 /A b0 0A b1100 1A b0 3A @@ -149567,9 +160492,57 @@ b0 ?A b1100 @A b0 BA b1100 CA -b11 EA -b1011 FA -#275000000 +b0 EA +b0 FA +b1100 GA +b0 IA +b0 JA +b1100 KA +b0 MA +b0 NA +b1100 OA +b0 QA +b0 RA +b1100 SA +b0 UA +b0 VA +b1100 WA +b0 YA +b0 ZA +b1100 [A +b0 ]A +b0 ^A +b1100 _A +b0 aA +b0 bA +b1100 cA +b0 eA +b0 fA +b1100 gA +b0 iA +b0 jA +b1100 kA +b0 mA +b0 nA +b1100 oA +b0 qA +b0 rA +b1100 sA +b0 uA +b0 vA +b1100 wA +b0 yA +b0 zA +b1100 {A +b0 }A +b0 ~A +b1100 !B +b0 #B +b0 $B +b1100 %B +b11 'B +b1011 (B +#307000000 sAddSub\x20(0) " b0 $ b0 ( @@ -150354,6 +161327,22 @@ b11000 :A b11000 =A b11000 @A b11000 CA -b110 EA -b1110 FA -#276000000 +b11000 GA +b11000 KA +b11000 OA +b11000 SA +b11000 WA +b11000 [A +b11000 _A +b11000 cA +b11000 gA +b11000 kA +b11000 oA +b11000 sA +b11000 wA +b11000 {A +b11000 !B +b11000 %B +b110 'B +b1110 (B +#308000000 diff --git a/crates/cpu/tests/simple_power_isa_decoder/test_cases.rs b/crates/cpu/tests/simple_power_isa_decoder/test_cases.rs index 9c9d063..536446d 100644 --- a/crates/cpu/tests/simple_power_isa_decoder/test_cases.rs +++ b/crates/cpu/tests/simple_power_isa_decoder/test_cases.rs @@ -11,6 +11,7 @@ mod fixed_point_arithmetic; mod fixed_point_compare; mod fixed_point_load; mod fixed_point_logical; +mod fixed_point_rotate_and_shift; mod fixed_point_store; mod move_to_from_system_register; mod prefixed_no_operation; @@ -143,6 +144,9 @@ pub fn test_cases() -> Vec { fixed_point_arithmetic::test_cases_book_i_3_3_9_fixed_point_arithmetic(&mut retval); fixed_point_compare::test_cases_book_i_3_3_10_fixed_point_compare(&mut retval); fixed_point_logical::test_cases_book_i_3_3_13_fixed_point_logical(&mut retval); + fixed_point_rotate_and_shift::test_cases_book_i_3_3_14_fixed_point_rotate_and_shift( + &mut retval, + ); move_to_from_system_register::test_cases_book_i_3_3_19_move_to_from_system_register( &mut retval, ); diff --git a/crates/cpu/tests/simple_power_isa_decoder/test_cases/fixed_point_rotate_and_shift.rs b/crates/cpu/tests/simple_power_isa_decoder/test_cases/fixed_point_rotate_and_shift.rs new file mode 100644 index 0000000..b94d732 --- /dev/null +++ b/crates/cpu/tests/simple_power_isa_decoder/test_cases/fixed_point_rotate_and_shift.rs @@ -0,0 +1,364 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +// See Notices.txt for copyright information + +use crate::test_cases::{TestCase, insn_single}; +use cpu::instruction::{ + AddSubMOp, MOpDestReg, MOpRegNum, OutputIntegerMode, ShiftRotateMOp, ShiftRotateMOpImm, + ShiftRotateMode, +}; +use fayalite::prelude::*; + +#[hdl] +fn shift_imm(amount: Option, shift_right: bool) -> Expr { + #[hdl] + ShiftRotateMOpImm { + shift_rotate_amount: if let Some(amount) = amount { + HdlSome(amount.cast_to_static::>()) + } else { + HdlNone() + }, + shift_rotate_right: shift_right, + dest_logic_op: HdlNone(), + } +} + +/// covers instructions in PowerISA v3.1C Book I 3.3.14 Fixed-Point Rotate and Shift Instructions +pub fn test_cases_book_i_3_3_14_fixed_point_rotate_and_shift(retval: &mut Vec) { + // TODO: rotate instructions + + macro_rules! shift_left { + ( + $mnemonic:literal $dest:literal, $src:literal, $amount:literal; + $encoding:literal; + $shift_rotate_mode:ident; + ) => {{ + retval.push(insn_single( + concat!( + $mnemonic, + " ", + stringify!($dest), + ", ", + stringify!($src), + ", ", + stringify!($amount) + ), + $encoding, + None, + ShiftRotateMOp::shift_rotate( + MOpDestReg::new_sim(&[MOpRegNum::power_isa_gpr_reg_num($dest)], &[]), + [ + MOpRegNum::power_isa_gpr_reg_imm($src).value, + MOpRegNum::const_zero().value, + MOpRegNum::power_isa_gpr_reg_imm($amount).value, + ], + shift_imm(None, false), + OutputIntegerMode.Full64(), + ShiftRotateMode.$shift_rotate_mode(), + ), + )); + retval.push(insn_single( + concat!( + $mnemonic, + ". ", + stringify!($dest), + ", ", + stringify!($src), + ", ", + stringify!($amount) + ), + $encoding | 1, + None, + ShiftRotateMOp::shift_rotate( + MOpDestReg::new_sim( + &[MOpRegNum::power_isa_gpr_reg_num($dest)], + &[MOpRegNum::POWER_ISA_CR_0_REG_NUM], + ), + [ + MOpRegNum::power_isa_gpr_reg_imm($src).value, + MOpRegNum::const_zero().value, + MOpRegNum::power_isa_gpr_reg_imm($amount).value, + ], + shift_imm(None, false), + OutputIntegerMode.Full64(), + ShiftRotateMode.$shift_rotate_mode(), + ), + )); + }}; + } + macro_rules! shift_right_unsigned { + ( + $mnemonic:literal $dest:literal, $src:literal, $amount:literal; + $encoding:literal; + $shift_rotate_mode:ident; + ) => {{ + retval.push(insn_single( + concat!( + $mnemonic, + " ", + stringify!($dest), + ", ", + stringify!($src), + ", ", + stringify!($amount) + ), + $encoding, + None, + ShiftRotateMOp::shift_rotate( + MOpDestReg::new_sim(&[MOpRegNum::power_isa_gpr_reg_num($dest)], &[]), + [ + MOpRegNum::const_zero().value, + MOpRegNum::power_isa_gpr_reg_imm($src).value, + MOpRegNum::power_isa_gpr_reg_imm($amount).value, + ], + shift_imm(None, true), + OutputIntegerMode.Full64(), + ShiftRotateMode.$shift_rotate_mode(), + ), + )); + retval.push(insn_single( + concat!( + $mnemonic, + ". ", + stringify!($dest), + ", ", + stringify!($src), + ", ", + stringify!($amount) + ), + $encoding | 1, + None, + ShiftRotateMOp::shift_rotate( + MOpDestReg::new_sim( + &[MOpRegNum::power_isa_gpr_reg_num($dest)], + &[MOpRegNum::POWER_ISA_CR_0_REG_NUM], + ), + [ + MOpRegNum::const_zero().value, + MOpRegNum::power_isa_gpr_reg_imm($src).value, + MOpRegNum::power_isa_gpr_reg_imm($amount).value, + ], + shift_imm(None, true), + OutputIntegerMode.Full64(), + ShiftRotateMode.$shift_rotate_mode(), + ), + )); + }}; + } + macro_rules! shift_right_signed { + ( + $mnemonic:literal $dest:literal, $src:literal, $amount:literal; + $encoding:literal; + $shift_rotate_mode:ident; + ) => {{ + retval.push(insn_single( + concat!( + $mnemonic, + " ", + stringify!($dest), + ", ", + stringify!($src), + ", ", + stringify!($amount) + ), + $encoding, + None, + ShiftRotateMOp::shift_rotate( + MOpDestReg::new_sim( + &[ + MOpRegNum::power_isa_gpr_reg_num($dest), + MOpRegNum::POWER_ISA_XER_CA_CA32_REG_NUM, + ], + &[], + ), + [ + MOpRegNum::power_isa_gpr_reg_imm($src).value, + MOpRegNum::const_zero().value, + MOpRegNum::power_isa_gpr_reg_imm($amount).value, + ], + shift_imm(None, true), + OutputIntegerMode.Full64(), + ShiftRotateMode.$shift_rotate_mode(), + ), + )); + retval.push(insn_single( + concat!( + $mnemonic, + ". ", + stringify!($dest), + ", ", + stringify!($src), + ", ", + stringify!($amount) + ), + $encoding | 1, + None, + ShiftRotateMOp::shift_rotate( + MOpDestReg::new_sim( + &[ + MOpRegNum::power_isa_gpr_reg_num($dest), + MOpRegNum::POWER_ISA_XER_CA_CA32_REG_NUM, + ], + &[MOpRegNum::POWER_ISA_CR_0_REG_NUM], + ), + [ + MOpRegNum::power_isa_gpr_reg_imm($src).value, + MOpRegNum::const_zero().value, + MOpRegNum::power_isa_gpr_reg_imm($amount).value, + ], + shift_imm(None, true), + OutputIntegerMode.Full64(), + ShiftRotateMode.$shift_rotate_mode(), + ), + )); + }}; + } + macro_rules! shift_right_signed_imm { + ( + $mnemonic:literal $dest:literal, $src:literal, $amount:literal; + $encoding:literal; + $shift_rotate_mode:ident; + ) => {{ + retval.push(insn_single( + concat!( + $mnemonic, + " ", + stringify!($dest), + ", ", + stringify!($src), + ", ", + stringify!($amount) + ), + $encoding, + None, + ShiftRotateMOp::shift_rotate( + MOpDestReg::new_sim( + &[ + MOpRegNum::power_isa_gpr_reg_num($dest), + MOpRegNum::POWER_ISA_XER_CA_CA32_REG_NUM, + ], + &[], + ), + [ + MOpRegNum::power_isa_gpr_reg_imm($src).value, + MOpRegNum::const_zero().value, + MOpRegNum::const_zero().value, + ], + shift_imm(Some($amount), true), + OutputIntegerMode.Full64(), + ShiftRotateMode.$shift_rotate_mode(), + ), + )); + retval.push(insn_single( + concat!( + $mnemonic, + ". ", + stringify!($dest), + ", ", + stringify!($src), + ", ", + stringify!($amount) + ), + $encoding | 1, + None, + ShiftRotateMOp::shift_rotate( + MOpDestReg::new_sim( + &[ + MOpRegNum::power_isa_gpr_reg_num($dest), + MOpRegNum::POWER_ISA_XER_CA_CA32_REG_NUM, + ], + &[MOpRegNum::POWER_ISA_CR_0_REG_NUM], + ), + [ + MOpRegNum::power_isa_gpr_reg_imm($src).value, + MOpRegNum::const_zero().value, + MOpRegNum::const_zero().value, + ], + shift_imm(Some($amount), true), + OutputIntegerMode.Full64(), + ShiftRotateMode.$shift_rotate_mode(), + ), + )); + }}; + } + shift_left! { + "slw" 3, 4, 5; + 0x7c832830; + FunnelShift2x32Bit; + } + shift_right_unsigned! { + "srw" 3, 4, 5; + 0x7c832c30; + FunnelShift2x32Bit; + } + shift_right_signed_imm! { + "srawi" 3, 4, 0; + 0x7c830670; + SignExt32To64BitThenShift; + } + shift_right_signed_imm! { + "srawi" 3, 4, 5; + 0x7c832e70; + SignExt32To64BitThenShift; + } + shift_right_signed_imm! { + "srawi" 3, 4, 16; + 0x7c838670; + SignExt32To64BitThenShift; + } + shift_right_signed_imm! { + "srawi" 3, 4, 31; + 0x7c83fe70; + SignExt32To64BitThenShift; + } + shift_right_signed! { + "sraw" 3, 4, 5; + 0x7c832e30; + SignExt32To64BitThenShift; + } + shift_left! { + "sld" 3, 4, 5; + 0x7c832836; + FunnelShift2x64Bit; + } + shift_right_unsigned! { + "srd" 3, 4, 5; + 0x7c832c36; + FunnelShift2x64Bit; + } + shift_right_signed_imm! { + "sradi" 3, 4, 0; + 0x7c830674; + ShiftSigned64; + } + shift_right_signed_imm! { + "sradi" 3, 4, 5; + 0x7c832e74; + ShiftSigned64; + } + shift_right_signed_imm! { + "sradi" 3, 4, 16; + 0x7c838674; + ShiftSigned64; + } + shift_right_signed_imm! { + "sradi" 3, 4, 31; + 0x7c83fe74; + ShiftSigned64; + } + shift_right_signed_imm! { + "sradi" 3, 4, 32; + 0x7c830676; + ShiftSigned64; + } + shift_right_signed_imm! { + "sradi" 3, 4, 63; + 0x7c83fe76; + ShiftSigned64; + } + shift_right_signed! { + "srad" 3, 4, 5; + 0x7c832e34; + ShiftSigned64; + } + // TODO: extswsli +}