	keyHelperunicodeScalarValuesscanCodekeyCode	modifiersisDownspecifiedLogicalKeykeyLabelphysicalKey
logicalKeyisModifierPressedgetModifierSidedebugFillProperties==hashCodedebugToolkit	numpadKeyplatformPlanemodifierCapsLockmodifierShiftmodifierControlmodifierAltmodifierMetamodifierNumericPad_mergeModifiersmodifierMod1modifierMod2RawKeyEventDataLinux	KeyHelperGLFWKeyHelperGtkKeyHelper=DiagnosticPropertiesBuilderLogicalKeyboardKeyPhysicalKeyboardKeyKeyEventRawKeyboard
DeprecatedRawKeyEventData	valueMaskintbooloverrideStringfromCharCodekLinuxToPhysicalKeywebPlanefindKeyByKeyId	numpadKey
isNotEmptyisControlCharacterunicodePlane
logicalKeyplatformPlaneModifierKeyKeyboardSideanyisModifierPressedsidekeyCodeisDowngetModifierSidevoiddebugFillPropertiesaddDiagnosticsPropertydebugToolkitdefaultValueObject	identicalruntimeType	keyHelperunicodeScalarValuesscanCode	modifiershashFlutterErrorcontrolModifiershiftModifieraltModifiermetaModifiercapsLockModifiernumLockModifierfunctionModifiersymbolModifierscrollLockModifierallkGlfwNumpadMapkGlfwToLogicalKey	glfwPlanekGtkNumpadMapkGtkToLogicalKeygtkPlaneRawKeyEventData	KeyHelper‹ýlV¥–®¡€Qz–U�t�”DiagnosticPropertiesBuilder �Kpackage:flutter/foundation.dart�¶�âLogicalKeyboardKeyPhysicalKeyboardKey �™keyboard_key.g.dart   €à   package:flutter/foundation.dart  �   keyboard_maps.g.dart  �-   raw_keyboard.dart¤q À Ly�é =€ˆ€§€©€Ó€Ý€ß�
��,�I�K�—�™�å�ç‚‚‚l‚¹‚¾ƒƒ`ƒeƒtƒyƒ¾ƒÌ„/„h„k„¡„ß„ï…T…�…”…´…Ò…õ††$†=†X†w†Ã†Å‡‡ ‡‡Â‡à‡âˆCˆ�ˆ–ˆõ‰U‰u‰—‰™‰Û‰âŠ/ŠbŠyŠ{Š¹ŠÀ‹‹g‹}‹‹ÊŒ$Œ<Œ>Œ‹Œ¡Œ£Œò���c�²�¹�îŽŽŽ Ž„Ž†Ž“���*�Q�y�¦�÷�þ�J�˜�Ô‘‘;‘T‘[‘]‘®‘ÿ’Q’`’€’½“.“ƒ“Š“Œ“Ü”#”>”T”[”]”¬”º”ý••••f•Í•Ò•Ô•á––@–E–G–T–š–Æ——v—»—þ˜E˜‡˜÷˜ü˜þ™™.™Q™e™l™™™®™µ™ßš š]š„š©šÒšöšûšý›
›.›J›d›s›�›‘›ž›¤›§›©›ß›äœ2œvœ�œ”œã�0�>�Y�’�•�±�úž
ž'žbžgžŽž¬žËžïŸŸŸaŸhŸmŸoŸ˜ŸŸŸÞŸúŸü M œ ¬ É¡¡	¡;¡=¡Œ¡š¡ª¡Ç¢¢¢–¢˜¢Ò£££>£n£p£§£Á£Ä£Æ£þ¤¤R¤Ÿ¤­¤È¥¥¥0¥€¥¶¥½¦ ¦Q¦Ÿ¦í§;§I§_§Ž§�§à¨¨&¨f¨’¨”¨ä©"©)©i©—©™©éª&ª-ªmª—ª™ªé«.«5«u« «¢«¤«ô¬2¬9¬y¬ª¬¬¬¹¬ß¬á­@­j­‘­¹­â®®1®W®}®¤®Ê®ï®ñ¯C¯”¯å°°°B°…°Ê±±M±y±§±¶±¾±À²²²²#²³³³(³q³¸³ý´C´�´Ùµ	µ9µiµ™µ¡µ¦µ¨µµµè¶2¶f¶«¶É¶Î¶Ð¶Ý··2·7·9·F·w·Ÿ·¤·¦·³·í·ð·ò¸)¸.¸}¸Ê¸Ø¸ó¹,¹/¹Z¹ª¹é¹ðº/º”ºå»5»p»†»²»´¼¼:¼A¼}¼¬¼®¼þ½<½C½½­½¯½ÿ¾N¾U¾‘¾¼¾¾¿¿^¿p¿w¿³¿Þ¿àÀ @0À @uÀ @|À @¸À @äÀ @æÀ @óÀ AÀ AÀ AyÀ A¢À AÌÀ A÷À B#À BPÀ ByÀ B£À BËÀ BôÀ CÀ CGÀ CoÀ CqÀ CÂÀ DÀ DdÀ DŒÀ DŽÀ DÁÀ EÀ EIÀ E‹À EÍÀ FÀ F:À FIÀ FQÀ FSÀ F¢À F§À F©À F¶À GFÀ G À G»À HÀ HKÀ H‘À H×À I!À IgÀ I–À IÆÀ IöÀ J&À J.À J3À J5À JBÀ JuÀ J¾À JòÀ K7À KUÀ KZÀ K\À KiÀ K™À K½À KÂÀ KÄÀ KÑÀ LÀ L)À L.À L0À L=À LvÀ Ly   (/// @docImport 'hardware_keyboard.dart';€ß   �   �,   �K�t�”�™�¶�â �ç™¾„q„q�Ë/// Platform-specific key event data for Linux.
///
/// This class is deprecated and will be removed. Platform specific key event
/// data will no longer be available. See [KeyEvent] for what is available.
///
/// Different window toolkit implementations can map to different key codes. This class
/// will use the correct mapping depending on the [keyHelper] provided.
///
/// See also:
///
///  * [RawKeyboard], which uses this interface to expose key data. „£‚…œ …œ…° :/// Creates a key event data structure specific for Linux.…¸…Ç…Æ  …Ö…Ü…Û  …ù…ÿ…þ  †††  †(†.†-  †A†P†O  †\†b†a  „á„â„ì…‘„ó…X…ñ†	† †9†~†„†¿†»†…†¹†š†††œ†�†¯†°†¾†Ç�‡Ô‡Ô€ð/// A helper class that abstracts the fetching of the toolkit-specific mappings.
///
/// There is no real concept of a "native" window toolkit on Linux, and each implementation
/// (GLFW, GTK, QT, etc) may have a different key code mapping. ‡ä�°‰�‰��€/// An int with up to two Unicode scalar values generated by a single keystroke. An assertion
/// will fire if more than two values are encoded in a single keystroke.
///
/// This is typically the character that [keyCode] would produce without any modifier keys.
/// For dead keys, it is typically the diacritic it would add to a character. Defaults to 0,
/// asserted to be not null. ‰›€ÛŠnŠn€¼/// The hardware scan code id corresponding to this key event.
///
/// These values are not reliable and vary from device to device, so this
/// information is mainly useful for debugging. Š}€ý‹s‹s€ß/// The hardware key code corresponding to this key event.
///
/// This is the physical key that was pressed, not the Unicode character.
/// This value may be different depending on the window toolkit used. See [KeyHelper]. ‹�€¸Œ0Œ0€ž/// A mask of the current modifiers using the values in Modifier Flags.
/// This value may be different depending on the window toolkit used. See [KeyHelper]. Œ@^Œ˜Œ˜I/// Whether or not this key event is a key down (true) or key up (false). Œ¥�i�û�û�5/// A logical key specified by the embedding that should be used instead of
/// deriving from raw data.
///
/// The GTK embedding detects the keyboard layout and maps some keys to
/// logical keys in a way that can not be derived from per-key information.
///
/// This is not part of the native GTK key event. ŽmŽ-Ž-   ŽŽŽˆ€‘Ž­Ž­   ŽˆŽ‰�…á�C�C   �� šÿ€£››   šÿ›  •€Ê••  •*•7•6  •<$•J•I  •••P•\•]•Öm•ð•ð  – ––  •Ö•×–I‚±–[–[  –o&–Œ–‹  –I–J™ �ù™™  ™™%™$  ™ ™ƒ¾ƒ¿ƒÉ„hƒÎ„1›©ˆ�¤�¤�~/// Abstract class for window-specific key mappings.
///
/// Given that there might be multiple window toolkit implementations (GLFW,
/// GTK, QT, etc), this creates a common interface for each of the
/// different toolkits.
///
/// This class is deprecated and will be removed. Platform specific key event
/// data will no longer be available. See [KeyEvent] for what is available. �³�¸žq žqžz E/// Create a KeyHelper implementation depending on the given toolkit.ž{žƒž‚  �ü�ýžždžž+ Ÿq€‡ŸëŸëe/// Returns the name for the toolkit.
///
/// This is used in debug mode to generate readable string.   £rM£±£±3/// The platform plane mask value of this platform.    Ÿþ�;¡¡€™/// Returns a [KeyboardSide] enum value that describes which side or sides of
/// the given keyboard modifier key were pressed at the time of this event. ¡(¡5¡4   ž Ÿ ©¡ ° Í¡?�U¢¢V/// Returns true if the given [ModifierKey] was pressed at the time of this
/// event. ¢ ¢-¢,  ¢1¢6¢5  ¢A$¢O¢N  ¢g¢u¢t  ¢}¢Œ¢‹  	¡œ¡�¡§¢¡®¡Ë¢U¢a¢b¢še¢è¢è6/// The numpad key from the specific key code mapping. ¢ò¢÷¢ö   £g£T£T7/// The logical key from the specific key code mapping. £_£d£c   �0�1�;�’�@�[£Æ”(¥
¥
€Ô/// Helper class that uses GLFW-specific key mappings.
///
/// This class is deprecated and will be removed. Platform specific key event
/// data will no longer be available. See [KeyEvent] for what is available.  ¥2‚Y§r§r‚/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether the CAPS LOCK modifier key is on.
///
/// {@template flutter.services.GLFWKeyHelper.modifierCapsLock}
/// Use this value if you need to decode the [RawKeyEventDataLinux.modifiers]
/// field yourself, but it's much easier to use [isModifierPressed] if you
/// just want to know if a modifier is pressed. This is especially true on
/// GLFW, since its modifiers don't include the effects of the current key
/// event.
/// {@endtemplate}§…§’€ý¨y¨y€É/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the SHIFT modifier keys is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}¨‰¨–€þ©|©|€È/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the CTRL modifier keys is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}©Ž©›€ùª€ª€€Ç/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the ALT modifier keys is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}ªŽª›�«ˆ«ˆ€Ï/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the Meta(SUPER) modifier keys is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}«—«¦�¬Œ¬Œ€È/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether any key in the numeric keypad is pressed.
///
/// {@macro flutter.services.GLFWKeyHelper.modifierCapsLock}¬¡¬®/¬Æ¬Æ   ¬®¬¯·¨C·½·½   ·¨·© ¬ã…/¬ç¬ç  ¬ø­­  ­­­  ­&­5­4   ²ƒŒ²*²*  ²<²I²H  ²M²R²Q  ²]$²k²j  ²ƒ²‘²�  ²™²¨²§  ²²²q²}²~µª�"µÄµÄ  µÔµáµà  µªµ«¶Òc¶ó¶ó  ¶ý··  ¶Ò¶Ó·;g·\·\  ·g·l·k  ·;·<¤Ÿ¤ ¤ª¥¤¯¤Ê·ò”…¹5¹5€Ó/// Helper class that uses GTK-specific key mappings.
///
/// This class is deprecated and will be removed. Platform specific key event
/// data will no longer be available. See [KeyEvent] for what is available.  ¹\‚S»™»™‚/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the SHIFT modifier keys is pressed.
///
/// {@template flutter.services.GtkKeyHelper.modifierShift}
/// Use this value if you need to decode the [RawKeyEventDataLinux.modifiers] field yourself, but
/// it's much easier to use [isModifierPressed] if you just want to know if a
/// modifier is pressed. This is especially true on GTK, since its modifiers
/// don't include the effects of the current key event.
/// {@endtemplate}»«»©»®»¶€ó¼�¼�€¼/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether the CAPS LOCK modifier key is on.
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}¼¥¼£¼¨¼°€ú½’½’€Ä/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the CTRL modifier keys is pressed.
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}½¦½¤½©½±�¾¤¾¤€Õ/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether the first modifier key is pressed (usually mapped to alt).
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}¾µ¾³¾¸¾À�¿Æ¿Æ€å/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether the second modifier key is pressed (assumed to be mapped to
/// num lock).
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}¿×¿Õ¿Ú¿â€ÿÀ @ËÀ @Ë€Ë/// This mask is used to check the [RawKeyEventDataLinux.modifiers] field to
/// test whether one of the Meta(SUPER) modifier keys is pressed.
///
/// {@macro flutter.services.GtkKeyHelper.modifierShift}À @ÜÀ @ÚÀ @ßÀ @è.À A À A    À @èÀ @éÀ L2BÀ LGÀ LG   À L2À L3 À A…‰À A À A   À A1À A?À A>  À AIÀ AWÀ AV  À A_À AnÀ Am   À F«ƒ†À F½À F½  À FÏÀ FÜÀ FÛ  À FàÀ FåÀ Fä  À Fð$À FþÀ Fý  À GÀ G$À G#  À G,À G;À G:  À F«À F¬À GÀ GÀ GÀ J7�!À JQÀ JQ  À JaÀ JnÀ Jm  À J7À J8À K^bÀ KÀ K  À K‰À KŽÀ K�  À K^À K_À KÆfÀ KçÀ Kç  À KòÀ K÷À Kö  À KÆÀ KÇ¸Ê¸Ë¸Õ¹,¸Ú¸õ              €²  hardware_keyboard.dart �é =€ˆ€§€©€Ó€Ý€ß�
��,�I�K�—�™�å�ç‚‚‚l‚¹‚¾ƒƒ`ƒeƒtƒyƒ¾ƒÌ„/„h„k„¡„ß„ï…T…�…”…´…Ò…õ††$†=†X†w†Ã†Å‡‡ ‡‡Â‡à‡âˆCˆ�ˆ–ˆõ‰U‰u‰—‰™‰Û‰âŠ/ŠbŠyŠ{Š¹ŠÀ‹‹g‹}‹‹ÊŒ$Œ<Œ>Œ‹Œ¡Œ£Œò���c�²�¹�îŽŽŽ Ž„Ž†Ž“���*�Q�y�¦�÷�þ�J�˜�Ô‘‘;‘T‘[‘]‘®‘ÿ’Q’`’€’½“.“ƒ“Š“Œ“Ü”#”>”T”[”]”¬”º”ý••••f•Í•Ò•Ô•á––@–E–G–T–š–Æ——v—»—þ˜E˜‡˜÷˜ü˜þ™™.™Q™e™l™™™®™µ™ßš š]š„š©šÒšöšûšý›
›.›J›d›s›�›‘›ž›¤›§›©›ß›äœ2œvœ�œ”œã�0�>�Y�’�•�±�úž
ž'žbžgžŽž¬žËžïŸŸŸaŸhŸmŸoŸ˜ŸŸŸÞŸúŸü M œ ¬ É¡¡	¡;¡=¡Œ¡š¡ª¡Ç¢¢¢–¢˜¢Ò£££>£n£p£§£Á£Ä£Æ£þ¤¤R¤Ÿ¤­¤È¥¥¥0¥€¥¶¥½¦ ¦Q¦Ÿ¦í§;§I§_§Ž§�§à¨¨&¨f¨’¨”¨ä©"©)©i©—©™©éª&ª-ªmª—ª™ªé«.«5«u« «¢«¤«ô¬2¬9¬y¬ª¬¬¬¹¬ß¬á­@­j­‘­¹­â®®1®W®}®¤®Ê®ï®ñ¯C¯”¯å°°°B°…°Ê±±M±y±§±¶±¾±À²²²²#²³³³(³q³¸³ý´C´�´Ùµ	µ9µiµ™µ¡µ¦µ¨µµµè¶2¶f¶«¶É¶Î¶Ð¶Ý··2·7·9·F·w·Ÿ·¤·¦·³·í·ð·ò¸)¸.¸}¸Ê¸Ø¸ó¹,¹/¹Z¹ª¹é¹ðº/º”ºå»5»p»†»²»´¼¼:¼A¼}¼¬¼®¼þ½<½C½½­½¯½ÿ¾N¾U¾‘¾¼¾¾¿¿^¿p¿w¿³¿Þ¿àÀ @0À @uÀ @|À @¸À @äÀ @æÀ @óÀ AÀ AÀ AyÀ A¢À AÌÀ A÷À B#À BPÀ ByÀ B£À BËÀ BôÀ CÀ CGÀ CoÀ CqÀ CÂÀ DÀ DdÀ DŒÀ DŽÀ DÁÀ EÀ EIÀ E‹À EÍÀ FÀ F:À FIÀ FQÀ FSÀ F¢À F§À F©À F¶À GFÀ G À G»À HÀ HKÀ H‘À H×À I!À IgÀ I–À IÆÀ IöÀ J&À J.À J3À J5À JBÀ JuÀ J¾À JòÀ K7À KUÀ KZÀ K\À KiÀ K™À K½À KÂÀ KÄÀ KÑÀ LÀ L)À L.À L0À L=À LvÀ Ly   RawKeyEventDataLinux	KeyHelperGLFWKeyHelperGtkKeyHelper/flutter.services.GLFWKeyHelper.modifierCapsLock�%Use this value if you need to decode the [RawKeyEventDataLinux.modifiers]
field yourself, but it's much easier to use [isModifierPressed] if you
just want to know if a modifier is pressed. This is especially true on
GLFW, since its modifiers don't include the effects of the current key
event.+flutter.services.GtkKeyHelper.modifierShift�$Use this value if you need to decode the [RawKeyEventDataLinux.modifiers] field yourself, but
it's much easier to use [isModifierPressed] if you just want to know if a
modifier is pressed. This is especially true on GTK, since its modifiers
don't include the effects of the current key event. 3