pax_global_header00006660000000000000000000000064152033717430014517gustar00rootroot0000000000000052 comment=3516a94d25e9f9632dae2f78fb604af1e5b14981 Flatseal-2.4.1/000077500000000000000000000000001520337174300132565ustar00rootroot00000000000000Flatseal-2.4.1/.eslintrc.yml000066400000000000000000000127771520337174300157200ustar00rootroot00000000000000--- env: es6: true extends: 'eslint:recommended' rules: accessor-pairs: error array-bracket-newline: - error - consistent array-bracket-spacing: - error - never array-callback-return: error arrow-parens: - error - as-needed arrow-spacing: error block-scoped-var: error block-spacing: error brace-style: - error - 1tbs class-methods-use-this: error comma-dangle: - error - always-multiline comma-spacing: - error - after: true before: false comma-style: - error - last complexity: error computed-property-spacing: - error - never consistent-return: error curly: - error - multi-or-nest - consistent default-case: error dot-location: - error - property eol-last: error eqeqeq: error for-direction: error func-call-spacing: error func-name-matching: error func-names: - error - never func-style: - error - declaration generator-star-spacing: error getter-return: error global-require: error guard-for-in: error handle-callback-err: error indent: - error - 4 - MemberExpression: 'off' key-spacing: error keyword-spacing: - error - after: true before: true linebreak-style: - error - unix lines-around-comment: error lines-around-directive: error lines-between-class-members: error max-depth: error max-len: - error - code: 120 comments: 80 max-nested-callbacks: error max-statements-per-line: error new-parens: error newline-per-chained-call: error no-array-constructor: error no-await-in-loop: error no-caller: error no-catch-shadow: error no-confusing-arrow: error no-div-regex: error no-else-return: error no-empty: - error - allowEmptyCatch: true no-empty-function: error no-eq-null: error no-eval: error no-extend-native: error no-extra-bind: error no-extra-label: error no-extra-parens: - error - all - conditionalAssign: false returnAssign: false no-floating-decimal: error no-invalid-this: error no-iterator: error no-label-var: error no-labels: error no-lone-blocks: error no-lonely-if: error no-loop-func: error no-multi-assign: error no-multi-spaces: - error - ignoreEOLComments: true no-multiple-empty-lines: error no-native-reassign: error no-negated-condition: error no-negated-in-lhs: error no-nested-ternary: error no-new: error no-new-func: error no-new-object: error no-new-wrappers: error no-octal-escape: error no-param-reassign: error no-proto: error no-restricted-syntax: - error # Use ES6 classes rather than Lang.Class - "NewExpression > MemberExpression[object.name='Lang']\ [property.name='Class']" # Use arrow functions or Function.bind rather than Lang.bind - "CallExpression > MemberExpression[object.name='Lang']\ [property.name='bind']" # Use super rather than this.parent() - "CallExpression > MemberExpression[object.type='ThisExpression']\ [property.name='parent']" # Use GLib timeouts rather than the mainloop module - MemberExpression[object.name='imports'][property.name='mainloop'] no-return-assign: error no-return-await: error no-self-compare: error no-sequences: error no-shadow: error no-shadow-restricted-names: error no-spaced-func: error no-tabs: error no-template-curly-in-string: error no-throw-literal: error no-trailing-spaces: error no-undef-init: error no-undefined: error no-unmodified-loop-condition: error no-unneeded-ternary: error no-unused-expressions: error no-use-before-define: error no-useless-call: error no-useless-computed-key: error no-useless-concat: error no-useless-constructor: error no-useless-rename: error no-useless-return: error no-whitespace-before-property: error no-with: error nonblock-statement-body-position: - error - below object-curly-newline: - error - consistent: true object-curly-spacing: error object-shorthand: 'off' operator-assignment: error operator-linebreak: error padded-blocks: - error - never prefer-const: error prefer-destructuring: error prefer-numeric-literals: error prefer-promise-reject-errors: error prefer-rest-params: error prefer-spread: error prefer-template: error quote-props: - error - as-needed quotes: - error - single - avoidEscape: true radix: error require-await: error rest-spread-spacing: - error - never semi: error semi-spacing: - error - after: true before: false semi-style: - error - last space-before-blocks: error space-before-function-paren: - error - named: never anonymous: never asyncArrow: always space-in-parens: - error - never space-infix-ops: error space-unary-ops: error spaced-comment: - error - always strict: - error - never switch-colon-spacing: error symbol-description: error template-curly-spacing: error template-tag-spacing: error unicode-bom: - error - never valid-jsdoc: error wrap-iife: error wrap-regex: error yield-star-spacing: error yoda: - error - never # GJS, SpiderMonkey and Jasmine global objects globals: ARGV: false imports: false Intl: false log: false logError: false print: false printerr: false window: false _: false pkg: false describe: false beforeEach: false it: false expect: false spyOn: false beforeAll: false afterAll: false parserOptions: ecmaVersion: 2018 Flatseal-2.4.1/.github/000077500000000000000000000000001520337174300146165ustar00rootroot00000000000000Flatseal-2.4.1/.github/workflows/000077500000000000000000000000001520337174300166535ustar00rootroot00000000000000Flatseal-2.4.1/.github/workflows/CI.yml000066400000000000000000000006221520337174300176710ustar00rootroot00000000000000on: push: branches: - master pull_request: branches: - master name: CI jobs: testing: runs-on: ubuntu-latest container: image: ghcr.io/tchx84/test-gnome-flatpak-app-action:v50 options: --privileged steps: - uses: actions/checkout@v6 - uses: tchx84/test-gnome-flatpak-app-action@v50 with: manifest: com.github.tchx84.Flatseal.json Flatseal-2.4.1/.gitignore000066400000000000000000000000351520337174300152440ustar00rootroot00000000000000.flatpak-builder/ build-dir/ Flatseal-2.4.1/CHANGELOG.md000066400000000000000000000262471520337174300151020ustar00rootroot00000000000000# Changelog ## [2.4.1] - 2026-05-20 - Added identifier field to the app summary. - Added Japanese translation. - Added Vietnamese translation. - Fixed missing device support information in the app metadata. - Fixed issue where paths entries suddenly disappear. - Fixed too strict environment variable validation. - Fixed unnecessary cleanup section in the manifest. - Fixed libadwaita version requirement. - Changed to test-gnome-flatpak-app-action to run tests in CI. - Changed to GNOME 50 runtime for stability. ## [2.4.0] - 2025-09-29 - Added action to launch Flatseal with selected app id via DBus. - Added support for the new USB devices permission. - Fixed referencing deprecated symbolic icons. - Fixed handling incomplete desktop files. - Fixed Hungarian translation. - Fixed Catalan translation. - Fixed French translation. - Fixed Brazilian Portuguese translation. - Changed appdata to metainfo. - Changed to Adw.ShortcutsDialog for better adaptive behavior. - Changed to Libadwaita 1.8 for new widgets. - Changed to GNOME 49 runtime for stability. ## [2.3.1] - 2025-04-24 - Added Persian translation. - Added Arabic translation. - Fixed Norwegian Bokmål translation. - Fixed French translation. - Fixed Bulgarian translation. - Changed to GNOME 48 runtime for stability. ## [2.3.0] - 2024-09-30 - Added support for the new inherit-wayland-socket permission. - Added Hindi translation. - Changed to AppStream 1.0. - Changed to GNOME 47 runtime for stability. ## [2.2.0] - 2024-04-18 * Added Greek translation. * Fixed parsing environment variables with certain characters. * Fixed filesystem permissions still showing up after being removed globally. * Fixed filesystem permissions not showing up after redundantly added globally. * Changed adaptive behavior to mimic GNOME Settings. * Changed navigation experience to mimic GNOME Settings. * Changed to Adw.AboutDialog for better adaptive behavior. ## [2.1.2] - 2024-03-26 - Added brand colors to appdata. - Fixed appdata to pass new Flathub checks. - Fixed Hungarian translation. - Changed to GNOME 46 runtime for stability. ## [2.1.1] - 2024-02-06 - Fixed crashes on some Ubuntu systems due to missing file monitor support. - Fixed falling back to appdata file when metainfo file is missing. - Fixed not being able to remove persist global overrides. - Fixed Russian translation. - Fixed French translation. ## [2.1.0] - 2023-09-28 - Fixed validations for the persist section, e.g. to prevent line breaks. - Fixed handling of broken overrides files. - Fixed Italian translation. - Fixed German translation. - Added Norwegian Bokmål translation. - Added support for the new input permission. - Added save and restore selected application. - Added detection of applications installs and uninstalls. - Added detection of external changes to permissions, e.g. using flatpak-override. - Changed to Libadwaita 1.4 for visual refinements and better performance. - Changed to GNOME 45 runtime for stability. ## [2.0.2] - 2023-07-07 - Fixed GNOME Software not showing the application icon. - Added Ukrainian translation. ## [2.0.1] - 2023-05-04 - Fixed window bouncing between folded and unfolded mode. - Fixed styling of applications list rows. ## [2.0.0] - 2023-04-27 - Fixed re-enabling show-details button when GNOME Software is unavailable. - Fixed Tamil mnemonics translation. - Fixed validations for other-files section, e.g. to allow trailing slashes. - Added popover for XDG paths suggestions. - Added type-to-search for applications. - Changed to GTK 4 and Libadwaita. - Changed to GNOME 44 runtime for stability. ## [1.8.1] - 2022-10-15 - Fixed tooltips on unsupported permissions rows. - Fixed weird interactions with filesystem reset mode. - Fixed French translation. - Fixed Chinese (China) translation. - Added support for new gpg-agent permission. - Added Hebrew translation. - Added Tamil translation. - Changed Flatpak icon to the latest version. - Changed globally overridden status icon to use a different color. - Changed environment variables validation to allow spaces. - Changed to GNOME-runtime AppStreamGlib installation. - Changed to GNOME 43 runtime for stability. ## [1.8.0] - 2022-05-30 - Fixed issues with forbidden modes on removed filesystem permissions. - Fixed a few typos in offline documentation. - Fixed creation of overrides directory on non-Flatpak distributions. - Fixed Polish translation. - Added Bulgarian translation. - Added Danish translation. - Added Chinese (China) translation. - Added support for system color schemes. - Added support for taking global overrides into account. - Added support for editing global overrides. - Added support for highlighting overridden permissions. - Changed shortcuts window to be modal. - Changed documentation window to be modal. - Changed meson to 0.59. - Changed to GNOME 42 runtime for stability. ## [1.7.5] - 2021-11-19 - Fixed Russian translation. - Fixed icons to look sharper. - Fixed loading originally-negated permissions. - Fixed instances of undefined overrides. - Added Turkish translation. - Added French translation. - Added support for keyboard navigation. - Added support for per-app-dev-shm permission. - Added support for negated filesystem permissions. - Changed more custom widgets for libhandy widgets. - Changed to sorting applications by name. - Changed to GNOME 41 runtime for stability. ## [1.7.4] - 2021-06-11 - Fixed crash on Arch due to broken permission store. - Added Catalan translation. - Added Russian translation. - Added keywords to find this app more easily using desktop search. ## [1.7.3] - 2021-05-26 - Fixed a few JS-usage and code-style issues. - Fixed variables overrides not handling properly RUST-related exports. - Fixed paths overrides mistakenly warning about directory names with spaces. - Added a way to unset individual portal permissions. - Added support to save and restore the main window state. - Changed to the GNOME-runtime libhandy installation. ## [1.7.2] - 2021-05-12 - Fixed crash when partial tables are present on the permission store. ## [1.7.1] - 2021-05-08 - Fixed crashing at startup on Gentoo. - Fixed styling for the no applications found message. - Added Ctrl+F accelerator for activating search. - Changed reset behavior to forget portals decisions. ## [1.7.0] - 2021-04-22 - Added initial support for portal permissions. - Added offline documentation. - Fixed show-details button freezing the application. - Changed applications search option to be toggleable. - Changed UI to better utilize libhandy's widgets. - Changed to libhandy 1.2.1 for smoother transitions. - Changed to GNOME 40 runtime for stability. ## [1.6.8] - 2021-01-30 - Fixed searching by application name and not only by app id. - Fixed application freezing due to malformed regex. ## [1.6.7] - 2021-01-16 - Fixed window close-button not visible in applications page, when folded. - Added Polish translation by @Garbulix. ## [1.6.6] - 2021-01-01 - Fixed main title so that it doesn't display the selected app name. - Fixed issue with removed environment variables still showing up. - Fixed Czech translation. - Added more examples to the documentation. - Changed shared memory description to not mention JACK anymore. ## [1.6.5] - 2020-11-28 - Fixed main window jumping sizes at launch in mobile mode. - Fixed regression for properly showing the close button to the left corner. - Fixed sandbox detection for old Flatpak versions. ## [1.6.4] - 2020-11-14 - Added latest contributors to credits. - Added metadata needed by Phosh. - Added support for directory variables, e.g. FLATPAK_USER_DIR. - Added link to Flatseal specific documentation. - Fixed border colors in dark mode. - Fixed default applications icon on high-DPI. - Changed to latest libhandy. ## [1.6.3] - 2020-10-12 - Added support for changing user-installation directory with XDG_DATA_HOME. - Added support for undo reset. - Fixed Leaflet geddan-meme effect when resizing window. - Fixed starting at permissions page in compact mode. - Fixed failing to start when session-bus is missing. - Changed spacing between menu items to improve touchscreen ergonomics. - Changed to latest versions of all libraries and runtimes. ## [1.6.2] - 2020-08-28 - Fixed crash on possibly malformed desktop files. ## [1.6.1] - 2020-08-07 - Changed group names to mimic permissions names, e.g. "allow" instead of "features". - Fixed crashing when multiple libhandy versions available. - Fixed missing icons for some applications, e.g. LibreOffice. - Fixed enabling header bar buttons when no applications found. - Added support for session and system bus overrides. ## [1.6.0] - 2020-06-25 - Added Swedish translation. - Added showing applications basic information. - Added showing details button to re-direct the user to a software manager application page. - Added support for environment variables overrides. - Added support for persistent overrides. - Fixed handling unsupported permissions, so flatpak-override CLI can be used in parallel. - Changed reset button layout in mobile mode, for improved ergonomics. ## [1.5.3] - 2020-05-02 - Added Indonesian translation. - Added support for custom installations paths. - Added TIPSANDTRICKS.md with common tricks. ## [1.5.2] - 2020-04-04 - Added host-os and host-etc filesystems permissions. - Fixed clearing the custom filesystems viewer when no custom files. - Fixed properly showing the close button to the left corner. ## [1.5.1] - 2020-03-21 - Changed using the term "other" instead of "custom". - Fixed displaying the real application name. - Fixed visually-annoying borders around permissions view. - Fixed segfault on aarch64 by bumping runtime version to 3.36. ## [1.5.0] - 2020-03-07 - Added disabling permissions not supported by the installed version of Flatpak. - Added CAN bus permission. - Added smart cards permission. - Added virtualization permission. - Added shared memory permission. - Added displaying human-readable description for filesystem permissions. - Added validating filesystem permission paths. - Added grouping permissions as per existent Flatpak-defined groups. - Changed order of permissions to follow the same order as in Flatpak docs. - Changed alignment of custom filesystems text to the left. - Fix contrast in applications icons. ## [1.4.2] - 2020-02-21 - Added disabling reset button when no permissions changed. - Added new icon from J.P. MacDonald and Tobias Bernard. - Fixed saving pending changes when selecting apps or shutting the app down very quickly. - Fixed hiding meaningful section of the app id in mobile mode headerbar title. - Fixed not being able to close the about-me dialog when the close button is forcibly shown. - Fixed font relative sizes not being preserved in custom themes. ## [1.4.1] - 2020-02-15 - Fixed handling negated filesystems permissions. - Fixed unintended Spanish translation. ## [1.4.0] - 2020-02-14 - Added Hungarian, Dutch and Italian translations by the community. - Added new editor for custom filesystems permissions. - Added autocompletion for xdg directories in custom filesystems permissions. - Added menu entry for permissions documentation. - Added specific tests for filesystems permissions. - Added tests for new custom widgets. - Fixed window size in mobile mode. - Fixed modifying existing filesystems permissions. - Fixed test for detecting no changes condition. - Fixed showing BaseApp bundles. Flatseal-2.4.1/COPYING000066400000000000000000001045141520337174300143160ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . Flatseal-2.4.1/DOCUMENTATION.md000066400000000000000000000317761520337174300156270ustar00rootroot00000000000000# Documentation ## Table of contents - [Permissions](#permissions) - [Share](#share) - [Socket](#socket) - [Device](#device) - [Allow](#allow) - [Filesystem](#filesystem) - [Persistent](#persistent) - [Environment](#environment) - [System Bus](#system-bus) - [Session Bus](#system-bus) - [Portals](#portals) - [Tips and Tricks](#tips-and-tricks) - [Manually reset Flatseal permissions](#manually-reset-flatseal-permissions) - [Add new translations](#add-new-translations) - [Enable custom installations](#enable-custom-installations) - [Use custom FLATPAK_USER_DIR](#use-custom-flatpak_user_dir) ## Permissions This is the list of permissions supported by Flatseal. These descriptions are based on Flatpak's [official documentation](https://docs.flatpak.org/en/latest/sandbox-permissions.html) and extended with examples and references to make it easier for newcomers to understand. To summarize it, Flatpak provides two different permissions models: static and dynamic Static refers to the permissions set by the developers when applications are built. Static permissions are holes in the sandbox, e.g. an application built with `--filesystem=home` can access _all_ user personal files. The benefit of this model is that developers can support Flatpak without any change in their applications code. Both Flatseal and `flatpak override` command-line tool, use the overrides backend to manage static permissions. Dynamic refers to the permissions granted by the users when applications run. Dynamic permissions rely on resource providers called [Portals](https://github.com/flatpak/flatpak/wiki/Portals) and can require user confirmation, e.g. users can grant access to _one_ specific file thanks to the `org.freedesktop.portal.FileChooser` portal. The benefit of this model is that users don't need to trust applications with more resources than is strictly needed. Both Flatseal and `flatpak permissions` command-line tool, use the `org.freedesktop.impl.portal.PermissionStore` service to manage dynamic permissions. ### Share Name | Type | Description | `flatpak override` equivalent --- | --- | --- | --- Network | Toggle | Allow the application to have access to the network.

For example, if it's disabled for Firefox, it will no longer be possible to browse the internet with this application. | `--share=network` and `--unshare=network` [Inter-process communications](https://en.wikipedia.org/wiki/Inter-process_communication) | Toggle | Share IPC namespace with the host.

This is required by X11 due to it depending on IPC. | `--share=ipc` and `--unshare=ipc` ### Socket Name | Type | Description | `flatpak override` equivalent --- | --- | --- | --- X11 windowing system | Toggle | Allow the application to open in an X11 window.

Most applications use X11 for historical reasons, but is considered less secure. | `--socket=x11` and `--nosocket=x11` Wayland windowing system | Toggle | Allow the application to open in a Wayland window.

Many applications do not use Wayland as it is a newer display protocol unlike X11, and is considered more secure, but either some applications require extra steps to use it (see [environment variables](#environment) example for Firefox), or do not support Wayland at all. | `--socket=wayland` and `--nosocket=wayland` Fallback to X11 windowing system | Toggle | Allow the application to open in an X11 window when Wayland is not available. This overrides the X11 windowing system option when enabled. | `--socket=fallback-x11` and `--nosocket=fallback-x11` PulseAudio sound server | Toggle | Allow the application to play sounds or get access to the microphone when using PulseAudio.

For example, if it's disabled for Rhythmbox, it will no longer be possible to listen to the music with this application. | `--socket=pulseaudio` and `--nosocket=pulseaudio` D-Bus session bus | Toggle | Allow the application to have access to the entire session bus. | `--socket=session-dbus` and `--nosocket=session-dbus` D-Bus system bus | Toggle | Allow the application to have access to the entire system bus. | `--socket=system-dbus` and `--nosocket=system-dbus` Secure Shell agent | Toggle | Allow the application to use SSH authentications. | `--socket=ssh-auth` and `--nosocket=ssh-auth` [Smart cards](https://wiki.debian.org/Smartcards) | Toggle | Allow the application to use smart cards. | `--socket=pcsc` and `--nosocket=pcsc` Printing system | Toggle | Allow the application to use printing systems.

For example, if it's disabled for LibreOffice, it will no longer be possible to print documents with this application. | `--socket=cups` and `--nosocket=cups` GPG-Agent directories | Toggle | Allow the application to access GPG-Agent directories. | `--socket=gpg-agent` and `--nosocket=gpg-agent` Inherit Wayland socket | Toggle | Allow passing WAYLAND_SOCKET environment variable to the sandbox.

For example, if it's disabled for Fcitx5, it won't be able to connect to Wayland and display its autocompletion dialogs. | `--socket=inherit-wayland-socket` and `--nosocket=inherit-wayland-socket` ### Device Name | Type | Description | `flatpak override` equivalent --- | --- | --- | --- GPU acceleration | Toggle | Allow the application to access the graphics direct rendering to take advantage of GPU acceleration. | `--device=dri` and `--nodevice=dri` Input devices | Toggle | Allow input device access.

Note that raw and virtual input devices could still require [All devices](#device) | `--device=input` and `--nodevice=input` Virtualization | Toggle | Allow the application to support virtualization. | `--device=kvm` and `--nodevice=kvm` Shared memory | Toggle | Allow the application to access shared memory. | `--device=shm` and `--nodevice=shm` USB devices | Toggle | Allow raw USB device access. | `--device=usb` and `--nodevice=usb` All devices | Toggle | Allow the application to access all devices, such as webcam and external devices.

For example, if it's disabled for Element, it will no longer be possible to do video calls with this application. | `--device=all` and `--nodevice=all` ### Allow Name | Type | Description | `flatpak override` equivalent --- | --- | --- | --- Development syscalls | Toggle | Allow the application to access to certain syscalls, such as [`ptrace()`](https://en.wikipedia.org/wiki/Ptrace) and [`perf_event_open()`](https://en.wikipedia.org/wiki/Perf_(Linux)). | `--allow=devel` and `--disallow=devel` Programs from other architectures | Toggle | Allow the application to execute programs for an [ABI](https://en.wikipedia.org/wiki/Application_binary_interface) other than the one supported natively by the system. | `--allow=multiarch` and `--disallow=multiarch` Bluetooth | Toggle | Allow the application to use Bluetooth. | `--allow=bluetooth` and `--disallow=bluetooth` Controller Area Network bus | Toggle | Allow the application to use canbus sockets. You must also have [network access](#share) for this to work. | `--allow=canbus` and `--disallow=canbus` Application Shared Memory | Toggle | Allow the application to share its /dev/shm between instances of the same $FLATPAK_APP_ID. Introduced specifically for the Steam flatpak, to share its /dev/shm with sub-sandboxed games. | `--allow=per-app-dev-shm` and `--disallow=per-app-dev-shm`. ### Filesystem Name | Type | Description | `flatpak override` equivalent --- | --- | --- | --- All filesystem files | Toggle | Allow read-write access to the whole filesystem. Everything that isn't writeable by the user will be read-only | `--filesystem=host` and `--nofilesystem=host` All system libraries, executables and static data | Toggle | Allow read-write access to system libraries located in `/usr`. Since this directory requires root access to write, the permission will be read-only. | `--filesystem=host-os` and `--nofilesystem=host-os` All system configurations | Toggle | Allow read-write access to system configurations located in `/etc`. Since this directory requires root access to write, the permission will be read-only. | `--filesystem=host-etc` and `--nofilesystem=host-etc` All user files | Toggle | Allow read-write access to the user directory (`$HOME` or `~/`). | `--filesystem=home` and `--nofilesystem=home` Other files | Input | Allow read-write access to the directory you desire.

For example, you would put `~/games` if you want read-write access to `~/games`. If you want read-only access to `~/games`, then you would put `~/games:ro`. | `--filesystem=[PATH]`, `--filesystem=[PATH]:ro` and `--nofilesystem=[PATH]` ### Persistent Name | Type | Description | `flatpak-override` equivalent --- | --- | --- | --- Files | Input | Allow the application to access the targeted directory while restricting other applications from accessing it.

Starting from the user directory (`$HOME` or `~/`), the targeted directory will be remapped to the application's directory (`~/.var/app/$FLATPAK_APP_ID/[PATH]`) if it has no write access to the targeted directory.

For example, persisting `.mozilla` will map `~/.mozilla` to `~/.var/app/org.mozilla.Firefox/.mozilla`.

This is also a technique used to declutter the user directory, as it prevents the application from writing to `~/`. | `--persist=[PATH]` ### Environment Name | Type | Description | `flatpak override` equivalent --- | --- | --- | --- Variables | Input | Set an environment variable in the application to make the variable available to application when it runs.

For example, adding `MOZ_ENABLE_WAYLAND=1` for Firefox to enable the Wayland back-end. | `--env=[VAR]=[VALUE]` ### System Bus Name | Type | Description | `flatpak override` equivalent --- | --- | --- | --- Talks | Input | Allow the application to talk to system services.

For example, adding `org.freedesktop.Accounts` will allow the application to access users login history. | `--system-talk-name=[NAME]` Owns | Input | Allow the application to own system services under the given name. | `--system-own-name=[NAME]` ### Session Bus Name | Type | Description | `flatpak override` equivalent --- | --- | --- | --- Talks | Input | Allow the application to talk to session services.

For example, adding `org.freedesktop.Notifications` will allow the application to send notifications. | `--talk-name=[NAME]` Owns | Input | Allow the application to own session services under the given name. | `--own-name=[NAME]` ### Portals Name | Type | Description | Portal --- | --- | --- | --- Background | Toggle | Allow the application to run in the background. | `org.freedesktop.portal.Background` Notifications | Toggle | Allow the application to send notifications. | `org.freedesktop.portal.Notification` Microphone | Toggle | Allow the application to listen to your microphone. | `org.freedesktop.portal.Device` Speakers | Toggle | Allow the application to play sounds to your speakers. | `org.freedesktop.portal.Device` Camera | Toggle | Allow the application to record videos with your camera. | `org.freedesktop.portal.Device` Location | Toggle | Allow the application to access your location data. | `org.freedesktop.portal.Location` ## Tips and Tricks ### Manually reset Flatseal permissions If permissions are removed and is no longer possible to reset, run the following command from the terminal and re-start Flatseal: ``` $ rm ~/.local/share/flatpak/overrides/com.github.tchx84.Flatseal ``` ### Add new translations Add a new language and update translations: ``` $ git clone https://github.com/tchx84/Flatseal.git $ cd Flatseal $ echo "es" >> po/LINGUAS # es for Spanish $ meson _translate && cd _translate $ ninja flatseal-pot $ ninja flatseal-update-po $ gedit ../po/es.po # translate the strings to Spanish ``` To test the translation language: ``` $ flatpak config --set languages es $ flatpak update org.gnome.Platform $ LC_ALL=es_PY.UTF-8 flatpak run com.github.tchx84.Flatseal ``` ### Enable custom installations To enable a custom installation, e.g, `/xusr/custom/flatpak`. #### Flatpak 1.7.1 or newer 1. Launch Flatseal and select it to edit its own permissions. 2. Enable `host-etc`, or type in `host-etc:ro` in the other option. 3. Type in the custom installation path, e.g, `/xusr/custom/flatpak:ro`. 4. Restart Flatseal. #### All versions 1. Launch Flatseal and select it to edit its own permissions. 2. Enable `host`, or type in `host:ro` in the other option. 3. Restart Flatseal. **NOTE**: To find these installations, Flatseal needs access to `/etc/flatpak/installations.d`. Before Flatpak 1.7.1, accessing the host `/etc` required the `host` permission, which was an all-or-nothing situation. By default, Flatseal will have minimal permissions, so it's up to the user to decide to enable this feature. ### Use custom FLATPAK_USER_DIR To use a custom `FLATPAK_USER_DIR`, e.g. `/var/home/user/.flatpak`. ``` flatpak --user override --filesystem=/var/home/user/.flatpak --env=FLATPAK_USER_DIR=/var/home/user/.flatpak com.github.tchx84.Flatseal ``` **NOTE**: By default, `FLATPAK_USER_DIR` is not accessible from within the Flatpak sandbox, and Flatseal has no access to custom directories. Therefore, these overrides are needed. Flatseal-2.4.1/README.md000066400000000000000000000033231520337174300145360ustar00rootroot00000000000000# Flatseal ![CI](https://github.com/tchx84/Flatseal/workflows/CI/badge.svg) Flatseal is a graphical utility to review and modify permissions from your [Flatpak](https://flatpak.org/) applications. ## Usage Simply launch Flatseal, select an application and modify its permissions. Restart the application after making the changes. If anything goes wrong just press the reset button. For more details please visit the [documentation](./DOCUMENTATION.md) page. ## Get it [](https://flathub.org/apps/details/com.github.tchx84.Flatseal) ## Build it yourself ``` git clone https://github.com/tchx84/Flatseal.git cd Flatseal flatpak --user install org.gnome.{Platform,Sdk}//50 flatpak-builder --user --force-clean --install build com.github.tchx84.Flatseal.json flatpak --user run --branch=master com.github.tchx84.Flatseal ``` Or just use [Builder](https://flathub.org/apps/details/org.gnome.Builder) ## Contribute If you are interested in contributing to this utility just send a pull request to [this](https://github.com/tchx84/Flatseal) repo. ## Disclaimer This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the [GNU General Public License](COPYING) for more details. Flatseal-2.4.1/com.github.tchx84.Flatseal.json000066400000000000000000000024051520337174300210640ustar00rootroot00000000000000{ "app-id": "com.github.tchx84.Flatseal", "runtime": "org.gnome.Platform", "runtime-version": "50", "sdk": "org.gnome.Sdk", "separate-locales": false, "command": "com.github.tchx84.Flatseal", "finish-args": [ "--share=ipc", "--socket=fallback-x11", "--socket=wayland", "--device=dri", "--filesystem=/var/lib/flatpak/app:ro", "--filesystem=xdg-data/flatpak/app:ro", "--filesystem=xdg-data/flatpak/overrides:create", "--talk-name=org.gnome.Software", "--talk-name=org.freedesktop.impl.portal.PermissionStore" ], "modules": [ { "name": "jasmine-gjs", "buildsystem": "meson", "cleanup": ["*"], "sources": [ { "type": "git", "url": "https://github.com/ptomato/jasmine-gjs.git", "commit": "856465dddbd92e82e574891e1ebc79e17d7b708a" } ] }, { "name": "flatseal", "buildsystem": "meson", "sources": [ { "type": "git", "path": ".", "branch": "HEAD" } ] } ] } Flatseal-2.4.1/data/000077500000000000000000000000001520337174300141675ustar00rootroot00000000000000Flatseal-2.4.1/data/com.github.tchx84.Flatseal.desktop.in000066400000000000000000000007121520337174300231010ustar00rootroot00000000000000[Desktop Entry] # TRANSLATORS: Don't translate this text Name=Flatseal Exec=com.github.tchx84.Flatseal Terminal=false Type=Application Categories=Utility; StartupNotify=true Comment=Manage Flatpak permissions # TRANSLATORS: Don't translate this text Icon=com.github.tchx84.Flatseal # Translators: Do NOT translate or transliterate this text (these are enum types)! X-Purism-FormFactor=Workstation;Mobile; Keywords=seal;sandbox;override; DBusActivatable=true Flatseal-2.4.1/data/com.github.tchx84.Flatseal.gschema.xml000066400000000000000000000010741520337174300232330ustar00rootroot00000000000000 1024 768 false "" Application ID that was last selected Flatseal-2.4.1/data/com.github.tchx84.Flatseal.metainfo.xml.in000066400000000000000000000041571520337174300240400ustar00rootroot00000000000000 Flatseal com.github.tchx84.Flatseal com.github.tchx84.Flatseal.desktop CC0-1.0 GPL-3.0-or-later Manage Flatpak permissions

Flatseal is a graphical utility to review and modify permissions from your Flatpak applications.

The Flatseal main window https://raw.githubusercontent.com/tchx84/flatseal/master/screenshots/en/1.png Flatseal showing filesystem permissions https://raw.githubusercontent.com/tchx84/flatseal/master/screenshots/en/2.png Flatseal showing global overrides https://raw.githubusercontent.com/tchx84/flatseal/master/screenshots/en/3.png martin.abente.lahaye@gmail.com Martin Abente Lahaye Martin Abente Lahaye https://github.com/tchx84/flatseal https://github.com/tchx84/flatseal/issues keyboard pointing touch 360 mobile #9af0cf #0c8d5c
Flatseal-2.4.1/data/com.github.tchx84.Flatseal.service.in000066400000000000000000000001701520337174300230660ustar00rootroot00000000000000[D-BUS Service] Name=com.github.tchx84.Flatseal Exec=@prefix@/@bindir@/com.github.tchx84.Flatseal --gapplication-serviceFlatseal-2.4.1/data/icons/000077500000000000000000000000001520337174300153025ustar00rootroot00000000000000Flatseal-2.4.1/data/icons/com.github.tchx84.Flatseal-symbolic.svg000066400000000000000000000015561520337174300245630ustar00rootroot00000000000000 Flatseal-2.4.1/data/icons/com.github.tchx84.Flatseal.Devel.svg000066400000000000000000000225721520337174300240030ustar00rootroot00000000000000 Flatseal-2.4.1/data/icons/com.github.tchx84.Flatseal.Flatpak.svg000066400000000000000000000111301520337174300243120ustar00rootroot00000000000000 image/svg+xml Flatseal-2.4.1/data/icons/com.github.tchx84.Flatseal.Source.svg000066400000000000000000000473061520337174300242060ustar00rootroot00000000000000 Adwaita Icon Template image/svg+xml GNOME Design Team Adwaita Icon Template Flatseal-2.4.1/data/icons/com.github.tchx84.Flatseal.svg000066400000000000000000000074631520337174300227470ustar00rootroot00000000000000 Flatseal-2.4.1/data/icons/meson.build000066400000000000000000000006261520337174300174500ustar00rootroot00000000000000install_data('com.github.tchx84.Flatseal.svg', install_dir: join_paths(get_option('datadir'), 'icons/hicolor/scalable/apps') ) install_data('com.github.tchx84.Flatseal-symbolic.svg', install_dir: join_paths(get_option('datadir'), 'icons/hicolor/symbolic/apps') ) install_data('com.github.tchx84.Flatseal.Flatpak.svg', install_dir: join_paths(get_option('datadir'), 'icons/hicolor/scalable/apps') ) Flatseal-2.4.1/data/meson.build000066400000000000000000000030471520337174300163350ustar00rootroot00000000000000desktop_file = i18n.merge_file( input: 'com.github.tchx84.Flatseal.desktop.in', output: 'com.github.tchx84.Flatseal.desktop', type: 'desktop', po_dir: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'applications') ) desktop_utils = find_program('desktop-file-validate', required: false) if desktop_utils.found() test('Validate desktop file', desktop_utils, args: [desktop_file] ) endif appstream_file = i18n.merge_file( input: 'com.github.tchx84.Flatseal.metainfo.xml.in', output: 'com.github.tchx84.Flatseal.metainfo.xml', po_dir: '../po', install: true, install_dir: join_paths(get_option('datadir'), 'metainfo') ) appstreamcli = find_program('appstreamcli', required: false) if appstreamcli.found() test('Validate appstream file', appstreamcli, args: ['validate', '--no-net', '--explain', appstream_file] ) endif install_data( 'com.github.tchx84.Flatseal.gschema.xml', install_dir: join_paths(get_option('datadir'), 'glib-2.0', 'schemas') ) compile_schemas = find_program('glib-compile-schemas', required: false) if compile_schemas.found() test('Validate schema file', compile_schemas, args: ['--strict', '--dry-run', meson.current_source_dir()] ) endif conf = configuration_data() conf.set('prefix', get_option('prefix')) conf.set('bindir', get_option('bindir')) configure_file( input: 'com.github.tchx84.Flatseal.service.in', output: 'com.github.tchx84.Flatseal.service', configuration: conf, install_dir: join_paths(get_option('datadir'), 'dbus-1', 'services') ) subdir('icons') Flatseal-2.4.1/help/000077500000000000000000000000001520337174300142065ustar00rootroot00000000000000Flatseal-2.4.1/help/C/000077500000000000000000000000001520337174300143705ustar00rootroot00000000000000Flatseal-2.4.1/help/C/index.html000066400000000000000000000765721520337174300164060ustar00rootroot00000000000000 -

Documentation

Table of contents

Permissions

This is the list of permissions supported by Flatseal. These descriptions are based on Flatpak’s official documentation and extended with examples and references to make it easier for newcomers to understand.

To summarize it, Flatpak provides two different permissions models: static and dynamic

Static refers to the permissions set by the developers when applications are built. Static permissions are holes in the sandbox, e.g. an application built with --filesystem=home can access all user personal files. The benefit of this model is that developers can support Flatpak without any change in their applications code.

Both Flatseal and flatpak override command-line tool, use the overrides backend to manage static permissions.

Dynamic refers to the permissions granted by the users when applications run. Dynamic permissions rely on resource providers called Portals and can require user confirmation, e.g. users can grant access to one specific file thanks to the org.freedesktop.portal.FileChooser portal. The benefit of this model is that users don’t need to trust applications with more resources than is strictly needed.

Both Flatseal and flatpak permissions command-line tool, use the org.freedesktop.impl.portal.PermissionStore service to manage dynamic permissions.

Share

Name Type Description flatpak override equivalent
Network Toggle Allow the application to have access to the network.

For example, if it’s disabled for Firefox, it will no longer be possible to browse the internet with this application.
--share=network and --unshare=network
Inter-process communications Toggle Share IPC namespace with the host.

This is required by X11 due to it depending on IPC.
--share=ipc and --unshare=ipc

Socket

Name Type Description flatpak override equivalent
X11 windowing system Toggle Allow the application to open in an X11 window.

Most applications use X11 for historical reasons, but is considered less secure.
--socket=x11 and --nosocket=x11
Wayland windowing system Toggle Allow the application to open in a Wayland window.

Many applications do not use Wayland as it is a newer display protocol unlike X11, and is considered more secure, but either some applications require extra steps to use it (see environment variables example for Firefox), or do not support Wayland at all.
--socket=wayland and --nosocket=wayland
Fallback to X11 windowing system Toggle Allow the application to open in an X11 window when Wayland is not available. This overrides the X11 windowing system option when enabled. --socket=fallback-x11 and --nosocket=fallback-x11
PulseAudio sound server Toggle Allow the application to play sounds or get access to the microphone when using PulseAudio.

For example, if it’s disabled for Rhythmbox, it will no longer be possible to listen to the music with this application.
--socket=pulseaudio and --nosocket=pulseaudio
D-Bus session bus Toggle Allow the application to have access to the entire session bus. --socket=session-dbus and --nosocket=session-dbus
D-Bus system bus Toggle Allow the application to have access to the entire system bus. --socket=system-dbus and --nosocket=system-dbus
Secure Shell agent Toggle Allow the application to use SSH authentications. --socket=ssh-auth and --nosocket=ssh-auth
Smart cards Toggle Allow the application to use smart cards. --socket=pcsc and --nosocket=pcsc
Printing system Toggle Allow the application to use printing systems.

For example, if it’s disabled for LibreOffice, it will no longer be possible to print documents with this application.
--socket=cups and --nosocket=cups
GPG-Agent directories Toggle Allow the application to access GPG-Agent directories. --socket=gpg-agent and --nosocket=gpg-agent
Inherit Wayland socket Toggle Allow passing WAYLAND_SOCKET environment variable to the sandbox.

For example, if it's disabled for Fcitx5, it won't be able to connect to Wayland and display its autocompletion dialogs.
--socket=inherit-wayland-socket and --nosocket=inherit-wayland-socket

Device

Name Type Description flatpak override equivalent
GPU acceleration Toggle Allow the application to access the graphics direct rendering to take advantage of GPU acceleration. --device=dri and --nodevice=dri
Input devices Toggle Allow input device access.

Note that raw and virtual input devices could still require All devices
--device=input and --nodevice=input
Virtualization Toggle Allow the application to support virtualization. --device=kvm and --nodevice=kvm
Shared memory Toggle Allow the application to access shared memory. --device=shm and --nodevice=shm
USB devices Toggle Allow raw USB device access. --device=usb and --nodevice=usb
All devices Toggle Allow the application to access all devices, such as webcam and external devices.

For example, if it’s disabled for Element, it will no longer be possible to do video calls with this application.
--device=all and --nodevice=all

Allow

Name Type Description flatpak override equivalent
Development syscalls Toggle Allow the application to access to certain syscalls, such as ptrace() and perf_event_open(). --allow=devel and --disallow=devel
Programs from other architectures Toggle Allow the application to execute programs for an ABI other than the one supported natively by the system. --allow=multiarch and --disallow=multiarch
Bluetooth Toggle Allow the application to use Bluetooth. --allow=bluetooth and --disallow=bluetooth
Controller Area Network bus Toggle Allow the application to use canbus sockets. You must also have network access for this to work. --allow=canbus and --disallow=canbus
Application Shared Memory Toggle Allow the application to share its /dev/shm between instances of the same $FLATPAK_APP_ID. Introduced specifically for the Steam flatpak, to share its /dev/shm with sub-sandboxed games. --allow=per-app-dev-shm and --disallow=per-app-dev-shm

Filesystem

Name Type Description flatpak override equivalent
All filesystem files Toggle Allow read-write access to the whole filesystem. Everything that isn’t writeable by the user will be read-only --filesystem=host and --nofilesystem=host
All system libraries, executables and static data Toggle Allow read-write access to system libraries located in /usr. Since this directory requires root access to write, the permission will be read-only. --filesystem=host-os and --nofilesystem=host-os
All system configurations Toggle Allow read-write access to system configurations located in /etc. Since this directory requires root access to write, the permission will be read-only. --filesystem=host-etc and --nofilesystem=host-etc
All user files Toggle Allow read-write access to the user directory ($HOME or ~/). --filesystem=home and --nofilesystem=home
Other files Input Allow read-write access to the directory you desire.

For example, you would put ~/games if you want read-write access to ~/games. If you want read-only access to ~/games, then you would put ~/games:ro.
--filesystem=[PATH], --filesystem=[PATH]:ro and --nofilesystem=[PATH]

Persistent

Name Type Description flatpak-override equivalent
Files Input Allow the application to access the targeted directory while restricting other applications from accessing it.

Starting from the user directory ($HOME or ~/), the targeted directory will be remapped to the application’s directory (~/.var/app/$FLATPAK_APP_ID/[PATH]) if it has no write access to the targeted directory.

For example, persisting .mozilla will map ~/.mozilla to ~/.var/app/org.mozilla.Firefox/.mozilla.

This is also a technique used to declutter the user directory, as it prevents the application from writing to ~/.
--persist=[PATH]

Environment

Name Type Description flatpak override equivalent
Variables Input Set an environment variable in the application to make the variable available to application when it runs.

For example, adding MOZ_ENABLE_WAYLAND=1 for Firefox to enable the Wayland back-end.
--env=[VAR]=[VALUE]

System Bus

Name Type Description flatpak override equivalent
Talks Input Allow the application to talk to system services.

For example, adding org.freedesktop.Accounts will allow the application to access users login history.
--system-talk-name=[NAME]
Owns Input Allow the application to own system services under the given name. --system-own-name=[NAME]

Session Bus

Name Type Description flatpak override equivalent
Talks Input Allow the application to talk to session services.

For example, adding org.freedesktop.Notifications will allow the application to send notifications.
--talk-name=[NAME]
Owns Input Allow the application to own session services under the given name. --own-name=[NAME]

Portals

Name Type Description Portal
Background Toggle Allow the application to run in the background. org.freedesktop.portal.Background
Notifications Toggle Allow the application to send notifications. org.freedesktop.portal.Notification
Microphone Toggle Allow the application to listen to your microphone. org.freedesktop.portal.Device
Speakers Toggle Allow the application to play sounds to your speakers. org.freedesktop.portal.Device
Camera Toggle Allow the application to record videos with your camera. org.freedesktop.portal.Device
Location Toggle Allow the application to access your location data. org.freedesktop.portal.Location

Tips and Tricks

Manually reset Flatseal permissions

If permissions are removed and is no longer possible to reset, run the following command from the terminal and re-start Flatseal:

$ rm ~/.local/share/flatpak/overrides/com.github.tchx84.Flatseal

Add new translations

Add a new language and update translations:

$ git clone https://github.com/tchx84/Flatseal.git
$ cd Flatseal
$ echo "es" >> po/LINGUAS # es for Spanish
$ meson _translate && cd _translate
$ ninja flatseal-pot
$ ninja flatseal-update-po
$ gedit ../po/es.po # translate the strings to Spanish

To test the translation language:

$ flatpak config --set languages es
$ flatpak update org.gnome.Platform
$ LC_ALL=es_PY.UTF-8 flatpak run com.github.tchx84.Flatseal

Enable custom installations

To enable a custom installation, e.g, /xusr/custom/flatpak.

Flatpak 1.7.1 or newer

  1. Launch Flatseal and select it to edit its own permissions.
  2. Enable host-etc, or type in host-etc:ro in the other option.
  3. Type in the custom installation path, e.g, /xusr/custom/flatpak:ro.
  4. Restart Flatseal.

All versions

  1. Launch Flatseal and select it to edit its own permissions.
  2. Enable host, or type in host:ro in the other option.
  3. Restart Flatseal.

NOTE: To find these installations, Flatseal needs access to /etc/flatpak/installations.d. Before Flatpak 1.7.1, accessing the host /etc required the host permission, which was an all-or-nothing situation. By default, Flatseal will have minimal permissions, so it’s up to the user to decide to enable this feature.

Use custom FLATPAK_USER_DIR

To use a custom FLATPAK_USER_DIR, e.g. /var/home/user/.flatpak.

flatpak --user override --filesystem=/var/home/user/.flatpak --env=FLATPAK_USER_DIR=/var/home/user/.flatpak com.github.tchx84.Flatseal

NOTE: By default, FLATPAK_USER_DIR is not accessible from within the Flatpak sandbox, and Flatseal has no access to custom directories. Therefore, these overrides are needed.

Flatseal-2.4.1/help/meson.build000066400000000000000000000001721520337174300163500ustar00rootroot00000000000000docs = [ 'C/index.html', ] install_data(docs, install_dir: join_paths(get_option('datadir'), 'help', 'C', 'flatseal')) Flatseal-2.4.1/meson.build000066400000000000000000000005511520337174300154210ustar00rootroot00000000000000project('flatseal', version: '2.4.1', meson_version: '>= 0.59.0', default_options: [ 'warning_level=2', ], ) i18n = import('i18n') subdir('data') subdir('src') subdir('po') subdir('tests') subdir('help') gnome.post_install( gtk_update_icon_cache: true, glib_compile_schemas: true, update_desktop_database: true, ) Flatseal-2.4.1/po/000077500000000000000000000000001520337174300136745ustar00rootroot00000000000000Flatseal-2.4.1/po/LINGUAS000066400000000000000000000001321520337174300147150ustar00rootroot00000000000000ar bg_BG cs da de es el fa he hi hu id it ja nb nl pt_BR sv pl ru ca tr fr zh_CN ta uk vi Flatseal-2.4.1/po/POTFILES000066400000000000000000000026131520337174300150460ustar00rootroot00000000000000data/com.github.tchx84.Flatseal.desktop.in data/com.github.tchx84.Flatseal.metainfo.xml.in data/com.github.tchx84.Flatseal.gschema.xml src/application.js src/main.js src/models/applications.js src/models/sessionBus.js src/models/systemBus.js src/models/devices.js src/models/features.js src/models/filesystems.js src/models/filesystemsOther.js src/models/info.js src/models/permissions.js src/models/persistent.js src/models/portals.js src/models/shared.js src/models/sockets.js src/models/unsupported.js src/models/variables.js src/widgets/aboutDialog.js src/widgets/aboutDialog.ui src/widgets/appInfoViewer.js src/widgets/appInfoViewer.ui src/widgets/applicationRow.js src/widgets/applicationRow.ui src/widgets/busNameRow.js src/widgets/busNameRow.ui src/widgets/detailsButton.js src/widgets/globalRow.ui src/widgets/globalInfoViewer.ui src/widgets/menu.ui src/widgets/overrideStatusIcon.js src/widgets/pathRow.js src/widgets/pathRow.ui src/widgets/pathsViewer.js src/widgets/pathsViewer.ui src/widgets/permissionEntryRow.js src/widgets/permissionEntryRow.ui src/widgets/permissionPortalRow.js src/widgets/permissionPortalRow.ui src/widgets/permissionSwitchRow.js src/widgets/permissionSwitchRow.ui src/widgets/relativePathRow.js src/widgets/relativePathRow.ui src/widgets/resetButton.js src/widgets/shortcutsWindow.ui src/widgets/variableRow.js src/widgets/variableRow.ui src/widgets/window.js src/widgets/window.ui Flatseal-2.4.1/po/ar.po000066400000000000000000000432641520337174300146470ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Ahmed Mohammed , 2024. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2024-10-17 03:20+0300\n" "Last-Translator: Ahmed Mohammed \n" "Language-Team: \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" "X-Generator: Poedit 3.4.3\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Ù�لاتسيل" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "أدÙ�ر أذونات Ù�لاتباك" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "ختم;أمان;صندوق رمل;تجاوز;Ù�لاتباك;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "Ù�لاتسيل هي أداة رسومية لمراجعة وتعديل الأذونات لتطبيقات Ù�لاتباك خاصتك." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "ناÙ�ذة Ù�لاتسيل الرئيسة" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Ù�لاتسيل ÙŠÙ�ظهÙ�ر أذونات نظام الملÙ�ات" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Ù�لاتسيل ÙŠÙ�ظهÙ�ر التجاوزات العامَّة" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Ù…Ù�عَرَّÙ� آخر تطبيق محدَّد" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "مجهول" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "التحاوريات" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "يملك" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "قائمة الأسماء المعروÙ�Ø© على مسرى الجلسات" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "قائمة الأسماء المعروÙ�Ø© على مسرى النظام" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "تسارع معالج الرسوميات" #: src/models/devices.js:44 msgid "Input devices" msgstr "أجهزة الإدخال" #: src/models/devices.js:51 msgid "Virtualization" msgstr "المحاكاة" #: src/models/devices.js:58 msgid "Shared memory" msgstr "الذاكرة المشتركة" #: src/models/devices.js:65 msgid "USB devices" msgstr "أجهزة USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "جميع الأجهزة (مثال: كاميرا الوÙ�ب)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "قائمة الأجهزة المتوÙ�رة Ù�ÙŠ صندوق الرمل" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "نداءات النظام التطويرية (مثال: ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "برمجيات المعماريات الأخرى" #: src/models/features.js:51 msgid "Bluetooth" msgstr "بلوتوث" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "مسرى شبكة مساحة المتحكم" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "ذاكرة التطبيق المشتركة" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "قائمة المزايا المتوÙ�رة للتطبيق" #: src/models/filesystems.js:37 msgid "All system files" msgstr "كل ملÙ�ات النظام" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "كل مكتبات النظام، والتنÙ�يذيات، والبيانات الثابتة" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "إعدادات كامل النظام" #: src/models/filesystems.js:58 msgid "All user files" msgstr "كل ملÙ�ات المستخدم" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "قائمة مجموعات نظام الملÙ�ات الجزئية المتوÙ�رة للتطبيق" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "باقي الملÙ�ات" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "مثال: ~/games:ro,ØŒxdg-pictures,ØŒ إلخ" #: src/models/persistent.js:37 msgid "Files" msgstr "الملÙ�ات" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "مثال: thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "قائمة المسارات المتعلقة بدليل المنزل، والمنشئة Ù�ÙŠ صندوق الرمل" #: src/models/portals.js:118 msgid "Background" msgstr "الخلÙ�ية" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "يمكنه العمل Ù�ÙŠ الخلÙ�ية" #: src/models/portals.js:128 msgid "Notifications" msgstr "التنبيهات" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "يمكنه إرسال التنبيهات" #: src/models/portals.js:138 msgid "Microphone" msgstr "الميكرÙ�ون" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "يمكنه الاستماع لميكرÙ�ونك" #: src/models/portals.js:148 msgid "Speakers" msgstr "السماعات" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "يمكنه تشغيل الصوت لسماعاتك" #: src/models/portals.js:158 msgid "Camera" msgstr "الكاميرا" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "يمكنه تسجيل الÙ�يديوهات عبر كاميرتك" #: src/models/portals.js:168 msgid "Location" msgstr "التموضع" #: src/models/portals.js:170 msgid "Can access your location" msgstr "يمكنه الوصول لموقع تموضعك" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "قائمة الموارد الممنوحة للتطبيق" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "غير مدعوم من قبل الإصدار المÙ�ثَبَّت من Ù�لاتباك" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "يتطلب الإصدار 2 أو ما يليه من مخزن الأذونات (permission store)" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "لم تÙ�عَد بيانات البوابة بعد" #: src/models/shared.js:39 msgid "Network" msgstr "الشبكة" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "التواصل داخل العمليات" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "قائمة الأنظمة الÙ�رعية المشاركة مع نظام المÙ�ضيÙ�" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "نظام النواÙ�ذ إكس11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "نظام النواÙ�ذ وَيلَند" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "الجأ لنظام النواÙ�ذ إكس11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "خادوم بÙ�لس‌أوديو الصوتي" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "مسرى جلسة دي–بَس" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "مسرى نظام دي–بَس" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "عميل القشرة الآمنة" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "البطاقات الذكية" #: src/models/sockets.js:93 msgid "Printing system" msgstr "نظام الطباعة" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "أدّÙ�لة عميل جنو برايÙ�سي جارد (GPG)" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "رÙ�Ø« مقبس وَيلَند" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "قائمة المقابس المعروÙ�Ø© المتوÙ�رة Ù�ÙŠ صندوق الرمل" #: src/models/variables.js:40 msgid "Variables" msgstr "المتغيّرات" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "مثال: GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "قائمة المتغيّÙ�رات المÙ�صَدَّرة للتطبيق" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%B %eØŒ %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "الإصدار" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "المعرÙ�" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "آخر تحديث" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "بيئة التشغيل" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "هذا ليس خيارًا صالحًا" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "Ø£_ظهÙ�ر التÙ�اصيل" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "أظهÙ�ر التطبيق Ù�ÙŠ مدير البرمجيات" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "لم ÙŠÙ�عثر على مدير برمجيات" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "كلّ التّطبيقات" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "التغيرات المطبقة على كاÙ�Ø© تطبيقات Ù�لاتباك" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "إصدار Ù�لاتباك" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "إصدار البوابة" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "يغير المسار" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_مساعدة" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "ال_تَّوثيق" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "ا_ختصارات لوحة المÙ�اتيح" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_عَنْ Ù�لاتسيل" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Ù…Ù�غَيَّر عموميًا" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Ù…Ù�غَيَّر من قبل المستخدم" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "هذا المسار التام" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "هذا المسار المتعلق بدليل المنزل" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "إعدادات كامل النظام" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "كل مكتبات النظام، والتنÙ�يذيات، والبيانات الثابتة" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "كل ملÙ�ّات النّظام" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "كل ملÙ�ات المستخدم" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "دليل سطح المكتب" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "دليل المستندات" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "دليل التنزيلات" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "دليل الموسيقى" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "دليل الصور" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "الدليل العام" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "دليل الÙ�يديو" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "دليل القوالب" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "دليل الضبط" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "دليل الاختزان" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "دليل البيانات" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "دليل بيئة التشغيل" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "يمكنه قراءة: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "يمكن تعديل وقراءة: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "يمكنه إنشاء، وتعديل، وقراءة: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "لا يمكنه قراءة: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "لا يمكنه تعديل أو قراءة: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "لا يمكنه إنشاء، أو تعديل، أو قراءة: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "ألغÙ� الضبط" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "لا يمكن إزالة المسارات المبدئية" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_صَÙ�Ù‘Ù�ر" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "لا تغييرات على هذا التطبيق" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "صَÙ�Ù‘Ù�ر أذونات هذا التطبيق" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr "ØŒ ويتضمن ذلك التعديلات من خارج Ù�لاتسيل" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "عامّ" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "اعرض الرموز التذكÙ�رية" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "اعرض التوثيق" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "اعرض القائمة" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "اختصارات لوحة المÙ�اتيح" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "أنهÙ�" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "التّنقّل" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "انقل لليسار" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "انقل لأعلى" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "انقل لليمين" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "انقل لأسÙ�Ù„" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "التطبيقات" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "اعثر" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "الأذونات" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "بدّل" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "التّوثيق" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "اعثر على التالي" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "اعثر على السّابق" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "صÙ�Ù�Ù‘Ù�رَت الأذونات" #: src/widgets/window.js:99 msgid "_Undo" msgstr "ت_راجع" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "تعذر تحميل التجاوزات بسبب المحتوى الخاطئ" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Ø£Ù�عيد التحميل لتغييرات Ù�ÙŠ تنزيلات Ù�لاتباك" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "القائمة الرئيسة" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "لم ÙŠÙ�عثَر على تطبيقات." Flatseal-2.4.1/po/bg_BG.po000066400000000000000000000445071520337174300152060ustar00rootroot00000000000000# Flatseal - Bulgarian Translation # Copyright (C) 2022-2025 # This file is distributed under the same license as the flatseal package. # Georgi Georgiev (RacerBG) , 2022, 2023, 2024, 2025 # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2025-02-22 14:26+0200\n" "Last-Translator: Georgi Georgiev (RacerBG) \n" "Language-Team: \n" "Language: bg_BG\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.4.4\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Управление на разрешениÑ�та за Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "seal;sandbox;override;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal е графична програма за преглед и промÑ�на на разрешениÑ�та за вашите " "приложениÑ� от Flatpak." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "ОÑ�новен прозорец" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "РазрешениÑ� за файловата Ñ�иÑ�тема" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "СиÑ�темни промени" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "ПоÑ�ледно избран идентификатор на приложението" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Ð�еизвеÑ�тно" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Комуникира" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Притежава" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Ð�аименованиÑ� в потребителÑ�ката шина" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Ð�аименованиÑ� в Ñ�иÑ�темната шина" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Графично уÑ�корение" #: src/models/devices.js:44 msgid "Input devices" msgstr "Входни уÑ�тройÑ�тва" #: src/models/devices.js:51 msgid "Virtualization" msgstr "ВиртуализациÑ�" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Споделена памет" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB уÑ�тройÑ�тва" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Ð’Ñ�ички уÑ�тройÑ�тва (например уеб камера)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "УÑ�тройÑ�тва в ограничената Ñ�реда" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "СиÑ�темни повикваниÑ� (например ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Програми от други архитектури" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Шина CAN" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Споделена памет" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Функции за приложението" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Ð’Ñ�ички Ñ�иÑ�темни файлове" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Ð’Ñ�ички Ñ�иÑ�темни библиотеки, изпълними файлове и Ñ�татични данни" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Ð’Ñ�ички Ñ�иÑ�темни конфигурации" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Ð’Ñ�ички потребителÑ�ки файлове" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Подгрупи на файловата Ñ�иÑ�тема за приложението" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Други файлове" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "например ~/games:ro, xdg-pictures и други" #: src/models/persistent.js:37 msgid "Files" msgstr "Файлове" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "например .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Създадени в домашната папка меÑ�тоположениÑ� в ограничената Ñ�реда" #: src/models/portals.js:118 msgid "Background" msgstr "Фонов режим" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Фоново изпълнение" #: src/models/portals.js:128 msgid "Notifications" msgstr "ИзвеÑ�тиÑ�" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Изпращане на извеÑ�тиÑ�" #: src/models/portals.js:138 msgid "Microphone" msgstr "Микрофон" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Използване на микрофона" #: src/models/portals.js:148 msgid "Speakers" msgstr "Тонколони" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Използване на тонколоните" #: src/models/portals.js:158 msgid "Camera" msgstr "Камера" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "ЗапиÑ�ване на видео Ñ� камерата" #: src/models/portals.js:168 msgid "Location" msgstr "ЛокациÑ�" #: src/models/portals.js:170 msgid "Can access your location" msgstr "ДоÑ�тъп до локациÑ�та" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "ДоÑ�тъпни реÑ�урÑ�и за приложението" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Ð�е Ñ�е поддържа от инÑ�талираната верÑ�иÑ� на Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "ИзиÑ�ква разрешение за Ñ�ъхранение Ñ� верÑ�иÑ� ≥2" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Данните на портала не Ñ�а наÑ�троени" #: src/models/shared.js:39 msgid "Network" msgstr "Мрежа" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "КомуникациÑ� между процеÑ�ите" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Споделени подгрупи Ñ�ÑŠÑ� Ñ�иÑ�темата домакин" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "Графична Ñ�иÑ�тема X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Графична Ñ�иÑ�тема Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Резервна графична Ñ�иÑ�тема X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Звуков Ñ�ървър PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "ПотребителÑ�ка шина D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "СиÑ�темна шина D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Ð�гент SSH" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Смарткарти" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Принтиране" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Папките на агент GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Ð�аÑ�ледÑ�ва гнездото Wayland" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Гнезда в ограничената Ñ�реда" #: src/models/variables.js:40 msgid "Variables" msgstr "Променливи" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "например GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "ЕкÑ�портирани променливи към приложението" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B, %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "ВерÑ�иÑ�" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Идентификатор" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "ПоÑ�ледно обновÑ�ване" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Платформа" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Това не е правилно" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_СвойÑ�тва" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Покажи приложението в Ñ�офтуерниÑ� мениджър" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "СофтуерниÑ�Ñ‚ мениджър не е намерен" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Ð’Ñ�ички приложениÑ�" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Промени, които Ñ�е отнаÑ�Ñ�Ñ‚ за вÑ�ички приложениÑ� на Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "ВерÑ�иÑ� на Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "ВерÑ�иÑ� на портала" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "ПроменÑ� меÑ�тоположението" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Помощ" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_ДокументациÑ�" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Клавишни комбинации" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_ОтноÑ�но Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Променено от Ñ�иÑ�темата" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Променено от потребителÑ�" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "абÑ�олютното меÑ�тоположение" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "меÑ�тоположението Ñ�прÑ�мо домашната папка" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "вÑ�ички Ñ�иÑ�темни конфигурации" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "вÑ�ички Ñ�иÑ�темни библиотеки, изпълними файлове и Ñ�татични данни" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "вÑ�ички Ñ�иÑ�темни файлове" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "вÑ�ички потребителÑ�ки файлове" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "папката Ñ� работниÑ� плот" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "папката Ñ� документи" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "папката Ñ� изтеглÑ�ниÑ�" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "папката Ñ� музика" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "папката Ñ� картини" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "публичната папка" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "папката Ñ� видеозапиÑ�и" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "папката Ñ� шаблони" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "папката Ñ� конфигурации" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "папката Ñ� кеш паметта" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "папката Ñ� данни" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "папката на платформата" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Право на четене: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Право на запиÑ�ване и четене: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Право на Ñ�ъздаване, запиÑ�ване и четене: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Без право на четене: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Без право на запиÑ�ване и четене: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Без право на Ñ�ъздаване, запиÑ�ване и четене: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Отхвърли" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Пътищата по подразбиране не може да Ñ�е премахнат" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Ð�улирай" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Ð�е Ñ�а направени промени по приложението" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Ð�улирай разрешениÑ�та за приложението" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", включително промените, които не Ñ�а направени Ñ� Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Общи" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Покажи мнемониките" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Покажи документациÑ�та" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Покажи менюто" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Клавишни комбинации" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Изход" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Ð�авигациÑ�" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "ПремеÑ�ти налÑ�во" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "ПремеÑ�ти нагоре" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "ПремеÑ�ти надÑ�Ñ�но" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "ПремеÑ�ти надолу" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "ПриложениÑ�" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Ð�амери" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "РазрешениÑ�" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Превключи" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "ДокументациÑ�" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Ð�амери Ñ�ледващ" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Ð�амери предишен" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "РазрешениÑ�та Ñ�а нулирани" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Отмени" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Промените не могат да Ñ�е заредÑ�Ñ‚ поради неправилно Ñ�ъдържание" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "ОпреÑ�нено поради промени в инÑ�талациите на Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "ОÑ�новно меню" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "ПриложениÑ�та не Ñ�а намерени." Flatseal-2.4.1/po/ca.po000066400000000000000000000403731520337174300146260ustar00rootroot00000000000000# Catalan translation for Flatseal. # Copyright (C) 2021 # This file is distributed under the same license as the flatseal package. # Ã�car Nin Solana , 2021. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2025-06-20 17:14+0200\n" "Last-Translator: Ã�car N. S. \n" "Language-Team: \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.6\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Gestiona els permisos de Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "segell;entorn protegit;sobreeiximent;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal és una utilitat gràfica per revisar i modificar els permisos de les " "vostres aplicacions Flatpak." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "La finestra principal del Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "El Flatseal mostrant els permisos del sistema de fitxers" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "El Flatseal mostrant els sobreeiximents globals" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Identificador de l'aplicació que es va seleccionar per darrera vegada" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Desconegut" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Talks" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Owns" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Llista de noms coneguts del bus de sessió" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Llista de noms coneguts del bus del sistema" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Acceleració per la GPU" #: src/models/devices.js:44 msgid "Input devices" msgstr "Dispositius d'entrada" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualització" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Memòria compartida" #: src/models/devices.js:65 msgid "USB devices" msgstr "Dispositius USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Tots els dispositius (p. ex. la càmera web)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Llista de dispositius disponibles a l'entorn de proves" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Crides del sistema pel desenvolupament (p. ex. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programes d'altres arquitectures" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Bus de xarxa de l'àrea del controlador" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Memòria compartida per aplicació" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Llista de característiques disponibles per a l'aplicació" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Tots els fitxers del sistema" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Totes les biblioteques del sistema, executables i dades estàtiques" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Totes les configuracions del sistema" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Tots els fitxers d'usuari" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "" "Llista de subconjunts de sistema de fitxers disponibles per a l'aplicació" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Altres fitxers" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "p. ex. ~/jocs:ro, xdg-pictures, etc" #: src/models/persistent.js:37 msgid "Files" msgstr "Fitxers" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "p. ex. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "" "Llista de camins relatius a la carpeta d'usuari creats a l'espai aïllat" #: src/models/portals.js:118 msgid "Background" msgstr "Fons" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Es pot executar en segon pla" #: src/models/portals.js:128 msgid "Notifications" msgstr "Notificacions" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Pot enviar notificacions" #: src/models/portals.js:138 msgid "Microphone" msgstr "Micròfon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Pots escoltar el micròfon" #: src/models/portals.js:148 msgid "Speakers" msgstr "Altaveus" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Pot reproduir sons als teus altaveus" #: src/models/portals.js:158 msgid "Camera" msgstr "Càmera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Pot enregistrar vídeos amb la càmera" #: src/models/portals.js:168 msgid "Location" msgstr "Ubicació" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Pots accedir a la teva ubicació" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Llista de recursos assignats selectivament a l'aplicació" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "No està suportat per la versió instal·lada de Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Requereix permís per emmagatzemar la versió 2 o posterior" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Encara no s'han configurat les dades del portal" #: src/models/shared.js:39 msgid "Network" msgstr "Xarxa" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Comunicacions entre processos" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Llista de subsistemes compartits amb el sistema amfitrió" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "Sistema de finestres X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Sistema de finestres del Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Reverteix al sistema de finestres X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Servidor de so PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "Bus de sessió D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "Bus del sistema D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Agent d'intèrpret d'ordres segur" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Targetes intel·ligents" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Sistema d'impressió" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Directoris de l'agent GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Hereda el sòcol del Wayland" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Llista de sòcols coneguts disponibles a l'entorn aïllat" #: src/models/variables.js:40 msgid "Variables" msgstr "Variables" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "p. ex. GTKDEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Llista de variables exportades a l'aplicació" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B, %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Versió" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identificador" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Darrera actualització" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Entorn d'execució" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Aquesta opció no és vàlida" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Mostra els detalls" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Mostra l'aplicació en un gestor de programari" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "No s'ha trobat cap gestor de programari" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Totes les Aplicacions" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Canvis que s'apliquen a totes les aplicacions de Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Versió Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Versió del Portal" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Canvis de camí" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Ajuda" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Documentació" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "Dreceres de _teclat" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "Quant al _Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Canviat globalment" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Modificat per l'usuari" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "aquest camí absolut" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "aquest camí relatiu al directori de l'usuari" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "totes les configuracions del sistema" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "totes les biblioteques del sistema, executables i dades estàtiques" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "tots els fitxers del sistema" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "tots els fitxers d'usuari" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "el directori d'escriptori" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "el directori de documents" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "el directori de baixada" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "el directori de música" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "el directori d'imatges" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "el directori públic" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "el directori dels vídeos" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "el directori de les plantilles" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "el directori de configuració" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "el directori de la memòria cau" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "el directori de dades" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "el directori de l'entorn d'execució" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Es pot llegir: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Pot modificar i llegir: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Pot crear, modificar i llegir: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "No es pot llegir: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "No es pot modificar o llegir: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "No es pot crear, modificar o llegir: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "No definit" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "No es poden eliminar els camins per defecte" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Reinicia" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "No s'ha fet cap canvi a aquesta aplicació" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Restableix els permisos de l'aplicació" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", inclosos els canvis no fets amb el Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "General" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Mostra mnemotècniques" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Mostra la documentació" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Mostra el menú" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Dreceres de teclat" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Sortir" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navegació" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Mou-te a l'esquerra" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Mou-te" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Mou a la dreta" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Moure cap avall" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Aplicacions" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Cerca" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Permisos" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Commuta" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Documentació" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Busca el següent resultat" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Cerca el resultat anterior" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "S'han restablert els permisos" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Desfés" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "No es poden carregar els canvis a causa d'un contingut incorrecte" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Actualitzat a causa dels canvis a les instal·lacions de Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Menú principal" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "No s'ha trobat cap aplicació." Flatseal-2.4.1/po/cs.po000066400000000000000000000400431520337174300146420ustar00rootroot00000000000000# Czech translation for flatseal package. # Copyright (C) 2020 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # # Daniel Rusek , 2020. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2026-05-15 14:42+0200\n" "Last-Translator: Daniel Rusek \n" "Language-Team: none\n" "Language: cs\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Poedit 3.9\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Spravujte oprávnÄ›ní pro Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "utÄ›snÄ›ní;sandbox;zmÄ›na;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal je grafický nástroj pro prohlížení a úpravu oprávnÄ›ní vaÅ¡ich " "Flatpak aplikací." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Hlavní okno Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal zobrazující oprávnÄ›ní souborového systému" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal zobrazující globální zmÄ›ny" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "ID aplikace, které bylo naposledy vybráno" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "neznámé" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Komunikuje" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Vlastní" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Seznam dobÅ™e známých jmen dostupných na sbÄ›rnici sezení" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Seznam dobÅ™e známých jmen dostupných na systémové sbÄ›rnici" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Akcelerace GPU" #: src/models/devices.js:44 msgid "Input devices" msgstr "Vstupní zařízení" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualizace" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Sdílená paměť" #: src/models/devices.js:65 msgid "USB devices" msgstr "Zařízení USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "VÅ¡echna zařízení (napÅ™. webkamera)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Seznam zařízení dostupných v sandboxu" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Vývojová systémová volání (napÅ™. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programy z jiných architektur" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "SbÄ›rnice Controller Area Network" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Sdílená paměť aplikace" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Seznam funkcí dostupných v sandboxu" #: src/models/filesystems.js:37 msgid "All system files" msgstr "VÅ¡echny systémové soubory" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "VÅ¡echny systémové knihovny, spustitelné soubory a statická data" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "VÅ¡echna systémová nastavení" #: src/models/filesystems.js:58 msgid "All user files" msgstr "VÅ¡echny uživatelské soubory" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Seznam podmnožin souborového systému dostupných pro aplikaci" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Ostatní soubory" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "napÅ™. ~/hry:ro, xdg-pictures atd." #: src/models/persistent.js:37 msgid "Files" msgstr "Soubory" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "napÅ™. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Seznam cest relativních k domovskému adresáři vytvoÅ™ených v sandboxu" #: src/models/portals.js:118 msgid "Background" msgstr "Pozadí" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Může běžet na pozadí" #: src/models/portals.js:128 msgid "Notifications" msgstr "UpozornÄ›ní" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Může zasílat upozornÄ›ní" #: src/models/portals.js:138 msgid "Microphone" msgstr "Mikrofon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Může poslouchat váš mikrofon" #: src/models/portals.js:148 msgid "Speakers" msgstr "Reproduktory" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Může pÅ™ehrávat zvuk na vaÅ¡ich reproduktorech" #: src/models/portals.js:158 msgid "Camera" msgstr "Kamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Může nahrávat videa vaší kamerou" #: src/models/portals.js:168 msgid "Location" msgstr "Poloha" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Může pÅ™istupovat k vaší poloze" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Seznam prostÅ™edků selektivnÄ› pÅ™idÄ›lených aplikaci" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Není podporováno nainstalovanou verzí Flatpaku" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Vyžaduje úložiÅ¡tÄ› oprávnÄ›ní verze 2 nebo novÄ›jší" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Data portálu dosud nebyla nastavena" #: src/models/shared.js:39 msgid "Network" msgstr "Síť" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Meziprocesová komunikace" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Seznam subsystémů sdílených s hostitelským systémem" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "Okenní systém X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Okenní systém Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Záložní přístup k okennímu systému X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Zvukový server PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "SbÄ›rnice sezení D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "Systémová sbÄ›rnice D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Agent ZabezpeÄ�eného Shellu" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "ÄŒipové karty" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Tiskový systém" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Adresáře GPG-Agent" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "ZdÄ›dit soket Waylandu" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Seznam dobÅ™e známých soketů dostupných v sandboxu" #: src/models/variables.js:40 msgid "Variables" msgstr "PromÄ›nné" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "napÅ™. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Seznam promÄ›nných exportovaných aplikaci" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e. %B %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Verze" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identifikátor" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Aktualizováno" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "ProstÅ™edí" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Toto není platná možnost" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "Zobrazit podrobno_sti" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Zobrazit aplikaci ve správci softwaru" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Nebyl nalezen žádný správce softwaru" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "VÅ¡echny aplikace" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "ZmÄ›ny, které jsou platné pro vÅ¡echny Flatpak aplikace" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Verze Flatpaku" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Verze portálu" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "ZmÄ›ní cestu" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_NápovÄ›da" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Dokumentace" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Klávesové zkratky" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "O _aplikaci Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "ZmÄ›nÄ›no globálnÄ›" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "ZmÄ›nÄ›no uživatelem" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "tato absolutní cesta" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "tato cesta relativní k domovskému adresáři" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "vÅ¡echna systémová nastavení" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "vÅ¡echny systémové knihovny, spustitelné soubory a statická data" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "vÅ¡echny systémové soubory" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "vÅ¡echny uživatelské soubory" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "adresář plochy" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "adresář dokumentů" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "adresář stahování" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "adresář hudby" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "adresář obrázků" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "veÅ™ejný adresář" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "adresář videí" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "adresář Å¡ablon" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "konfiguraÄ�ní adresář" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "adresář mezipamÄ›ti" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "datový adresář" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "adresář prostÅ™edí" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Může Ä�íst: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Může upravovat a Ä�íst: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Může vytvářet, upravovat a Ä�íst: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Nemůže Ä�íst: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Nemůže upravovat a Ä�íst: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Nemůže vytvářet, upravovat a Ä�íst: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Uvolnit" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Výchozí cesty nemohou být odstranÄ›ny" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Resetovat" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "V této aplikaci nebyly provedeny žádné zmÄ›ny" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Resetovat oprávnÄ›ní této aplikace" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", vÄ�etnÄ› zmÄ›n neprovedených v aplikaci Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Obecné" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Zobrazit pomůcky" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Zobrazit dokumentaci" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Zobrazit menu" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Klávesové zkratky" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "UkonÄ�it" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigace" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Posunout doleva" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Posunout nahoru" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Posunout doprava" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Posunout dolů" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Aplikace" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Najít" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "OprávnÄ›ní" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "PÅ™epnout" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Dokumentace" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Najít další" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Najít pÅ™edchozí" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "OprávnÄ›ní byla resetována" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_ZpÄ›t" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Nelze naÄ�íst zmÄ›ny kvůli nesprávnému obsahu" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Aktualizováno kvůli zmÄ›nám v instalacích Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Hlavní nabídka" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Nenalezeny žádné aplikace." Flatseal-2.4.1/po/da.po000066400000000000000000000367541520337174300146370ustar00rootroot00000000000000# Danish translation of Flatseal. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # ExponentActivity ***@***.***, 2022. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2022-03-24 13:19+0100\n" "Last-Translator: ExponentActivity\n" "Language-Team: \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.0.1\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Administrer Flatpak tilladelser" #: data/com.github.tchx84.Flatseal.desktop.in:14 #, fuzzy msgid "seal;sandbox;override;" msgstr "seal;sandbox;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal er et grafisk værktøj til at gennemse og ændre tilladelser for dine " "Flatpak applikationer." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Applikations-id, der sidst blev valgt" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Ukendt" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Taler" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Ejer" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Liste af velkendte navne pÃ¥ sessionsbussen" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Liste af velkendte navne pÃ¥ sessionsbussen" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU-accelerering" #: src/models/devices.js:44 msgid "Input devices" msgstr "Input-enheder" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualisering" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Delt hukommelse" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB-enheder" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Alle enheder (f.eks. webcam)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Liste af enheder tilgængelige i sandkassen" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Udviklingssyscalls (f.eks. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programmer fra andre arkitekture" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Controller Area Network bus" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Applikationsspecifikt Delt Hukkommelse" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Liste af funktioner tilgængelige for applikationen" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Alle system filer" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Alle systembiblioteker, eksekverbare filer og statisk data" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Alle system konfigurationer" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Alle bruger filer" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Liste af filsystem undergrupper tilgængelige for applikationen" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Andre filer" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "f.eks. ~/games:ro, xdg-pictures, etc" #: src/models/persistent.js:37 msgid "Files" msgstr "Filer" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "f.eks. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "" "Liste af stier, der relativt til hjemmemappen, bliver oprettet i sandkassen" #: src/models/portals.js:118 msgid "Background" msgstr "Baggrund" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "MÃ¥ køre i baggrunden" #: src/models/portals.js:128 msgid "Notifications" msgstr "Notifikationer" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "MÃ¥ sende notifikationer" #: src/models/portals.js:138 msgid "Microphone" msgstr "Mikrofon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "MÃ¥ lytte til din mikrofon" #: src/models/portals.js:148 msgid "Speakers" msgstr "Højttaler" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "MÃ¥ afspille lyde pÃ¥ dine højttalere" #: src/models/portals.js:158 msgid "Camera" msgstr "Kamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "MÃ¥ optage fra dit kamera" #: src/models/portals.js:168 msgid "Location" msgstr "Placering" #: src/models/portals.js:170 msgid "Can access your location" msgstr "MÃ¥ tilgÃ¥ din placering" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Liste af ressourcer applikationen har fÃ¥et adgang til" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Ikke understøttet af den installerede version af Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Kræver permission store version 2 eller nyere" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Portal data er ikke blevet sat op" #: src/models/shared.js:39 msgid "Network" msgstr "Netværk" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Inter-process kommunikation" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Liste af undersystemer delt med værtssystemet" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11 vinduessystem" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland vinduessystem" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Fald tilbage pÃ¥ X11 vinduessystem" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio lydserver" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus sessionsbus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus systembus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Sikker Skal agent" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Smart cards" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Printsystem" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-agent biblioteker" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Liste af velkendte fatninger tilgængelige for sandkassen" #: src/models/variables.js:40 msgid "Variables" msgstr "Variabler" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "f.eks. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Liste af variabler eksporteret til applikationen" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e. %B %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Version" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identifikator" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Sidst Opdateret" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Eksekveringsmiljø" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Dette er ikke en gyldig mulighed" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Vis detaljer" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Vis applikation i en software manager" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Ingen software manager blev fundet" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Alle Applikationer" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Ændringer, der gælder for alle Flatpak-applikationer" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak version" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Portal version" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Ændrer sti" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Hjælp" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Dokumentation" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Tastatur Genveje" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_Om Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Ændret globalt" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Ændret af brugeren" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "denne absolutte sti" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "denne sti relativt til din hjemmemappe" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "alle system konfigurationer" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "alle systembiblioteker, eksekverbare filer og statisk data" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "alle system filer" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "alle bruger filer" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "skrivebord mappen" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "dokumenter mappen" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "download mappen" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "musik mappen" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "billeder mappen" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "offentligt mappen" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "video mappen" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "skabelon mappen" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "konfiguration mappen" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "cache mappen" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "data mappen" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "eksekveringsmiljø mappen" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "MÃ¥ læse: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "MÃ¥ ændre og læse: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "MÃ¥ skabe, ændre og læse: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "MÃ¥ ikke læse: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "MÃ¥ ikke ændre eller læse: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "MÃ¥ ikke skabe, ændre og læse: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Uindstillet" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Standardstier kan ikke fjernes" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Nulstil" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Ingen ændringer lavet pÃ¥ denne applikation" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Nulstil denne applikations indstillinger" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", inklusiv ændringer der ikke er foretaget med Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Generelt" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Vis mnemonik" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Vis dokumentation" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Vis menu" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Tastatur Genveje" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Afslut" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigation" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Flyt til venstre" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Flyt op" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Flyt til højre" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Flyt ned" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Applikationer" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Find" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Tilladelser" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Tænd/sluk" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Dokumentation" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Find næste" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Find tidligere" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Tilladelser er nulstillet" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Fortryd" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Kan ikke indlæse ændringer pÃ¥ grund af forkert indhold" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Opdateret pÃ¥ grund af ændringer i Flatpak-installationer" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Hovedmenu" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Ingen applikationer fundet." Flatseal-2.4.1/po/de.po000066400000000000000000000402221520337174300146240ustar00rootroot00000000000000# German translation for flatseal package. # Copyright (C) 2020 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Tim Rieck , 2020. # Philipp Kiemle , 2022-2025. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2025-09-15 20:15+0200\n" "Last-Translator: Philipp Kiemle \n" "Language-Team: none\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.7\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Berechtigungen von Flatpak-Anwendungen verwalten" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "Siegel;seal;Sandkasten;sandbox;überschreiben;override;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal ist ein grafisches Dienstprogramm zum Überprüfen und Ändern von " "Basisberechtigungen Ihrer Flatpak-Anwendungen." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Das Hauptfenster von Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal zeigt Dateisystemrechte an" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal zeigt globale Überschreibungen an" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Anwendungs-ID, die zuletzt ausgewählt wurde" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Unbekannt" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Redet mit" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Besitzt" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Liste bekannter Namen im Sitzungsbus" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Liste bekannter Namen auf dem Systembus" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU-Beschleunigung" #: src/models/devices.js:44 msgid "Input devices" msgstr "Eingabegeräte" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualisierung" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Gemeinsam genutzter Speicher" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB-Geräte" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Alle Geräte (z. B. Webcam)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Liste der in der Sandbox verfügbaren Geräte" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Entwicklungs-Systemaufrufe (z. B. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programme anderer Architekturen" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Controller Area Netzwerkbus" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Gemeinsamer Speicher pro Anwendung" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Liste der Funktionen, die der Anwendung zur Verfügung stehen" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Alle Systemdateien" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Alle Systembibliotheken, ausführbaren Dateien sowie statische Daten" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Alle Systemkonfigurationen" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Alle Benutzerdateien" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Liste der für die Anwendung verfügbaren Dateisysteme" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Andere Dateien" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "z. B. ~/Spiele:ro, xdg-pictures, etc." #: src/models/persistent.js:37 msgid "Files" msgstr "Dateien" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "z. B. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Liste der in der Sandbox erstellten homedir-relativen Pfade" #: src/models/portals.js:118 msgid "Background" msgstr "Hintergrund" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Kann im Hintergrund laufen" #: src/models/portals.js:128 msgid "Notifications" msgstr "Benachrichtigungen" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Kann Benachrichtigungen senden" #: src/models/portals.js:138 msgid "Microphone" msgstr "Mikrofon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Kann Ihr Mikrofon nutzen" #: src/models/portals.js:148 msgid "Speakers" msgstr "Lautsprecher" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Kann Sounds über Ihre Lautsprecher abspielen" #: src/models/portals.js:158 msgid "Camera" msgstr "Kamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Kann Videos mit Ihrer Kamera aufzeichnen" #: src/models/portals.js:168 msgid "Location" msgstr "Standort" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Kann auf Ihren Standort zugreifen" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Liste der Ressourcen, die der Anwendung selektiv gewährt wurden" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Wird von der installierten Flatpak-Version nicht unterstützt" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Erfordert den Berechtigungsspeicher Version 2 oder neuer" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Portaldaten wurden noch nicht eingerichtet" #: src/models/shared.js:39 msgid "Network" msgstr "Netzwerk" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Kommunikation zwischen Prozessen" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Liste der mit dem Hostsystem gemeinsam genutzten Subsysteme" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11-Fenstermanager" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland-Fenstermanager" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Fallback auf das X11-Fenstersystem" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio-Soundserver" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus-Sitzungsbus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus-Systembus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Secure Shell Agent" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Smartcards" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Druckerverwaltung" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-Agent-Verzeichnisse" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Wayland-Socket erben" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Liste der in der Sandbox verfügbaren Sockets" #: src/models/variables.js:40 msgid "Variables" msgstr "Variablen" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "z. B. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Liste der in die Anwendung exportierten Variablen" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e. %B %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Version" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Kennung" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Letzte Aktualisierung" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Runtime" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Das ist eine ungültige Einstellung" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Details anzeigen" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Anwendung in einem Software-Manager anzeigen" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Kein Software-Manager gefunden" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Alle Anwendungen" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Änderungen, die alle Flatpak-Anwendungen betreffen" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak-Version" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Portal-Version" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Ändert den Pfad" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Hilfe" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Dokumentation" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Tastaturkürzel" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "Info zu _Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Global geändert" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Durch den Benutzer geändert" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "dieser absoluter Pfad" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "dieser Pfad relativ zum persönlichen Ordner" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "alle Systemkonfigurationen" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "alle Systembibliotheken, ausführbaren Dateien sowie statische Daten" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "alle Systemdateien" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "alle Benutzerdateien" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "das Desktop-Verzeichnis" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "das Dokumenten-Verzeichnis" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "das Download-Verzeichnis" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "das Musik-Verzeichnis" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "das Bilder-Verzeichnis" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "das öffentliche Verzeichnis" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "das Video-Verzeichnis" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "das Vorlagen-Verzeichnis" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "das Konfigurationsverzeichnis" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "das Cache-Verzeichnis" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "das Datenverzeichnis" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "das Laufzeit-Verzeichnis" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Kann lesen: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Kann ändern und lesen: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Kann erstellen, ändern und lesen: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Kann nicht lesen: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Kann nicht ändern oder lesen: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Kann nicht erstellen, ändern oder lesen: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Entfernen" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Standardpfade können nicht entfernt werden" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "Z_urücksetzen" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "An dieser Anwendung wurden keine Änderungen vorgenommen" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Berechtigungen dieser Anwendung zurücksetzen" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", einschließlich Änderungen, die nicht mit Flatseal vorgenommen wurden" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Allgemein" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Mnemoniks anzeigen" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Dokumentation anzeigen" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Menü zeigen" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Tastaturkürzel" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Verlassen" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigation" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Nach links" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Nach oben" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Nach rechts" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Nach unten" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Anwendungen" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Finden" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Berechtigungen" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Umschalten" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Dokumentation" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Nächstes finden" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Vorheriges finden" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Berechtigungen wurden zurückgesetzt" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Rückgängig" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Überschreibungen können aufgrund falscher Inhalte nicht geladen werden" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Aufgrund von Änderungen in Flatpak-Installationen aktualisiert" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Hauptmenü" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Keine Anwendungen gefunden." Flatseal-2.4.1/po/el.po000066400000000000000000000471031520337174300146410ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Karachalios Stagkas Athanasios Nektarios (nasos.karachalios.stagkas@proton.me) ,2024. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2024-04-03 13:31+0300\n" "Last-Translator: \n" "Language-Team: \n" "Language: el_GR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.4.2\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "ΔιαχείÏ�ιση δικαιωμάτων Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "σφÏ�άγισε;απομόνωσε;Ï€Ï�οσπέλασε;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Το Flatseal είναι ένα γÏ�αφικό βοηθητικό Ï€Ï�όγÏ�αμμα για την επισκόπηση και την " "Ï„Ï�οποποίηση των δικαιωμάτων από τις εφαÏ�μογές Flatpak που διαθέτετε." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Το κÏ�Ï�ιο παÏ�άθυÏ�ο του Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Το Flatseal δείχνει τα δικαιώματα του συστήματος αÏ�χείων" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal δείχνει παγκόσμιες Ï€Ï�οσπελάσεις" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "ID εφαÏ�μογής που επιλέχθηκε τελευταία φοÏ�ά" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Άγνωστο" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Επικοινωνεί" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Κατέχει" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Κατάλογος γνωστών ονομάτων στον δίαυλο συνεδÏ�ίας" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Κατάλογος γνωστών ονομάτων στο δίαυλο συστήματος" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Επιτάχυνση ΚάÏ�τας ΓÏ�άφικων" #: src/models/devices.js:44 msgid "Input devices" msgstr "Συσκευές εισόδου" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Εικονικοποίηση" #: src/models/devices.js:58 msgid "Shared memory" msgstr "ΚοινόχÏ�ηστη μνήμη" #: src/models/devices.js:65 msgid "USB devices" msgstr "Συσκευές USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Όλες οι συσκευές (Ï€.χ. κάμεÏ�α)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Λίστα των συσκευών που είναι διαθέσιμες στην απομόνωσή" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Αναπτυξιακές κλήσεις συστήματος (Ï€.χ. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "ΠÏ�ογÏ�άμματα άλλων αÏ�χιτεκτονικών" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Δίαυλος ελεγκτή δικτÏ�ου" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "ΚοινόχÏ�ηστη μνήμη εφαÏ�μογής" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Κατάλογος των διαθέσιμων λειτουÏ�γιών της εφαÏ�μογής" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Όλα τα αÏ�χεία συστήματος" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "" "Όλες οι βιβλιοθήκες του συστήματος, τα εκτελέσιμα και τα στατικά δεδομένα" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Όλες οι διαμοÏ�φώσεις συστήματος" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Όλα τα αÏ�χεία χÏ�ήστη" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "" "Κατάλογος των υποσυνόλων του συστήματος αÏ�χείων που είναι διαθέσιμα στην " "εφαÏ�μογή" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Άλλα αÏ�χεία" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "Ï€.χ. ~/games:ro, xdg-pictures, κ.λπ" #: src/models/persistent.js:37 msgid "Files" msgstr "ΑÏ�χεία" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "Ï€.χ. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "" "Λίστα των σχετικών με την διεÏ�θυνση Ï€Ï�οσωπικοÏ� κατάλογου μονοπατιών που " "δημιουÏ�γήθηκαν στην απομόνωση" #: src/models/portals.js:118 msgid "Background" msgstr "ΠαÏ�ασκήνιο" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "ΜποÏ�εί να εκτελεστεί στο παÏ�ασκήνιο" #: src/models/portals.js:128 msgid "Notifications" msgstr "Ειδοποιήσεις" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "ΜποÏ�εί να στείλει ειδοποιήσεις" #: src/models/portals.js:138 msgid "Microphone" msgstr "ΜικÏ�όφωνο" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "ΜποÏ�εί να ακοÏ�σει το μικÏ�όφωνό σας" #: src/models/portals.js:148 msgid "Speakers" msgstr "Ηχεία" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "ΜποÏ�εί να αναπαÏ�άγει ήχους στα ηχεία σας" #: src/models/portals.js:158 msgid "Camera" msgstr "ΚάμεÏ�α" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "ΜποÏ�εί να καταγÏ�άψει βίντεο με την κάμεÏ�ά σας" #: src/models/portals.js:168 msgid "Location" msgstr "Τοποθεσία" #: src/models/portals.js:170 msgid "Can access your location" msgstr "ΜποÏ�εί να έχει Ï€Ï�όσβαση στη θέση σας" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Κατάλογος των πόÏ�ων που χοÏ�ηγοÏ�νται επιλεκτικά στην εφαÏ�μογή" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Δεν υποστηÏ�ίζεται από την εγκατεστημένη έκδοση του Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Απαιτεί την έκδοση 2 ή νεότεÏ�η του καταστήματος αδειών" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Τα δεδομένα της Ï€Ï�λης δεν έχουν ακόμη δημιουÏ�γηθεί" #: src/models/shared.js:39 msgid "Network" msgstr "Δίκτυο" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Επικοινωνίες μεταξÏ� διεÏ�γασιών" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "" "Κατάλογος των υποσυστημάτων που χÏ�ησιμοποιοÏ�νται από κοινοÏ� με το σÏ�στημα " "υποδοχής" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "ΣÏ�στημα παÏ�αθÏ�Ï�ων X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "ΣÏ�στημα παÏ�αθÏ�Ï�ων Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "ΠαλινδÏ�όμηση στο σÏ�στημα παÏ�αθÏ�Ï�ων X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Διακομιστής ήχου PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "Δίαυλος συνεδÏ�ίας D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "Δίαυλος συστήματος D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "ΠÏ�άκτοÏ�ας AσφαλοÏ�Ï‚ ΚελÏ�φους" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Ευφυείς κάÏ�τες" #: src/models/sockets.js:93 msgid "Printing system" msgstr "ΣÏ�στημα εκτÏ�πωσης" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Κατάλογοι του Ï€Ï�άκτοÏ�α GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Λίστα των γνωστών υποδοχών που είναι διαθέσιμες στην απομόνωση" #: src/models/variables.js:40 msgid "Variables" msgstr "Μεταβλητές" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "Ï€.χ. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Κατάλογος μεταβλητών που εξάγονται στην εφαÏ�μογή" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B,%Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Έκδοση" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "ΑναγνωÏ�ιστικό" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Τελευταία ενημέÏ�ωση" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "ΧÏ�όνος λειτουÏ�γίας" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Αυτή δεν είναι έγκυÏ�η επιλογή" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Εμφάνιση λεπτομεÏ�ειών" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Εμφάνιση εφαÏ�μογής σε διαχειÏ�ιστή λογισμικοÏ�" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Δεν βÏ�έθηκε διαχειÏ�ιστής λογισμικοÏ�" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Όλες οι εφαÏ�μογές" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Αλλαγές που ισχÏ�ουν για όλες τις εφαÏ�μογές Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Έκδοση Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Έκδοση Portal" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Αλλαγές διαδÏ�ομής" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Βοήθεια" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_ΕγχειÏ�ίδιο" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_ΣυντομεÏ�σεις πληκτÏ�ολογίου" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_ΠεÏ�ί Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Αλλαγή παγκοσμίως" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Αλλαγή από τον χÏ�ήστη" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "αυτή η απόλυτη διαδÏ�ομή" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "αυτή η διαδÏ�ομή σε σχέση με τον Ï€Ï�οσωπικό κατάλογο" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "όλες οι διαμοÏ�φώσεις του συστήματος" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "" "όλες τις βιβλιοθήκες του συστήματος, τα εκτελέσιμα και τα στατικά δεδομένα" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "όλα τα αÏ�χεία συστήματος" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "όλα τα αÏ�χεία χÏ�ήστη" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "ο κατάλογος της επιφάνειας εÏ�γασίας" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "ο κατάλογος εγγÏ�άφων" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "ο κατάλογος λήψεων" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "ο μουσικός κατάλογος" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "ο κατάλογος εικόνων" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "ο δημόσιος κατάλογος" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "ο κατάλογος βίντεο" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "ο κατάλογος Ï€Ï�οτÏ�πων" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "ο κατάλογος config" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "ο κατάλογος cache" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "ο κατάλογος data" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "ο κατάλογος runtime" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "ΜποÏ�εί να διαβάσει: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "ΜποÏ�εί να Ï„Ï�οποποιήσει και να διαβάσει: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "ΜποÏ�εί να δημιουÏ�γήσει, να Ï„Ï�οποποιήσει και να διαβάσει: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Δεν μποÏ�εί να διαβάσει: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Δεν μποÏ�εί να Ï„Ï�οποποιήσει ή να διαβάσει: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Δεν μποÏ�είτε να δημιουÏ�γήσει, να Ï„Ï�οποποιήσει ή να διαβάσει: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Μη Ï�υθμισμένο" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Οι Ï€Ï�οεπιλεγμένες διαδÏ�ομές δεν μποÏ�οÏ�ν να αφαιÏ�εθοÏ�ν" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_ΕπαναφοÏ�ά" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Καμία αλλαγή σε αυτή την εφαÏ�μογή" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "ΕπαναφοÏ�ά δικαιωμάτων αυτής της εφαÏ�μογής" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", συμπεÏ�ιλαμβανομένων των αλλαγών που δεν έγιναν με το Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Γενικά" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Εμφάνιση μνημονικών" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Εμφάνιση εγχειÏ�ιδίου" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Εμφάνιση μενοÏ�" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "ΣυντομεÏ�σεις πληκτÏ�ολογίου" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Έξοδος" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Πλοήγηση" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Μετακίνηση Ï€Ï�ος τα αÏ�ιστεÏ�ά" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Μετακίνηση Ï€Ï�ος τα πάνω" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Μετακίνηση Ï€Ï�ος τα δεξιά" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Μετακίνηση Ï€Ï�ος τα κάτω" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "ΕφαÏ�μογές" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "ΕÏ�Ï�εση" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Δικαιώματα" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Εναλλαγή" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "ΕγχειÏ�ίδιο" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "ΕÏ�Ï�εση επόμενου" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "ΕÏ�Ï�εση Ï€Ï�οηγοÏ�μενου" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Τα δικαιώματα έχουν επαναφεÏ�θεί" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_ΑναίÏ�εση" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Δεν είναι δυνατή η φόÏ�τωση Ï€Ï�οσπελάσεων λόγω λανθασμένου πεÏ�ιεχομένου" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Ανανεώθηκε λόγω αλλαγών στις εγκαταστάσεις Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "ΚεντÏ�ικό μενοÏ�" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Δεν βÏ�έθηκαν εφαÏ�μογές." Flatseal-2.4.1/po/es.po000066400000000000000000000401721520337174300146470ustar00rootroot00000000000000# Spanish translations for flatseal package. # Copyright (C) 2020 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Automatically generated, 2020. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2020-02-01 02:37-0300\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Un administrador de permisos para Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal es una utilidad gráfica para revisar y modificar permisos básicos " "de sus aplicaciones Flatpak." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "La ventana principal de Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal mostrando los permisos del sistema de archivos" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal mostrando cambios globales" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "ID de la aplicación que se seleccionó por última vez" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Desconocida" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Habla" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Apropia" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Lista de nombres conocidos en el bus de sesión" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Lista de nombres conocidos en el bus del sistema" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Aceleración de gráficos" #: src/models/devices.js:44 msgid "Input devices" msgstr "Dispositivos de entrada" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualización" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Memoria compartida" #: src/models/devices.js:65 msgid "USB devices" msgstr "Dispositivos USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Todos los dispositivos (ej. cámara web)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Lista de dispositivos disponibles en el sandbox" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Llamadas de sistema de desarrollo (ej. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programas de otras arquitecturas" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Bus de la red de área de controlador" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Memoria compartida por aplicación" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Lista de funciones disponibles para la aplicación" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Todos los archivos del sistema" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Todas las bibliotecas, ejecutables y datos estáticos" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Todas las configuraciones del sistema" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Todos los archivos de usuario" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Lista de archivos disponibles para la aplicación" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Otros archivos" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "ej. ~/juegos:ro, xdg-pictures, etc" #: src/models/persistent.js:37 msgid "Files" msgstr "Archivos" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "ej. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Lista de rutas relativas al directorio hogar creadas en el sandbox" #: src/models/portals.js:118 msgid "Background" msgstr "Segundo plano" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Puede ejecutarse en segundo plano" #: src/models/portals.js:128 msgid "Notifications" msgstr "Notificaciones" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Puede enviar notificaciones" #: src/models/portals.js:138 msgid "Microphone" msgstr "Micrófono" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Puede escuchar su micrófono" #: src/models/portals.js:148 msgid "Speakers" msgstr "Altavoz" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Puede reproducir sonidos en su altavoz" #: src/models/portals.js:158 msgid "Camera" msgstr "Cámara" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Puede grabar videos con su cámara" #: src/models/portals.js:168 msgid "Location" msgstr "Ubicación" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Puede acceder a su ubicación" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Lista de recursos otorgados selectivamente a la aplicación" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "No es compatible con la versión instalada de Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Requiere almacenamiento de permisos versión 2 o más reciente" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Los datos del portal aún no se han configurado" #: src/models/shared.js:39 msgid "Network" msgstr "Red" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Comunicaciones entre procesos" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Lista de subsistemas compartidos con el sistema" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "Sistema de ventanas X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Sistema de ventanas Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Sistema de ventanas X11 como respaldo" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Servidor de sonido PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "Bus de sesión D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "Bus de sistema D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Agente de Shell seguro" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Tarjetas inteligentes" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Sistema de impresión" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Directorios de agentes GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Hereda el zócalo de Wayland" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Lista de zócalos conocidos disponibles en el sandbox" #: src/models/variables.js:40 msgid "Variables" msgstr "Variables" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "ej. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Lista de variables exportadas a la aplicación" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e de %B de %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Versión" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identificador" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Última actualización" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Biblioteca de ejecución" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Esta no es una opción válida" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Mostrar detalles" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Mostrar aplicación en un administrador de software" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "No se encontró un administrador de software" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Todas las Aplicaciones" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Modificaciones que afectan a todas las aplicaciones Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Versión de Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Versión del Portal" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Ruta a Modificaciones" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Ayuda" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Documentación" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "Atajos de _Teclado" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "Acerca de _Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Modificado globalmente" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Modificado por el usuario" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "esta ruta absoluta" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "esta ruta relativa al directorio de usuario" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "todas las configuraciones del sistema" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "todas las bibliotecas, ejecutables y datos estáticos" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "todos los archivos del sistema" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "todos los archivos de usuario" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "el directorio de escritorio" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "el directorio de documentos" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "el directorio de descargas" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "el directorio de músicas" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "el directorio de imágenes" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "el directorio público" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "el directorio de videos" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "el directorio de plantillas" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "el directorio de configuración" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "el directorio de caché" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "el directorio de datos" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "el directorio de tiempo de ejecución" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Puede leer: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Puede modificar y leer: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Puede crear, modificar y leer: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "No puede leer: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "No puede modificar ni leer: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "No puede crear, modificar ni leer: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Desasignar" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Las rutas predeterminadas no se pueden eliminar" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Restablecer" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "No se hicieron cambios a esta aplicación" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Restablecer los permisos de esta aplicación" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", incluidos los cambios no realizados con Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Generales" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Mostrar mnemónicos" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Mostrar documentación" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Mostrar menú" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Atajos de teclado" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Salir" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navegación" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Moverse a la izquierda" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Moverse arriba" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Moverse a la derecha" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Moverse abajo" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Aplicaciones" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Buscar" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Permisos" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Cambiar" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Documentación" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Buscar siguiente" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Buscar anterior" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Permisos restablecidos" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Deshacer" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "No se pueden cargar cambios debido a contenidos incorrectos" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Actualizado debido a cambios en las instalaciones de Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Menú Principal" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "No se encontraron aplicaciones." Flatseal-2.4.1/po/fa.po000066400000000000000000000442441520337174300146320ustar00rootroot00000000000000# Persian translations for flatseal package. # Copyright (C) 2025 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Danial Behzadi , 2025. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2025-01-13 19:08+0330\n" "Last-Translator: Danial Behzadi \n" "Language-Team: none\n" "Language: fa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.5\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Ù�لت‌بند" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "مدیریت اجازه‌های Ù�لت‌پک" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "flatseal;seal;sandbox;override;Ù�لت‌پک;قرنطینه;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Ù�لت‌بند ابزاری نگاشتاری برای بازبینی Ùˆ دستکاری اجازه‌های برنامه‌های Ù�لت‌پکتان " "است." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "پنجرهٔ اصلی Ù�لت‌بند" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Ù�لت‌بند در حال نمایش اجازه‌های سامانه‌پرونده" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Ù�لت‌بند در حال نمایش پایمالی‌های عمومی" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "مارتین آبنت لاهای" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "شناسهٔ برنامه‌ای Ú©Ù‡ آخرین بار گزیده شد" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "ناشناخته" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "صحبت" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "مالکیت" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "سیاههٔ نام‌های شناخته شده روی گذرگاه نشست" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "سیاههٔ نام‌های شناخته شده روی گذرگاه سامانه" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "شتاب‌دهی گراÙ�یکی" #: src/models/devices.js:44 msgid "Input devices" msgstr "اÙ�زاره‌های ورودی" #: src/models/devices.js:51 msgid "Virtualization" msgstr "مجازی‌سازی" #: src/models/devices.js:58 msgid "Shared memory" msgstr "حاÙ�ظهٔ اشتراکی" #: src/models/devices.js:65 msgid "USB devices" msgstr "دستگاه‌های یو‌اس‌بی" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "همهٔ اÙ�زاره‌ها (چون دوربین)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "سیاههٔ اÙ�زاره‌های موجود در قرنطینه" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Ù�راخوانی‌های سامانه‌ای توسعه‌ای (چون ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "برنامه‌ها از معماری‌های دیگر" #: src/models/features.js:51 msgid "Bluetooth" msgstr "بلوتوث" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "گذرگاه شبکهٔ ناحیهٔ واپایشگر" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "حاÙ�ظهٔ اشتراکی برنامه" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "سیاههٔ ویژگی‌های در دسترس برنامه" #: src/models/filesystems.js:37 msgid "All system files" msgstr "همهٔ پرونده‌های سامانه‌ای" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "همهٔ داده‌های ایستا، پرونده‌های اجرایی Ùˆ کتابخانه‌های سامانه‌ای" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "همهٔ پیکربندی‌های سامانه" #: src/models/filesystems.js:58 msgid "All user files" msgstr "همهٔ پرونده‌های کاربری" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "سیاههٔ زیرمجموعه‌های سامانه‌پروندهٔ در دسترس برنامه" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "دیگر پرونده‌ها" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "چون ‪~/games:ro‬، â€�xdg-pictures Ùˆ غیره" #: src/models/persistent.js:37 msgid "Files" msgstr "پرونده‌ها" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "چون ‪.thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "سیاههٔ مسیرهای نسبی ساخته شده در قرنطینه از شاخهٔ خانگی" #: src/models/portals.js:118 msgid "Background" msgstr "پس‌زمینه" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "می‌تواند در پس‌زمینه اجرا شود" #: src/models/portals.js:128 msgid "Notifications" msgstr "آگاهی‌ها" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "می‌تواند آگاهی بÙ�رستد" #: src/models/portals.js:138 msgid "Microphone" msgstr "صدابَر" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "می‌تواند به صدابَرتان گوش دهد" #: src/models/portals.js:148 msgid "Speakers" msgstr "بلندگوها" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "می‌تواند در بلندگوهایتان صدا پخش کند" #: src/models/portals.js:158 msgid "Camera" msgstr "دوربین" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "می‌تواند با دوربینتان ویدیو ضبط کند" #: src/models/portals.js:168 msgid "Location" msgstr "مکان" #: src/models/portals.js:170 msgid "Can access your location" msgstr "می‌تواند به مکانتان دسترسی داشته باشد" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "سیاههٔ منابع گزینشی داده شده به برنامه" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "پشتیبانی نشده به دست نگارش نصب شدهٔ Ù�لت‌پک" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "نیازمند نگارش Û² یا بالاتر نگه‌داری اجازه" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "داده‌های درگاه هنوز برپا نشده آند" #: src/models/shared.js:39 msgid "Network" msgstr "شبکه" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "ارتباطات درون Ù�رایندی" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "سیاههٔ زیرسامانه‌های هم‌رسانده با سامانهٔ میزبان" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "سامانهٔ پنجرهٔ X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "سامانهٔ پنجرهٔ وی‌لند" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "عقب‌نشینی به سامانهٔ پنجرهٔ X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "کارساز صدای پالس‌آدیو" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "گذرگاه نشست دی‌باس" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "گذرگاه سامانهٔ دی‌باس" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "عامل پوستهٔ امن" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "کارت‌های هوشمند" #: src/models/sockets.js:93 msgid "Printing system" msgstr "سامانهٔ چاپ" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "شاخه‌های عامل GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "ارث بری سوکت وی‌لند" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "سیاههٔ سوکت‌های شناخته شدهٔ موجود در قرنطینه" #: src/models/variables.js:40 msgid "Variables" msgstr "متغیّرها" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "چون GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "سیاههٔ متغیّرهای برون‌ریخته به برنامه" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%Oe %OB %OY" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "نگارش" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "شناسه" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "آخرین به‌روز رسانی" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "زمان اجرا" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "گزینهٔ معتبری نیست" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_نمایش جزییات" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "نمایش برنامه در مدیر نرم‌اÙ�زارها" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "هیچ مدیر نرم‌اÙ�زاری پیدا نشد" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "همهٔ برنامه‌ها" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "تغییرات اعمال شونده روی همهٔ برنامه‌های Ù�لت‌پکی" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "نگارش Ù�لت‌پک" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "نگارش درگاه" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "مسیر تغییرات" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_راهنما" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_مستندات" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_میان‌برهای صÙ�حه‌کلید" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_دربارهٔ Ù�لت‌بند" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "عمومی تغییر یاÙ�ته" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "تغییر یاÙ�ته به دست کاربر" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "این مسیر مطلق" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "این مسیر نسبی از شاخهٔ خانگی" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "همهٔ پیکربندی‌های سامانه" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "همهٔ داده‌های ایستا، پرونده‌های اجرایی Ùˆ کتابخانه‌های سامانه‌ای" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "همهٔ پرونده‌های سامانه‌ای" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "همهٔ پرونده‌های کاربری" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "شاخهٔ میزکار" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "شاخهٔ سندها" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "شاخهٔ بارگیری‌ها" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "شاخهٔ آهنگ‌ها" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "شاخهٔ نگاره‌ها" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "شاخهٔ عمومی" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "شاخهٔ ویدیوها" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "شاخهٔ قالب‌ها" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "شاخهٔ پیکربندی" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "شاخهٔ انباره" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "شاخهٔ داده" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "شاخهٔ زمان اجرا" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "می‌تواند بخواند: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "می‌تواند بخواند Ùˆ تغییر دهد: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "می‌تواند ایجاد کند، بخواند Ùˆ تغییر دهد: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "نمی‌تواند بخواند: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "نمی‌تواند بخواند یا تغییر دهد: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "نمی‌تواند ایجاد کند، بخواند یا تغییر دهد: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "ناتنظیم" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "مسیرهای پیش‌گزیده نمی‌تواندد برداشته شوند" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_بازنشانی" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "هیچ تغییری در این برنامه داده نشده" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "بازنشانی اجازه‌های این برنامه" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr "ØŒ از جمله تغییراتی Ú©Ù‡ با Ù�لت‌بند ایجاد نشده‌اند" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "عمومی" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "نمایش شتاب‌دهنده‌ها" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "نمایش مستندات" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "نمایش Ù�هرست" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "میان‌برهای صÙ�حه‌کلید" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "خروج" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "ناوبری" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "جابه‌جایی به Ú†Ù¾" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "جابه‌جایی به بالا" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "جابه‌جایی به راست" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "جابه‌جایی به پایین" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "برنامه‌ها" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "یاÙ�تن" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "اجازه‌ها" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "تغییر وضعیت" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "مستندات" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "یاÙ�تن بعدی" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "یاÙ�تن پیشین" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "اجازه‌ها بازنشانی شدند" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_برگردان" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "به دلیل محتوای نادرست نمی‌توان پایمالی‌ها را بار کرد" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "به دلیل تغییرات در نصب Ù�لت‌پک‌ها نوسازی شد" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Ù�هرست اصلی" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "هیچ برنامه‌ای پیدا نشد." Flatseal-2.4.1/po/flatseal.pot000066400000000000000000000304011520337174300162110ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "" #: src/models/devices.js:44 msgid "Input devices" msgstr "" #: src/models/devices.js:51 msgid "Virtualization" msgstr "" #: src/models/devices.js:58 msgid "Shared memory" msgstr "" #: src/models/devices.js:65 msgid "USB devices" msgstr "" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "" #: src/models/features.js:51 msgid "Bluetooth" msgstr "" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "" #: src/models/filesystems.js:37 msgid "All system files" msgstr "" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "" #: src/models/filesystems.js:58 msgid "All user files" msgstr "" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "" #: src/models/persistent.js:37 msgid "Files" msgstr "" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "" #: src/models/portals.js:118 msgid "Background" msgstr "" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "" #: src/models/portals.js:128 msgid "Notifications" msgstr "" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "" #: src/models/portals.js:138 msgid "Microphone" msgstr "" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "" #: src/models/portals.js:148 msgid "Speakers" msgstr "" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "" #: src/models/portals.js:158 msgid "Camera" msgstr "" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "" #: src/models/portals.js:168 msgid "Location" msgstr "" #: src/models/portals.js:170 msgid "Can access your location" msgstr "" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "" #: src/models/shared.js:39 msgid "Network" msgstr "" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "" #: src/models/sockets.js:93 msgid "Printing system" msgstr "" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "" #: src/models/variables.js:40 msgid "Variables" msgstr "" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr "" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "" #: src/widgets/window.js:99 msgid "_Undo" msgstr "" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "" Flatseal-2.4.1/po/fr.po000066400000000000000000000411671520337174300146540ustar00rootroot00000000000000# French translations for flatseal package. # Copyright (C) 2021 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Automatically generated, 2021. # mathieu , 2022. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2025-08-05 11:09+0200\n" "Last-Translator: Léane GRASSER \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.6\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Gérez les autorisations Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 #, fuzzy msgid "seal;sandbox;override;" msgstr "seal;bac à sable;sandbox;autorisations;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal est un utilitaire graphique qui vous permet d'examiner et de " "modifier les autorisations de vos applications Flatpak." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "La fenêtre principale de Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Les autorisations relatives aux systèmes de fichiers dans Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Les modifications globales dans Flatseal" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Dernier ID d'application sélectionné" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Inconnu" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Communique sur" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Possède" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Liste des noms connus sur le bus session" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Liste des noms connus sur le bus système" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Accélération GPU" #: src/models/devices.js:44 msgid "Input devices" msgstr "Périphériques d'entrée" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualisation" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Mémoire partagée" #: src/models/devices.js:65 msgid "USB devices" msgstr "Périphériques USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Tous les périphériques (par ex. webcam)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Liste des périphériques disponibles dans le bac à sable" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Appels système de développement (par ex. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programmes d'autres architectures" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Bus de données CAN" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Mémoire partagée de l'application" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Liste des fonctionnalités disponibles pour l'application" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Tous les fichiers système" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Toutes les bibliothèques, exécutables et données statiques du système" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Toutes les configurations système" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Tous les fichiers utilisateur" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "" "Liste des parties des systèmes de fichiers auxquelles l'application peut " "accéder" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Autres fichiers" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "par ex. ~/jeux:ro, xdg-pictures, etc." #: src/models/persistent.js:37 msgid "Files" msgstr "Fichiers" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "par ex. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "" "Liste des chemins relatifs au répertoire personnel créés dans le bac à sable" #: src/models/portals.js:118 msgid "Background" msgstr "Arrière-plan" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Peut s'exécuter en arrière-plan" #: src/models/portals.js:128 msgid "Notifications" msgstr "Notifications" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Peut envoyer des notifications" #: src/models/portals.js:138 msgid "Microphone" msgstr "Microphone" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Peut utiliser votre microphone" #: src/models/portals.js:148 msgid "Speakers" msgstr "Haut-parleurs" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Peut lire des sons sur vos haut-parleurs" #: src/models/portals.js:158 msgid "Camera" msgstr "Caméra" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Peut enregistrer des vidéos à l'aide de votre caméra" #: src/models/portals.js:168 msgid "Location" msgstr "Position" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Peut accéder à votre position" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Liste des ressources accordées sélectivement à l'application" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Non pris en charge par la version de Flatpak installée" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Requiert la version 2 ou ultérieur du magasin de permissions" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Les données de portail n'ont pas encore été configurées" #: src/models/shared.js:39 msgid "Network" msgstr "Réseau" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Communications entre processus (IPC)" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Liste des sous-systèmes partagés avec le système hôte" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "Système de fenêtrage X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Système de fenêtrage Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Système de fenêtrage X11 en solution de secours" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Serveur audio PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "Bus session D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "Bus système D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Agent Secure Shell" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Cartes à puce" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Système d'impression" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Répertoires de l'agent GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Hériter du socket Wayland" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Liste des sockets connus disponibles dans le bac à sable" #: src/models/variables.js:40 msgid "Variables" msgstr "Variables" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "par ex. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Liste des variables exportées vers l'application" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Version" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identifiant" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Dernière mise à jour" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Environnement d'exécution" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Cette option est invalide" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Afficher les détails" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Afficher l'application dans un gestionnaire de logiciels" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Aucun gestionnaire de logiciels trouvé" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Toutes les applications" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Modifications appliqués à toutes les applications Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Version de Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Version du portail" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Chemin d'accès aux modifications" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Aide" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Documentation" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "Raccourcis _clavier" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "À propos de _Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Modifié globalement" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Modifié par l'utilisateur" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "ce chemin absolu" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "ce chemin relatif au répertoire personnel" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "toutes les configurations système" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "toutes les bibliothèques, exécutables et données statiques du système" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "tous les fichiers système" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "tous les fichiers utilisateur" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "le répertoire Bureau" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "le répertoire Documents" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "le répertoire Téléchargements" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "le répertoire Musique" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "le répertoire Photos" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "le répertoire Public" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "le répertoire Vidéos" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "le répertoire Modèles" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "le répertoire de configuration" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "le répertoire du cache" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "le répertoire des données" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "le répertoire d'environnement d'exécution" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Peut lire : %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Peut modifier et lire : %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Peut créer, modifier et lire : %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Ne peut pas lire : %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Ne peut pas modifier ou lire : %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Ne peut pas créer, modifier ou lire : %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Annuler" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Les chemins par défaut ne peuvent pas être supprimés" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Réinitialiser" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Aucune modification effectuée à cette application" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Réinitialiser les autorisations de cette application" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", y compris les modifications non effectuées avec Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Général" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Afficher les mnémotechniques" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Afficher la documentation" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Afficher le menu" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Raccourcis clavier" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Quitter" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigation" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Se déplacer vers la gauche" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Se déplacer vers le haut" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Se déplacer vers la droite" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Se déplacer vers le bas" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Applications" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Rechercher" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Autorisations" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Activer/Désactiver" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Documentation" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Résultat suivant" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Résultat précédent" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Les autorisations ont été réinitialisées" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Annuler" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "" "Impossible de charger les modifications en raison d'un contenu incorrect" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Actualisé en raison de modifications dans les installations Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Menu principal" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Aucune application trouvée." Flatseal-2.4.1/po/he.po000066400000000000000000000417001520337174300146320ustar00rootroot00000000000000# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # # Yaron Shahrabani , 2022. msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2024-09-21 23:01+0300\n" "Last-Translator: Yaron Shahrabani \n" "Language-Team: Hebrew \n" "Language: he\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : n==2 ? 1 : n>10 && n%10==0 ? " "2 : 3);\n" "X-Generator: Poedit 3.4.2\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "ניהול הרש×�ות של Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "×�יטו×�;בידוד;×�רגז חול;מעקף;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "Flatseal הו×� כלי גרפי לסקירה ושינוי הרש×�ות של יישומי ×”â€�Flatpak שלך." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "החלון הר×�שי של Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal מציג הרש×�ות מערכת קבצי×�" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal מציג מעקפי×� כלליי×�" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "מזהה ×�פליקציה שנבחר ל×�חרונה" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "ל×� ידוע" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "מדבר ×¢×�" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "בעלי×� של" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "רשימות של שמות מוכרי×� ב×�פיק ההפעלה" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "רשימות של שמות מוכרי×� ב×�פיק המערכת" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "×”×�צת מעבד גרפי" #: src/models/devices.js:44 msgid "Input devices" msgstr "התקני קלט" #: src/models/devices.js:51 msgid "Virtualization" msgstr "וירטו×�ליזציה" #: src/models/devices.js:58 msgid "Shared memory" msgstr "זיכרון שיתופי" #: src/models/devices.js:65 msgid "USB devices" msgstr "התקני USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "כל ההתקני×� (למשל: מצלמה)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "רשימת ההתקני×� שזמיני×� ב×�רגז החול" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "קרי×�ות מערכת לפיתוח (למשל: ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "תוכניות מ×�רכיטקטורות ×�חרות" #: src/models/features.js:51 msgid "Bluetooth" msgstr "בלוטות׳" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "×�פיק רשת מקומית לבקר" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "זיכרון יישו×� שיתופי" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "רשימה של יכולות שזמינות ליישו×�" #: src/models/filesystems.js:37 msgid "All system files" msgstr "כל קובצי המערכת" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "כל ספריות המערכת, קובצי ההפעלה והנתוני×� הסטטיי×�" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "כל הגדרות המערכת" #: src/models/filesystems.js:58 msgid "All user files" msgstr "כל קובצי המשתמש" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "הצגת תת־סדרות של קובצי המערכות הזמינות ליישו×�" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "קבצי×� ×�חרי×�" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "למשל: ‎~/games:ro,â€� xdg-pictures,â€� etc" #: src/models/persistent.js:37 msgid "Files" msgstr "קבצי×�" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "למשל: thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "רשימת נתיבי×� ביחס לתיקיית הבית שנוצרו ב×�רגז החול" #: src/models/portals.js:118 msgid "Background" msgstr "רקע" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "יכול לרוץ ברקע" #: src/models/portals.js:128 msgid "Notifications" msgstr "התר×�ות" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "יכול לשלוח התר×�ות" #: src/models/portals.js:138 msgid "Microphone" msgstr "מיקרופון" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "יכול לה×�זין למיקרופון" #: src/models/portals.js:148 msgid "Speakers" msgstr "רמקולי×�" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "יכול להשמיע צלילי×� דרך הרמקולי×�" #: src/models/portals.js:158 msgid "Camera" msgstr "מצלמה" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "יכול להקליט סרטוני×� ב×�מצעות המצלמה שלך" #: src/models/portals.js:168 msgid "Location" msgstr "מיקו×�" #: src/models/portals.js:170 msgid "Can access your location" msgstr "יכול לגשת למיקו×� שלך" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "רשימה של מש×�בי×� ש×�ושרו ב×�ופן יחידני ליישו×�" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "ל×� נתמך על ידי הגרסה המותקנת של Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "דורש ×�חסון הרש×�ות בגרסה 2 ומעלה" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "נתוני שער הגישה ל×� הוקמו עדיין" #: src/models/shared.js:39 msgid "Network" msgstr "רשת" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "תקשורת בין תהליכי×�" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "רשימה של תת־מערכות שמשותפות ×¢×� המערכת המ×�רחת" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "מערכת חלונ×�ית X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "מערכת חלונ×�ית Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "נסיגה למערכת חלונ×�ית X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "שרת שמע PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "×�פיק הפעלה ב־D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "×�פיק מערכת ב־D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "סוכן מעטפת מ×�ובטחת (SSH)" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "כרטיסי×� חכמי×�" #: src/models/sockets.js:93 msgid "Printing system" msgstr "מערכת הדפסה" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "תיקיות GPG-Agent" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "ירושת שקע של Wayland" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "רשימה של שקעי×� מוכרי×� שזמיני×� ב×�רגז החול" #: src/models/variables.js:40 msgid "Variables" msgstr "משתני×�" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "למשל: GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "רשימת המשתני×� שייוצ×�ו ליישו×�" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e ב%B, %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "גרסה" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "מזהה" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "עדכון ×�חרון" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "סביבת הרצה" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "×–×�ת ×�×™× ×” ×�פשרות תקנית" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "×”_צגת פרטי×�" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "הצגת היישו×� במנהל התוכנות" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "ל×� נמצ×� מנהל תוכנות" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "כל היישומי×�" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "שינויי×� שחלי×� על כל גרס×�ות ×”Ö¾Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "גרסת Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "גרסת Portal" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "מחליף נתיב" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "×¢_זרה" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_תיעוד" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_קיצורי מקלדת" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_על Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "התחלף כללית" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "התחלף על ידי המשתמש" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "נתיב מוחלט ×–×”" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "נתיב ×–×” ביחס לתיקיית הבית" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "כל הגדרות המערכת" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "כל ספריות המערכת, קובצי ההפעלה והנתוני×� הסטטיי×�" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "כל קובצי המערכת" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "כל קובצי המשתמש" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "תיקיית שולחן העבודה" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "תיקיית המסמכי×�" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "תיקיית ההורדות" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "תיקיית המוזיקה" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "תיקיית התמונות" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "התיקייה הציבורית" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "תיקיית הסרטוני×�" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "תיקיית התבניות" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "תיקיית ההגדרות" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "תיקיית המטמון" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "תיקיית הנתוני×�" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "תיקיית סביבת ההרצה" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "×�פשר לקרו×�: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "×�פשר לערוך ולקרו×�: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "×�פשר ליצור, לערוך ולקרו×�: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "×�×™ ×�פשר לקרו×�: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "×�×™ ×�פשר לערוך ×�ו לקרו×�: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "×�×™ ×�פשר ליצור, לערוך ×�ו לקרו×�: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "ביטול הגדרה" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "×�×™ ×�פשר להסיר ×�ת נתיבי ברירת המחדל" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_×�יפוס" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "ל×� בוצעו שינויי×� ליישו×� ×”×–×”" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "×�יפוס הרש×�ות היישו×� ×”×–×”" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", כולל שינויי×� של×� בוצעו דרך Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "כללי" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "הצגת עזרי זיכרון" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "הצגת תיעוד" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "הצגת תפריט" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "קיצורי מקלדת" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "יצי×�×”" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "ניווט" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "×”×–×–×” שמ×�לה" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "×”×–×–×” למעלה" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "×”×–×–×” ימינה" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "×”×–×–×” למטה" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "יישומי×�" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "×�יתור" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "הרש×�ות" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "בורר" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "תיעוד" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "×�יתור הב×�" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "×�יתור הקוד×�" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "ההרש×�ות ×�ופסו" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_ביטול" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "ל×� ניתן לטעון שינויי×� עקב תוכן שגוי" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "רענן עקב שינויי×� בהתקנות Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "תפריט ר×�שי" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "ל×� נמצ×�ו יישומי×�." Flatseal-2.4.1/po/hi.po000066400000000000000000000504361520337174300146440ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # FIRST AUTHOR , YEAR. # Scrambled777 , 2024. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2024-05-06 19:26+0530\n" "Last-Translator: Scrambled777 \n" "Language-Team: Hindi\n" "Language: hi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Gtranslator 46.1\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Flatpak अनà¥�मतियां पà¥�रबंधित करें" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "सील;सैंडबॉकà¥�स;अधà¥�यारोहण;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal आपके Flatpak अनà¥�पà¥�रयोगों की अनà¥�मतियों की समीकà¥�षा और संशोधन करने के लिà¤� " "चितà¥�रातà¥�मक उपयोगिता है।" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Flatseal की मà¥�खà¥�य खिड़की" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal फाइलसिसà¥�टम अनà¥�मतियां दिखाते हà¥�à¤�" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal वैशà¥�विक अधà¥�यारोहण दिखाते हà¥�à¤�" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "अनà¥�पà¥�रयोग ID जिसे अंतिम बार चà¥�ना गया था" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "अजà¥�ञात" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "वारà¥�ता" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "मालिक" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "सतà¥�र बस में जाने-माने नामों की सूची" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "सिसà¥�टम बस पर जाने-माने नामों की सूची" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU तà¥�वरण" #: src/models/devices.js:44 msgid "Input devices" msgstr "आगत उपकरण" #: src/models/devices.js:51 msgid "Virtualization" msgstr "आभासीकरण" #: src/models/devices.js:58 msgid "Shared memory" msgstr "साà¤�ा मेमोरी" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB डिवाइस" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "सभी उपकरण (उदा. वेबकैम)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "सैंडबॉकà¥�स में उपलबà¥�ध उपकरणों की सूची" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "विकास syscalls (उदा. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "अनà¥�य आरà¥�किटेकà¥�चर से पà¥�रोगà¥�राम" #: src/models/features.js:51 msgid "Bluetooth" msgstr "बà¥�लूटूथ" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "नियंतà¥�रक कà¥�षेतà¥�र नेटवरà¥�क बस" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "अनà¥�पà¥�रयोग दà¥�वारा साà¤�ा मेमोरी" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "अनà¥�पà¥�रयोग के लिà¤� उपलबà¥�ध सà¥�विधाओं की सूची" #: src/models/filesystems.js:37 msgid "All system files" msgstr "सभी सिसà¥�टम फाइलें" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "सभी सिसà¥�टम लाइबà¥�रेरी, निषà¥�पादनयोगà¥�य और सà¥�थिर डेटा" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "सभी सिसà¥�टम विनà¥�यास" #: src/models/filesystems.js:58 msgid "All user files" msgstr "सभी उपयोकà¥�ता फाइलें" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "अनà¥�पà¥�रयोग के लिà¤� उपलबà¥�ध फाइलसिसà¥�टम उपसमà¥�चà¥�चय की सूची" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "अनà¥�य फाइलें" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "उदा. ~/games:ro, xdg-pictures, आदि" #: src/models/persistent.js:37 msgid "Files" msgstr "फाइलें" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "उदा. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "सैंडबॉकà¥�स में बनाà¤� गà¤� होमनिरà¥�देशिका-सापेकà¥�ष पथों की सूची" #: src/models/portals.js:118 msgid "Background" msgstr "पृषà¥�ठभूमि" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "पृषà¥�ठभूमि में चल सकता है" #: src/models/portals.js:128 msgid "Notifications" msgstr "सूचनाà¤�ं" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "सूचनाà¤�ं भेज सकता है" #: src/models/portals.js:138 msgid "Microphone" msgstr "माइकà¥�रोफोन" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "आपके माइकà¥�रोफोन को सà¥�न सकता है" #: src/models/portals.js:148 msgid "Speakers" msgstr "सà¥�पीकर" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "आपके सà¥�पीकर पर धà¥�वनियां बजा सकता है" #: src/models/portals.js:158 msgid "Camera" msgstr "कैमरा" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "अपने कैमरे से वीडियो रिकॉरà¥�ड कर सकता है" #: src/models/portals.js:168 msgid "Location" msgstr "लोकेशन" #: src/models/portals.js:170 msgid "Can access your location" msgstr "आपकी लोकेशन तक पहà¥�ंच सकता है" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "अनà¥�पà¥�रयोग को चà¥�निंदा रूप से दिà¤� गà¤� संसाधनों की सूची" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Flatpak के सà¥�थापित संसà¥�करण दà¥�वारा समरà¥�थित नहीं है" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "अनà¥�मति सà¥�टोर संसà¥�करण 2 या नà¤� की आवशà¥�यकता है" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "पोरà¥�टल डेटा अभी तक सà¥�थापित नहीं किया गया है" #: src/models/shared.js:39 msgid "Network" msgstr "नेटवरà¥�क" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "अंतर-पà¥�रकà¥�रिया संचार" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "होसà¥�ट सिसà¥�टम के साथ साà¤�ा की गई उपपà¥�रणालियों की सूची" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11 विंडोइंग सिसà¥�टम" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland विंडोइंग सिसà¥�टम" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "X11 विंडोइंग सिसà¥�टम पर वापसी" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio धà¥�वनि सरà¥�वर" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus सतà¥�र बस" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus सिसà¥�टम बस" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "सà¥�रकà¥�षित शैल à¤�जेंट" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "सà¥�मारà¥�ट कारà¥�ड" #: src/models/sockets.js:93 msgid "Printing system" msgstr "मà¥�दà¥�रण पà¥�रणाली" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-Agent निरà¥�देशिकाà¤�ं" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "सैंडबॉकà¥�स में उपलबà¥�ध जाने-माने सॉकेट की सूची" #: src/models/variables.js:40 msgid "Variables" msgstr "चर" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "उदा. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "अनà¥�पà¥�रयोग में निरà¥�यात किà¤� गà¤� चरों की सूची" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%B %e, %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "संसà¥�करण" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "पहचानकरà¥�ता" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "अंतिम अदà¥�यतित" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "रनटाइम" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "यह कोई मानà¥�य विकलà¥�प नहीं है" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "विवरण दिखाà¤�ं (_S)" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "सॉफà¥�टवेयर पà¥�रबंधक में अनà¥�पà¥�रयोग दिखाà¤�ं" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "कोई सॉफà¥�टवेयर पà¥�रबंधक नहीं मिला" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "सभी अनà¥�पà¥�रयोग" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "परिवरà¥�तन जो सभी Flatpak अनà¥�पà¥�रयोगों पर लागू होते हैं" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak संसà¥�करण" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "पोरà¥�टल संसà¥�करण" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "बदलाव पथ" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "सहायता (_H)" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "दसà¥�तावेज़ीकरण (_D)" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "कीबोरà¥�ड शॉरà¥�टकट (_K)" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "Flatseal के बारे में (_A)" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "वैशà¥�विक सà¥�तर पर बदला गया" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "उपयोकà¥�ता दà¥�वारा बदला गया" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "यह निरपेकà¥�ष पथ" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "होम निरà¥�देशिका से संबंधित यह पथ" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "सभी सिसà¥�टम विनà¥�यास" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "सभी सिसà¥�टम लाइबà¥�रेरी, निषà¥�पादनयोगà¥�य और सà¥�थिर डेटा" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "सभी सिसà¥�टम फाइलें" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "सभी उपयोकà¥�ता फाइलें" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "डेसà¥�कटॉप निरà¥�देशिका" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "दसà¥�तावेज़ निरà¥�देशिका" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "डाउनलोड निरà¥�देशिका" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "संगीत निरà¥�देशिका" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "चितà¥�र निरà¥�देशिका" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "सारà¥�वजनिक निरà¥�देशिका" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "वीडियो निरà¥�देशिका" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "खाके निरà¥�देशिका" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "विनà¥�यास निरà¥�देशिका" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "कैशे निरà¥�देशिका" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "डेटा निरà¥�देशिका" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "रनटाइम निरà¥�देशिका" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "पढ़ सकते हैं: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "संशोधित और पढ़ सकते हैं: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "बना, संशोधित और पढ़ सकते हैं: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "पढ़ नहीं सकते: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "संशोधित या पढ़ नहीं सकते: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "बना, संशोधित या पढ़ नहीं सकते: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "अनिरà¥�धारित" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "तयशà¥�दा पथ नहीं हटाà¤� जा सकते" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "रीसेट (_R)" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "इस अनà¥�पà¥�रयोग में कोई बदलाव नहीं किया गया है" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "इस अनà¥�पà¥�रयोग की अनà¥�मतियां रीसेट करें" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", Flatseal के साथ नहीं किà¤� गà¤� परिवरà¥�तन सहित" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "सामानà¥�य" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "निमोनिकà¥�स दिखाà¤�ं" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "दसà¥�तावेज़ दिखाà¤�ं" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "मेनू दिखाà¤�ं" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "कीबोरà¥�ड शॉरà¥�टकट" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "छोड़ें" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "नेविगेशन" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "बाà¤�ं जाà¤�ं" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "ऊपर जाà¤�ं" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "दाà¤�ं जाà¤�ं" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "नीचे जाà¤�ं" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "अनà¥�पà¥�रयोग" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "खोजें" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "अनà¥�मतियां" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "टॉगल" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "दसà¥�तावेज़ीकरण" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "अगला खोजें" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "पिछला खोजें" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "अनà¥�मतियां रीसेट कर दी गई हैं" #: src/widgets/window.js:99 msgid "_Undo" msgstr "पूरà¥�ववत करें (_U)" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "गलत सामगà¥�री के कारण अधà¥�यारोहण लोड नहीं किया जा सकता" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Flatpak संसà¥�थापनों में परिवरà¥�तन के कारण ताजा किया गया" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "मà¥�खà¥�य मेनू" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "कोई अनà¥�पà¥�रयोग नहीं मिला।" Flatseal-2.4.1/po/hu.po000066400000000000000000000407071520337174300146600ustar00rootroot00000000000000# Hungarian translations for flatseal package. # Copyright (C) 2020 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Automatically generated, 2020. # Dévényi Benedek , 2024. # grx005 , 2025. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2025-09-22 20:47+0200\n" "Last-Translator: grx005 \n" "Language-Team: Hungarian\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Gtranslator 48.0\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "A Flatpak engedélykezelÅ‘je" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "tömítés;homokozó;felülírás;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "A Flatseal egy grafikus segédprogram, amellyel áttekintheti és módosíthatja " "a Flatpak-alkalmazások engedélyeit." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "A Flatseal fÅ‘ablaka" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Fájlrendszer-engedélyek a Flatsealben" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Globális felülírások a Flatsealben" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Utoljára kiválasztott alkalmazásazonosító" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Ismeretlen" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Beszélget" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Tulajdonol" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Az alkalmazás által elért közismert nevek a munkamenet buszon" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Az alkalmazás által elért közismert nevek a rendszer buszon" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Hardveres gyorsítás" #: src/models/devices.js:44 msgid "Input devices" msgstr "Beviteli eszközök" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualizálás" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Megosztott memória" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB-eszközök" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Minden eszköz (pl. webkamera)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "A homokozóban elérhetÅ‘ eszközök" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Fejlesztési rendszerhívások (pl. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Más architektúrák programjai" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "CAN (Controller Area Network) -busz" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Alkalmazási megosztott memória" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Az alkalmazás számára elérhetÅ‘ szolgáltatások" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Minden rendszerfájl" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Minden rendszerkönyvtár, végrehajtható fájl és statikus adat" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Minden rendszerkonfiguráció" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Minden felhasználói fájl" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Az alkalmazás számára elérhetÅ‘ fájlrendszer-részletek" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Egyéb fájlok" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "pl. ~/játékok:ro, xdg-pictures, stb." #: src/models/persistent.js:37 msgid "Files" msgstr "Fájlok" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "pl. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "" "A homokozóban létrehozott, a felhasználói mappához relatív elérési utak" #: src/models/portals.js:118 msgid "Background" msgstr "Háttérmunka" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Futhat a háttérben" #: src/models/portals.js:128 msgid "Notifications" msgstr "Értesítések" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Értesítéseket küldhet" #: src/models/portals.js:138 msgid "Microphone" msgstr "Mikrofon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Használhatja a mikrofont" #: src/models/portals.js:148 msgid "Speakers" msgstr "Hangszórók" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Hangot játszhat le a hangszórókon" #: src/models/portals.js:158 msgid "Camera" msgstr "Kamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Videót rögzíthet a kamerával" #: src/models/portals.js:168 msgid "Location" msgstr "Hely" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Hozzáférhet az Ön tartózkodási helyéhez" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Az alkalmazásnak kifejezetten megadott engedélyek" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "A Flatpak telepített verziója nem támogatja" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Engedélytároló 2. vagy újabb verziója szükséges" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "A portál adatai még nem lettek beállítva" #: src/models/shared.js:39 msgid "Network" msgstr "Hálózat" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Folyamatok közötti kommunikáció" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "A gazdarendszerrel megosztott alrendszerek" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11-ablakrendszer" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland-ablakrendszer" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Tartalék X11-ablakrendszer" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio-hangkiszolgáló" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus munkamenet busz" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus rendszer busz" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Secure Shell ügynök" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Intelligens kártyák" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Nyomtatási rendszer" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-ügynöki (gpg-agent) könyvtárak" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "A Wayland-szoftvercsatorna örökölése" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "A homokozóban elérhetÅ‘ közismert szoftvercsatornák" #: src/models/variables.js:40 msgid "Variables" msgstr "Változók" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "pl. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Az alkalmazás számára exportált változók" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%Y. %B %e." #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Verzió" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Azonosító" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Utolsó frissítés" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Futtatókörnyezet" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Érvénytelen beállítás" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "Alkalmazás _részletei" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Az alkalmazás megjelenítése a szoftverkezelÅ‘ben" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Nem található szoftverkezelÅ‘" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Minden alkalmazás" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Az összes Flatpak alkalmazásra érvényes módosítások" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak-verzió" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Portál-verzió" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "A módosítások elérési útja" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Súgó" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Dokumentáció" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Gyorsbillentyűk" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "A Flatseal _névjegye" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Globálisan módosítva" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "A felhasználó által módosítva" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "ezt az abszolút elérési utat" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "ezt a felhasználói mappához relatív elérési utat" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "az összes rendszerkonfigurációt" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "az összes rendszerkönyvtárat, végrehajtható fájlt és statikus adatot" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "az összes rendszerfájlt" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "az összes felhasználói fájlt" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "az asztali könyvtárat" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "a dokumentumok könyvtárát" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "a letöltési könyvtárat" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "a zenei könyvtárat" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "a képek könyvtárát" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "a nyilvános könyvtárat" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "a videók könyvtárát" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "a sablonok könyvtárát" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "a konfigurációs könyvtárat" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "a gyorsítótár könyvtárat" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "az adatkönyvtárat" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "a futtatókörnyezet könyvtárát" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Olvashatja: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Olvashatja és módosíthatja: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Olvashatja, módosíthatja és létrehozhatja: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Nem olvashatja: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Nem olvashatja és módosíthatja: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Nem olvashatja, módosíthatja vagy hozhatja létre: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Visszaállítás" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Az alapértelmezett elérési útvonalakat nem lehet eltávolítani" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "Alap_helyzet" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Az alkalmazásban nem történt változás" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Az alkalmazás engedélyeinek alaphelyzetbe állítása" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr "" ", beleértve a nem a Flatseal használatával végrehajtott változtatásokat" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Ã�ltalános" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "EmlékeztetÅ‘k megjelenítése" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Dokumentáció megjelenítése" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Menü megnyitása" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Gyorsbillentyűk" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Kilépés" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigáció" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Ugrás balra" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Ugrás felfelé" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Ugrás jobbra" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Ugrás lefelé" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Alkalmazások" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Keresés" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Engedélyek" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Ã�tkapcsolás" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Dokumentáció" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "KövetkezÅ‘ keresése" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "ElÅ‘zÅ‘ keresése" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Az engedélyek vissza lettek állítva" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Visszavonás" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Helytelen tartalom miatt a módosítások nem tölthetÅ‘k be" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Frissítve a Flatpak telepítések változásai miatt" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "FÅ‘menü" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Nem található alkalmazás." Flatseal-2.4.1/po/id.po000066400000000000000000000370761520337174300146450ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Kukuh Syafaat , 2020-2023. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2023-09-23 16:22+0700\n" "Last-Translator: Kukuh Syafaat \n" "Language-Team: \n" "Language: id\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural= n!=1;\n" "X-Generator: Poedit 3.3.1\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Pengelola izin untuk Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 #, fuzzy msgid "seal;sandbox;override;" msgstr "seal;sandbox;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal adalah utilitas grafis untuk meninjau dan memodifikasi izin dasar " "dari aplikasi Flatpak Anda." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "ID Aplikasi yang terakhir dipilih" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Tidak dikenal" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Pembicaraan" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Memiliki" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Daftar nama terkenal di bus sesi" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Daftar nama terkenal di bus sistem" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Akselerasi GPU" #: src/models/devices.js:44 msgid "Input devices" msgstr "Perangkat masukan" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualisasi" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Berbagi memori" #: src/models/devices.js:65 msgid "USB devices" msgstr "Perangkat USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Semua perangkat (mis. kamera web)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Daftar perangkat yang tersedia di sandbox" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Syscalls pengembangan (mis. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Program dari arsitektur lain" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Bus Controller Area Network" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Memori Bersama Aplikasi" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Daftar fitur yang tersedia untuk aplikasi" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Semua berkas sistem" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Semua pustaka sistem, data yang dapat dieksekusi, dan data statis" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Semua konfigurasi sistem" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Semua berkas pengguna" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Daftar subset sistem berkas yang tersedia untuk aplikasi" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Berkas lainnya" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "misalnya ~/games:ro, xdg-pictures, dll" #: src/models/persistent.js:37 msgid "Files" msgstr "Berkas" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "misalnya .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Daftar path homedir relatif yang dibuat di sandbox" #: src/models/portals.js:118 msgid "Background" msgstr "Latar belakang" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Dapat berjalan di latar belakang" #: src/models/portals.js:128 msgid "Notifications" msgstr "Notifikasi" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Dapat mengirim notifikasi" #: src/models/portals.js:138 msgid "Microphone" msgstr "Mikrofon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Dapat mendengarkan mikrofon Anda" #: src/models/portals.js:148 msgid "Speakers" msgstr "Speaker" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Dapat memutar suara ke speaker Anda" #: src/models/portals.js:158 msgid "Camera" msgstr "Kamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Dapat merekam video dengan kamera Anda" #: src/models/portals.js:168 msgid "Location" msgstr "Lokasi" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Dapat mengakses lokasi Anda" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Daftar sumber daya yang diberikan secara selektif ke aplikasi" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Tidak didukung oleh versi Flatpak yang dipasang" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Membutuhkan izin penyimpanan versi 2 atau yang lebih baru" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Data portal belum disiapkan" #: src/models/shared.js:39 msgid "Network" msgstr "Jaringan" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Komunikasi antar proses" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Daftar subsistem yang berbagi dengan sistem host" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "Sistem jendela X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Sistem jendela Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Fallback ke sistem jendela X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Peladen suara PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "Bus sesi D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "Bus sistem D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Agen Secure Shell" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Kartu pintar (Smart card)" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Sistem pencetakan" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Direktori Agen GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Daftar soket yang tersedia di sandbox" #: src/models/variables.js:40 msgid "Variables" msgstr "Variabel" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "misalnya GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Daftar variabel yang diekspor ke aplikasi" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %b %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Versi" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Pengidentifikasi" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Terakhir Dimutakhirkan" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Runtime" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Ini bukan opsi yang valid" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Tampilkan Detail" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Tampilkan aplikasi dalam manajer perangkat lunak" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Tidak ditemukan manajer perangkat lunak" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Semua Aplikasi" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Perubahan yang berlaku untuk semua aplikasi Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Versi Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Versi Portal" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Perubahan Path" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Bantuan" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Dokumentasi" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "Pintasan Papan Ti_k" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "Tent_ang Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Berubah secara global" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Diubah oleh pengguna" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "path absolut ini" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "path ini relatif terhadap direktori rumah" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "semua konfigurasi sistem" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "semua pustaka sistem, data yang dapat dieksekusi, dan data statis" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "semua berkas sistem" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "semua berkas pengguna" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "direktori destop" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "direktori dokumen" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "direktori unduhan" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "direktori musik" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "direktori gambar" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "direktori publik" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "direktori video" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "direktori templat" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "direktori konfigurasi" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "direktori singgahan" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "direktori data" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "direktori runtime" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Dapat membaca: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Dapat memodifikasi dan membaca: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Dapat membuat, memodifikasi dan membaca: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Tidak bisa membaca: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Tidak dapat memodifikasi atau membaca: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Tidak dapat membuat, memodifikasi, atau membaca: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Tidak Diatur" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Path bawaan tidak dapat dihapus" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "Atu_r Ulang" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Tidak ada perubahan pada aplikasi ini" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Atur ulang izin aplikasi ini" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", termasuk perubahan yang tidak dilakukan dengan Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Umum" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Tampilkan mnemonik" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Tampilkan dokumentasi" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Tampilkan menu" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Pintasan Papan Tik" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Keluar" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigasi" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Pindah ke kiri" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Pindah ke atas" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Pindah ke kanan" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Pindah ke bawah" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Aplikasi" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Cari" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Izin" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Jungkitkan" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Dokumentasi" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Cari berikutnya" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Cari sebelumnya" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Izin telah diatur ulang" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Tak jadi" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Tidak dapat memuat penggantian karena konten salah" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Disegarkan karena perubahan dalam pemasangan Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Menu Utama" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Tidak ada aplikasi yang ditemukan." Flatseal-2.4.1/po/it.po000066400000000000000000000400451520337174300146530ustar00rootroot00000000000000# Italian translations for flatseal package # Traduzioni italiane per il pacchetto flatseal.. # Copyright (C) 2020, 2021, 2023 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Milo Casagrande , 2020, 2021, 2023. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2023-09-14 10:56+0200\n" "Last-Translator: Milo Casagrande \n" "Language-Team: Italian \n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.1.1\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Un gestore di permessi per Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 #, fuzzy msgid "seal;sandbox;override;" msgstr "permessi;seal;sandbox;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal è uno strumento grafico per visualizzare e modificare i permessi di " "base delle applicazioni Flatpak." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "ID dell'applicazione selezionata per ultima" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Sconosciuto" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Parla a" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Possiede" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Elenco di nomi noti sul bus di sessione" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Elenco di nomi noti sul bus di sistema" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Accelerazione tramite GPU" #: src/models/devices.js:44 msgid "Input devices" msgstr "Dispositivi di input" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualizzazione" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Memoria condivisa" #: src/models/devices.js:65 msgid "USB devices" msgstr "Dispositivi USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Tutti i dispositivi (per es. fotocamera)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Elenco dei dispositivi disponibili nella sandbox" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Chiamate di sistema di sviluppo (per es. Ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programmi da altre architetture" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Bus di rete dell'area controller" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Memoria condivisa per applicazione" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Elenco delle funzionalità disponibili per l'applicazione" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Tutti i file di sistema" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Tutte le librerie di sistema, eseguibili e dati statici" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Tutte le configurazioni di sistema" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Tutti i file utente" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Elenco dei sottoinsiemi di filesystem disponibili per l'applicazione" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Altri file" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "per esempio, ~/giochi:ro, xdg-pictures, ecc." #: src/models/persistent.js:37 msgid "Files" msgstr "File" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "per esempio .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Elenco di percorsi relativi alla home creati nella sandbox" #: src/models/portals.js:118 msgid "Background" msgstr "Background" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Può essere eseguito in background" #: src/models/portals.js:128 msgid "Notifications" msgstr "Notifiche" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Può inviare notifiche" #: src/models/portals.js:138 msgid "Microphone" msgstr "Microfono" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Può ascoltare il microfono" #: src/models/portals.js:148 msgid "Speakers" msgstr "Altoparlanti" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Può riprodurre suoni dagli altoparlanti" #: src/models/portals.js:158 msgid "Camera" msgstr "Fotocamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Può registrare video con la fotocamera" #: src/models/portals.js:168 msgid "Location" msgstr "Posizione" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Può accedere alla propria posizione" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Elenco di risorse concesse selettivamente all'applicazione" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Non supportato dalla versione installata di Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Richiede la versione 2 o successiva dell'archivio delle autorizzazioni" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "I dati del portale non sono stati ancora impostati" #: src/models/shared.js:39 msgid "Network" msgstr "Rete" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Comunicazioni intra-processi" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Elenco dei sottosistemi condivisi con il sistema" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "Sistema X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Sistema Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Fallback al sistema X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Server audio PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "Bus di sessione D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "Bus di sistema D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Agente Secure Shell" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Smart card" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Sistema di stampa" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Directory degli agenti GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Elenco di socket noti disponibili nella sandbox" #: src/models/variables.js:40 msgid "Variables" msgstr "Variabili" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "per esempio GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Elenco di variabili esportate nell'applicazione" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Versione" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identificativo" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Ultimo aggiornamento" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Runtime" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Questa non è un'opzione valida" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Mostra dettagli" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Mostra applicazione in un gestore software" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Nessun gestore software trovato" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Tutte le Applicazioni" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Modifiche che si applicano a tutte le applicazioni Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Versione Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Versione Portale" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Modifiche" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Aiuto" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Documentazione" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Tasti rapidi" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_Informazioni su Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Cambiato a livello globale" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Modificato dall'utente" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "questo percorso assoluto" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "questo percorso relativo alla home directory" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "tutte le configurazioni di sistema" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "tutte le librerie di sistema, eseguibili e dati statici" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "tutti i file di sistema" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "tutti i file utente" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "la directory desktop" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "la directory dei documenti" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "la directory degli scaricamenti" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "la directory della musica" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "la directory delle immagini" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "la directory pubblica" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "la directory dei video" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "la directory dei modelli" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "la directory di configurazione" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "la directory della cache" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "la directory dei dati" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "la directory di runtime" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Può leggere: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Può modificare e leggere: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Può creare, modificare e leggere: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Non può leggere: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Non può modificare o leggere: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Non può creare, modificare o leggere: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Rimuovere" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "I percorsi predefiniti non possono essere rimossi" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Ripristina" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Nessuna modifica apportata a questa applicazione" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Ripristina i permessi di questa applicazione" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", comprese le modifiche non effettuate con Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Generale" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Mostra acceleratori" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Mostra documentazione" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Mostra menù" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Scorciatoie da tastiera" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Esce" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigazione" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Sposta a sinistra" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Sposta in alto" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Sposta a destra" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Sposta in basso" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Applicazioni" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Trova" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Permessi" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Attiva/Disattiva" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Documentazione" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Trova successivo" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Trova precedente" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "I permessi sono stati reimpostati" #: src/widgets/window.js:99 msgid "_Undo" msgstr "A_nnulla" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Impossibile caricare le sostituzioni a causa di contenuti errati" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Aggiornato a causa di modifiche nelle installazioni Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Menù principale" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Non è stata trovata alcuna applicazione." Flatseal-2.4.1/po/ja.po000066400000000000000000000424161520337174300146350ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2025-11-24 06:03+0900\n" "Last-Translator: \n" "Language-Team: \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 3.8\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Flatpak ã�®æ¨©é™�を管ç�†" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal ã�¯ Flatpak アプリケーションã�®æ¨©é™�を確èª�ã€�変更ã�§ã��るグラフィカルイン" "ターフェースã�§ã�™ã€‚" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Flatseal ã�®ãƒ¡ã‚¤ãƒ³ç”»é�¢" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal ã�¯ãƒ•ァイルシステムã�®æ¨©é™�を表示中ã�§ã�™" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal ã�¯ã‚°ãƒ­ãƒ¼ãƒ�ルã�ªã‚ªãƒ¼ãƒ�ーライドを表示中ã�§ã�™" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "最後ã�«é�¸æŠžã�—ã�Ÿã‚¢ãƒ—リケーション ID" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "ä¸�明" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "通信" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "所有" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "セッションãƒ�スã�«ã�Šã�‘るウェルノウンã�ªå��å‰�ã�®ãƒªã‚¹ãƒˆ" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "システムãƒ�スã�«ã�Šã�‘るウェルノウンã�ªå��å‰�ã�®ãƒªã‚¹ãƒˆ" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU 支æ�´" #: src/models/devices.js:44 msgid "Input devices" msgstr "入力デãƒ�イス" #: src/models/devices.js:51 msgid "Virtualization" msgstr "仮想化" #: src/models/devices.js:58 msgid "Shared memory" msgstr "共有メモリ" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB デãƒ�イス" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "å…¨ã�¦ã�®ãƒ‡ãƒ�イス (例: Webカメラ)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "サンドボックス内ã�§åˆ©ç”¨å�¯èƒ½ã�ªãƒ‡ãƒ�イスã�®ãƒªã‚¹ãƒˆ" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "開発用システムコール (例: ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "ç•°ã�ªã‚‹ã‚¢ãƒ¼ã‚­ãƒ†ã‚¯ãƒ�ャã�®ãƒ—ログラム" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "コントローラーエリアãƒ�ットワーク(CAN) ãƒ�ス" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "アプリケーション共有メモリ" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "アプリケーションã�§åˆ©ç”¨å�¯èƒ½ã�ªè¦�ç´ ã�®ãƒªã‚¹ãƒˆ" #: src/models/filesystems.js:37 msgid "All system files" msgstr "å…¨ã�¦ã�®ã‚·ã‚¹ãƒ†ãƒ ãƒ•ァイル" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "å…¨ã�¦ã�®ã‚·ã‚¹ãƒ†ãƒ ãƒ©ã‚¤ãƒ–ラリã€�実行å�¯èƒ½ãƒ•ァイルã�¨é�™çš„データ" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "å…¨ã�¦ã�®ã‚·ã‚¹ãƒ†ãƒ è¨­å®š" #: src/models/filesystems.js:58 msgid "All user files" msgstr "å…¨ã�¦ã�®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ•ァイル" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "アプリケーションã�Œåˆ©ç”¨å�¯èƒ½ã�ªãƒ•ァイルシステムã�®ç¯„囲ã�®ãƒªã‚¹ãƒˆ" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "ã��ã�®ä»–ã�®ãƒ•ァイル" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "例: ~/games:ro, xdg-pictures ã�ªã�©" #: src/models/persistent.js:37 msgid "Files" msgstr "ファイル" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "例: .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "サンドボックス内ã�«ä½œæˆ�ã�•れるホームディレクトリã�«ç›¸å¯¾çš„ã�ªãƒ‘スã�®ãƒªã‚¹ãƒˆ" #: src/models/portals.js:118 msgid "Background" msgstr "ãƒ�ックグラウンド" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "ãƒ�ックグラウンドã�§å‹•作ã�§ã��ã‚‹ã�‹ã�©ã�†ã�‹" #: src/models/portals.js:128 msgid "Notifications" msgstr "通知" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "通知をé€�ã‚‹ã�“ã�¨ã�Œã�§ã��ã‚‹ã�‹ã�©ã�†ã�‹" #: src/models/portals.js:138 msgid "Microphone" msgstr "マイク" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "マイクを使用ã�§ã��ã‚‹ã�‹ã�©ã�†ã�‹" #: src/models/portals.js:148 msgid "Speakers" msgstr "スピーカー" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "スピーカーã�§éŸ³ã‚’å†�生ã�§ç”Ÿã��ã‚‹ã�‹ã�©ã�†ã�‹" #: src/models/portals.js:158 msgid "Camera" msgstr "カメラ" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "カメラã�®æ˜ åƒ�を録画ã�§ã��ã‚‹ã�‹ã�©ã�†ã�‹" #: src/models/portals.js:168 msgid "Location" msgstr "ä½�置情報" #: src/models/portals.js:170 msgid "Can access your location" msgstr "ä½�置情報ã�«ã‚¢ã‚¯ã‚»ã‚¹ã�§ã��ã‚‹ã�‹ã�©ã�†ã�‹" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "ã�“ã�®ã‚¢ãƒ—リケーションã�Œä½¿ç”¨ã‚’許å�¯ã�•れã�¦ã�„るリソースã�®ãƒªã‚¹ãƒˆ" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "インストールã�•れã�¦ã�„ã‚‹ Flatpak ã�®ãƒ�ージョンã�§ã�¯ã‚µãƒ�ートã�•れã�¦ã�„ã�¾ã�›ã‚“" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "権é™�ストアãƒ�ージョン 2 以上ã�Œå¿…è¦�ã�§ã�™" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Portal ã�®ãƒ‡ãƒ¼ã‚¿ã�Œã�¾ã�Ÿã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã�•れã�¦ã�„ã�¾ã�›ã‚“" #: src/models/shared.js:39 msgid "Network" msgstr "ãƒ�ットワーク" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "プロセス間通信" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "ホストã�®ã‚·ã‚¹ãƒ†ãƒ ã�‹ã‚‰å…±æœ‰ã�•れã�Ÿã‚µãƒ–システムã�®ãƒªã‚¹ãƒˆ" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11 ウィンドウシステム" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland ウィンドウシステム" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "X11 ウィンドウシステムã�¸ã�®ãƒ•ォールãƒ�ック" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio サウンドサーãƒ�ー" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-bus セッションãƒ�ス" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-bus システムãƒ�ス" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "SSH-Agent" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "スマートカード" #: src/models/sockets.js:93 msgid "Printing system" msgstr "å�°åˆ·ã‚·ã‚¹ãƒ†ãƒ " #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-Agent ディレクトリ" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Wayland ソケットã�®ç¶™æ‰¿" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "サンドボックス内ã�§ä½¿ç”¨ã�§ã��るウェルノウンã�ªã‚½ã‚±ãƒƒãƒˆã�®ãƒªã‚¹ãƒˆ" #: src/models/variables.js:40 msgid "Variables" msgstr "変数" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "例) GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "アプリケーションã�«æ¸¡ã�•れる変数ã�®ãƒªã‚¹ãƒˆ" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%Y/%0m/%0e" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "ãƒ�ージョン" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "識別å­�" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "最終更新日" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "ランタイム" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "ã�“れã�¯æ­£ã�—ã�„オプションã�§ã�¯ã�‚りã�¾ã�›ã‚“" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "詳細ã�®è¡¨ç¤º(_S)" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "アプリケーションをソフトウェアマãƒ�ージャーã�§è¡¨ç¤º" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "ソフトウェアマãƒ�ージャーã�Œè¦‹ã�¤ã�‹ã‚Šã�¾ã�›ã‚“ã�§ã�—ã�Ÿ" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "å…¨ã�¦ã�®ã‚¢ãƒ—リケーション" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "ã�“れã�«å¯¾ã�™ã‚‹å¤‰æ›´ã�¯å…¨ã�¦ã�® Flatpak アプリケーションã�«é�©ç”¨ã�•れã�¾ã�™" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak ã�®ãƒ�ージョン" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Portal ã�®ãƒ�ージョン" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "変更先ã�®ãƒ‘ス" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "ヘルプ(_H)" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "ドキュメント(_D)" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "キーボードショートカット(_K)" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "Flatseal ã�«ã�¤ã�„ã�¦(_A)" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "グローãƒ�ル設定ã�§å¤‰æ›´æ¸ˆã�¿" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "ユーザーã�«ã‚ˆã�£ã�¦å¤‰æ›´æ¸ˆã�¿" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "ã�“ã�®çµ¶å¯¾ãƒ‘ス" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "ã�“ã�®ãƒ›ãƒ¼ãƒ ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã�«å¯¾ã�™ã‚‹ç›¸å¯¾ãƒ‘ス" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "å…¨ã�¦ã�®ã‚·ã‚¹ãƒ†ãƒ è¨­å®š" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "å…¨ã�¦ã�®ã‚·ã‚¹ãƒ†ãƒ ãƒ©ã‚¤ãƒ–ラリã€�実行å�¯èƒ½ãƒ•ァイルã�¨é�™çš„データ" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "å…¨ã�¦ã�®ã‚·ã‚¹ãƒ†ãƒ ãƒ•ァイル" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "å…¨ã�¦ã�®ãƒ¦ãƒ¼ã‚¶ãƒ¼ãƒ•ァイル" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "「デスクトップã€�ディレクトリ" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "「ドキュメントã€�ディレクトリ" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "「ダウンロードã€�ディレクトリ" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "「ミュージックã€�ディレクトリ" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "「ピクãƒ�ャã€�ディレクトリ" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "「公開ã€�ディレクトリ" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "「ビデオã€�ディレクトリ" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "「テンプレートã€�ディレクトリ" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "設定ディレクトリ" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "キャッシュ ディレクトリ" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "データ ディレクトリ" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "ランタイム ディレクトリ" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "%s を読ã�¿è¾¼ã‚€ã�“ã�¨ã�Œã�§ã��ã�¾ã�™" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "%s ã�®å¤‰æ›´ã�¨èª­ã�¿è¾¼ã�¿ã�Œã�§ã��ã�¾ã�™" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "%s ã�¸ã�®ä½œæˆ�ã€�変更ã€�読ã�¿è¾¼ã�¿ã�Œã�§ã��ã�¾ã�™" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "%s を読ã�¿è¾¼ã‚€ã�“ã�¨ã�Œã�§ã��ã�¾ã�›ã‚“" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "%s ã�®å¤‰æ›´ã�¨èª­ã�¿è¾¼ã�¿ã�Œã�§ã��ã�¾ã�›ã‚“" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "%s ã�¸ã�®ä½œæˆ�ã€�変更ã€�読ã�¿è¾¼ã�¿ã�Œã�§ã��ã�¾ã�›ã‚“" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "リセット" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "デフォルトã�®ãƒ‘スã�¯å‰Šé™¤ã�§ã��ã�¾ã�›ã‚“" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "リセット(_R)" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "ã�“ã�®ã‚¢ãƒ—リケーションã�«å¯¾ã�—ã�¦è¡Œã‚�れã�Ÿå¤‰æ›´ã�¯ã�‚りã�¾ã�›ã‚“" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "ã�“ã�®ã‚¢ãƒ—リケーションã�®æ¨©é™�をリセットã�™ã‚‹" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr "ã€�Flatseal 以外ã�§è¡Œã�£ã�Ÿå¤‰æ›´ã‚‚å�«ã‚�ã�¦" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "一般" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "カーソルä½�置を表示" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "ドキュメントã�®è¡¨ç¤º" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "メニューã�®è¡¨ç¤º" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "キーボードショートカット" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "アプリを終了" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "カーソルã�®æ“�作" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "å·¦ã�«ç§»å‹•" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "上ã�«ç§»å‹•" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "å�³ã�«ç§»å‹•" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "下ã�«ç§»å‹•" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "アプリケーション" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "検索" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "権é™�" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "切り替ã�ˆ" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "ドキュメント" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "次を検索" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "å‰�を検索" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "権é™�ã�Œãƒªã‚»ãƒƒãƒˆã�•れã�¾ã�—ã�Ÿ" #: src/widgets/window.js:99 msgid "_Undo" msgstr "å�–り消ã�™(_U)" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "コンテンツã�«å•�題ã�Œã�‚ã‚‹ã�Ÿã‚�ã€�オーãƒ�ーライドをロードã�§ã��ã�¾ã�›ã‚“" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "æ–°ã�—ã�„ Flatpak ã�Œã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã�•れã�Ÿã�Ÿã‚�å†�読ã�¿è¾¼ã�¿ã�—ã�¾ã�—ã�Ÿ" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "メインメニュー" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "アプリケーションã�Œè¦‹ã�¤ã�‹ã‚Šã�¾ã�›ã‚“ã�§ã�—ã�Ÿã€‚" Flatseal-2.4.1/po/meson.build000066400000000000000000000000511520337174300160320ustar00rootroot00000000000000i18n.gettext('flatseal', preset: 'glib') Flatseal-2.4.1/po/nb.po000066400000000000000000000372211520337174300146400ustar00rootroot00000000000000# Norwegian BokmÃ¥l translation for Flatseal # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # # 2023-2024 Nikolai Eugen Sandvik msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2024-10-04 18:43+0200\n" "Last-Translator: Sunniva Løvstad \n" "Language-Team: Norwegian Bokmal <>\n" "Language: nb\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.5\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Administrer Flatpak-tillatelser" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "seal;sandbox;override;segl;innhegning;overstyre;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal er et grafisk verktøy for Ã¥ gjennomgÃ¥ og endre tillatelser for dine " "Flatpak-applikasjoner." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Flatseals hovedvindu" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal mens det viser filsystemtillatelser" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal mens det viser globale overstyringer" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Program-ID som sist ble valgt" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Ukjent" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Kommuniserer" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Eier" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Liste over velkjente navn pÃ¥ øktsbussen" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Liste over velkjente navn pÃ¥ systembussen" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU-akselerasjon" #: src/models/devices.js:44 msgid "Input devices" msgstr "Inndataenheter" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualisering" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Delt minne" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB-enheter" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Alle enheter (f.eks. webkamera)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Liste over enheter tilgjengelig i sandkassen" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Utviklingssyskall (f.eks. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programmer fra andre arkitekturer" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Controller Area Network-buss" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Applikasjonens delte minne" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Liste over funksjoner tilgjengelige for applikasjonen" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Alle systemfiler" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Alle systembiblioteker, kjørbare filer og statiske data" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Alle systemkonfigurasjoner" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Alle brukerfiler" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Liste over tilgjengelige filsystemdeler for applikasjonen" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Andre filer" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "f.eks. ~/games:ro, xdg-pictures, osv" #: src/models/persistent.js:37 msgid "Files" msgstr "Filer" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "f.eks. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Liste over hjemmekatalog-relative stier opprettet i sandkassen" #: src/models/portals.js:118 msgid "Background" msgstr "Bakgrunn" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Kan kjøre i bakgrunnen" #: src/models/portals.js:128 msgid "Notifications" msgstr "Varsler" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Kan sende varsler" #: src/models/portals.js:138 msgid "Microphone" msgstr "Mikrofon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Kan lytte til mikrofonen din" #: src/models/portals.js:148 msgid "Speakers" msgstr "Høyttalere" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Kan spille lyder gjennom høyttalerne dine" #: src/models/portals.js:158 msgid "Camera" msgstr "Kamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Kan ta opp videoer med kameraet ditt" #: src/models/portals.js:168 msgid "Location" msgstr "Lokasjon" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Kan fÃ¥ tilgang til din lokasjon" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Liste over ressurser selektivt gitt til applikasjonen" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Ikke støttet av den installerte versjonen av Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Krever tillatelse store versjon 2 eller nyere" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Portaldata er ikke satt opp enda" #: src/models/shared.js:39 msgid "Network" msgstr "Nettverk" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Interprosesskommunikasjon" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Liste over undersystemer delt med vertssystemet" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11-vindusystem" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland-vindusystem" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Fallback til X11-vindusystem" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio-lydserver" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus-øktbuss" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus-systembuss" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Secure Shell-agent" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Smartkort" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Utskriftssystem" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-Agent-kataloger" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Arv Wayland-socket" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Liste over velkjente socketer tilgjengelige i sandkassen" #: src/models/variables.js:40 msgid "Variables" msgstr "Variabler" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "f.eks. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Liste over variabler eksportert til applikasjonen" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e. %B %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Versjon" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identifikator" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Sist oppdatert" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Runtime" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Dette er ikke en gyldig valgmulighet" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Vis detaljer" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Vis applikasjonen i en programvarebehandler" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Ingen programvarebehandler funnet" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Alle Applikasjoner" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Endringer som gjelder for alle Flatpak-applikasjoner" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak Versjon" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Portal Versjon" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Endringssti" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Hjelp" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Dokumentasjon" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Tastatursnarveier" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_Om Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Endret globalt" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Endret av brukeren" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "denne absolutte stien" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "denne stien relativt til hjemmekatalogen" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "alle systemkonfigurasjoner" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "alle systembiblioteker, kjørbare filer og statiske data" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "alle systemfiler" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "alle brukerfiler" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "skrivebordskatalogen" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "dokumentkatalogen" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "nedlastingskatalogen" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "musikkatalogen" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "bildekatalogen" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "den offentlige katalogen" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "videokatalogen" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "malkatalogen" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "konfigurasjonskatalogen" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "bufferkatalogen" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "datakatalogen" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "runtime-katalogen" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Kan lese: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Kan endre og lese: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Kan opprette, endre og lese: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Kan ikke lese: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Kan ikke endre eller lese: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Kan ikke opprette, endre eller lese: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Ikke satt" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Standardstier kan ikke fjernes" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Tilbakestill" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Ingen endringer gjort for denne applikasjonen" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Tilbakestill denne applikasjonens tillatelser" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", inkludert endringer ikke gjort med Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Generelt" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Vis huskeregler" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Vis dokumentasjon" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Vis meny" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Tastatursnarveier" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Avslutt" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigasjon" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Flytt til venstre" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Flytt opp" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Flytt til høyre" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Flytt ned" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Applikasjoner" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Finn" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Tillatelser" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Veksle" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Dokumentasjon" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Finn neste" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Finn forrige" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Tillatelser har blitt tilbakestilt" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Angre" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Kan ikke laste inn overstyringer pÃ¥ grunn av feil innhold" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Oppdatert pÃ¥ grunn av overstyringer i Flatpak-installasjoner" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Hovedmeny" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Ingen applikasjoner funnet." Flatseal-2.4.1/po/nl.po000066400000000000000000000376651520337174300146660ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2026-05-15 17:54+0200\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.8\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Beheer Flatpak-bevoegdheden" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "seal;sandbox;rechten;bevoegdheden;machtigingen;permissies;flatpak;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal is een grafisch hulpmiddel om de bevoegdheden van elke Flatpak-" "toepassing te bekijken en aan te passen." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Hoofdvenster" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Pagina met bestandssysteemrechten" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Pagina met voorrangsregels" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "De laatstgekozen toepassings-id" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Onbekend" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Communiceert met" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Eigenaar van" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Lijst met bekende namen die beschikbaar zijn in de sessiebus" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Lijst met bekende namen die beschikbaar zijn in de systeembus" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Hardwareversnelling" #: src/models/devices.js:44 msgid "Input devices" msgstr "Invoerapparaten" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualisatie" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Gedeeld geheugen" #: src/models/devices.js:65 msgid "USB devices" msgstr "Usb-apparaten" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Alle apparaten (bijv. webcam)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Lijst met apparaten die beschikbaar zijn in de sandbox" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Systeemaanroepingen (bijv. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Toepassingen van andere architecturen" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Controller Area Network-bus" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Gedeeld toepassingsgeheugen" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Lijst met functies die de toepassing kan benutten" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Alle systeembestanden" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Alle systeembibliotheken, uitvoerbare bestanden en statische gegevens" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Alle systeemconfiguraties" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Alle gebruikersbestanden" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Lijst met bestandssysteem-subsets die de toepassing kan benutten" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Overige bestanden" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "bijv. ~/spellen:ro, xdg-pictures, enz." #: src/models/persistent.js:37 msgid "Files" msgstr "Bestanden" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "bijv. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "" "Lijst met relatieve locaties uit uw persoonlijke map die in de sandbox zijn " "gemaakt" #: src/models/portals.js:118 msgid "Background" msgstr "Achtergrond" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Uitvoeren op achtergrond" #: src/models/portals.js:128 msgid "Notifications" msgstr "Meldingen" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Mag meldingen tonen" #: src/models/portals.js:138 msgid "Microphone" msgstr "Microfoon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Mag uw microfoon gebruiken" #: src/models/portals.js:148 msgid "Speakers" msgstr "Luidsprekers" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Mag geluid afspelen via uw luidsprekers" #: src/models/portals.js:158 msgid "Camera" msgstr "Camera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Mag video's opnemen middels uw camera" #: src/models/portals.js:168 msgid "Location" msgstr "Locatie" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Mag uw locatie bepalen" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Lijst met functies die zijn toegekend aan de toepassing" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Niet ondersteund door de geïnstalleerde versie van Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Vereist toestemmingopslag versie 2 of nieuwer" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "De portaalgegevens zijn nog niet ingesteld" #: src/models/shared.js:39 msgid "Network" msgstr "Netwerk" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Procesuitwisselingscommunicatie" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Lijst met subsystemen die gedeeld zijn met het hostsysteem" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11-venstersysteem" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland-venstersysteem" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Terugvallen op X11-venstersysteem" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio-geluidsserver" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus-sessiebus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus-systeembus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Secure Shell-agent" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Smartcards" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Afdruksysteem" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-Agent-mappen" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Waylandsocket gebruiken" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Lijst met bekende sockets die beschikbaar zijn in de sandbox" #: src/models/variables.js:40 msgid "Variables" msgstr "Variabelen" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "bijv. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Lijst met variabelen die naar de toepassing zijn geëxporteerd" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Versie" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identificatie" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Laatst bijgewerkt op" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Uitvoerbaar bestand" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Dit is geen geldige optie" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "Detail_s tonen" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Toon de toepassing in een softwarebeheerder" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Er is geen softwarebeheerder aangetroffen." #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Alle toepassingen" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Wijzigingen die van toepassing zijn op alle Flatpak-toepassingen" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak-versie" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Portaalversie" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Past de locatie aan" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Hulp" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Documentatie" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "Snel_toetsen" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "Over Fl_atseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Globaal gewijzigd" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Door de gebruiker gewijzigd" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "deze absolute locatie" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "deze locatie ten opzichte van de basismap" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "alle systeemconfiguraties" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "alle systeembibliotheken, uitvoerbare bestanden en statische gegevens" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "alle systeembestanden" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "alle gebruikersbestanden" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "de bureaubladmap" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "de documentenmap" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "de downloadmap" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "de muziekmap" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "de afbeeldingenmap" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "de openbare map" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "de map met video's" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "de map met sjablonen" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "de configuratiemap" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "de cachemap" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "de gegevensmap" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "de werkmap" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Mag uitlezen: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Mag wijzigen en uitlezen: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Mag maken, wijzigen en uitlezen: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Mag niet uitlezen: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Mag niet wijzigen of uitlezen: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Mag niet maken, wijzigen of uitlezen: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Verwijderen" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Standaardlocaties kunnen niet worden verwijderd" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "Standaa_rdwaarden" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Geen wijzigingen aangebracht aan deze toepassing" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Herstel de toepassingsbevoegdheden" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", inclusief wijzigingen die niet zijn aangebracht door Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Algemeen" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Sneltoetsen tonen" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Documentatie tonen" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Menu tonen" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Sneltoetsen" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Afsluiten" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigatie" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Naar links verplaatsen" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Omhoog verplaatsen" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Naar rechts verplaatsen" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Omlaag verplaatsen" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Toepassingen" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Zoeken" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Bevoegdheden" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Aan/Uit" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Documentatie" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Volgende zoeken" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Vorige zoeken" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "De bevoegdheden zijn hersteld" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Ongedaan maken" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "De voorrangsregels kunnen niet worden geladen wegens onjuiste inhoud" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Vernieuwd wegens wijzigingen in Flatpakinstallaties" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Hoofdmenu" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Er zijn geen toepassingen aangetroffen." Flatseal-2.4.1/po/pl.po000066400000000000000000000404151520337174300146530ustar00rootroot00000000000000# Polish translation for Flatseal # Copyright (C) 2021 THE Flatseal's COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # # BartÅ‚omiej Garbiec , 2021. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2026-05-18 15:21+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 " "|| n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.9\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "ZarzÄ…dzaj uprawnieniami Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "seal;sandbox;override;piaskownica;nadpisz;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal jest narzÄ™dziem do graficznego zarzÄ…dzania uprawnieniami aplikacji " "Flatpak." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Główne okno Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal pokazujÄ…cy uprawnienia systemu plików" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal pokazujÄ…cy ogólnie nadpisane ustawienia" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Identyfikator aplikacji, który zostaÅ‚ wybrany jako ostatni" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Nieznane" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Komunikacja" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Przynależność" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "" "Lista dobrze znanych nazw w magistrali komunikacyjnej sesji (session bus)" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "" "Lista dobrze znanych nazw w magistrali komunikacyjnej systemu (system bus)" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Wspomaganie przez GPU" #: src/models/devices.js:44 msgid "Input devices" msgstr "UrzÄ…dzenia wejÅ›ciowe" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Wirtualizacja" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Pamięć wspólna" #: src/models/devices.js:65 msgid "USB devices" msgstr "UrzÄ…dzenia USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Wszystkie urzÄ…dzenia (np. kamera internetowa)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Lista urzÄ…dzeÅ„ dostÄ™pnych w piaskownicy" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Programistyczne wywoÅ‚ania systemowe (np. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programy dla innych architektur" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Magistrala CAN" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Pamięć współdzielona dla aplikacji" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Lista możliwych ustawieÅ„ dla aplikacji" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Wszystkie pliki systemowe" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Wszystkie biblioteki systemowe, pliki wykonywalne oraz dane statyczne" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Wszystkie konfiguracje systemowe" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Wszystkie pliki użytkownika" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Lista poÅ‚ożeÅ„ dostÄ™pnych dla aplikacji" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "PozostaÅ‚e pliki" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "np. ~games:ro, xdg-pictures, itp." #: src/models/persistent.js:37 msgid "Files" msgstr "Pliki" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "np. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Lista poÅ‚ożeÅ„ w Katalogu domowym dostÄ™pnych dla aplikacji" #: src/models/portals.js:118 msgid "Background" msgstr "DziaÅ‚anie w tle" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Może dziaÅ‚ać w tle" #: src/models/portals.js:128 msgid "Notifications" msgstr "Powiadomienia" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Może pokazywać powiadomienia" #: src/models/portals.js:138 msgid "Microphone" msgstr "Mikrofon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Może używać mikrofonu" #: src/models/portals.js:148 msgid "Speakers" msgstr "GÅ‚oÅ›niki" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Może używać gÅ‚oÅ›ników do odtwarzania dźwiÄ™ków" #: src/models/portals.js:158 msgid "Camera" msgstr "Kamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Może nagrywać filmy za pomocÄ… aparatu" #: src/models/portals.js:168 msgid "Location" msgstr "Lokalizacja" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Może uzyskać dostÄ™p do Twojej lokalizacji" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Lista zasobów selektywnie przyznanych aplikacji" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Niewspierane przez aktualnie zainstalowanÄ… wersjÄ™ Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Wymaga magazynu uprawnieÅ„ w wersji 2 lub nowszej" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Dane portalu nie zostaÅ‚y jeszcze skonfigurowane" #: src/models/shared.js:39 msgid "Network" msgstr "Sieć" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Komunikacja miÄ™dzy procesami" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Lista podsystemów udostÄ™pnionych przez system operacyjny" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "System wyÅ›wietlania X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "System wyÅ›wietlania Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Użycie X11 w przypadku problemów" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Serwer dźwiÄ™ku PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus sesji" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus systemu" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Agent SSH" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Karta mikroprocesorowa" #: src/models/sockets.js:93 msgid "Printing system" msgstr "ObsÅ‚uga drukowania" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Katalogi agenta GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Dziedzicz gniazdo Waylanda" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Lista dobrze znanych gniazd dostÄ™pnych w piaskownicy" #: src/models/variables.js:40 msgid "Variables" msgstr "Zmienne" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "np. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Lista zmiennych przekazanych do aplikacji" # is used in Polish #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Wersja" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identyfikator" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Ostatnia aktualizacja" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Åšrodowisko" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "To nie jest poprawna operacja" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_WyÅ›wietl szczegóły" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "WyÅ›wietl w menedżerze oprogramowania" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Nie znaleziono menedżera oprogramowania" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Wszystkie Aplikacje" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Zmiany, które dotyczÄ… wszystkich aplikacji Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Wersja Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Wersja Portalu" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Modyfikacje" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Pomoc" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Dokumentacja" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Skróty klawiszowe" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_O Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Zmieniono globalnie" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Zmienione przez użytkownika" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "poÅ‚ożenie bezpoÅ›rednie (bezwzglÄ™dne)" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "poÅ‚ożenie wzglÄ™dem Katalogu domowego" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "wszystkie konfiguracje systemowe" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "wszystkie biblioteki systemowe, pliki wykonywalne oraz dane statyczne" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "wszystkie pliki systemowe" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "wszystkie pliki użytkownika" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "poÅ‚ożenie folderu pulpitu" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "poÅ‚ożenie folderu Dokumenty" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "poÅ‚ożenie folderu Pobrane" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "poÅ‚ożenie folderu Muzyka" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "poÅ‚ożenie folderu Obrazy" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "poÅ‚ożenie folderu Publiczny" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "poÅ‚ożenie folderu Wideo" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "poÅ‚ożenie folderu Szablony" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "poÅ‚ożenie plików konfiguracyjnych" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "poÅ‚ożenie pamiÄ™ci cache" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "poÅ‚ożenie danych" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "poÅ‚ożenie Å›rodowiska uruchumieniowego" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Może czytać: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Może czytać i modyfikować: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Może tworzyć, czytać i modyfikować: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Nie mogÄ™ przeczytać: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Nie można go modyfikować ani czytać: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Nie może tworzyć, modyfikować ani czytać: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Nieoprawny" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "DomyÅ›lne Å›cieżki nie mogÄ… być usuniÄ™te" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Resetuj" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Nie dokonano zmian dla tej aplikacji" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Resetuj uprawnienia tej aplikacji" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", w tym zmian dokonanych we Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Ogólny" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Pokaż mnemoniki" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Pokaż dokumentacjÄ™" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Pokaż menu" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Skróty klawiszowe" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Wyjdź" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Nawigacja" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "PrzesuÅ„ w lewo" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "PrzesuÅ„ w górÄ™" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "PrzesuÅ„ w prawo" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "PrzesuÅ„ w dół" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Aplikacje" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Znajdź" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Uprawnienia" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Przełącz" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Dokumentacja" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Znajdź nastÄ™pny wynik" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Znajdź poprzedni wynik" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Uprawnienia zostaÅ‚y zresetowane" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Cofnij" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Nie można zaÅ‚adować zmian z powodu nieprawidÅ‚owej zawartoÅ›ci" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "OdÅ›wieżono ze wzglÄ™du na zmiany w instalacjach Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Menu główne" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Nie znaleziono programów." Flatseal-2.4.1/po/pt_BR.po000066400000000000000000000401511520337174300152430ustar00rootroot00000000000000# Portuguese translations for flatseal package. # Copyright (C) 2020 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Automatically generated, 2020. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2025-05-14 01:37-0300\n" "Last-Translator: LucasMZ\n" "Language-Team: LucasMZ\n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Gerencie as permissões de Flatpaks" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "O Flatseal é um utilitário gráfico para revisar e modificar permissões dos " "seus aplicativos Flatpak." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "A janela principal do Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "O Flatseal está mostrando permissões do sistema de arquivos" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "O Flatseal está mostrando alterações globais" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "ID do aplicativo que foi selecionado pela última vez" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Desconhecida" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Fala" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Apropria" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Lista de nomes bem-conhecidos no barramento de sessão" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Lista de nomes bem-conhecidos no barramento do sistema" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Aceleração de GPU" #: src/models/devices.js:44 msgid "Input devices" msgstr "Dispositivos de entrada" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualização" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Memória compartilhada" #: src/models/devices.js:65 msgid "USB devices" msgstr "Dispositivos USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Todos os dispositivos (ex: webcam)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Lista de dispositivos disponíveis na sandbox" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Chamadas de desenvolvimento do sistema (ex: ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Programas de outras arquiteturas" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Barramento do CAN" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Memória compartilhada por aplicativo" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Lista de recursos disponíveis para o aplicativo" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Todos os arquivos do sistema" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Todas as bibliotecas, executáveis e dados estáticos" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Todas as configurações do sistema" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Todos os arquivos do usuário" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Lista de subcategorias de arquivos disponíveis para o aplicativo" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Outros arquivos" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "ex: ~/jogos:ro, xdg-pictures, etc" #: src/models/persistent.js:37 msgid "Files" msgstr "Arquivos" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "ex: .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Lista de caminhos relativos ao diretório do usuário criados na sandbox" #: src/models/portals.js:118 msgid "Background" msgstr "Segundo plano" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Pode ser executado em segundo plano" #: src/models/portals.js:128 msgid "Notifications" msgstr "Notificações" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Pode enviar notificações" #: src/models/portals.js:138 msgid "Microphone" msgstr "Microfone" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Pode ouvir seu microfone" #: src/models/portals.js:148 msgid "Speakers" msgstr "Saída de áudio" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Pode reproduzir sons nos seus dispositivos" #: src/models/portals.js:158 msgid "Camera" msgstr "Câmera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Pode gravar vídeos com sua câmera" #: src/models/portals.js:168 msgid "Location" msgstr "Localização" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Pode acessar sua localização" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Lista de recursos concedidos seletivamente ao aplicativo" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Não é suportado pela versão instalada do Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Requer a permission store versão 2 ou mais recente" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Os dados do portal ainda não foram configurados" #: src/models/shared.js:39 msgid "Network" msgstr "Rede" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Comunicações entre processos" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Lista de subsistemas compartilhados com o sistema principal" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "Sistema de janelas X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Sistema de janelas Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Retorno ao sistema de janelas X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Servidor de som PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "Barramento do D-Bus de sessão" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "Barramento do D-Bus do sistema" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Agente do SSH" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Cartões inteligentes" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Sistema de impressão" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Diretórios do agente do GPG" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Herdar o socket do Wayland" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Lista de sockets bem-conhecidos disponíveis na sandbox" #: src/models/variables.js:40 msgid "Variables" msgstr "Variáveis" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "ex: GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Lista de variáveis exportadas para o aplicativo" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e de %B de %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Versão" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identificador" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Ultima atualização" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Biblioteca de execução" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Esta não é uma opção válida" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Mostrar detalhes" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Mostrar o aplicativo em um gerenciador de software" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Nenhum gerenciador de software encontrado" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Todos os aplicativos" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Alterações que se aplicam a todos os aplicativos Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Versão do Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Versão do Portal" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Caminho das modificações" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Ajuda" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Documentação" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Atalhos do teclado" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_Sobre o Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Alterado globalmente" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Alterado pelo usuário" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "esse caminho absoluto" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "esse caminho em relação ao diretório do usuário" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "todas as configurações do sistema" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "todas as bibliotecas, executáveis e dados estáticos do sistema" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "todos os arquivos do sistema" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "todos os arquivos do usuário" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "a pasta da área de trabalho" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "a pasta de documentos" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "a pasta de downloads" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "a pasta de música" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "a pasta de imagens" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "a pasta Público" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "a pasta de vídeos" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "a pasta de modelos" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "a pasta de configurações" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "a pasta de cache" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "a pasta de dados" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "a pasta da biblioteca de execução" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Pode ler: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Pode modificar e ler: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Pode criar, modificar e ler: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Não pode ler: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Não pode modificar ou ler: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Não pode criar, modificar ou ler: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Desativar" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Caminhos padrão não podem ser removidos" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Redefinir" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Nenhuma alteração feita neste aplicativo" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Redefinir as permissões deste aplicativo" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", incluindo alterações não feitas com o Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Geral" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Mostrar mnemônicos" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Mostrar documentação" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Mostrar o menu" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Atalhos do teclado" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Fechar" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navegação" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Mover para a esquerda" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Mover para cima" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Mover para a direita" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Mover para baixo" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Aplicativos" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Procurar" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Permissões" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Alterar" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Documentação" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Procurar o próximo" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Procurar o anterior" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "As permissões foram redefinidas" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Desfazer" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Não é possível carregar as alterações devido a conteúdo incorreto" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Recarregado devido à mudanças nas instalações do Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Menu principal" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Nenhum aplicativo encontrado." Flatseal-2.4.1/po/ru.po000066400000000000000000000454111520337174300146670ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # FIRST AUTHOR , YEAR. # BigmenPixel < >, 2021. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2026-05-15 23:33+0300\n" "Last-Translator: Aleksandr Melman \n" "Language-Team: Russian < >\n" "Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 3.9\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Управление разрешениÑ�ми Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "seal;sandbox;override;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal - графичеÑ�каÑ� утилита длÑ� проÑ�мотра и модификации разрешений ваших " "Flatpak приложений." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Главное окно Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal показывает права доÑ�тупа к файловой Ñ�иÑ�теме" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal показывает глобальные изменениÑ�" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Идентификатор приложениÑ�, который был выбран поÑ�ледним" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Ð�еизвеÑ�тно" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Переговоры" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Владельцы" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "СпиÑ�ок извеÑ�тных имен в Ñ�еÑ�Ñ�ионной шине" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "СпиÑ�ок извеÑ�тных имен в Ñ�иÑ�темной шине" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU уÑ�корение" #: src/models/devices.js:44 msgid "Input devices" msgstr "УÑ�тройÑ�тва ввода" #: src/models/devices.js:51 msgid "Virtualization" msgstr "ВиртуализациÑ�" #: src/models/devices.js:58 msgid "Shared memory" msgstr "РаÑ�пределÑ�емаÑ� памÑ�ть" #: src/models/devices.js:65 msgid "USB devices" msgstr "УÑ�тройÑ�тва USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Ð’Ñ�е уÑ�тройÑ�тва (пр. веб-камера)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "СпиÑ�ок вÑ�ех уÑ�тройÑ�тв, доÑ�тупных в пеÑ�очнице" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "СиÑ�темные вызовы разработки (пр. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Программы Ñ� других архитектур" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Шина Ñ�ети контроллеров" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "РаÑ�пределÑ�емаÑ� памÑ�ть приложениÑ�" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "СпиÑ�ок функций, доÑ�тупных приложению" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Ð’Ñ�е Ñ�иÑ�темные файлы" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Ð’Ñ�е Ñ�иÑ�темные библиотеки, иÑ�полнÑ�емые файлы и Ñ�татичеÑ�кие данные" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Ð’Ñ�е конфигурации Ñ�иÑ�темы" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Ð’Ñ�е пользовательÑ�кие файлы" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "СпиÑ�ок подмножеÑ�тв файловой Ñ�иÑ�темы, доÑ�тупных приложению" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Другие файлы" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "пр. ~/games:ro, xdg-pictures, и прочее" #: src/models/persistent.js:37 msgid "Files" msgstr "Файлы" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "пр. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "СпиÑ�ок отноÑ�ительных путей к домашней папке, Ñ�озданных в пеÑ�очнице" #: src/models/portals.js:118 msgid "Background" msgstr "Фон" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Может работать в фоне" #: src/models/portals.js:128 msgid "Notifications" msgstr "УведомлениÑ�" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Может отправлÑ�ть уведомлениÑ�" #: src/models/portals.js:138 msgid "Microphone" msgstr "Микрофон" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Может иÑ�пользовать ваш микрофон" #: src/models/portals.js:148 msgid "Speakers" msgstr "Динамики" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Может проигрывать звук в ваших динамиках" #: src/models/portals.js:158 msgid "Camera" msgstr "Камера" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Может запиÑ�ывать видео Ñ� вашей камеры" #: src/models/portals.js:168 msgid "Location" msgstr "МеÑ�тоположение" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Может получить доÑ�туп к вашему меÑ�тоположению" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "СпиÑ�ок реÑ�урÑ�ов, выборочно предоÑ�тавленных приложению" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Ð�е поддерживаетÑ�Ñ� уÑ�тановленной верÑ�ией Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "ТребуетÑ�Ñ� хранилище разрешений верÑ�ии 2 или новее" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Данные портала еще не наÑ�троены" #: src/models/shared.js:39 msgid "Network" msgstr "Сеть" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "МежпроцеÑ�Ñ�ные коммуникации" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "СпиÑ�ок подÑ�иÑ�тем, Ñ�овмеÑ�тно иÑ�пользуемых Ñ� хоÑ�Ñ‚-Ñ�иÑ�темой" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "ОконнаÑ� Ñ�иÑ�тема X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "ОконнаÑ� Ñ�иÑ�тема Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Возврат к оконной Ñ�иÑ�теме X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Звуковой Ñ�ервер PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "СеÑ�Ñ�ионнаÑ� шина D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "СиÑ�темнаÑ� шина D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "SSH агент" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Смарт-карты" #: src/models/sockets.js:93 msgid "Printing system" msgstr "СиÑ�тема печати" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Каталоги GPG-агента" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "ИÑ�пользование Wayland Ñ�окета" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "СпиÑ�ок извеÑ�тных Ñ�окетов, доÑ�тупных в пеÑ�очнице" #: src/models/variables.js:40 msgid "Variables" msgstr "Переменные" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "пр. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "СпиÑ�ок переменных, Ñ�кÑ�портируемых в приложение" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B, %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "ВерÑ�иÑ�" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Идентификатор" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "ПоÑ�леднее обновление" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Среда иÑ�полнениÑ�" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Это недопуÑ�тимый вариант" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Показать подробноÑ�ти" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Показать приложение в менеджере Ñ�офта" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Менеджер Ñ�офта не найден" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Ð’Ñ�е приложениÑ�" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "ИзменениÑ�, которые применÑ�ÑŽÑ‚Ñ�Ñ� ко вÑ�ем приложениÑ�м Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "ВерÑ�иÑ� Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "ВерÑ�иÑ� портала" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Модификации" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Справка" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_ДокументациÑ�" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Комбинации клавиш" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_О приложении" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Изменено глобально" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Изменено пользователем" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "Ñ�то абÑ�олютный путь" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "Ñ�то путь отноÑ�ительно домашней папки" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "вÑ�е конфигурации Ñ�иÑ�темы" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "вÑ�е Ñ�иÑ�темные библиотеки, иÑ�полнÑ�емые файлы и Ñ�татичеÑ�кие данные" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "вÑ�е Ñ�иÑ�темные файлы" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "вÑ�е пользовательÑ�кие файлы" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "каталог рабочего Ñ�тола" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "каталог документов" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "каталог загрузок" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "каталог музыки" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "каталог изображений" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "общедоÑ�тупный каталог" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "каталог видео" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "каталог шаблонов" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "каталог конфигурационных файлов" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "каталог кеша" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "каталог данных" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "каталог Ñ�реды иÑ�полнениÑ�" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Может читать: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Может редактировать и читать: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Может Ñ�оздавать, редактировать и читать: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Ð�е может читать: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Ð�е может редактировать и читать: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Ð�е может Ñ�оздавать, редактировать и читать: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Убрать" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Каталоги по умолчанию не могут быть удалены" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_ВоÑ�Ñ�тановить" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Ð’ Ñ�то приложение не было внеÑ�ено никаких изменений" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "ВоÑ�Ñ�тановить разрешениÑ� приложениÑ�" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", включаÑ� изменениÑ�, не внеÑ�енные Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Общие" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Показать мнемонику" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Показать Ñ�правку" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Открыть меню" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Комбинации клавиш" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Закрыть приложение" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Ð�авигациÑ�" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "ПеремеÑ�тить влево" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "ПеремеÑ�тить вверх" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "ПеремеÑ�тить вправо" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "ПеремеÑ�тить вниз" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "ПриложениÑ�" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Ð�айти" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "РазрешениÑ�" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Переключить" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "ДокументациÑ�" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Следующий результат" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Предыдущий результат" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "РазрешениÑ� были воÑ�Ñ�тановлены" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Отменить" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Ð�евозможно загрузить изменениÑ� из-за неправильного Ñ�одержаниÑ�" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Обновлено в Ñ�вÑ�зи Ñ� изменениÑ�ми в уÑ�тановках Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Главное меню" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "ПриложениÑ� не найдены." Flatseal-2.4.1/po/sv.po000066400000000000000000000373421520337174300146750ustar00rootroot00000000000000# Swedish translation for Flatseal. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Ã…ke Engelbrektson , 2020-2026. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2026-05-16 09:03+0200\n" "Last-Translator: Ã…ke Engelbrektson \n" "Language-Team: \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Geany / PoHelper 2.0\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "En behörighetshanterare för Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "seal;sandbox;undantag" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal är ett grafiskt verktyg för att granska och ändra grundläggande " "behörigheter för dina Flatpak-program." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Flatseals huvudfönster" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal visar filsystemets behörigheter" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal visar systemövergripande undantag" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Applikations-ID som senast valdes" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Okänd" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Talar" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Äger" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Lista över välkända namn pÃ¥ sessionsbussen" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Lista över välkända namn pÃ¥ systembussen" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU-acceleration" #: src/models/devices.js:44 msgid "Input devices" msgstr "Inmatningsenheter" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Virtualisering" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Delat minne" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB-enheter" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Alla enheter (t.ex. webbkamera)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Lista över enheter som är tillgängliga i sandlÃ¥dan" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Development syscalls (t.ex. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Program frÃ¥n andra arkitekturer" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Controller Area Network bus" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Delat programminne" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Lista över funktioner som är tillgängliga för programmet" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Alla systemfiler" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Alla systemets bibliotek, exekverbara och statisk data" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Alla systemkonfigurationer" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Alla användarfiler" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "" "Lista över filsystemets undergrupper som är tillgängliga för programmet" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Andra filer" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "t.ex. ~/games:ro, xdg-pictures, etc" #: src/models/persistent.js:37 msgid "Files" msgstr "Filer" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "t.ex. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Lista över sökvägar, relativt hemkatalogen, som skapats i sandlÃ¥dan" #: src/models/portals.js:118 msgid "Background" msgstr "Bakgrund" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Kan köras i bakgrunden" #: src/models/portals.js:128 msgid "Notifications" msgstr "Avisering" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Kan skicka avisering" #: src/models/portals.js:138 msgid "Microphone" msgstr "Mikrofon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Kan lyssna pÃ¥ din mikrofon" #: src/models/portals.js:148 msgid "Speakers" msgstr "Högtalare" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Kan spela upp ljud i dina högtalare" #: src/models/portals.js:158 msgid "Camera" msgstr "Kamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Kan spela in video med din kamera" #: src/models/portals.js:168 msgid "Location" msgstr "Plats" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Har tillgÃ¥ng till din platsinformation" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Lista över resurser som selektivt tilldelats programmet" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Stöds inte av den installerade Flatpak-versionen" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Kräver lagringsbehörighet version 2 eller senare" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Portdata har inte ställts in ännu" #: src/models/shared.js:39 msgid "Network" msgstr "Nätverk" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Kommunikation mellan processer" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Lista över undersystem som delas med värdsystemet" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11 fönstersystem" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland fönstersystem" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Fall tillbaka pÃ¥ X11 fönstersystem" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio ljudserver" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus session bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus system bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Secure Shell agent" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Smartkort" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Utskriftssystem" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-agentmappar" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Ärv Wayland-socket" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Lista över välkända uttag som finns i sandlÃ¥dan" #: src/models/variables.js:40 msgid "Variables" msgstr "Variabler" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "t.ex. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Lista över varibler som som exporterats till programmet" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Version" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Identifierare" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Senast uppdaterad" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Körtid" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Detta är inte ett giltigt alternativ" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Visa detaljerad info" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Visa program i en programhanterare" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Ingen programhanterare hittades" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Alla program" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Ändringar som tillämpas pÃ¥ alla Flatpak-program" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak-version" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Portalversion" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Ändrar sökväg" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Hjälp" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Dokumentation" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "Tangentbords_genvägar" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_Om Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Ändrat systemövergripande" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Ändrat av användaren" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "Denna absoluta sökväg" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "Denna sökväg relativt till hemkatalogen" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "Alla systemkonfigurationer" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "Alla systemets bibliotek, exekverbara och statisk data" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "Alla systemfiler" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "Alla användarfiler" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "Skrivbord" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "Dokumentmappen" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "Nedladdningar" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "Musikmappen" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "Bildmappen" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "Publikt" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "Videomappen" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "Mallar" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "Konfigurationsmappen" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "Cachemappen" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "Datamappen" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "Körtidsmappen" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Kan läsa: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Kan ändra och läsa: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Kan skapa, ändra och läsa: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Kan inte läsa: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Kan inte ändra eller läsa: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Kan inte skapa, ändra eller läsa: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Avlägsna" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Standardsökvägar kan inte tas bort" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Ã…terställ" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Inga ändringar gjorda för det här programmet" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Ã…terställ det här programmets behörigheter" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", inklusive ändringar som inte gjorts med Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Allmänt" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Visa minnestekniker" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Visa dokumentation" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Visa menyn" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Tangentbordsgenvägar" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Avsluta" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Navigation" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Flytta Ã¥t vänster" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Flytta upp" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Flytta Ã¥t höger" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Flytta ner" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Program" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Sök" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Rättigheter" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Växla" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Dokumentation" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Sök nästa" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Sök föregÃ¥ende" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Behörigheter har Ã¥terställts" #: src/widgets/window.js:99 msgid "_Undo" msgstr "Ã…_ngra" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Kan inte ladda Ã¥sidosättningar pÃ¥ grund av felaktigt innehÃ¥ll" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Uppdaterad pÃ¥ grund av ändringar i Flatpak-installationer" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Huvudmeny" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Inga program hittades." Flatseal-2.4.1/po/ta.po000066400000000000000000000550711520337174300146500ustar00rootroot00000000000000# Flatseal- Tamil translation. # Copyright (C) 2024 THE Flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # K.B.Dharun Krishna (kbdharun) , 2022 - 2024. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2024-09-21 21:51+0530\n" "Last-Translator: K.B.Dharun Krishna \n" "Language-Team: \n" "Language: ta\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.5\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "பிளாடà¯�பாகà¯� அனà¯�மதிகளை நிரà¯�வகிகà¯�கவà¯�à®®à¯�" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "à®®à¯�தà¯�திரை;சாணà¯�டà¯�பாகà¯�ஸà¯�;பà¯�றகà¯�கணிபà¯�பà¯�;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "பிளாடà¯�சீலà¯� எனà¯�பதà¯� உஙà¯�களà¯� பிளாடà¯�பாகà¯� பயனà¯�பாடà¯�களினà¯� அனà¯�மதிகளை மதிபà¯�பாயà¯�வà¯� செயà¯�வதறà¯�கà¯�à®®à¯� " "மாறà¯�றியமைபà¯�பதறà¯�கà¯�à®®à¯� à®’à®°à¯� வரைகலைபà¯� பயனà¯�பாடாகà¯�à®®à¯�." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Flatseal பிரதான சாளரமà¯�" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "கோபà¯�பà¯� à®®à¯�றைமை அனà¯�மதிகளைகà¯� காடà¯�டà¯�à®®à¯� Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "உலகளாவிய மேலெழà¯�தலைகà¯� காடà¯�டà¯�à®®à¯� Flatseal" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "கடைசியாக தேரà¯�நà¯�தெடà¯�கà¯�கபà¯�படà¯�ட பயனà¯�பாடà¯� à®�டி" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "தெரியாததà¯�" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "பேசà¯�சà¯�கà¯�களà¯�" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "சொநà¯�தமாக உளà¯�ளதà¯�" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "அமரà¯�வà¯� பேரà¯�நà¯�திலà¯� நனà¯�கà¯� அறியபà¯�படà¯�ட பெயரà¯�களினà¯� படà¯�டியலà¯�" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "சிஸà¯�டமà¯� பஸà¯�ஸிலà¯� நனà¯�கà¯� அறியபà¯�படà¯�ட பெயரà¯�களினà¯� படà¯�டியலà¯�" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU à®®à¯�டà¯�கà¯�கமà¯�" #: src/models/devices.js:44 msgid "Input devices" msgstr "உளà¯�ளீடà¯�டà¯� சாதனஙà¯�களà¯�" #: src/models/devices.js:51 msgid "Virtualization" msgstr "மெயà¯�நிகராகà¯�கமà¯�" #: src/models/devices.js:58 msgid "Shared memory" msgstr "பகிரà¯�நà¯�த நினைவகமà¯�" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB சாதனஙà¯�களà¯�" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "அனைதà¯�தà¯� சாதனஙà¯�களà¯�à®®à¯� (எ.கா. வெபà¯�கேமà¯�)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "சாணà¯�டà¯�பாகà¯�ஸிலà¯� கிடைகà¯�கà¯�à®®à¯� சாதனஙà¯�களினà¯� படà¯�டியலà¯�" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "டெவலபà¯�மெணà¯�டà¯� syscals (எ.கா. ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "பிற கடà¯�டிடகà¯�கலைகளிலிரà¯�நà¯�தà¯� நிரலà¯�களà¯�" #: src/models/features.js:51 msgid "Bluetooth" msgstr "பà¯�ளூடூதà¯�" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "கனà¯�டà¯�ரோலரà¯� à®�ரியா நெடà¯�வொரà¯�கà¯� பஸà¯�" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "பயனà¯�பாடà¯� பகிரபà¯�படà¯�ட நினைவகமà¯�" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "பயனà¯�பாடà¯�டிறà¯�கà¯� கிடைகà¯�கà¯�à®®à¯� à®…à®®à¯�சஙà¯�களினà¯� படà¯�டியலà¯�" #: src/models/filesystems.js:37 msgid "All system files" msgstr "அனைதà¯�தà¯� கணினி கோபà¯�பà¯�களà¯�" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "அனைதà¯�தà¯� கணினி நூலகஙà¯�களà¯�, இயஙà¯�ககà¯�கூடியவை மறà¯�à®±à¯�à®®à¯� நிலையான தரவà¯�" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "அனைதà¯�தà¯� அமைபà¯�பà¯� கடà¯�டமைபà¯�பà¯�களà¯�" #: src/models/filesystems.js:58 msgid "All user files" msgstr "அனைதà¯�தà¯� பயனரà¯� கோபà¯�பà¯�களà¯�" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "பயனà¯�பாடà¯�டிறà¯�கà¯� கிடைகà¯�கà¯�à®®à¯� கோபà¯�பà¯� à®®à¯�றைமை தà¯�ணைகà¯�கà¯�à®´à¯�கà¯�களினà¯� படà¯�டியலà¯�" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "பிற கோபà¯�பà¯�களà¯�" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "எ.கா. ~/games:ro, xdg-pictures, à®®à¯�தலியன" #: src/models/persistent.js:37 msgid "Files" msgstr "கோபà¯�பà¯�களà¯�" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "எ.கா. .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "சாணà¯�டà¯�பாகà¯�ஸிலà¯� உரà¯�வாகà¯�கபà¯�படà¯�ட ஹோமà¯�டிரà¯�-உறவினரà¯� பாதைகளினà¯� படà¯�டியலà¯�" #: src/models/portals.js:118 msgid "Background" msgstr "பினà¯�னணி" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "பினà¯�னணியிலà¯� இயகà¯�க à®®à¯�டியà¯�à®®à¯�" #: src/models/portals.js:128 msgid "Notifications" msgstr "அறிவிபà¯�பà¯�களà¯�" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "அறிவிபà¯�பà¯�களை அனà¯�பà¯�ப à®®à¯�டியà¯�à®®à¯�" #: src/models/portals.js:138 msgid "Microphone" msgstr "ஒலிவாஙà¯�கி" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "உஙà¯�களà¯� ஒலிவாஙà¯�கியைகà¯� கேடà¯�க à®®à¯�டியà¯�à®®à¯�" #: src/models/portals.js:148 msgid "Speakers" msgstr "ஒலிபெரà¯�கà¯�கிகளà¯�" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "உஙà¯�களà¯� ஸà¯�பீகà¯�கரà¯�களிலà¯� ஒலியை இயகà¯�க à®®à¯�டியà¯�à®®à¯�" #: src/models/portals.js:158 msgid "Camera" msgstr "கேமரா" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "உஙà¯�களà¯� கேமரா மூலமà¯� வீடியோகà¯�களை பதிவà¯� செயà¯�யலாமà¯�" #: src/models/portals.js:168 msgid "Location" msgstr "இரà¯�பà¯�பிடமà¯�" #: src/models/portals.js:170 msgid "Can access your location" msgstr "உஙà¯�களà¯� இரà¯�பà¯�பிடதà¯�தை அணà¯�க à®®à¯�டியà¯�à®®à¯�" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "பயனà¯�பாடà¯�டிறà¯�கà¯� தேரà¯�நà¯�தெடà¯�கà¯�கபà¯�படà¯�ட ஆதாரஙà¯�களினà¯� படà¯�டியலà¯�" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "பிளாடà¯�பாகà¯� இனà¯� நிறà¯�வபà¯�படà¯�ட பதிபà¯�பாலà¯� ஆதரிகà¯�கபà¯�படவிலà¯�லை" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "அனà¯�மதி ஸà¯�டோரà¯� பதிபà¯�பà¯� 2 அலà¯�லதà¯� பà¯�தியதà¯� தேவை" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "போரà¯�டலà¯� தரவà¯� இனà¯�னà¯�à®®à¯� அமைகà¯�கபà¯�படவிலà¯�லை" #: src/models/shared.js:39 msgid "Network" msgstr "வலைபà¯�பினà¯�னலà¯�" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "இடை-செயலà¯�à®®à¯�றை தொடரà¯�பà¯�களà¯�" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "ஹோஸà¯�டà¯� சிஸà¯�டதà¯�தà¯�டனà¯� பகிரபà¯�படà¯�ட தà¯�ணை அமைபà¯�பà¯�களினà¯� படà¯�டியலà¯�" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11 சாளர அமைபà¯�பà¯�" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "வேலேணà¯�டà¯� சாளர அமைபà¯�பà¯�" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "X11 விணà¯�டோயிஙà¯� சிஸà¯�டதà¯�திறà¯�கà¯� வீழà¯�சà¯�சி திரà¯�à®®à¯�பவà¯�à®®à¯�" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "பலà¯�ஸà¯� ஆடியோ ஒலி சேவையகமà¯�" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus அமரà¯�வà¯� பேரà¯�நà¯�தà¯�" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus சிஸà¯�டமà¯� பஸà¯�" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "பாதà¯�காபà¯�பான ஷெலà¯� à®�ஜெனà¯�டà¯�" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "ஸà¯�மாரà¯�டà¯� காரà¯�டà¯�களà¯�" #: src/models/sockets.js:93 msgid "Printing system" msgstr "அசà¯�சிடà¯�à®®à¯� அமைபà¯�பà¯�" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-à®�ஜெனà¯�டà¯� கோபà¯�பகஙà¯�களà¯�" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "வேலணà¯�டà¯� சாகà¯�கெடà¯�டைபà¯� பெறà¯�à®™à¯�களà¯�" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "சாணà¯�டà¯�பாகà¯�ஸிலà¯� நனà¯�கà¯� அறியபà¯�படà¯�ட சாகà¯�கெடà¯�டà¯�களினà¯� படà¯�டியலà¯�" #: src/models/variables.js:40 msgid "Variables" msgstr "மாறிகளà¯�" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "எ.கா. GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "பயனà¯�பாடà¯�டிறà¯�கà¯� à®�à®±à¯�à®±à¯�மதி செயà¯�யபà¯�படà¯�ட மாறிகளினà¯� படà¯�டியலà¯�" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%B %e, %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "பதிபà¯�பà¯�" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "அடையாளஙà¯�காடà¯�டி" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "கடைசியாக பà¯�தà¯�பà¯�பிகà¯�கபà¯�படà¯�டதà¯�" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "இயகà¯�க நேரமà¯�" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "இதà¯� சரியான விரà¯�பà¯�பமà¯� அலà¯�ல" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "விவரஙà¯�களை காடà¯�டà¯� (_S)" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "மெனà¯�பொரà¯�ளà¯� மேலாளரிலà¯� பயனà¯�பாடà¯�டைகà¯� காடà¯�டà¯�" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "மெனà¯�பொரà¯�ளà¯� மேலாளரà¯� கிடைகà¯�கவிலà¯�லை" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "அனைதà¯�தà¯� பயனà¯�பாடà¯�களà¯�" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "எலà¯�லா பிளாடà¯�பாகà¯� பயனà¯�பாடà¯�களà¯�கà¯�கà¯�à®®à¯� பொரà¯�நà¯�தà¯�à®®à¯� மாறà¯�றஙà¯�களà¯�" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "பிளாடà¯�பாகà¯� பதிபà¯�பà¯�" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "போரà¯�டலà¯� பதிபà¯�பà¯�" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "பாதையை மாறà¯�à®±à¯�à®®à¯�" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "உதவி (_H)" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "ஆவணபà¯�படà¯�தà¯�தலà¯� (_D)" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "விசைபà¯�பலகை கà¯�à®±à¯�கà¯�கà¯�வழிகளà¯� (_K)" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "பிளாடà¯�சீலà¯� பறà¯�றி (_A)" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "உலகளவிலà¯� மாறà¯�றபà¯�படà¯�டதà¯�" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "பயனராலà¯� மாறà¯�றபà¯�படà¯�டதà¯�" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "இநà¯�த à®®à¯�à®±à¯�றிலà¯�à®®à¯� பாதை" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "இநà¯�த பாதை à®®à¯�கபà¯�பà¯� கோபà¯�பகதà¯�தà¯�டனà¯� தொடரà¯�பà¯�டையதà¯�" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "அனைதà¯�தà¯� அமைபà¯�பà¯� கடà¯�டமைபà¯�பà¯�களà¯�" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "அனைதà¯�தà¯� கணினி நூலகஙà¯�களà¯�, இயஙà¯�ககà¯�கூடியவை மறà¯�à®±à¯�à®®à¯� நிலையான தரவà¯�" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "அனைதà¯�தà¯� கணினி கோபà¯�பà¯�களà¯�" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "அனைதà¯�தà¯� பயனரà¯� கோபà¯�பà¯�களà¯�" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "டெஸà¯�கà¯�டாபà¯� அடைவà¯�" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "ஆவணஙà¯�களà¯� அடைவà¯�" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "பதிவிறகà¯�க அடைவà¯�" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "இசை அடைவà¯�" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "படஙà¯�களà¯� அடைவà¯�" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "பொதà¯� அடைவà¯�" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "காணொளிகளà¯� அடைவà¯�" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "வாரà¯�பà¯�பà¯�à®°à¯�கà¯�களà¯� அடைவà¯�" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "கடà¯�டமைபà¯�பà¯� அடைவà¯�" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "கேசà¯� அடைவà¯�" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "தரவà¯� அடைவà¯�" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "இயகà¯�க நேர அடைவà¯�" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "படிகà¯�க à®®à¯�டியà¯�à®®à¯�: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "மாறà¯�றியமைதà¯�தà¯� படிகà¯�க à®®à¯�டியà¯�à®®à¯�: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "உரà¯�வாகà¯�கலாமà¯�, திரà¯�தà¯�தலாமà¯� மறà¯�à®±à¯�à®®à¯� படிகà¯�கலாமà¯�: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "படிகà¯�க à®®à¯�டியவிலà¯�லை: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "மாறà¯�றவோ படிகà¯�கவோ à®®à¯�டியாதà¯�: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "உரà¯�வாகà¯�கவோ, மாறà¯�றவோ அலà¯�லதà¯� படிகà¯�கவோ à®®à¯�டியாதà¯�: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "அமைகà¯�கபà¯�படவிலà¯�லை" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "இயலà¯�பà¯�நிலை பாதைகளை அகறà¯�à®± à®®à¯�டியாதà¯�" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "மீடà¯�டமைகà¯�கவà¯�à®®à¯� (_R)" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "இநà¯�த பயனà¯�பாடà¯�டிலà¯� எநà¯�த மாறà¯�றமà¯�à®®à¯� செயà¯�யபà¯�படவிலà¯�லை" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "இநà¯�தபà¯� பயனà¯�பாடà¯�டà¯� அனà¯�மதிகளை மீடà¯�டமைகà¯�கவà¯�à®®à¯�" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", பிளாடà¯�சீலà¯� இலà¯� செயà¯�யபà¯�படாத மாறà¯�றஙà¯�களà¯� உடà¯�பட" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "பொதà¯�" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "நினைவூடà¯�டலà¯�களைகà¯� காடà¯�டà¯�" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "ஆவணஙà¯�களைகà¯� காடà¯�டà¯�" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "மெனà¯�வைகà¯� காடà¯�டà¯�" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "விசைபà¯�பலகை கà¯�à®±à¯�கà¯�கà¯�வழிகளà¯�" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "வெளியேறà¯�" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "வழிசெலà¯�தà¯�தலà¯�" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "இடதà¯�பà¯�றமà¯� நகரà¯�தà¯�தவà¯�à®®à¯�" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "மேலே நகரà¯�தà¯�தà¯�" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "வலதà¯�பà¯�றமà¯� நகரà¯�தà¯�தவà¯�à®®à¯�" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "கீழே இறஙà¯�கà¯�" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "பயனà¯�பாடà¯�களà¯�" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "கணà¯�டà¯�பிடி" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "அனà¯�மதிகளà¯�" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "நிலைமாறà¯�à®±à¯�" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "ஆவணபà¯�படà¯�தà¯�தலà¯�" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "அடà¯�தà¯�ததை தேடà¯�" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "à®®à¯�நà¯�தையதைகà¯� கணà¯�டà¯�பிடி" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "அனà¯�மதிகளà¯� மீடà¯�டமைகà¯�கபà¯�படà¯�டà¯�ளà¯�ளன" #: src/widgets/window.js:99 msgid "_Undo" msgstr "செயலà¯�தவிரà¯� (_U)" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "தவறான உளà¯�ளடகà¯�கமà¯� காரணமாக மாறà¯�றஙà¯�களை à®�à®±à¯�à®± à®®à¯�டியவிலà¯�லை" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Flatpak நிறà¯�வலà¯�களிலà¯� à®�à®±à¯�படà¯�ட மாறà¯�றஙà¯�களà¯� காரணமாக பà¯�தà¯�பà¯�பிகà¯�கபà¯�படà¯�டதà¯�" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "à®®à¯�தனà¯�மை படà¯�டியலà¯�" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "பயனà¯�பாடà¯�களà¯� எதà¯�வà¯�à®®à¯� கிடைகà¯�கவிலà¯�லை." Flatseal-2.4.1/po/tr.po000066400000000000000000000400621520337174300146630ustar00rootroot00000000000000# Turkish translations for Flatseal package. # Copyright (C) 2021-2024 Flatseal's COPYRIGHT HOLDER # This file is distributed under the same license as the Flatseal package. # # Ümit Solmaz , 2021. # Sabri Ünal , 2022, 2024. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2024-01-19 00:24+0300\n" "Last-Translator: Sabri Ünal \n" "Language-Team: Türkçe \n" "Language: tr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.4.2\n" "X-POOTLE-MTIME: 1434043811.000000\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Flatpak izinlerini yönet" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "yalıt;yalıtım;sanal ortam;üzerine yaz;üzerine yazma;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal, Flatpak uygulamalarınızdaki izinleri gözden geçirmek ve " "deÄŸiÅŸtirmek için kullanılan grafiksel bir yardımcı uygulamadır." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Flatseal ana penceresi" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal dosya sistemi izinlerini gösterirken" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal genel üzerine yazmaları gösterirken" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Son seçilen uygulama kimliÄŸi" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Bilinmeyen" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Bahsetmeler" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Sahibi" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Oturum veri-yolunda tanınmış adların listesi" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Sistem veri-yolunda tanınmış adların listesi" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU hızlandırma" #: src/models/devices.js:44 msgid "Input devices" msgstr "Girdi aygıtları" #: src/models/devices.js:51 msgid "Virtualization" msgstr "SanallaÅŸtırma" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Paylaşımlı bellek" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB cihazları" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Tüm aygıtlar (mesela video kamera)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Sanal alanda kullanılabilen aygıtların listesi" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "GeliÅŸtirme sistçaÄŸrı (mesela ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "DiÄŸer mimarilerden programlar" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Denetleyici Alan Ağı veri yolu" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Uygulama Başına Paylaşılan Bellek" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Uygulamaya sunulan özelliklerin listesi" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Tüm sistem dosyaları" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Tüm sistem kitaplıkları, yürütülebilir dosyalar ve statik veriler" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Tüm sistem yapılandırmaları" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Tüm kullanıcı dosyaları" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Uygulama için kullanılabilen dosya sistemi alt kümelerinin listesi" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "DiÄŸer dosyalar" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "örn: ~/games:ro, xdg-pictures, vs" #: src/models/persistent.js:37 msgid "Files" msgstr "Dosyalar" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "örn: .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Sanal alanda oluÅŸturulan anadizin-baÄŸ yolların listesi" #: src/models/portals.js:118 msgid "Background" msgstr "Arka plan" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Arka planda çalışabilir" #: src/models/portals.js:128 msgid "Notifications" msgstr "Bildirimler" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Bildirim gönderebilir" #: src/models/portals.js:138 msgid "Microphone" msgstr "Mikrofon" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Mikrofonunuzu dinleyebilir" #: src/models/portals.js:148 msgid "Speakers" msgstr "Hoparlörler" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Hoparlörlerinize sesler oynatabilir" #: src/models/portals.js:158 msgid "Camera" msgstr "Kamera" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Kameranızla video kaydedebilir" #: src/models/portals.js:168 msgid "Location" msgstr "Konum" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Konumunuza eriÅŸebilir" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Uygulamaya seçici olarak verilen kaynakların listesi" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Flatpak yüklü sürümü tarafından desteklenmiyor" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "İzin deposu sürüm 2 veya daha yenisini gerektirir" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Portal verileri henüz kurulmadı" #: src/models/shared.js:39 msgid "Network" msgstr "AÄŸ" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Sürecler-arası iletiÅŸimler" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Ana sistemle paylaşılan alt sistemlerin listesi" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11 pencere sistemi" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland pencere sistemi" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "X11 pencere sistemine geri dönüş" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio ses sunucu" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus oturum veri yolu" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus sistem veri yolu" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Güvenli Kabuk aracı" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Akıllı kartlar" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Yazdırma sistemi" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-Ajan dizinleri" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Sanal alanda bulunan kutuların tanınmış yuvaların listesi" #: src/models/variables.js:40 msgid "Variables" msgstr "DeÄŸiÅŸkenler" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "ör: GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Dışa aktarılan uygulama deÄŸiÅŸkenlerin listesi" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%B %e, %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Sürüm" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Tanımlayıcı" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Son Güncelleme" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Çalışma zamanı" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Bu geçerli bir seçenek deÄŸil" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Ayrıntıları Göster" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Bir yazılım yöneticisinde yazılımı göster" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Yazılım yöneticisi bulunamadı" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Tüm Uygulamalar" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Tüm Flatpak uygulamaları için geçerli olan deÄŸiÅŸiklikler" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak Sürümü" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Portal Sürümü" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Yolu DeÄŸiÅŸtirir" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Yardım" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_Belgeler" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Klavye Kısayolları" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "Flatseal _Hakkında" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Genel olarak deÄŸiÅŸtirildi" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Kullanıcı tarafından deÄŸiÅŸtirildi" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "bu tam yol" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "ev dizinine göre bu yol" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "tüm sistem yapılandırmaları" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "tüm sistem kitaplıkları, yürütülebilir dosyalar ve statik veriler" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "tüm sistem dosyaları" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "tüm kullanıcı dosyaları" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "masaüstü dizini" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "belgeler dizini" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "indirme dizini" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "müzik dizini" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "resimler dizini" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "genel dizin" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "video dizini" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "ÅŸablonlar dizini" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "yapılandırma dizini" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "önbellek dizini" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "veri dizini" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "çalışma zamanı dizini" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Okuyabilir: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "DeÄŸiÅŸtirebilir ve okuyabilir: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "OluÅŸturabilir, deÄŸiÅŸtirebilir ve okuyabilir: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Okuyamaz: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "DeÄŸiÅŸtiremez veya okuyamaz: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "OluÅŸturamaz, deÄŸiÅŸtiremez veya okuyamaz: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Ayarlanmamış" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Varsayılan yollar kaldırılamaz" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Sıfırla" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Bu uygulamada herhangi bir deÄŸiÅŸiklik yapılmadı" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Bu uygulama izinlerini sıfırla" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", Flatseal ile yapılmayan deÄŸiÅŸikler dahil" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Genel" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Anımsatıcıları göster" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Belgeleri göster" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Menüyü göster" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Klavye kısayolları" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Çık" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Gezinme" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Sola hareket et" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Yukarı hareket et" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "SaÄŸa hakeret et" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "AÅŸağı hareket et" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Uygulamalar" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Bul" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "İzinler" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Aç/Kapat" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Belgeler" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Sonraki sonucu bul" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Önceki sonucu bul" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "İzinler sıfırlandı" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Geri al" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Yanlış içerik nedeniyle deÄŸiÅŸiklikler yüklenemiyor" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Flatpak kurulumlarındaki deÄŸiÅŸiklikler nedeniyle yenilendi" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Ana Menü" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Hiçbir uygulama bulunamadı." Flatseal-2.4.1/po/uk.po000066400000000000000000000456521520337174300146670ustar00rootroot00000000000000# Ukrainian translation for flatseal. # Copyright (C) 2024 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # volkov , 2024. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2024-09-19 13:58+0300\n" "Last-Translator: volkov \n" "Language-Team: volkov \n" "Language: uk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 3.4.4\n" # Ð�е перекладати. #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Керуйте дозволами Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "seal;sandbox;override;флатÑ�іал;заклеїти;піÑ�очницÑ�;дозволи;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal — це графічна утиліта длÑ� переглÑ�ду та зміни дозволів ваших " "додатків Flatpak." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Головне вікно Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal показує дозволи файлової Ñ�иÑ�теми" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal показує глобальні перезапиÑ�и" # Ð�е перекладати. #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "Ідентифікатор додатку, Ñ�кий був обраний в оÑ�танній раз" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Ð�евідомо" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "СпілкуваннÑ�" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "ВолодіннÑ�" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "СпиÑ�ок відомих імен длÑ� шини Ñ�еÑ�Ñ�Ñ–Ñ—" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "СпиÑ�ок відомих імен длÑ� Ñ�иÑ�темної шини" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "ВідеоприÑ�кореннÑ�" #: src/models/devices.js:44 msgid "Input devices" msgstr "ПриÑ�трої введеннÑ�" #: src/models/devices.js:51 msgid "Virtualization" msgstr "ВіртуалізаціÑ�" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Спільна пам'Ñ�ть" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB-приÑ�трої" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "УÑ�Ñ– приÑ�трої (наприклад, веб-камера)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "СпиÑ�ок приÑ�троїв доÑ�тупних у піÑ�очниці" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "СиÑ�темні виклики длÑ� розробки (наприклад, ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Програм з інших архітектур" # Ð�е перекладати. #: src/models/features.js:51 msgid "Bluetooth" msgstr "" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Шина мережі контролерів" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Спільна пам'Ñ�ть додатка" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "СпиÑ�ок функцій доÑ�тупних додатку" #: src/models/filesystems.js:37 msgid "All system files" msgstr "УÑ�Ñ– Ñ�иÑ�темні файли" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "УÑ�Ñ– Ñ�иÑ�темні бібліотеки, виконувані файли та Ñ�татичні дані" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "УÑ�Ñ– Ñ�иÑ�темні налаштуваннÑ�" #: src/models/filesystems.js:58 msgid "All user files" msgstr "УÑ�Ñ– файли кориÑ�тувача" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "СпиÑ�ок уÑ�Ñ–Ñ… підÑ�иÑ�тем файлової Ñ�иÑ�теми доÑ�тупних додатку" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Інші файли" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "наприклад: ~/games:ro, xdg-pictures, тощо" #: src/models/persistent.js:37 msgid "Files" msgstr "Файли" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "наприклад, thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "СпиÑ�ок відноÑ�них шлÑ�хів до домашньої теки, Ñ�творених у піÑ�очниці" #: src/models/portals.js:118 msgid "Background" msgstr "Задній фон" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Може працювати у задньому фоні" #: src/models/portals.js:128 msgid "Notifications" msgstr "СповіщеннÑ�" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Може відправлÑ�ти Ñ�повіщеннÑ�" #: src/models/portals.js:138 msgid "Microphone" msgstr "Мікрофон" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Може проÑ�луховувати ваш мікрофон" #: src/models/portals.js:148 msgid "Speakers" msgstr "Динаміки" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Може програвати звуки через ваші динаміки" #: src/models/portals.js:158 msgid "Camera" msgstr "Камера" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Може запиÑ�увати відео за допомогою вашої камери" #: src/models/portals.js:168 msgid "Location" msgstr "РозташуваннÑ�" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Може отримати доÑ�туп до вашої геолокації" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "СпиÑ�ок реÑ�урÑ�ів, Ñ�кі були дозволені додатку" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Ð�е підтримуєтьÑ�Ñ� вÑ�тановленою верÑ�ією Flatpak" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "ПотребуєтьÑ�Ñ� дозвіл зберіганнÑ� верÑ�Ñ–Ñ� 2 або вище" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Дані порталу ще не були налаштовані" #: src/models/shared.js:39 msgid "Network" msgstr "Мережа" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "КомунікаціÑ� між процеÑ�ами" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "СпиÑ�ок підÑ�иÑ�тем, Ñ�пільних з Ñ�иÑ�темою-хоÑ�том" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "СиÑ�тема вікон X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "СиÑ�тема вікон Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Дозволити перемикатиÑ�Ñ� на Ñ�иÑ�тему вікон X11, Ñ�к резервний варіант" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Ð�удіо Ñ�ервер PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "Шина Ñ�еÑ�Ñ–Ñ— D-Bus" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "Шина Ñ�иÑ�теми D-Bus" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "SSH агент" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Смарт-карти" #: src/models/sockets.js:93 msgid "Printing system" msgstr "СиÑ�тема принтерів" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Теки GPG-агента" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Ð�аÑ�лідувати Ñ�окет Wayland" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "СпиÑ�ок відомих Ñ�окетів доÑ�тупних у піÑ�очниці" #: src/models/variables.js:40 msgid "Variables" msgstr "Змінні" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "наприклад: GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "СпиÑ�ок змінних, екÑ�портованих додатку" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B, %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "ВерÑ�Ñ–Ñ�" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Ідентифікатор" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "ОÑ�танній раз оновлено" # ДлÑ� україномовних перекладачів: Ñ� не знаю, Ñ�к переклаÑ�ти це так, щоб було зрозуміло, тому проÑ�то залишу Ñ�к "Рантайм" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Рантайм" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Це не правильний параметр" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Показати деталі" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Показати цей додаток у менеджері програм" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Ð�е знайдено менеджера програм" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "УÑ�Ñ– додатки" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Зміни, Ñ�кі Ñ�тоÑ�уютьÑ�Ñ� вÑ�Ñ–Ñ… додатків Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "ВерÑ�Ñ–Ñ� Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "ВерÑ�Ñ–Ñ� порталу" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "РозташуваннÑ� длÑ� змін" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Підтримка" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "_ДокументаціÑ�" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Клавіатурні Ñ�короченнÑ�" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_Про Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Змінено глобально" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Змінено кориÑ�тувачем" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "це абÑ�олютних шлÑ�Ñ…" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "цей шлÑ�Ñ… відноÑ�ний до теки \"Домівка\"" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "уÑ�Ñ– Ñ�иÑ�темні налаштуваннÑ�" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "уÑ�Ñ– Ñ�иÑ�темні бібліотеки, виконувані файли та Ñ�татичні дані" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "уÑ�Ñ– Ñ�иÑ�темні файли" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "уÑ�Ñ– дані кориÑ�тувача" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "тека робочого Ñ�толу" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "тека длÑ� документів" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "тека длÑ� завантажень" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "тека длÑ� музики" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "тека длÑ� зображень" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "тека длÑ� Ñ�пільного доÑ�тупу" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "тека длÑ� відео" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "тека длÑ� шаблонів" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "тека длÑ� конфігурацій" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "тека длÑ� кешу" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "тека длÑ� даних" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "тека длÑ� Ñ�ередовища виконаннÑ�" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Може читати: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Може змінювати Ñ– читати: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Може Ñ�творювати, змінювати Ñ– читати: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Ð�е може читати: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Ð�е може змінювати або читати: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Ð�е може Ñ�творювати, змінювати або читати: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Вимкнути" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Стандартні шлÑ�хи не можуть бути змінені" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "_Скинути" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Жодних змін не було прийнÑ�то до цього додатку" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Скинути дозволи додатку до Ñ�тандартних" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", включає зміни, Ñ�кі були зроблені не за допомогою Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Загальні" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Показати мнемоніку" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Показати документацію" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Показати меню" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Клавіатурні Ñ�короченнÑ�" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Вийти" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Ð�авігаціÑ�" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "РухатиÑ�Ñ� вліво" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "РухатиÑ�Ñ� вгору" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "РухатиÑ�Ñ� вправо" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "РухатиÑ�Ñ� вниз" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Додатки" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Знайти" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Дозволи" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Перемикнути" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "ДокументаціÑ�" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Знайти наÑ�тупне" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Знайти попереднє" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Дозволи були Ñ�кинуті до Ñ�тандартних" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_СкаÑ�увати дію" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Ð�е вдаєтьÑ�Ñ� завантажити зміну налаштувань через неправильний вміÑ�Ñ‚" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Оновлено через зміни в налаштуваннÑ�Ñ… Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Головне меню" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Ð�е знайдено жодного додатку." Flatseal-2.4.1/po/vi.po000066400000000000000000000406571520337174300146660ustar00rootroot00000000000000# Vietnamese translations for flatseal package. # Copyright (C) 2021 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # msgid "" msgstr "" "Project-Id-Version: flatseal\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2026-05-02 00:00+0700\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "Quản lý quyá»�n Flatpak" #: data/com.github.tchx84.Flatseal.desktop.in:14 msgid "seal;sandbox;override;" msgstr "seal;sandbox;override;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "" "Flatseal là tiện ích đồ há»�a để xem xét và sá»­a đổi quyá»�n từ các ứng dụng " "Flatpak cá»§a bạn." #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Cá»­a sổ chính cá»§a Flatseal" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal hiển thị quyá»�n hệ thống tệp" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal hiển thị ghi đè toàn cục" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "ID ứng dụng được chá»�n lần cuối" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "Không xác định" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "Giao tiếp" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "Sở hữu" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "Danh sách tên nổi tiếng trên bus phiên" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "Danh sách tên nổi tiếng trên bus hệ thống" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "Tăng tốc GPU" #: src/models/devices.js:44 msgid "Input devices" msgstr "Thiết bị đầu vào" #: src/models/devices.js:51 msgid "Virtualization" msgstr "Ảo hóa" #: src/models/devices.js:58 msgid "Shared memory" msgstr "Bá»™ nhá»› chia sẻ" #: src/models/devices.js:65 msgid "USB devices" msgstr "Thiết bị USB" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "Tất cả thiết bị (ví dụ: webcam)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "Danh sách thiết bị có sẵn trong môi trưá»�ng sandbox" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "Lá»�i gá»�i hệ thống phát triển (ví dụ: ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "Chương trình từ các kiến trúc khác" #: src/models/features.js:51 msgid "Bluetooth" msgstr "Bluetooth" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "Bus mạng CAN" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "Bá»™ nhá»› chia sẻ ứng dụng" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "Danh sách tính năng có sẵn cho ứng dụng" #: src/models/filesystems.js:37 msgid "All system files" msgstr "Tất cả tệp hệ thống" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "Tất cả thư viện hệ thống, tệp thá»±c thi và dữ liệu tÄ©nh" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "Tất cả cấu hình hệ thống" #: src/models/filesystems.js:58 msgid "All user files" msgstr "Tất cả tệp ngưá»�i dùng" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "Danh sách tập con hệ thống tệp có sẵn cho ứng dụng" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "Tệp khác" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "ví dụ: ~/games:ro, xdg-pictures, v.v." #: src/models/persistent.js:37 msgid "Files" msgstr "Tệp" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "ví dụ: .thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "Danh sách đưá»�ng dẫn tương đối vá»›i thư mục home được tạo trong sandbox" #: src/models/portals.js:118 msgid "Background" msgstr "Chạy ná»�n" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "Có thể chạy trong ná»�n" #: src/models/portals.js:128 msgid "Notifications" msgstr "Thông báo" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "Có thể gá»­i thông báo" #: src/models/portals.js:138 msgid "Microphone" msgstr "Micrô" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "Có thể nghe từ micrô cá»§a bạn" #: src/models/portals.js:148 msgid "Speakers" msgstr "Loa" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "Có thể phát âm thanh qua loa cá»§a bạn" #: src/models/portals.js:158 msgid "Camera" msgstr "Máy ảnh" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "Có thể ghi hình bằng máy ảnh cá»§a bạn" #: src/models/portals.js:168 msgid "Location" msgstr "Vị trí" #: src/models/portals.js:170 msgid "Can access your location" msgstr "Có thể truy cập vị trí cá»§a bạn" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "Danh sách tài nguyên được cấp chá»�n lá»�c cho ứng dụng" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "Không được há»— trợ bởi phiên bản Flatpak đã cài đặt" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "Yêu cầu kho quyá»�n phiên bản 2 trở lên" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "Dữ liệu portal chưa được thiết lập" #: src/models/shared.js:39 msgid "Network" msgstr "Mạng" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "Giao tiếp giữa các tiến trình" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "Danh sách hệ thống con được chia sẻ vá»›i hệ thống máy chá»§" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "Hệ thống cá»­a sổ X11" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Hệ thống cá»­a sổ Wayland" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "Dá»± phòng sang hệ thống cá»­a sổ X11" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "Máy chá»§ âm thanh PulseAudio" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus bus phiên" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus bus hệ thống" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "Tác nhân Secure Shell" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "Thẻ thông minh" #: src/models/sockets.js:93 msgid "Printing system" msgstr "Hệ thống in ấn" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "Thư mục GPG-Agent" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "Kế thừa socket Wayland" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "Danh sách socket nổi tiếng có sẵn trong sandbox" #: src/models/variables.js:40 msgid "Variables" msgstr "Biến" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "ví dụ: GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "Danh sách biến được xuất sang ứng dụng" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%e %B, %Y" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "Phiên bản" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "Mã định danh" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "Cập nhật lần cuối" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "Môi trưá»�ng chạy" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "Ä�ây không phải là tùy chá»�n hợp lệ" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "_Hiện chi tiết" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "Hiện ứng dụng trong trình quản lý phần má»�m" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "Không tìm thấy trình quản lý phần má»�m" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "Tất cả ứng dụng" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "Các thay đổi áp dụng cho tất cả ứng dụng Flatpak" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Phiên bản Flatpak" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Phiên bản Portal" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "Ä�ưá»�ng dẫn thay đổi" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "_Trợ giúp" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "Tài _liệu" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "_Phím tắt" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "_Giá»›i thiệu Flatseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "Ä�ã thay đổi toàn cục" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "Ä�ã thay đổi bởi ngưá»�i dùng" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "đưá»�ng dẫn tuyệt đối này" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "đưá»�ng dẫn này tương đối vá»›i thư mục home" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "tất cả cấu hình hệ thống" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "tất cả thư viện hệ thống, tệp thá»±c thi và dữ liệu tÄ©nh" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "tất cả tệp hệ thống" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "tất cả tệp ngưá»�i dùng" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "thư mục desktop" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "thư mục documents" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "thư mục download" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "thư mục music" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "thư mục pictures" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "thư mục public" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "thư mục videos" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "thư mục templates" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "thư mục config" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "thư mục cache" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "thư mục data" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "thư mục runtime" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "Có thể Ä‘á»�c: %s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "Có thể sá»­a đổi và Ä‘á»�c: %s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "Có thể tạo, sá»­a đổi và Ä‘á»�c: %s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "Không thể Ä‘á»�c: %s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "Không thể sá»­a đổi hoặc Ä‘á»�c: %s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "Không thể tạo, sá»­a đổi hoặc Ä‘á»�c: %s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "Bá»� thiết lập" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "Không thể xóa đưá»�ng dẫn mặc định" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "Ä�ặt _lại" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "Chưa có thay đổi nào được thá»±c hiện cho ứng dụng này" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "Ä�ặt lại quyá»�n cá»§a ứng dụng này" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ", bao gồm cả các thay đổi không được thá»±c hiện bằng Flatseal" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "Chung" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "Hiện bá»™ gợi nhá»›" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "Hiện tài liệu" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "Hiện menu" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "Phím tắt" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "Thoát" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "Ä�iá»�u hướng" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "Di chuyển sang trái" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "Di chuyển lên trên" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "Di chuyển sang phải" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "Di chuyển xuống dưới" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "Ứng dụng" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "Tìm" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "Quyá»�n" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "Bật/tắt" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "Tài liệu" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "Tìm tiếp" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "Tìm trước" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "Quyá»�n đã được đặt lại" #: src/widgets/window.js:99 msgid "_Undo" msgstr "_Hoàn tác" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "Không thể tải ghi đè do ná»™i dung không chính xác" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "Ä�ã làm má»›i do thay đổi trong các cài đặt Flatpak" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "Menu chính" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "Không tìm thấy ứng dụng nào." Flatseal-2.4.1/po/zh_CN.po000066400000000000000000000362411520337174300152430ustar00rootroot00000000000000# Chinese (China) translation for Flatseal. # Copyright (C) 2022 THE flatseal'S COPYRIGHT HOLDER # This file is distributed under the same license as the flatseal package. # Eric Zhang , 2022, 2023, 2024, 2025, 2026. # Dingzhong Chen , 2022, 2023. # msgid "" msgstr "" "Project-Id-Version: flatseal master\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-05-15 08:52-0300\n" "PO-Revision-Date: 2026-05-15 20:56+0800\n" "Last-Translator: Eric Zhang \n" "Language-Team: Chinese - China \n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Poedit 3.3.2\n" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.desktop.in:3 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:4 msgid "Flatseal" msgstr "Flatseal" #: data/com.github.tchx84.Flatseal.desktop.in:9 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:10 msgid "Manage Flatpak permissions" msgstr "管ç�† Flatpak æ�ƒé™�" #: data/com.github.tchx84.Flatseal.desktop.in:14 #, fuzzy msgid "seal;sandbox;override;" msgstr "seal;sandbox;å°�æ�¡;沙盒;" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:12 msgid "" "Flatseal is a graphical utility to review and modify permissions from your " "Flatpak applications." msgstr "Flatseal 是一个å�¯ä»¥æŸ¥çœ‹å¹¶ä¿®æ”¹ Flatpak 程åº�æ�ƒé™�的图形工具。" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:21 msgid "The Flatseal main window" msgstr "Flatseal 主窗å�£" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:25 msgid "Flatseal showing filesystem permissions" msgstr "Flatseal 正在展示文件系统æ�ƒé™�" #: data/com.github.tchx84.Flatseal.metainfo.xml.in:29 msgid "Flatseal showing global overrides" msgstr "Flatseal 正在展示全局覆盖" #. TRANSLATORS: Don't translate this text #: data/com.github.tchx84.Flatseal.metainfo.xml.in:35 #: data/com.github.tchx84.Flatseal.metainfo.xml.in:37 msgid "Martin Abente Lahaye" msgstr "Martin Abente Lahaye" #: data/com.github.tchx84.Flatseal.gschema.xml:15 msgid "Application ID that was last selected" msgstr "最å�Žæ‰€é€‰åº”用程åº�çš„ ID" #: src/models/applications.js:237 src/models/applications.js:298 #: src/models/applications.js:299 src/models/applications.js:300 #: src/widgets/globalInfoViewer.ui:105 src/widgets/globalInfoViewer.ui:119 #: src/widgets/globalInfoViewer.ui:133 msgid "Unknown" msgstr "未知" #: src/models/sessionBus.js:38 src/models/systemBus.js:37 msgid "Talks" msgstr "调用" #: src/models/sessionBus.js:45 src/models/systemBus.js:44 msgid "Owns" msgstr "拥有" #: src/models/sessionBus.js:82 msgid "List of well-known names on the session bus" msgstr "会è¯�总线上已知å��ç§°" #: src/models/systemBus.js:73 msgid "List of well-known names on the system bus" msgstr "系统总线上已知å��ç§°" #: src/models/devices.js:37 msgid "GPU acceleration" msgstr "GPU 加速" #: src/models/devices.js:44 msgid "Input devices" msgstr "输入设备" #: src/models/devices.js:51 msgid "Virtualization" msgstr "虚拟化" #: src/models/devices.js:58 msgid "Shared memory" msgstr "共享内存" #: src/models/devices.js:65 msgid "USB devices" msgstr "USB 设备" #: src/models/devices.js:72 msgid "All devices (e.g. webcam)" msgstr "全部设备(如:摄åƒ�头)" #: src/models/devices.js:97 msgid "List of devices available in the sandbox" msgstr "沙盒中å�¯æ��供的设备" #: src/models/features.js:37 msgid "Development syscalls (e.g. ptrace)" msgstr "å¼€å�‘者系统调用(如:ptrace)" #: src/models/features.js:44 msgid "Programs from other architectures" msgstr "æ�¥è‡ªå…¶ä»–架构的程åº�" #: src/models/features.js:51 msgid "Bluetooth" msgstr "è“�牙" #: src/models/features.js:58 msgid "Controller Area Network bus" msgstr "控制器局域网总线" #: src/models/features.js:65 msgid "Application Shared Memory" msgstr "程åº�共享内存" #: src/models/features.js:90 msgid "List of features available to the application" msgstr "程åº�å�¯æ��供的功能" #: src/models/filesystems.js:37 msgid "All system files" msgstr "全部系统文件" #: src/models/filesystems.js:44 msgid "All system libraries, executables and static data" msgstr "全部系统库ã€�å�¯æ‰§è¡Œæ–‡ä»¶å’Œé�™æ€�æ•°æ�®" #: src/models/filesystems.js:51 msgid "All system configurations" msgstr "全部系统é…�置文件" #: src/models/filesystems.js:58 msgid "All user files" msgstr "全部用户文件" #: src/models/filesystems.js:83 src/models/filesystemsOther.js:64 msgid "List of filesystem subsets available to the application" msgstr "程åº�å�¯ä»¥è®¿é—®çš„æ–‡ä»¶ç³»ç»Ÿéƒ¨åˆ†" #: src/models/filesystemsOther.js:39 msgid "Other files" msgstr "其他文件" #: src/models/filesystemsOther.js:42 msgid "e.g. ~/games:ro, xdg-pictures, etc" msgstr "如:~/games:roã€�xdg-pictures ç­‰" #: src/models/persistent.js:37 msgid "Files" msgstr "文件" #: src/models/persistent.js:40 msgid "e.g. .thunderbird" msgstr "如:.thunderbird" #: src/models/persistent.js:62 msgid "List of homedir-relative paths created in the sandbox" msgstr "沙盒在主目录所创建的路径" #: src/models/portals.js:118 msgid "Background" msgstr "å�Žå�°" #: src/models/portals.js:120 msgid "Can run in the background" msgstr "å…�许在å�Žå�°è¿�行" #: src/models/portals.js:128 msgid "Notifications" msgstr "通知" #: src/models/portals.js:130 msgid "Can send notifications" msgstr "å…�许å�‘é€�通知" #: src/models/portals.js:138 msgid "Microphone" msgstr "麦克风" #: src/models/portals.js:140 msgid "Can listen to your microphone" msgstr "å…�许从麦克风收音" #: src/models/portals.js:148 msgid "Speakers" msgstr "扬声器" #: src/models/portals.js:150 msgid "Can play sounds to your speakers" msgstr "å…�许从扬声器播放声音" #: src/models/portals.js:158 msgid "Camera" msgstr "æ‘„åƒ�头" #: src/models/portals.js:160 msgid "Can record videos with your camera" msgstr "å…�许使用摄åƒ�头录åƒ�" #: src/models/portals.js:168 msgid "Location" msgstr "定ä½�" #: src/models/portals.js:170 msgid "Can access your location" msgstr "å…�许访问ä½�置信æ�¯" #: src/models/portals.js:216 msgid "List of resources selectively granted to the application" msgstr "程åº�å�¯ä»¥è®¿é—®çš„资æº�" #: src/models/portals.js:256 src/widgets/permissionEntryRow.js:58 #: src/widgets/permissionSwitchRow.js:43 msgid "Not supported by the installed version of Flatpak" msgstr "ä¸�支æŒ�所安装 Flatpak 的版本" #: src/models/portals.js:264 msgid "Requires permission store version 2 or newer" msgstr "需è¦�存储æ�ƒé™�版本 2 å�Šä»¥ä¸Š" #: src/models/portals.js:272 msgid "Portal data has not been set up yet" msgstr "门户(portal)数æ�®è¿˜æœªé…�ç½®" #: src/models/shared.js:39 msgid "Network" msgstr "网络" #: src/models/shared.js:46 msgid "Inter-process communications" msgstr "进程间通信" #: src/models/shared.js:79 msgid "List of subsystems shared with the host system" msgstr "与主机所共享的å­�系统" #: src/models/sockets.js:37 msgid "X11 windowing system" msgstr "X11 窗å�£ç³»ç»Ÿ" #: src/models/sockets.js:44 msgid "Wayland windowing system" msgstr "Wayland 窗å�£ç³»ç»Ÿ" #: src/models/sockets.js:51 msgid "Fallback to X11 windowing system" msgstr "回退到 X11 窗å�£ç³»ç»Ÿ" #: src/models/sockets.js:58 msgid "PulseAudio sound server" msgstr "PulseAudio 音频æœ�务器" #: src/models/sockets.js:65 msgid "D-Bus session bus" msgstr "D-Bus 会è¯�总线" #: src/models/sockets.js:72 msgid "D-Bus system bus" msgstr "D-Bus 系统总线" #: src/models/sockets.js:79 msgid "Secure Shell agent" msgstr "SSH 代ç�†" #: src/models/sockets.js:86 msgid "Smart cards" msgstr "智能å�¡" #: src/models/sockets.js:93 msgid "Printing system" msgstr "打å�°ç³»ç»Ÿ" #: src/models/sockets.js:100 msgid "GPG-Agent directories" msgstr "GPG-Agent 目录" #: src/models/sockets.js:107 msgid "Inherit Wayland socket" msgstr "继承 Wayland 接å�£" #: src/models/sockets.js:132 msgid "List of well-known sockets available in the sandbox" msgstr "沙盒å�¯æ��供的接å�£" #: src/models/variables.js:40 msgid "Variables" msgstr "环境å�˜é‡�" #: src/models/variables.js:43 msgid "e.g. GTK_DEBUG=interactive" msgstr "如:GTK_DEBUG=interactive" #: src/models/variables.js:73 msgid "List of variables exported to the application" msgstr "导出到程åº�的环境å�˜é‡�" #. TRANSLATORS: , #: src/widgets/appInfoViewer.js:61 msgid "%B %e, %Y" msgstr "%Yå¹´%-m月%-eæ—¥" #: src/widgets/appInfoViewer.ui:46 msgid "Version" msgstr "版本" #: src/widgets/appInfoViewer.ui:59 msgid "Identifier" msgstr "标识符" #: src/widgets/appInfoViewer.ui:72 msgid "Last Updated" msgstr "最å�Žæ›´æ–°" #: src/widgets/appInfoViewer.ui:85 msgid "Runtime" msgstr "è¿�行环境" #: src/widgets/busNameRow.js:35 src/widgets/pathRow.js:73 #: src/widgets/relativePathRow.js:33 src/widgets/variableRow.js:33 msgid "This is not a valid option" msgstr "é�žæ³•选项" #: src/widgets/detailsButton.js:60 msgid "_Show Details" msgstr "显示细节(_S)" #: src/widgets/detailsButton.js:107 msgid "Show application in a software manager" msgstr "在软件管ç�†å™¨ä¸­æ˜¾ç¤ºç¨‹åº�" #: src/widgets/detailsButton.js:109 msgid "No software manager found" msgstr "没有找到软件管ç�†å™¨" #: src/widgets/globalRow.ui:7 src/widgets/globalInfoViewer.ui:21 msgid "All Applications" msgstr "全部应用程åº�" #: src/widgets/globalInfoViewer.ui:32 msgid "Changes that apply to all Flatpak applications" msgstr "适用于所有 Flatpak 应用程åº�的更改" #: src/widgets/globalInfoViewer.ui:55 msgid "Flatpak Version" msgstr "Flatpak 版本" #: src/widgets/globalInfoViewer.ui:68 msgid "Portal Version" msgstr "Portal 版本" #: src/widgets/globalInfoViewer.ui:81 msgid "Changes Path" msgstr "更改项路径" #: src/widgets/menu.ui:7 msgid "_Help" msgstr "帮助(_H)" #: src/widgets/menu.ui:11 msgid "_Documentation" msgstr "文档(_D)" #: src/widgets/menu.ui:15 msgid "_Keyboard Shortcuts" msgstr "å¿«æ�·é”®(_K)" #: src/widgets/menu.ui:19 msgid "_About Flatseal" msgstr "关于 Fl_atseal" #: src/widgets/overrideStatusIcon.js:25 msgid "Changed globally" msgstr "全局更改" #: src/widgets/overrideStatusIcon.js:26 msgid "Changed by the user" msgstr "按用户更改" #: src/widgets/pathRow.js:27 msgid "this absolute path" msgstr "ç»�对路径" #: src/widgets/pathRow.js:28 msgid "this path relative to the home directory" msgstr "相对于主目录的路径" #: src/widgets/pathRow.js:29 msgid "all system configurations" msgstr "全部系统é…�置文件" #: src/widgets/pathRow.js:30 msgid "all system libraries, executables and static data" msgstr "全部系统库ã€�å�¯æ‰§è¡Œæ–‡ä»¶å’Œé�™æ€�æ•°æ�®" #: src/widgets/pathRow.js:31 msgid "all system files" msgstr "全部系统文件" #: src/widgets/pathRow.js:32 msgid "all user files" msgstr "全部用户文件" #: src/widgets/pathRow.js:33 msgid "the desktop directory" msgstr "桌é�¢ç›®å½•" #: src/widgets/pathRow.js:34 msgid "the documents directory" msgstr "文档目录" #: src/widgets/pathRow.js:35 msgid "the download directory" msgstr "下载目录" #: src/widgets/pathRow.js:36 msgid "the music directory" msgstr "音ä¹�目录" #: src/widgets/pathRow.js:37 msgid "the pictures directory" msgstr "图片目录" #: src/widgets/pathRow.js:38 msgid "the public directory" msgstr "公共目录" #: src/widgets/pathRow.js:39 msgid "the videos directory" msgstr "视频目录" #: src/widgets/pathRow.js:40 msgid "the templates directory" msgstr "模æ�¿ç›®å½•" #: src/widgets/pathRow.js:41 msgid "the config directory" msgstr "é…�置目录" #: src/widgets/pathRow.js:42 msgid "the cache directory" msgstr "缓存目录" #: src/widgets/pathRow.js:43 msgid "the data directory" msgstr "æ•°æ�®ç›®å½•" #: src/widgets/pathRow.js:44 msgid "the runtime directory" msgstr "è¿�行环境目录" #: src/widgets/pathRow.js:59 #, javascript-format msgid "Can read: %s" msgstr "å�¯ä»¥è¯»å�–:%s" #: src/widgets/pathRow.js:60 #, javascript-format msgid "Can modify and read: %s" msgstr "å�¯ä»¥è¯»å�–和修改:%s" #: src/widgets/pathRow.js:61 #, javascript-format msgid "Can create, modify and read: %s" msgstr "å�¯ä»¥åˆ›å»ºã€�读å�–和修改:%s" #: src/widgets/pathRow.js:67 #, javascript-format msgid "Can't read: %s" msgstr "ä¸�å�¯ä»¥è¯»å�–:%s" #: src/widgets/pathRow.js:68 #, javascript-format msgid "Can't modify or read: %s" msgstr "ä¸�å�¯ä»¥è¯»å�–和修改:%s" #: src/widgets/pathRow.js:69 src/widgets/pathRow.js:70 #, javascript-format msgid "Can't create, modify or read: %s" msgstr "ä¸�å�¯ä»¥åˆ›å»ºã€�读å�–和修改:%s" #: src/widgets/permissionPortalRow.ui:11 msgid "Unset" msgstr "å�–消设定" #: src/widgets/relativePathRow.js:84 msgid "Default paths can't be removed" msgstr "无法移除默认路径" #: src/widgets/resetButton.js:37 src/widgets/resetButton.js:55 #: src/widgets/resetButton.js:62 src/widgets/window.js:106 msgid "_Reset" msgstr "é‡�ç½®(_R)" #: src/widgets/resetButton.js:65 msgid "No changes made to this application" msgstr "未对程åº�å�šä»»ä½•更改" #: src/widgets/resetButton.js:68 msgid "Reset this application permissions" msgstr "é‡�置程åº�æ�ƒé™�" #: src/widgets/resetButton.js:70 msgid ", including changes not made with Flatseal" msgstr ",包括未通过 Flatseal 修改的æ�ƒé™�" #: src/widgets/shortcutsWindow.ui:7 msgid "General" msgstr "通用" #: src/widgets/shortcutsWindow.ui:11 msgid "Show mnemonics" msgstr "显示助记键" #: src/widgets/shortcutsWindow.ui:17 msgid "Show documentation" msgstr "显示文档" #: src/widgets/shortcutsWindow.ui:23 msgid "Show menu" msgstr "显示è�œå�•" #: src/widgets/shortcutsWindow.ui:29 msgid "Keyboard shortcuts" msgstr "å¿«æ�·é”®" #: src/widgets/shortcutsWindow.ui:35 msgid "Quit" msgstr "退出" #: src/widgets/shortcutsWindow.ui:42 msgid "Navigation" msgstr "导航" #: src/widgets/shortcutsWindow.ui:46 msgid "Move left" msgstr "å�‘左移动" #: src/widgets/shortcutsWindow.ui:52 msgid "Move up" msgstr "å�‘上移动" #: src/widgets/shortcutsWindow.ui:58 msgid "Move right" msgstr "å�‘å�³ç§»åЍ" #: src/widgets/shortcutsWindow.ui:64 msgid "Move down" msgstr "å�‘下移动" #: src/widgets/shortcutsWindow.ui:71 src/widgets/window.ui:21 msgid "Applications" msgstr "应用程åº�" #: src/widgets/shortcutsWindow.ui:75 src/widgets/shortcutsWindow.ui:97 msgid "Find" msgstr "查找" #: src/widgets/shortcutsWindow.ui:82 src/widgets/window.ui:95 msgid "Permissions" msgstr "æ�ƒé™�" #: src/widgets/shortcutsWindow.ui:86 msgid "Toggle" msgstr "打开/关闭" #: src/widgets/shortcutsWindow.ui:93 msgid "Documentation" msgstr "文档" #: src/widgets/shortcutsWindow.ui:103 msgid "Find next" msgstr "查找下一个" #: src/widgets/shortcutsWindow.ui:109 msgid "Find previous" msgstr "查找上一个" #: src/widgets/window.js:98 msgid "Permissions have been reset" msgstr "æ�ƒé™�已被é‡�ç½®" #: src/widgets/window.js:99 msgid "_Undo" msgstr "撤消(_U)" #: src/widgets/window.js:105 msgid "Cannot load overrides due to incorrect contents" msgstr "由于内容ä¸�正确而无法加载更改" #: src/widgets/window.js:112 msgid "Refreshed due to changes in Flatpak installations" msgstr "由于 Flatpak 安装的å�˜æ›´è€Œåˆ·æ–°" #: src/widgets/window.ui:31 msgid "Main Menu" msgstr "主è�œå�•" #: src/widgets/window.ui:75 msgid "No applications found." msgstr "没有找到应用程åº�。" Flatseal-2.4.1/screenshots/000077500000000000000000000000001520337174300156165ustar00rootroot00000000000000Flatseal-2.4.1/screenshots/en/000077500000000000000000000000001520337174300162205ustar00rootroot00000000000000Flatseal-2.4.1/screenshots/en/1.png000066400000000000000000003655351520337174300171070ustar00rootroot00000000000000‰PNG  IHDRb6½‹%ðsBIT|dˆtEXtSoftwaregnome-screenshotï¿>-tEXtCreation TimeSat 13 Apr 2024 09:28:17 AM -04Cƒž IDATxœìÝyx“UÞ>ð;ûB÷Ú]ÁÒ"e¯lDÁÅ™WÁ™ÁQ\ÀŸŽ(Êà2 ( /ˆ Š(ˆ e)–² eqŠZ t¡{º¥Ù~tò˜¦Iš´I›¶÷çºrµy–óœ¤kî|Ï9‘WµvÚ0>wDDDDDDÔ‘™Z»mÃûøÜ5ƒ6Ôáó@DDDDDDäy>œé¨DG}ÜDDDDDDDÞ¤Ã3)�èH�•ˆˆˆˆˆˆ¨­é¡LG':Âc$""""""j/Úu Ó^CŠöú¸ˆˆˆˆˆˆˆ:’vÊ´·À¢½="""""""jG�L{ .ÚËã """""""ûÚ| ÓŒ–z ͹N{xž‰ˆˆˆˆˆ¨ýkNÐÑR!I›cÚr@à‰¾;Óf[~ΈˆˆˆˆˆˆÜÍ™`ÄáI› dÚb¨àÎ>;j«->7DDDDDDDÞÂQPâÎ¥M2m-lpGíµÑÖž """"""¢¶Ä^`⎠¥Í„1m)|ðÄ-méñµžeÚDÓV‚ˆ¦öÓÖyœt—ˆˆˆˆˆˆÈ½Ü 4µ=¯c¼=Xh�Æ]ω·?·DDDDDDDޏ+Ôp¶�ÈxsX஦±v\½Ž7?gDDDDDDD-ÍÕУ±ã­÷·«0Æ[C…¦ôË•ÆÕêo}žˆˆˆˆˆˆˆ¼‰ÉꣳÇ;³¯)ÁŠ×…1Þ047„iN#jâõ‰ˆˆˆˆˆˆÈ6\¯‚±·¯Í‡1Þ:4w˜PSVG7ñZDDDDDDDô;gcÚhnuŒ×„1Þ.4'„q5€qTùâÎU•¼éù%""""""r–»æiqt®£Jg¶·É0Æ›‚WúÒÔÆ^õ‹+Ù¼é9#""""""jm®„6ööÙª’qwà Ƃ;Cggœæ,ƒMDDDDDDÔ4¶ì´+U/Î2m6Œñ†P¡¥C˜Æ*\š²R’7<�DDDDDDDžÖ”У±Šëûí:ŒiíÁ“!Œ+Œ§æŒqgDDDDDDDžæŽ�ÂÙ9a\ dÚEÓÚAS‚˜æ†0Öí83Œ'C""""""¢¶Æ•áFö[3Í cĸñÚΆ0Ö•-ö>wu¸’­¶‰ˆˆˆˆˆˆ¨Ž½�\©z±È4VIc¹ÍëÃ˜Ö Z+„ÁùJ±�} cˆˆˆˆˆˆˆ~g/$i¬šÅ2·U–©¶§¥‚w†ÎÎcùÑ^#¶ñQl£ 0DDDDDDD¶ÙªRÿ÷£u!Œ9(1¢~Œåyö e‚{!�[µT¨àÊÜ0î’d+„± \€ßƒ±Å> êB*[ÁŒ+�‡ˆˆˆˆˆˆ¨=³UcüïM@‡ºpÅd±Ý|3kпÏcoh“­ëºkˆ’ǃošä¬æ„0–%ÿý\@þõ×_�>|øR©´¯Édò3™L—ˆZHyy9ºuëÖÚÝ """"êpD"‘@¡^¯Ï(..>öÙgŸíå•W®¨E](cùÚ݈º×ã–­+c׆(y½–¨ìpå¶B�ƪaÄ6ö[-öBÉo"ª¯¿þzTRRÒëF£±;˜LmòëIDJKKÕÚÝ """""555;>þøã5¯¼òÊeÕ¨ P ÿ½YWÄXÎ%cY%cYÕb=±¯õ~[/è­‡B9âÑ@À›‚GÃ’­‚d½Ý:|±¼o¾I,nªœœœ%*•jÀ†¨=`CDDDDä]D"‘á·ß~[اOŸ¯QÆP?Œ1ß,‡ Yßì‡1¶K^3<ÉÓÃn\ z\Y)ÉÖ1¶BÀ~%Œ€º  àc•J5Éd21„!""""""ò“É$éÙ³çâëׯO FÃ×çŽ^ËÛ*Ðp¤©ùBSŽuY[˜ÿ¤±jËmÖŸ[~ÑÌ_\!„ÉÉÉY,‹G2€!""""""ò¼ÐÐЗ.\¸0 õÃóGËâ 3G¯÷-·¹Ô´*o b\퇣!L¶Ò2Ë!I"ÔMÊ;Â\ CDDDDDDD-ãÖ[o}kéÒ¥1ä¨_8a]cë5¾%WC¯È@<�9Û¾«“ôÚJ¾ìÍ #BÝêP–)›Oqqñ.£ÑØ�A Qûãì1ÕÕÕÐjµÐëõ-Ð+ò$©T …B•JÕÚ]!""¢ ×ë¡×ëa4º2ÿjû!‹!•J!•¶Ý…�kjjvøùù½ ¿Ïc@Ý’×–K]Ûš3¨?WŒ'&íõXXàÉ4È!�u¶R°ÆŽ±.o’nß¾}C¢ŽË`0 ´´••• aÚ ½^�ÊÊJ”––Â`0´vwˆˆˆÈCL&jjjP[[ÛaC0�¨­­EMMM›�ëT©TNzûí·£PW8a=­ˆYS2[Ç4…Ç W¼¡,§©®±±a–•3–ÿÈGŒñD¯IDí€F£aÓNéõzh4šÖîyˆV«íÐŒ5£Ñ­VÛÚÝh²©S§ŽFÝð$Ë×ì@ý`íÍãŠVŸCÆ›ƒWŸëÌú g¾/‘Édñm55$¢æ©®®fÓÎéõzTWW·v7ˆˆˆÈÍ:òP$GŒFc›ýÿ688x0~ÅbY`akÂÞ¦d®lo1ž bšûÀlÍŠlk‚žÆJ�lÍ#5™L~ÍìµQmùr¿ÎDDDíO[ ZB[}n¤RioÔ M²žïÕÞJI€ý\ÀÖªIîÌ&ܦµgöñÔ¸-[_8á‹j2™¼¡ˆˆZA[ý#E®á×™ˆˆ¨ýa5Œ}î|n ´Z-t: ƒÐ¶X,†D"�L&ƒB¡€D"i¤%§„ añ„™9”±žP„æO¤ëŽ6š¬µƒ{[–ÊÖ:áöÖ·Þ×êeHDDDDDDDÞÄ`0 ªªÊne±Ñh„Ñh„N§CUU Ôju³“Éd¹¸l|nþh²¸o²Úf²:ÎR«.öxkÓTÖ!‹õ3†0DDDDDDDjjjPQQáÒ9Z­Z­>>>P*•Íí‚õkvëJ¯ Tšª­ Ñqf¬—½ñd¶Æ‹uXUUU.‡0–***PUUÕœ.8zÍn=i¯­ó¬?÷zž¨ˆqö pæ8GÇ8š°ÇÑìÈnû�;w;vìÀÙ³gQ^^ôíÛ“&MB\\œ».CDDDDDDäv555Í QÔ…9b±¸©•1Ž^§[A²®ŠqT%ãL�³U6n¯Æií¡I�ÍcæLÖØ5Ü ¬\¹;w½°°û÷ïÇþýû1iÒ$Ìš5Ë]¹�Á`hV%ŒµŠŠ Èd²¦¾v¦°Âúx[ሀõÌÅ^7wLk1¶4umpGËX[Wjs£P(0eÊÜyç� EAA’““ñÅ_`ÇŽ0™L˜;w®».ëÕ6oÞŒµk×/^ŒÄÄD�\gâĉP©TøòË/QUU…‡~°mÛ6¨T*·_¯%®ÑÞ�7®IçíÝ»×Í=q¯êêjlß¾‡B~~>T*¢££ñè£�¢ÿþx衇 T*ñÅ_´ZŸ}öYdffD"BBBЭ[7Œ?£G�öøõ«««1yòdu¿#T*•W|¸E®©T*�èèh(Šf··dÉŒ7Nxáê‰kPû`4ñÖ[oaÓ¦M(//G\\:uê„3gÎxå²É£F�BRR�žžŽ¥K—bÑ¢E.µ±téRL˜0—/_vú…B�¨¨(DEEñ燨šŒM›6¡¤¤ÄãײǼDµ»iµZ Ö«M;ÅÙ×쎦(i3¼±"Æ�ÜþEùæ›oS¦LAll¬Ícbcc1yòdlذß|óM»Ÿ/æúõë¸té&Nœˆ}ûö!55ƒÁãòÄb1V®\Ùæ¯ÑÞy{eKS\ºt §OŸF¿~ý°téRˆDu¿fjjj —Ë[¹w ýõ¯E§N�/^Ä›o¾‰ÔÔTüôÓO¸ë®»Ü¼y111xòÉ'që­·bãÆ�8qâ €¤¤$<õÔS�ËåX²d öïßøóŸÿ ‰D‚~øÁî5¾øâ á‘‘‘˜:u*†Z¯_cÆŒ�R©ÄáÇ¡Óépÿý÷cÚ´iÂ1iiiøôÓOqõêU¨ÕjDEEáoû[sJù¨…¨ ^ôz=d24˜œL¯×cõêÕ8|ø0ôz=î»ï><ñÄÂ~£Ñˆ-[¶`ÿþý¸yó&ºwïŽ'Ÿ|ƒP dddà½÷ÞC||<´Z-{ì1èt:|òÉ' ƒF£Á#�<‚¾}ûbÙ²e�ö½W¯^˜1cÞ}÷]ìÞ½[bjjj°~ýz¤¥¥¡²²ñññ˜5kºté‚¥K— ?ç³gφD"Á®]»PVV†M›6áäÉ“(**‚¿¿?F�…©S§ �ÔC=¹\Ž-[¶ØìÏÑ£GñÙgŸ!''jµ‘‘‘xíµ×àãããÂW„ˆ¼™Z­Fpp0ÊÊÊÐ¥K@qq1î½÷^ÄÇÇ C›—/_ŽÍ›7cÙ²e5jÆŒ…Ba÷Ÿýªª*,_¾‡†Z­†ŸŸ_ƒcª««ñÑG!%%HHHÀ¼yó„0h̘1;v,ÂÃñsçN„‡‡cõêÕz&ˆÈ›………!77W¨ÜÓëõ8}ú4®]»†ÚÚZtéÒþG¹~ý:ÒÓÓQVV™L†€€Œ9r¹ÜṇFVV`×®]‹Åxì±ÇZüñêt:‡û£¢¢pþüyÌŸ?ÿøÇ? ‰ðꫯ"33Ý»woVÛÍàJ6àUC‘¬µÖÐ$G3"7§=W‡,¹¬¼¼êð8óØÂ–(mkm„Z­Æí·ßŽ;íáI_|ñÎ�;‡¾}û¢  |ðŽ9âò1Ž|øá‡X·nôz=Q]] µZ ¹\Ž´´4DDD`Ô¨Q0�øòË/ñÙgŸ¨ºa6|øp<ù䓯±~ýzH¥R 4—.]Âk¯½†³gÏÖ;n÷îÝHMME×®]QVV†O?ýG�äççãÍ7ßD~~>î¿ÿ~ >J¥’!LÑ»wo( ddd`ÆŒøßÿý_\½zµÁq�©©©Gii)6mÚ„cÇŽ ûW­Z… 6@"‘`àÀ�ÈÌÌÄßþö7œ;w„Ÿ'óýsçΡ²²µµµ8qâàìÙ³0™L2dˆÓý7·›““#l[²d vî܉=z 11'NœÀ¢E‹`2™0bÄá¸aÆáñÇP7žúèÑ£ˆˆˆÀˆ#`2™°mÛ6§ç)((ÀßÿþwäççãÞ{ïŰaàT*µ‡¾}ûðÔSOáÚµk˜1cÄb÷ýë¹páBìܹ!!!¸å–[páÂ…ǼöÚkضmzõê…‘#GâÈ‘#˜?~½!R»víÂÚµk¡R©Ð«W/·õ�ˆÚŽÒÒR!1¿ŽKIIAFFÑ­[7\¿~‡TVVâàÁƒ¨¬¬D¯^½Ð½{wH¥Rá�(GçFFF ×íÞ½;úöíÛ‚�ôw� Z²d """�••…ùóçcþüùÈÌÌD—.]°xñâfµí${¯í››8»Ý£ÚBEŒWñóóCQQ a÷¸‚‚áøö,''—/_ÆèÑ£!•J1dȈÅb>|sæÌ†l˜}òÉ'�J¥HNNÆÛo¿�o¾ùFxQèÊ1¶Ü¼y»víB×®]±fÍšCDÌ¡ äææbêÔ©8~ü8¦OŸŽ‘#Gb̘1Ø¿?¦N�Š=z8¼Ftt4V­Z©TŠÝ»wãƒ>À—_~Ùàéúõë!“ÉðÙgŸaýúõ8sæ †ŠœœèõzôíÛ3fÌ€TÚ~Ûãd½ÁÁÁxë­·°fÍdffbë֭ضm’’’0kÖ¬z嬟|ò  6mÚ„M›6!==C† ¾—¢¢¢ðá‡B*•bÏž=X¾|9¶mÛ†øøxÜqÇø¿ÿû?!ˆ9uê|||PSSƒãÇ�ãþûïÇ™3g ^EVcÔj5Ôj5*++¡×ëqõêU?~ Ào¼ ®¤4%%7nÜÀˆ#0zôh8pO<ñn¹å€J¥ÂÆ�…vsssñôÓOãĉõª¿ì1ÿÄÇÇcúôéíú瀨#²ž‹ê»ï¾ÃÈ‘#ѵk×f·�““ƒ””„……aݺu�J¥Âßb³ß~û ©©©2dþñ�¨«þKNNÆõë×ë½£ûñÇ#!!¡Ùý"¢¶eëÖ­õîÇÆÆ",, %%%¸~ý:ÂÃÑ””ÂÿL�0�èܹ3ê…Ì��‰èèhdeeáöÛoG```Ë=` �ÍÙ‚eË–á•W^©R-]ºT¨nljÛäþ ¦%Ò¤ÆÆ‹¹mb^[n¿ývìß¿ÉÉÉõ†XÛ·o´ZÂÙRÌÃ8 üÀ�Fá×_EŸ>}„c»ví*¼Ð>|84¨"pæ{®\¹£ÑˆÁƒÛœ§###_}õΟ?�òòr˜L&¡ÂÉY—/_†ÑhÄ Aƒ„~Ž3|ð²³³ëëïï/ Y1?æ ©[o½¾¾¾HIIÁþð 2S¦L±‘÷IHHÀ¿ÿýoœ}:�gΜAxxx£%¢–´Z-ª««…‰ÆÍ•1§N�„ ê«Ñh¶uñâEìØ±çÏŸ‡F£qéçªgÏžðññÁÏ?ÿŒ‡~ƒÆ£�>ÊŸ¢vbïÞ½Â1+W®ÄöíÛñÞ{ïáŸÿüg³Û¾rå `ðàÁÂïÐþýû× bÌ/Ž;Ö`5GËßS …‚! QÕ½{wáÿ ©TŠ�øýöÜÜ\lÚ´©Þ9Z­AAA�Ëå¸zõ*¶nÝŠˆˆÄÇÇ#00°ÑsÛR¼e•Èd²–žÑ™U’ÌÇxz(’[‡;u„·ÝÌLš4 û÷ïÇ_|��Úœ°÷Â… زe D"&MšäŽËz-ËÕ’Ìåvf‡®ÄXª®®‡+!8sŒ%óòk&Sß�¼¼<Ì›7]ºtÁ‹/¾ˆ¨¨(<òÈ#Nµk©¦¦@ýr»ÚÚZˆD¢óƒX²ž¸Øßßk×®ÅöíÛ…ð‡‡~ˆÞ½{»Ü/oæÍ•-Í%‰0hÐ 4wß}7,X T¯X³þpö{)11_}õNž<‰+W®`Ú´i(((À/¿ü‚ŸþÙÙÙxðÁ]ê÷éÓ§a2™Â? ˜3gN½c½ã‘——‡—_~]ºtÁ /¼€¨¨(L™2Åé~øûûcõêÕøúë¯ñóÏ?ãСCHIIÁ¿þõ/ jGÔj5¦M›†íÛ·7ÆÛÔwMÍó8š Ò\�8xð`¼ôÒKõöYV5«Tª&õ�ˆÚ¾ÄÄDŒ5 ;wî„F£Á�7!¼þæî3óññ�X,ÆÄ‰ñ믿"''ÙÙÙ¸zõ*&L˜Ðè¹ÞB,;ü\RR‚ùóçãêÕ«Â~999X°`–-[æ°’§ÃP=ZTáMÚâòÕ­*..“&M‚V«ÅK/½„O?ý7nÜ€N§Ãõë×±qãF¼üòËÐjµðóósKù­·ÊÊÊBvv6úõ뇽{÷ 7ó¤{)))õŽ¿~ýºP pòäI@tt´ËÇØû…Ñ­[7u“ÖÖÖÖÛwîÜ9hµZ :ýû÷þ9³\jØüŽšùú¶DEE¨›h×|�cÇŽÁd2¹ü.~pp0þô§?aãÆ�˜íRÔ:ôz=.^¼Ø`§ËKÍÐŽ;&|/?~&“Iúü>ŸË§Ÿ~ ©TŠ~ýú ïì®[·&“É¥aI7nÜÀ'Ÿ|‰D"Ìõ±XŒÌÌL [·nÂÍ\Õe’,>.\¸­V‹Áƒ#!!AŠÙظ`˰4883gÎÄúõëñÈ#�Àd2 툨ý(--P÷3ü~\¹rEU._¾Üh;æÿÌ�SSS…ó322ê±XŒŒŒ !**J¸™·‰D"ôë×@]u°Éd‚¿¿?D"ŠŠŠ T*áçç'ÜÌ!ƒJ¥Â€ðàƒ"..&“ ùùùN�kþhýš¥%5¶Âí믿.„0Ë–-òeË„ ¢×_½YmSû¨ˆiñ´lÖ¬Y€;v`Æ ذaCý‰D@ii)^|ñE¼ÿþû­6öÏ“ÌÕ0Öå¾ÑÑѬ㙙™õŠ?ýéOˆ��GZZD"‘ͪGÇøûû#//ëׯǣ�>Z>={âöÛoGzz:ž}öY 8W®\ÁÔ©S…É•wïÞ �N'T-XÎIa~ñûÑG!11�=öXƒÒ»èèh 2ÇŽìY³Ð³gO¤¦¦B&“ /j�‘••…%K– ÿþP«ÕB5‘¹B�¼Û‰'ðæ›o"88]»vEuu5233Ô­˜åŒèèh <Ç�Çœ9sгgO9r2™¬ÞÌùqqqð÷÷ÇÅ‹‘��•J•J…=z 33*•ªÑ!�ÿþ÷¿!•J‘ŸŸ�ŒŒ èõz̘1CøžÆ=÷܃]»vá¯ý+ÆŒƒ¢¢"TUUáÕW_P÷ó±oß>¬^½C‡ÅäÉ“سgôz½ðsåè�¯ŸŸòóó±aÃ$&&âŸÿü' V«…ðÖ:|%¢¶iýúõ�Ëå())Ajj*»U*z÷î�ŒŒ LŸ>���8~ü¸Ãö�››‹Õ«WãÉ'ŸD¿~ýpæÌ<õÔSˆ‰‰iP�ŠI“&᫯¾ÂŒ3p÷ÝwãæÍ›¨¬¬lt¢I"êX¢££qþüy””” 33={öÄ­·ÞŠ‹/bÏž=ˆŽŽFuu5jkk…•bÍóTÉd2a*…€€¨Õj‡ç¿¿qwòäItíÚñññ-^Èd2‡«™_Ç-^¼Xèï²eËðúë¯ ÿ÷:jÛü~U¤Æ°"¦ $ æÌ™ƒýë_;v,BCC!“É‚1cÆ`ùòåX»v-bbbpõêU¼øâ‹())iín»ÝÁƒÀæDºæpƲ*Æ××·ÝvŽ?Žððpüýïo0´«±cžyæá»ï¾³ùÎÙÂ… 1aÂh4|ûí·(--Emm-úõë‡Ç{ R©ûöíCÏž=…ɳÌ|ðAŒ7¹¹¹øþûï…±åÖ^ýuLœ8UUU8vìbccñᇠ9ÎÐét Drr²0^ ä_ IDATŒíÙgŸuiå›¶bܸqMºy³nݺᡇ‚¯¯/.]º„ÜÜ\ôîݯ½öî¾ûn§ÛyõÕWqÿý÷£ººÇŽÃm·Ý†å˗׫¤‹ÅÂ÷…ey«ùçnÀ€�Nrkž×ª¤¤C‡ÅŠ+ð‡?ü¡Þ1³fÍ´iÓ ‘H°uëVüç?ÿ�R©ªW&Nœˆ±cÇ"//{öìAvv6n¿ývLž( —'$–Ëå‰4 ôV�7“��°sÿÝ‹mÖ!€õñ�é�“õºyÅä>x÷ÝwñÚk¯ ëÑu4íy²^""""¢¶J­V»=ˆq5 r‚«9@›(ylKAL›€•+W¶v7ˆˆˆˆˆˆˆ‰>>>+q…��'êu’7ÍãLÒå•.DDDDDDDm�R©tK‹Z­†R©tC�š¬Må ¬ˆ¡ñí·ßºå""""""rµZ ±XÜäÊŸÖaÚ1DDDDDDD˜R©„L&CUU•ÓóÆ( ¨ÕjGj‚Öb¼¦ˆˆˆˆˆˆˆˆêæŒñõõ&ñÕét0 0ë‹Å�H$�ÉdP(í)€iñI~YCDŠT*…^¯oín�‡I¥üóFDDÔÞˆÅb! úÄb÷Mÿ*‘H<±úYð¦Éz‰ˆvd bˆˆˆˆˆˆˆˆZçˆñ2&“I¸u%\æµm bZ™Á`n:�ùåUP][Ĩä"„øHÐÙW™L ‰D"܈ˆˆˆˆˆˆ¨maÓ ŒF#jkkQ^Q…´+:ÏÖã|�×5ÔÌ£Å,+` �Ktèêk@\g†FË�#ƒ¯�2™ b1G˜µ bZ�ÉdBuu52®•cÛ#R²eÐÔJáÌ—¡Ö Æ•R1®”ÊðÝEÀW®ÇȨ"<œ F¯®~P©T¾DDDDDDDäåÄ´­V‹K×K°6Í„”l9 Í\6]S+Æîßøá0*º 3‡–¡G× ( ÷t˜ˆˆˆˆˆˆˆÜŽAŒ‡™L&”””bˉ*l<-G�޽È &`ÿ9ÒrŒ˜Ú¿�R# €Õ1DDDDDDD^ˆAŒ�F\¹V€wG¯)=z­j½«�+‘ž§Å‹£òÓ½ çŽ!""""""ò2|¥î!ƒ.çâ¥ïD8zMÖb×=’#à ßJ�þÛ  †».5ŽAŒ œÏÌÅK»¤È*mù¢£œr ì‘ãÂå\†1DDDDDDD^„AŒ›™L&\ÎÉÇß~’!¿²õF~åWJðÆO2d]+€ÉÔÌ™�m8uêÆ�‡Å‹7Ø7{öl|ÿý÷vï»Ú^sY_æÌ™Ø¼y³Û¯ÓRíQÛÅ ÆÍ ñÞA®–µþô;Y¥R¼w(**r{ÛÉÉɈ��ÅÑ£GQ[[ëuí92lØ0ôìÙÓ-m­_¿K–,ñXûDDDDDDÔ¾0ˆq£ÊÊJlû¥Ǯ˛ÜFx€ÿx$ §Þê�SoõÀ? Cx@ÓC�´krlû¥UUUMnÚ^¯ÇáÇ1gÎH¥Rœ8q«ÚkÌÓO?�AƒµÙö‰ˆˆˆˆˆ¨íjý²�vÂh4âJn)6þÒ´‰y•2žˆ¹wÃGñ{>öX¢?à‹õ‡K±â§"Tj�.·½á†E#¾§Ò-+)?~~~~èÝ»7‘’’‚aÆy¬½Ù³gcüøñ8tè~ûí7DFFbîܹèÝ»·Sû­Íž='NÄ=÷Ü#lÛ¾};víÚ…’’ôéÓsçÎEHHÖ¬Yƒ´´4"44�?þ8îºë.À–-[ðÙgŸ:„ûî»Ï=÷\ƒöM&6oÞŒ~ø¥¥¥ˆ‹‹Ãܹs&ôgĈ8qâ.]º„ððpÌ�;ñññÂó³~ýzdgg#88III˜1cF“Ÿo""""""j=¬ˆq“²²2¬=*B�Aâò¹|q`A ^½?´^“–YWÅ¢’‹1{lö½�‰ ¾.·_£ãÿNˆ Ñh\>×–ääd$%%†ŽÔÔTèõz�¶÷á‡búôéX·núôéƒW^yNïwdË–-øñDZ`Á¬Y³wÞy' •JѵkW¼õÖ[X»v-Æ��wß}999€G}�?þ8ÆŒƒ~øÏ=÷œÍö7lØ€C‡aáÂ…øè£� —ËñÒK/ �±¼¼ëÖ­Ã3Ï<ƒ�7"66‹-‚^¯‡F£ÁÂ… qÏ=÷`óæÍX´hFŒáòsLDDDDDDÞ�AŒ dæUáðU…KçÅwU`Û³‘X55]VÒ<¼2�}œƒ‹yZ@×@VM�À·ÏGa@”Ê¥kÌVàÒ M³WQª©©Á‘#G0jÔ(ÀàÁƒ¡×ëqêÔ)�¶7oÞ<ÄÇÇ#$$³fÍB@@öïßïô~{ >ÿüs<ÿüóèÕ«BBB0vìX(•JÀ<€èèh„‡‡cÊ”) Ãþó§ŸN§ÃÖ­[ñüóÏ#&&ááá˜?>ªªª�šš ðóóüyó‹€€Lž<ÅÅŸvíŠŠŠ ×ë1tèPøúú"::Ún¥y?Mrƒªª*lK7ÁàäâD��$xþî`LI#QXÊÅ*Œ?Ó†àÅ !ðUŠ‘©Ä×ÏEâë“åXüíMj¯F1šDØžnB¯nUðõu½ªÆ,55J¥ݺuCMM ..‡Â�!C<ÖžH$ª÷yŸ>}píÚ5§÷Û“——‡êêjôêÕËæþ²²2ìÛ·çÎ�CEEnܸ­VëôãËÍ­[Bܲ}¥R‰ØØX¡²ÆºÿaaaP*•¨®®FïÞ½‘��€3f 11÷Þ{/ú÷ïïôõ‰ˆˆˆˆˆÈ»0ˆqƒrM%g;77Ìý}±ôá0ø*�/FÒLøßC%øæT9^¾7“‡úC,þ8ÈwÇû`þ—yøötãÃŽR®Êñ¬¦²YAÌ�PZZЉ'6Ø÷ /@"qmhVSÛ“H$BÕJSö›™‡/ÙZ⻦¦sçÎÅÈ‘#1uêTtîÜ/¼ðŒFççé©­­…Ñh„Á`€Túû�›\.‡\nRgs0#‹±lÙ2œ9s?üð.\ˆ„„,Z´Èé>‘÷àФfÒjµ8vÕˆJ}ã™V¿H%V<áRc©°Â€ù_æá¾²p4³à«cÅáèÛ͉ÐA'ʼn«—*:ê�_Q�ãÇ�cÕªUØ»w¯pÛ¾};Äb1ÒÓÓ=Ò^qq1¾ûî»zçfdd **Ê©ýŽ„‡‡Ãh4"##£Á¾‹/¢¬¬ Ï<ó ¢££¡V«‘™™‰›7oÖ;ÎÑü8€³gÏ ÛÌ׋‰‰i´fýúõÃ+¯¼‚+V 55………NŸKDDDDDDÞƒAL3ÕÖÖ"í²sÁÆ£Cü!& sv“ ç®kñ?+¯â…/ò`4R±“‡ú;unÚ•ZÔÖÖ6éº)))n0ŒÇßß}ûöÅ¡C‡„ûyyyB•‰õ}WÛS(ÈÈÈÀ/¿ü‚òòrlܸUUU¼2�í·w} n~–#FàÃ?DNNªªªpäÈTWW#00•••øöÛoQ^^Žƒºté"œß¹sgœ={ùùùÂÐ*Kjµ÷Üs–/_ŽŒŒ ”””`ÕªUÀÀ�}Î5 ~øáB«ÕâÌ™3P*•ðóókô\""""""ò> bš©¶¶n:7Â+Ì¿î¸+…µ¾ä2¶Ÿ(‡�lÀ)wÅù`Þø`ˆÿ;µHx€s}¸pSÚä fÿþýÂêFÖ† †Ÿþ&“ üã±oß>¼ùæ›ÐྫíuêÔ £G�ÆŠ+ðÄOàÂ… xÿý÷…¡>�í·w}³_|111xá…0eÊlÛ¶ åååèÞ½;žyælذÓ¦MÃÏ?ÿÜ`Å¢qãÆ¡OŸ>˜9s&/^l³ýgŸ}C† ÁÂ… ñÌ3Ï@£Ñ`éÒ¥õæ…±§¢¢‡Â_þò<ôÐCؽ{7.\èpXy¯Æ_ º¿=Q#Ÿ[n[l³¾™÷›ï›?—X}.µúè[XX˜f«:¢)òòòñÀÿ‰ 36>7Êú™]1®�.ÔbÌÒ+€Äj¼9©3âº6\q©û¼†Ãezv‘ãÍ;#é¶Nõ¶ï½P�ék¯7ڹ؈ož2",¬K£Çz‹Ù³gcâĉ¸çž{š´Ÿ:žÒÒR§†¦‘ç‰D"”””÷… r¹<€€€Þê£ €Ñês“Åç°¸oyƒÅ~Xl3ÙØfý¹=î ÀÉz›Å`0  Â�±éOcZfîý è‡×&†"Ä×v[j ^ïÜJKŽÔÅ(¬4 ³Ñ±˜QDDDDDDD-‰AL3˜L&Ü,¯àÜŠIöMÀ¶åøþlþ<:ÏÞ¹´®èG*aÚðÌ?•{‚“Âòº•|ĵ,1Í`4QYcp[{•Z#>ø¡ßüRŽ7쌑½ê†-õ k8l©945—–`&"""""""÷`ÓLž42 j1mÍ5ä|ÐÛímžé³'­ZµªYû‰ˆˆˆˆˆˆ¼Ǧ4ƒX,†²y£’Z…ZK"""""""j|5Þ "‘*w/<åy��$ bˆˆˆˆˆˆˆZ_�7ƒD"A¸¿r±ûæ‰ñ4¹Ø€Î¾ bˆˆˆˆˆˆˆZ_�7“�O'É*�:ö¿Ë¤Cì�"““+šË*Щ“Úý """"""¢F1ˆi&¹\Ž[|+œ:6¯Lˆ –ã¡�~níÇ�½SÇõô¯„\.w뵉ˆˆˆˆˆˆÈ9 bšI.—#!ܹUˆ6-ƒÞh‚D ¬x<Ûž�D|׿/Mm0š°åX™SÇ&„¡P¸w9l³O>ùÄ­Ç5÷"""""""oà ¦™ †õP@-©môØôœ<·)ššºàfhvÍ‹Æ? Cˆ�¤I××Ô1wS.Î^«iôXµX‹Ä[”¬ˆ!""""""j% bÜ {·ÄûÝtêØoOk0|Ée¬K)�ÁX7_Ìc‰þøùõ[0o|äRç&�1š€í'Ê1ê�+øö´Æ©súúßD·®áNKDDDDDDDîÇ Æ :uê„û{UC,rnÆÜ’J~]€ûÿ™…£™Õµ\ŒÆcïËѸ¿Ÿ¯ÃóÉ®ÁC+®âùÏsQ¨qnn±È„ûziÑ©S'§Ž'"""""""÷“¶vÚ‰D‚¡}cw!g5NŸwîºÿ³ò*&&øâµ‰¡è(CL¨M‹À´ÌªÇ_/ÑaÉ·7�®€±Ô×÷†ö�†DÒ´!Pf¹¹¹HMM…N§C`` ðä“O68îæÍ›HMMEee%”J%FމÐÐP€ÉdÂÞ½{QXX©TŠ#F ,, •••8pàJJJ`0лwo$&&6«¿DDDDDDDÞ„AŒ›„„„àÑØßpñD(´F™Kç~{ZƒŸÎWàé‘�˜{W0|b$öø}‰éêZ#Ö.ÅŠŸŠP©unb`Kr±ÇV"$$Äås-ÕÖÖâÇÄý÷ß�àà`äää ++Ëæq{öìÁ}÷݇   dggã‡~À”)S„ ¨ÿþƵk×ðã�?bÊ”)P©T9r$üüü Õj±}ûvÄÄÄ K—.Íê7‘·àÐ$7‹Å18cC¯4éü� «’‹1öWðyZnjô¸©Ñãó´2$-½‚w¾»Ù¤îê|ÃÆB,nÞ—;//���DDDØœø7??þþþ DEE¡S§N(..Ž1·Ñ­[7àæÍ›‹ÅÐëõ8yò$ÒÒÒPUU…ÊÊÊfõ™ˆˆˆˆˆˆÈ›°"Æ�üýýñÄþÈÞ—� š¦Uqä–ê1ÿË<ÌwSŸnë”�ÇýÐì¶ŒF£S+. †Çét:!‰êOH¬×ë!‹qóæMe•)Xõko”èT­Ò�@Yfôº„ÑÃG5¨@i*¥R‰±cÇ"99b±!!!�JÿŠ��ÇŽ;0aÂÜyç�8xð |||0a¡"F"‘àĉ(//‡R©Äøñã!•JƒœœlÞ¼J¥aaaÂ9–mûøø¸åñµ4÷¼Bw­=Q#Ÿ[n[l³¾™÷›ï›?—X}.µúè[XX˜f29·ÔtSUWWãÛS°î·[‘_ëçÑkY •W`F¯ßðàÝ# T*=v�ÊÊJìÞ½?ü°Ç®AÔ¥¥¥ˆŠŠjínê JJJ„û���0¿&—Ëå‰4 ôVMŒVŸ›,>‡Å}Ë,öÃb›ÉÆ6ëÏíq[ˆÀ¡I¢R©ðà„$̉¿‚Û| Z캷uÊÃs}3=ÂTVV C„~ýõWDGG»ýDDDDDDDí‡&y�B¡À„q£x;Îca——¶vúZbƆdbÒí2 0ªÞ�!wÊÊÊÂ… ]ºtÁ°aÃúôéƒ3fÀßß¿µ»EDDD^†A Q3åååá/ù ª««çÎ�Ãùóç±f͈ÅuÈ¿ýöž|òÉzçÅÆÆbýúõ._ïüùó˜1cF½mwÝuþþ÷¿7ñQKaCDDDm΄ PZZjsŸT*EPP‚ƒƒÑ¹sgŒ3cÆŒñ誄û÷ïB³óçÏ#''QQQ».µ=œ#†ˆˆˆÚ½^�‚‚üúë¯8xð Þ|óMÜ{ï½8xð Ç®Y[[ks»V«õØ5‰ˆˆ¨mbCDDDí^ee%^ýuœ8qÂ#íßqÇÂ$³ððpÄÄÄxäzDDDÔv1ˆ!""¢A§ÓaÇŽi»W¯^X´h¢¢¢ R©Ð¿¼ÿþû�Éd¹µ]œ#†ˆˆˆÚ…½{÷ÂÇÇ8}ú4Þ{ï=äååÕ;&==Ýc×7nÆ�ç±ö‰ˆˆ¨}`ã&&“ F£±µ»á�X,†H$jíny”��FŒ©TŠçŸ¾Þ>¥RÙJ½""""ªÃ Æ ŒF#òòòpåʯ�”O¡P &&aaa ưµG~~~ ¶%$$4ضzõêKHOž<¹^ˆóç?ÿgΜ©wÌûï¿�áǰ½4uçÎ�±sçÎ&÷233ñùçŸãäÉ“(..†¯¯/úöíkóqØ£Óé°mÛ6¤¤¤ ++ ˆˆˆÀ-·Ü‚aÆá¾ûîkðF�õãéÖ­¶mÛ†ŠŠ |ñÅØ»w/rssáç燤¤$¼üòËÍzœDDD ƒ˜f2 ¸pá-Z�FÓÚÝqÈ××o¼ñúôé‰DÒÚÝ!""ò�N‡5kÖÔÛ¦R©ðôÓO·R�\÷ÕW_aùòåõVd***Â�pàÀ§Ú8{ö,–,Y‚¬¬¬zÛ³²²�••…äädìÞ½o¼ñÂÂÂì¶sýúudddàµ×^õkׄ텅…())qéqut bšI«Õ"--ÍëCÐh48räzôèµZÝÚÝ!""r«ÆægY°`�ðÁ›lݺï¿ÿ~³Ú8}ú4fÏžÝèÐéS§NaÑ¢EXµj•ÝcL&¦M›fs_ÿþý›ÕO""¢Ž†cTšÉd2µ©w‚JKKa2™Z»DDD-nñâÅX±b…×Ïé¦ÑhTó¸J§Óá�wÞiðXCCCÑ»wïÔO�:…Ÿ~ú©I×0`@“ûIDDÔ±"Æ ¬ƒ�~ýú!00P¸_]]�ôôtTWWC"‘`àÀ�v+Rt:222PXXˆ‹‹Chh¨Íc�F#®^½*”GFF"::ºÞ?W%%%õÆ´3„!"ò¼Æ~×râôÖ¡ÓéðùçŸ#00°Á|.ÞäóÏ?Gyyy½m"‘�=ö €K—.á£�>rØÆæÍ›‘��]oÛèÑ£ñöÛoC,#55óæÍ«·ß¾}¸ë®»íŸB¡@dd$JJJP[[‹[n¹ÅÉGFDDDƒ�ˆ��ETT*++±wï^dddÿ” ;v ÑÑÑ?~<Ô…*‡©S§ Ó鄶Ο?���Üyç�ˆŽŽ¶§§§#%%¶«W¯¢¨¨Æ Þ�ÊÎÎn0¹ ¹OSn[ç0œi9«W¯FRR"##[»+6ýç?ÿi°íá‡ÆÜ¹sÇG`` Þ~ûm»mØšCæé§ŸÞ¬6lºwœa¿upcËþðÌš5 ¾¾¾êÞlâ÷.‘kÄxˆÉdÂW_}…7nØÜŸ••…Í›7cæÌ™�J¥8pàŽ?nóØÂÂBlÛ¶ O=õBBB�‘‘�ï¿ÿÞæ±•••øé§Ÿ —Ëï¶ÇCDDõ¹»ÂÐÜ_Ô6ÝÞ½{áãã î��k×®aíÚµ †Üèõzœ>}Úkƒë‰uàÎ;ï¬w¿G�Û¸|ùrƒm‹/†\.îÕÛíÚ5˜L&‡ßƒ¯¼òJ½û*•Êa?ˆˆˆ¨!Îã!%%%vC³²²2á�¨óçÏ;<Ö`0à×_uêX n•O:uêÆ�‡Å‹7Ø7{öl»AQ[g2™†0æý�ÝšÚ>9G"‘ ** o½õ¢¢¢ì¿xñb+ôªqF£ùùù ¶›+h�¡ÓéP]]Ý`ûÅ‹qîÜ9áVUUUo¿X,vÂ(•J§û@DDDö1ˆñ•JåÔÑæwîÌ1—»r¬§$''#66G�­·¬&Q{å( q&`qõ2î!‹mVˆ–––:ÇŽï¿þ*T™„„„ ÿþèׯŸPaãëë‹éÓ§ãĉ8sæŒ0a¯Z­F¿~ý0pà@têÔÉc�ëøñãðóóCïÞ½‘˜˜ˆ”” 6¬Þ1GŽÁ–-[P\\ŒÛn» Ï=÷ºuë½^�5kÖ -- ……… Åã�?Þ`•†íÛ·c×®]())AŸ>}0wî\„……á‘GÁ«¯¾Šþýû¨+³~þùç±{÷n¡oëׯGvv6‚ƒƒ‘””„3fxì¹ ¢öÍQµJcÇÙ;×<ôÃr¿åp[stpþ˜¦)//Çwß}gó Ë¿[ݺuk°ÿÂ… X°`âããíÎáæ*™LÖ`[vv6ª««ë͵rË-· ==½Þqß|ó T*‘���þóŸ¯5räHdffÖÛöÙgŸ!88=ôP½ªÝŠŠ ܸq½zõjÊÃ""""1ˆñ°îÝ»£{÷îØ´i®_¿ŽN�:aòäÉ6� „  T*qôèQÀÿüÏÿØ,QV*•1b°}ûvuU5qqqž{0ÿ•œœŒ¤¤$u+7¼ûî»ÐëõBEÏ�7pñâE,_¾!!!X·n^|ñElܸ …]»vÅ[o½…B�àÝwßÅm·Ý&¼{·eË$''cÁ‚ BzzºScã5 .\ˆY³faôèÑ(**‚V«õÜADíš3áŠå}“ɃÁ�NƒÁà0ˆ‘H$�Éd�H$‰D ‚{ÁKc©vtwß}w½çÐh4Ú<®_¿~Âê‚ì.¿|ðàA£G�æœsÎ9®¹ ‚ ‚Ð5Dˆéü¢K(4MÓņ®ÛÝN§³Ëm�…––6mÚÄ /¼ä±ÒØØÈ5×\ömÛ((( ±±‘¢¢"ý¸¦iìÞ½›qãÆ±wï^¹å–[ôãû÷狀º€^½z¡ª*{öì ™ïÆjµrèС ØþöÂÌÈ‘#9r$×^{-¿üå/©©©!--­».ƒ §1árÀ.=åeßÑ+õ=¢,ÍÝ2®16š^±û±Uýž’¢[é�;“É$´c~èâÌ'Ÿ|Òí}&$$ðÛßþ6ìñ»îº‹»îº+ä±°qãÆ.�“••Å£�>Ú¥¶3fÌ`ÆŒa�Ï�;·KýLž<¹ÓjŽ�Í|AA8:DˆézõêTý| l�N'F£‘¼¼¼ˆç×ÖÖÒØØøÞÐE*km³Ùô²œÄÅÅw8”——Ë4:°víZRSS;„ %&&2|øpÖ¬YCAAUUU,\¸�‰'’››Ë»ï¾‹ªªLœ8‘òòrl6}ôS¦LÑÇüeD˜4iýë_yøá‡IMMeëÖ­Œ5Šèèh†ÊÒ¥K?~<ªªòç?ÿ·Û øbì =z4ñññlݺ«Õ±Ô· ‚Ÿ®ˆ0.—‹ŠòoÈËüƒ§CÇKl†…Ü–y”úY9£±X,"Æ‚ ‚ œfˆÓL™2¥ƒØâ¯šÍ5×\ñüU«VéU“f̘²j’Ÿ}ûöéU“Î9çœ^$ÅÅÅÇíFígåÊ•zµ¤öL˜0� pç�w2`À ÄK/½Dyy9Æ cîܹ˜L&rss¹å–[xã�7xõÕW3f “&M êëÞ{ïå…^àî»ïÆívÓ¿òó󉎎æÖ[oeîܹüò—¿¤W¯^\pÁ”••>��5kÖ0þ|ìv;¹¹¹Ì™3‹ÅÒ-óá‡C(QÆívS~x ý²ÞG1„NÛ˜âbécx‹â�Þ}Æ`6›E|AA8�!Fè2Ï<óLØc3gÎdæÌ™¼ð û™5k³fÍ {<>>žx ä±äädž|òÉ }þrà½zõêpL¡+„Ë=å߯ª*‡K÷Ð7k!Š!r¢Üªj76¶°q“�ÊJ7UÕ@#-ÍDf¦™ñcâ˜8>žôôð?ÁƘhúð6‡Ê’Èí3£ÑV€aFAáÔB„˜ï ©p!‚pj*$©¢¢‚ìÔŒá¿Ëkk=¼ù¯Z–,k@U5|§kþÿq¨ÄCñ!'_njæ¯/fò¤D~õËL²2Í!û3ÅD“Õú ÷Ò»wïˆ!J‚ ‚ ©ƒ”¯îaöíÛÇ[o½¥çiiiiáõ×_gÇŽÄ™ªª*>øà6mÚ¤ï{뭷ذa.—+¨mKK +V¬àã�?Ö÷}úé§|öÙgz~A¡s"•Šö'X�âs¢¬á¢¯ßØÌM·à£%õx½j›ã[ªš†¦ú÷i¨ªŠÇ«±rU=7ݲ—õšÂö“l Êó1---asØ„²[AA8y!¦Y³f .¤´´4è&¹²²’Å‹³xñb}ß¾}ûxã�7ؽ{·^Ê| h׬YÃ[o½¥‹1 ¼þúëlÚ´)¨ÔµËåâ믿æõ×_§¦¦æ{˜¡ ÂéI 7L]m%éÉ[¶}ÿƒ:æüO)6‡7@p9"¼hª ƨº£j6›—ÿ_ÿ~?üwvjâ6êj+C–ÑAAN=Dˆé!l6[§ewîÜ©W¯Gå¹y¥¬+ íÍhŒŽ&Áø1ÍÍÍ�Ú+‚ ‚ œüˆÓC¸\®.Ý;�>Ww‡ÃÑi[ÿ9]i+‚ t�P'---ÄÇì Ù¾ºÆÍïŸ. E -¸¨�û4U?¸ÏëQ™ó?©©u‡+>ö;š››#Ú*‚ ‚ œˆÓC$''w(aÝžÔÔTrrr(((ˆØÖb±0lØ0FŒÑi’ƳÎ:ë(¬AÑ4 —Ë…QÝ…Éj ÙæÕ׫°Û=a¼_¼47¶PYQMYie¥TU×`k¶¡jÞ61&@˜ÑTZZ<¼ü�²�cYb£1x÷tYäAAN^DˆéA®¼òJFމÉ\œJQÌO~òŒmîî'NdÊ”)DGGwè';;›Ÿüä'$%%�ŸŸÏW\Arrr‡¶‰‰‰\vÙe 8°f$‚pú*Ùmà>›ÍF”:Ä´²ÊÅ’OkCz¿¸=^*+jhljÂãqc0€Ñ¨ ©*v‡ƒÆÆf<Þ#ùdŽˆ1|\EUµ+ä˜Ñʆˆa©‚ ‚ ©�”¯îA¢¢¢˜>}:ƒæã�?Æf³a6›¹ä’K8p`�W‹¢(Œ7ްxñb½ÊÒ„ ?~|1gàÀ�äææ²|ùr¾ýö[ À´iÓˆ��ýþ&)‚pšác\.ÉÖ* ªC›µëšðzý¥©–hÔÕÕ£ª*F“EQPCÛRQZ�­DY£@ó�Õ60`Õê:®½:«Ã˜ÑQ4TÐ UÊZÊZ ‚ ‚ œüˆÓƒ466²xñbJJJô}n·›E‹‘‘‘Á%—\BFF†¾ÿ³Ï>cçÎ�AI{ Ù¶m^x!ƒ Ò÷ñÅ•µþî»ï(**bìØ±L˜0AnÆAÂЙ7Œ¦ix½^,±¡“¨~Ñxä»:@Œq8� �Édò‰.†FQPtaFõzAQð)1m‚Œ¦±¶°>¤­¢¶„Oê.‚ ‚ œHhR¡iÿþ÷¿ƒD˜@ªªªx÷Ýwu!eÅŠlß¾=d外–>üðC***رc«V­ aü¸ÝnÖ­[Ç–-áK­ Á¼üòËÝÒ¦§m¡çiŸÅh �¦¤Ô"Ï‹†ÇíÁd2ù�ÁÛ&&“ £ÉEÏ£ªGý–”„NÈn4›ÃÚ)‚ ‚ œ:ˆÓCÔÕÕQSS±�Íf£´´€={öDl«ª*{÷îíR[€Ý»wwÑRáûBÓ4Þxã >úè£mJHŽ×>‡ÃÁÿýßÿa·Û»Ù2Aè^ºâ £Ƴ°¶ÆTªÚ'ƨ(ŠA[ô�ÑÔqŸÉ„Ùd JÖëc4**ÃTÆSŒ"À‚ ‚ œˆÓCÄÆÆvÈëÒEQô¼‰‰‰�öéOÎ*Io¸¶ÂÉCii)½zõ¢¾¾þ¤,/~,ömذ�††¬V+çž{nȄӂp²IÈh/Æ´¶¶†m{¤:’oé÷ˆ ö~‰ü1ÍÁ%­5UUQˆ,¶ˆã㫯¾âŽ;î`úôé\tÑEÜvÛmTTTPVVƸqãX²dI—ú)--åÒK/eÙ²eG5þ±ž ·Û͸qãxá…‚ö?öØcLŸ>ý¸û?9Ú¿£ ‚ œJˆÓCX­V.ºè¢ˆyZ&L˜@JJ Ó¦MÃjµ†m›ŸŸÏСC?~úˆÛo¿¯×Ë�7ÞÈõ×_OJJ ©©©GÝ—Åb!==½ÓD÷ÿó?ÿÿÿýï£>ïT§ý¼OT‚ ‚p:!Éz{�#Fлwo6mÚÄ®]»p»Ý  ÄèÑ£ÉÎÎÖÛfeeqË-·°yóf¶mÛ¦—(ÍÍÍeôèÑAU–¢££¹ñÆÙ¾};_ýµ•œœLAA#GŽÄb �×àx©®®¦°°›Í†Õjeòäɤ§§ðöÛoÓ¿öìÙÃØ±c8p åååâv»INN¦ªªŠŸýìgA}j𯆠(**Â`0���ÍäÉ“q8,\¸�Ÿþô§ÔÖÖ²zõj®ºê*€°}Ûl6V­ZE}}=^¯—Aƒ1nܸ°6ú‰tž¦i,_¾œššL&“&M"+++¬ííñx<”––2yòdEaÇŽœyæ™A× Tÿ‘lª­­eݺu8¢££¹ð 1 a¯Y$[;³/ÔXß}÷üç?ÿ¡oß¾L›6�—_~™[o½õ8þ… B÷J¬h/¶©««Cs¯$3å 4· *{÷²PTd÷çÙÕ“õ £ÙP%‰àd½É{‡.¾´ušFNvQÞÞCç‡DSSÏ?ÿîþ222xíµ×:m·qãFŒFãQŸwªÓ~Þ'ªAA8�!¦‡q»Ý¸Ýî ›}ÿ¾öx½^<OPÂÞÀó= TUÅívãñx"žß�¸\.>ùä.¹äRRR(..fÙ²e\wÝu�Fš››IHHà†nÀ`0àr¹øôÓO¹ôÒKIMM¥¤¤„¢¢¢ý–––RYYÉu×]‡¢(AsŠdK¸¾£££™‰u…õGÊO·‰1ª[#*J *]Ý¡|µAÁãö`oq ¶yÜh•“¦LJ m·Ëq®?o´�;wÒÒÒÂÌ™3#¶ûàƒxå•W°Ùlüâ¿àšk®¡¬¬Œ™3grÛm·ñÁзo_î¾ûnfΜÉC=ÄÅ_ÌܹsY½z5�‡�2oÞ<î¹çjkkùðÃùðÃY¶l™nÃC=İaØ;w.{÷îÅ`00~üx|ðAjkk™9s&³fÍbýúõ477sóÍ73kÖ¬�6ïß¿?(§¬¬,èøêÕ«yùå—9|ø0C† áÁÄ`0t˜ÓܹsYµj/¼ðÍÍÍŒ5Š•+W²hÑ"²²²ºÜ�×ëí0ïH¡Ô¡úýÓŸþ±�„¼v‚ ‚p:#¡I=ÈW_}Å›o¾É®]»ô‡^MÓØ·o ,`ÕªUzÛÒÒRþñ�°iÓ¦ ü,^¼˜ è}Øl6^{í5V®\©ççß[Â5kÖðê«¯ÒØØØí󩬬$11Q§ÊËË#66–ºº:½ÍàÁƒu�£¢¢‚äädÝU¼wïÞ!=u’’’°Ùl¬[·Ž’’’.½5‹Ô·Á`ÀãñðÕW_±qãFìv»îaÔÞÆ@:;Ï?VNNIIITWWwÙö+V°oß>Þ~ûmÞ}÷]Ünw‡ðŸPý‡³©¢¢‚¸¸8=DÍjµvúÉÖHöËX‚ð}£iZ‡O¸6þõöËúúzð¬"=éË#'yB‹›ç�›‚Añçˆ -Rii±JP’QÿQ½^ªjjñª^4XS[²^ƒAãüó„״ví{ýtWò'¹ï,ÚÖ­[¹þúëIKKã¹çž ú½œ7oçž{.—]vYÐ9Ë—/çƒ>à׿þ5O?ý4×^{-Š¢pÇw¾ß½—_~™¸¸¸ óRRR˜8q"?ü0×_=Ÿ~ú)ï½÷ž~|Á‚\ýõdeeñüóÏýn²~ýzžxâ ý³}ûvýØÞ½{yðÁ9çœsxæ™ghjjâ©§ž 9§²²2}ôQ’’’˜={6+W®<¦~:›w áú=Þk'‚ §#âÓC8�NV­Zñ†ø‹/¾`ذa¤¥¥±|ùò�å¨ý:tˆ�;w2räH ƒn(ÛÓÜÜ̺uë¸ä’KŽkíñz½„¸Ðáá\UÕ.…HÅÇÇsÝu×Q\\Ìž={øòË/õð£pÞ=‘ú®®®fõêÕLž<™””t¤HÂÑœçñx0 amlßÚÚŠÅbá§?ý©.~ìÝ»—½{÷2dÈ�ˆý‡³IQ”°9…Â]³p¶º\®ˆö¹Ýîˆù‹áDp4bCg¹aü"Œæ^IFòÆà¶ª›Pß™™.›‘ÉûTèaIþ%@mMqq1ÄÆÆ`‰ò}W¹\.l-6ššlhšª‡"Yh\}E6Y™¡ÿ{óØ öÉ &¿^II ýû÷Ûî‘GáÒK/%&&†ÇœÃ‡ëž?ûÙϸí¶Û€`¯¨íþó&L˜À¥—^ øò´¥¦¦2räHFŒÑa¬¤¤$ÒÒÒX¶lÕÕÕhšFII‰~ü¡‡âòË/'>>žG}”²²2ý¥F ?ÿùÏ™={¶¾ýØc�±q£ïßäæÍ›QU•ýë_,]º‡ÃABB‚Þ6pNï¿ÿ>n·›û￟ ª*øÃŽº â¼ ×ïñ^;AA8�˜Âf³u)Ħ©©)hÙÝm»“¬¬,*++©ªª|9ZTU ûV2++‹ŠŠ ª««¨©©ÑÅ&UUùæ›ohmmÅårÑÚÚJ~~>ç�w ¸\.¬V+n·›ŠŠ Àç™ÑÜÜÜißõõõDEE‘žžŽ×륢¢"¢—�ÑhÄãñD>áFÓ´ˆ×,œ­�Ùn,ðyÇøûoOYY‡Ò·«ªª8pà€¾][[«—d„®ÎÛ%\»ö‰xÃ{Â|ÞA„À�æ4ûW}ˆ¶*í*i¨ªŠ¦©45µP^^IQQ Eq¸¬‚††fTÕ«'÷UûlÞzë-ÆŒÊ+˜5kV‡ð P|þùçÌ™3‡iÓ¦ñ׿þ5l»˜˜˜¶t•ÅW^y…O>ù„Õ«WóÑGéÇçä¿.þû³Ù|Lýt§}áèêµA„Ó ñˆé!RRRÈÌ̤²²2l›øøxý†çÌ3Ï䫯¾ ÛÖl63xð`½í¾}û"Ž˜hµ»°Z­L�:•Õ«Wãõz‰‹‹cúôéa ¬V+\p+V¬À`0�––¦—ôv:�lÛ¶�œœ¼^/›6mÂf³¡ª*gŸ}6QQQL™2…Ï>ûŒèèh’’’ô›ØH}÷ë×�’’Þyç¬V+YYY^† Æ¢E‹˜:ujØóŒF#›7o¦©© «ÕÊ´iÓ0™LTVV†´Ýn·ëóÛ·oÇ3**Ь¬,<È�!CÂön.±±±œ{î¹|öÙg˜Íf¬V+S¦L!&&&ì5«¯¯ikWì 7Ö¨Q£X·n»víbÆŒA}ÑÚÚJŸ>}ßÛ몪*òóó8|ø0J˜,áèìÁµ«e©·ƒ=a¾ u*†¨D4{%˜;VÆÉH·0÷é!ÌþÍ6Tï‘d»¡<]üyd@;²¯Í, ƒ¢ðÇg†‘žÚÓO­?D½=“˜¶ê@oÿz{™ÓÕc&==�›o¾™—^z‰›nº‰éÓ§c6›9pà<ðÀqõ}ðàA6oÞÌ„ 0�¼þúëÔÕÕ‘��Mbb"Û·ogëÖ­~c> ø^ †w'ãÆ�#..ŽgŸ}–ßüæ7ØívbbbBæè=z4Š¢0wî\®¾újžxâ‰cêè0o›ÍÆþð¦OŸÎùçŸßi¿ú†Â]»ØØX {öìaòäÉ”””pûí·sûí·ë^³‚ ‚pª"BL¡( W_}5K—.åàÁƒ²³³¹øâ‹õ›‘óÎ;ðÅ´·÷¤IJJbÚ´iºËô�!Cp8z›@¬V+ãÆ�cäÈ‘=2¯œœ®¹æš�ÇBUËéÓ§�þ n³Ùô O111üüç?×ÛùÝ¿ÛÓ¿ÿ°®çáú6›ÍL�:µË6Ž;–±cÇ„=ï—¿üeÈý™™™!mœ_û~Ï ×¤¹äççë¢F á®Y8[»b_¸±233ƒf^߉'µ=ztÐöðáÃ;@‚О£X:;ÖÞ&\8G£EÈ IDATR&+x]àuƒ±cYéÉ“Rxàžþ<õì>45t¸Qx1Æg‹Á ðèï2õ¼ôÐsq6ãm®¦Ñ3‘$‹%¤8ÇöÛ9,óT䦛n¢wïÞ,X°€×^{�¨¨(†ÖC¯«TVV²jÕ*æÏŸ�Ùlæç?ÿ¹þ=uÛm·ñì³Ïrï½÷òüóÏë —\r ;wî䥗^âŒ3Î`èСÇeG(RRRøãÿÈ_ÿúWî¹ç222¸ì²ËB (ýû÷çþûïçÕW_å•W^¡  €-[¶u?¡æ¥‡Ìvž‚‚‚}^Ÿp×.))‰k¯½–Å‹“““ÃÈ‘#‰‰‰Ñ_Ô‚ ©Lwß™u¥?¥“õÀ}†€}í?þãþmÿº±Ýº©Ý2¾¦¦fcw¹mÛl6þö·¿%Â9rdP¸ŽÍfcÇŽ8L&#GŽ$>>>d.—‹={öP[[ øDÕžöx½^Š‹‹õð�œœúõëbR__ÏÖ­[õíóÏ?ŸÛo¿]wÕîil6QQQ˜L&6oÞŒ¦iŒ3æ¤ï[8µihh //ïD›!�U<:–ýíKTãYY„ñŸç¬GsÛ0Äç„m³bU5÷>°›ÍÓ©÷ "L|œ‰?ÏÁÔóÃWk=ø›ööGI¾ŒQg_ŒÅbÑ…%&ÿºŸHÂËé&Ê�óÜsÏñî»ï²zõê o”c¡°°�{W_}µG¼oA„ÓEQôTàKºï¿7³X,ã€fÀ xÚ-5@m·®¬°ø!à8û´ûÚ¯‡£Ûb¿Å#¦>Ú㯀ÓUvíÚÅ®]»ºÔ¶´´T¯&q²PTTÄ·ß~ ø¼'&L˜pJô-‰#’7Ëñî ¬ŽÔE�Öz4k2Jˆ%€ ÎKgùÒ ÌûûAÞþW n�Òû¥m EQ¸òǽùÝ}ƒÈÈÿ†ß]]D]µÆÖ’‘D×Õ“Ñ»Œ>}ò0 C“"…%�®^2B0‹-Â`0`·Ûùä“O˜8qâq‹0»wï&--MO6/‚ ÂÑ#BÌq¢(Ê)å&û}—:th�¸h÷tß‚ œº"¤´?¦in·[O$ݾrX ð`³Ù0±ŽÌ”/ºfOkjùj0% X’Á†Ð?�©)þ߃ƒ¸õæ<>[^ÅŠUÕ””:¨¨p iY½bè“ÍùS2øÑÔ ²²"W#ó6×á.ÝΗ%W£LØm6Ö¯_ @Ÿ>y�Æ"Là\¯U¨ï}dNoJKKY¾|9‡ƒ±cÇrÏ=÷tK¿7ß|37ß|s·ô%‚ ?TDˆ9N¢¢¢1b«W¯î�¯åd#::šáÇŸR‘ ? ºâÝÒ^�ñW³Û*±°«q?Q¦fŒ ƒñˆÀ ©*^·�¢ÌQDÇwÍ«Ô/ÂT5&cIìC ¸š!*Éç%†¬L+?»¡?»¡O—Æ …jo±g={j‡RÑ’‹Ñè³¹¥¹™õë×¢( ¹¹}BŠ1þëÓÕ\1"ÈœžøÛ ‚ ‚pò!BÌqb47nN§“ÒÒÒˆ¥4O$f³™ììlÆ�±”³ Â÷ÍÑxÁhšFkk+ uXXE¼u;‰É®!0�XÛ£“ÑˆÉ ] íõ‹05Íil,›MB] ¤lDÓT¯LÑG9Ë®ãi¬Á¾s-UötÖMÀ`tc6›õïî–æfÖ­[äIç†c ¼GLg‚Œˆ1‚ ‚ =�1Ý@LL ?úÑ�hnnîà²`0ˆ��×K< ‚ œ¬„a4MÃëõR]]M´á²âwDu¯x(Âlªø çO�Ayy9{ŠKÔ¿. *R÷ Žâ=8÷}E½;…÷Lãh˜Í¾Jz‘ăÁ ÷Ñ^�ñÛi[Ÿ»ˆ1‚ ‚ =Ž<•w&“)¨R’ ‚Ð9�…ù—ÍÍÍ´4~M¯”eM=çy¨¹š‚D˜IçÎ **м¼<6n˜FJýGd¤{}�U/ªªb0š @9¼-�´ìÚ„»ª” g‹öÍÀ£uÆO(1f„Ideõ ù"À`0`41›Í˜L¦�‚Œˆ1‚ ‚ |DGGãp8ˆŽî9ÏâSbA„B8¦½SUU…Õø)9ÛèÆª�!QÌ18Lù¬-ºŽ 4CÏ©¥( g�™ÀšÕõL>ë Sðå‰Q½xÝ­`0`0YPLGW•ÆÓTGké>ZË¢yÜ|]>�ÏŽG1š:ˆ0~Ú‹1[·|FÒ¸f’â«1šT mùdT—ŠÇ¡b³gÐÀyX†éž‘íC˜DŒA¡'Ñ4 «ÕŠÕjÕ·Ȉ#‚ |ïDò„ ÜWRRLFÂBb¢Ë¿Ãq9Ãù‘q•ÕÉÉ9’p×l63~Â�XµÚÆÅîÂb6¢˜-x5ÍíÂë°¡£LQ(&ŠÑŒbhó>ñª¨n'ªÝ†·¹wm%^{š×£‡;E›[ñª ©¡E˜@[â5 FÔsæÀÅýŽxæ­FŒVˆJhmöÚQQ{%‰™ãˆ��÷Ù"ѯ ‚ BOðC_!FA8¡„ G*.>Hï”7±F5ï6%ô2`¬žGiémº£ª*� L�R‰ÅÜf³ÁˆÑ‹f4£:mh­¼­4oš×ƒæq/ÛÖñzÐ<Åk|/zõÊ ìp nwx1&?ÏÁEç×`6u1/™¢“C®w Õ‡wãtþ„´´´¥¯ÛWZqFA¡û9¾ vAA8J½ aÊÊÊè�ôÎ aüĦ›È4¿Lyy9ªªRYQDfòÄÅÔvh«˜-ã“1'g`LHŇbðvi¬fo_Ø…Ú—_q}ûõAÓ4ÜnOÀÇ�ÛíaÄ™M\|aU×E˜@;�F2rŠ°ØæQUUÕ!LÞT ‚ ‚ ô<â#‚ œ0B õõõÄ›—b�®;Š~`ßþV ¿hfÛõuªª=€Fzº‰ä$#†G3q\<ú[»ÜoB¦FkÙö}w>ýû¬ 6º&ò FƘ8ÔÖbhݤã%1Lc…šÖŠcqÅMaÔ9¤¦¦0cÆÅ,Y²”¢ƒ‡‚ $b¢ÍãÆåV°9¢inM ¡5—zï@âSÒ¯_?²²²:EEEº£( i©&î»ÓM”åÈus»5^œ_ÉGKPUÍ7oM÷Ð@ÓP pù¥)ÜþßY˜ÍGa5ÕKIÅUdd�Åb±Gª)Ú"BŒ ‚ =‰Åb4ãs%ö´[j€Ún] X'`;ðCÀqöi!öµ_G·‰"Ä‚pÚ!BÌÉK¸|0þå¡C‡ÈMù &Kç?'‡Ë]<õl9»÷8Ž/Da@óçÅeè�h}0—^Y–n™a¾)�J‰ýr¬V+ž¶\0&“‰èèhâââHNN&===dùÆÀk(Æ\w�ÆØÑGÚ¹ÝhûÊg  úª!yUÜ7� �x¼*&³ož®V•U¸Ýn¼me®4®¾2+¸o{MðöIž/æ“O>aåÊ•!�­X±‚/¿ü²ÇÆ^¸p![·ní±þOWW_}5Ï=÷\‡cÍÍÍ<ýôÓÌš5‹óÏ?Ÿo¼‘Õ«WŸ+AáûC|¸ÃþÆÆFn¾ùfÆŒÜ9sˆ��eÇŽ¤¤¤œ+AáûC„˜BÓ4—pÛ"5®xŸ7 QNB/yif r£I‹7‘•àûÓT4y¨µyØRâäP½»S±¦”Lf/ªæ/—“ß·Ï ¿aAˆÄ‘œÈ9®jª[}¡I~/ßÉ(maIíE—vÛ¡I´ %îTVDbÃ[»’ æx1 8m ±­ (QIúþîÉgÿþ_9j´ˆ hLŸÊC÷ êÛÓPŠÓiÀo8)D–®�——Ǻuë8|ø0¹¹¹úþ²²2¬V+ééé=6öÙgŸÝc}Ÿ®²eË.½ôÒÇÞ~ûmÎ<óL~÷»ßéûòòò:´A„Ó bzˆ’’2î[l¢ÖcE1Ö«%#ÞÌM’¸hH,ùé–ˆ}¨v±|��7¾h Öæmë(¸?h¶¤sÏ’jþzy}Ä3F„Ó_õH¥£6AÆh4‚FH&Pti/Â(Нª�¦µåˆ ðŠQ”£ Í9Ú’ÕíC:Û6�4ÛSˆ±W£D%âÿâ7› ¼ù$�>ú(k×®ípüã�?æ÷¿ÿýq�ó_ÿõ_Üpà ,^¼˜mÛ¶ñ‡?ü�sÎ9€wÞy‡E‹QWWÇðáùï¾ûèÕ«×q�)‚ ǃäˆéªªªøýJ…2§58ßK@^˜Äh#÷OKgŽyü÷¹É�Š0ùén�”Ìò;ò¸gj* цÐye Ð`IçÉÏ=–3æë¯¿æÂ /ì–(€Ù³g³téÒnéëTW„`4ÍñxJŠ©-?Œ/Ÿ‹¯ ³†Ùl ›ÆÐIî“Ù ç…ñ/5M#µ“ïcMõ•÷KWE‹PÕ¥¬V+•¶!¨^š³.è³ÙÀÿ{h0½?–šKÿ3bˆŽR°ZaÀ1Ü|c_–~8‘Ç>s€ƒ¦á<ðjk+UŽáX­Ö€C¡ígë‰ ??ŸC‡ ÝRU:D~~¾Þ¦°°�ææf~üãså•WÒÔÔĦM›‚úY±byyy\zé¥dffÒÚÚÊgŸ}Æ Aƒ¸îºë¸è¢‹èÛ·oX;¾þúk<ÈÔ©S¹òÊ+1�,Y²UU_E°Í›7sÎ9çpíµ×’‘‘Á矮?Ýyúé§>|8ãÆ�ëpÌétR[[KTT¿ûÝïôkø¯ýë˜Æzä‘G˜šÈŽ-±sË�X¶x2�<8˜ýÛUÓÓ4¶ÐR]Íóïõ¢E;‹¨¨¨°ã‡²íD“——‡Ë墲²€òòr,‹ž¿Åív³gÏÆ�Gtt4±±±œ}öÙõ3hÐ † BJJ &“ »ÝŽªªäææErrrØP'¯×ËöíÛ™8q")))ÄÇÇsÞyçár¹(..|»I“&‘‘‘Att4#GŽÄápÐØØIBèÓ€¥K—RXXÈ]wÝòxM�/Iô_þò®¼òJ-ZÄ]wÝÅË/¿”ŒyÙ²e̘1ƒ›o¾Yÿ{ïÝ»—gŸ}6¨¿Ë/¿œ«®ºŠ`µZñz½¼ñÆ<ðÀ <˜ôôt~ô£ÝC3A„®#BL7¢ie•µ¼¹3& ºQ›·ŠâóV¹èÌXÞü¯lz'ur£ß²“̼z]o.P‰éˆgŒÁ¨ðöÁ8J+k»õÚãñ°nÝ:n¿ývL&›7oî¶¾A8ý %Thîð%”F�ŠoMÔAFÅíö†¬šÔ^t åÓÔló‰/"Œ¦ªŒ9+1¢-xìçÒÙ\;Ãåra·Ûiii¡©©‰²²2Þÿ`Ë žþ› ÕíÖsÚ-šÇMÓ7+i-ÛÇ_å°f[<ÿ~=‡¢©©‰––ìv{—ö)ÌX,rrrta¥¨¨(Ȧ±±MÓøè£�X°` ,àóÏ?Çívõ“‘‘´�””D¯^½X¸p!+W® ™`ÖOss3ªª%ï5™LdddÐÐРï ü7�Édê`ÇéFee%üã¹é¦›ô0¬öÿ^_Þ�±cÇÏ”)S¸âŠ+øüóϨ®®æ�7ÞàÉ'ŸdĈÜyç�ìØ±ƒçž{®ƒ@6lذ íÇc·Û2dHOMSAŽÉÓ�Ô××ó·/-¸C[N‚6ÚÖ'žÃó×öÂlì¾Øz«ÙÀŸ®Èä¶…ål<äð ˜8ÊÊß¾tòDrÉÉÉÝ2æ¦M›HHH`РAŒ7޵k×2aÂýøìÙ³™8q"›6mâÀ�äääp×]w±sçN–,YBee%£F�âÞ{ï%1ñÈφ X°`uuu <˜;3œ_Ž�Ç믾ʪU«p¹\Lœ8‘_ýêWú›­Ù³gsíµ×²lÙ2vîÜÉœ9s=z4š¦ñÎ;ï°lÙ2:t(wÜqÇ&>_N4�…ðßQS&'ó÷ù‡ô|.m™PhuºˆN‰Bõ¢WNòåã HÒëK ¼­hØšízR[@_¿à‚ÈUq4—=hûXB�·ýK¯×KMM-[¶Çþâ šZ|ßé{ õ-ÅÀæ­*óßhæ¿o‰O›gŽÙLÀ/N¸Ái­(ƶg3j«ƒ·6ögóÞÅ@³þùÞçXc}ž3 qÑœÑ7‹‚aHKKÅh4†¬ ä·ýDå‹éׯ›7ofìØ±1}útý˜Åâ /»òÊ+uoŸ® ( 3fÌ ¼¼œ½{÷²|ùrzõêÅE]Ô¡­×ëõySµ»F£“)üíÕ©�ùx™?>---üýïçÿøà»^ï½÷÷ß?W\qf³™Q£F�Û·o_öìÙ@ZZóæÍ#99™‚‚bbb¸ûî»9묳¸þúë#ÚÐÜÜ øÂÖ«k ‚ ÂÉ€xÄtªªr¸ÖÆ×µŸGŠî¡âóŒé�dæO33»U„ñc6*̽<“ì$s»0(Å»Zã)«iô+V0eÊ&NœHaa!Ï‘°‚¦¦&^{í5~ýë_óÆo�““ÃìÙ³)++ã±Çã…^ ¼¼œW^yE?çðáÃrß}÷ñòË/“””Ľ÷ÞKk«ÏÿoûåååÌ›7�_|‘òòræÏŸd×ïÿ{&L˜ÀŸÿügýÍØo¼Áš5k˜3g/¾ø"‹…ûî»/È^AN,Š¢ ¶6Gl3x`,}úX;„&išF}]–(S@R;OCð¶Él¤ôP9j›W�Ï+Æ·Þ¯_ ƒÆE´ÅãVr¬¢ŒÇãá»ýy÷£5lÚ¶ŸºF¯ŠÇ«bŽŠ¡ßà‘ ?ç<ÌQÑ|°ÔΨÀfWQ]N<�õxZP�v4·Ë7'Õ‹ê´ãi¬Åyp'�_|ŠíÛ/°7»øÓ’!|²%sT4ÃÆžGßÁ#0YcôñêmlÚºŸ÷>ZËwûvø¾#•¤˜žs@J°ùÝyÉAaPz˜’ÙÈ›; úÛ¡ãÁét²aÃÎ=÷\ÆŒƒÇãá믿>bKB÷Üsƒ "99™k®¹€n¸�ììlrrr˜6m;vìÐÏñz½Ìœ9“aÆ‘••Åý÷ßÀêÕ«±Ûí,Y²„Ûn»M�׿馛X¿~}�m_|1—]vgœqQQQ¸ÝnÞ{ï=îºë.úõëG¯^½xà�°Ûí÷µ¡{P—Ý©WB ÝnÿUŸ6F dTT¯JUEF“¡ƒèr$LÉ€Á`Tî?„׫,uŒ IDATva4Mãž;óÃÚ€¦â±ÙÛú žCÄÓ"$½Õ4�òŠ >]½…†&{Èv1 ‰ 5E1°q“�¿¼T‡ªšÕaÃ]WAëá8öoǾç+ì{¾ÆþÝ7´VBs9Ð4…ÿ[×�-ÅÉ(ƒ Æ> «¾ÉÆg«¿¡²²J·óhæÖÓ˜ÍfrssÙ°aCPXøJ~�1‚/¿ü’²2_E)›Í¦ç% Gkk+{÷îÅf³áñx(//Çd2%3РA¬_¿žêêj6lÀjµêÞœBd®¿þz>þøcÞ}÷]ªªªXµjü±~ßp<$&&rÞyç1wî\Š‹‹±Ûí¬[·‡ÃÑ – ‚ Âñ!¡IÝ„ÝngKu”.„zHÒÙ}¬œ;0>ì¹Ûйïõ�ªssé¨dî»r YÉoú:cJÿx ²›ø¦¼5ÀŸ›þö&+v»=(èX(,,Ôo2�N_N‡¡C‡²fͽT¤oØ#%yyy8ýÍ–ÿM¦ŸÜÜÜ Êf³™áÇsèÐ!JKKQU•ßüæ7z¿�»=ø�åÌ3Ï Ú.//Çëõ2pà@}ŸÕjeÈ�!”””Ïe¡›P“ÉD³#ŽèÖkxO‚ /Hcø°X¶nó‰Êš^ËTÕÃáÒ ââcIJNÄl2麎¢€Ûã¡®¶žæ¦–½G Z?« ‰ /ÎÒµ¥šFg2&“©ÛòÃØl6¶ï:Hcsçˆ1 ‰däô%Š:îøïx '�œ °GãÆsË(nêƒËÜ;¢ã§¡ÙÎÖo÷“””Hlll×úÉÏÏï�ÆOAA&“‰ 6ÐÒÒ¢'Ë ÌéÒ—ËÅÁƒÙ´i.—‹ÄÄD.¼ð°¡-ãÇ�çË/¿dùò娪Jvv6_|q·ÍïtgĈ<óÌ3ÌŸ?Ÿ—^z‰¾}ûòÔSOqÆgtKÿ?ü0úÓŸøÕ¯~…ÛífÀ€ôïß_ö ‚ 'bº—ËÅî*; ôP}ÿ=ø�“#—J|`Á~*b3°Ä)|Rébé“›¹iB³gäk=º?ÑìsùÕGÕlЬQì©q’–æÆl>öDÁ«V­¢¡¡�Ë.»¬Ã±»ï¾;äÍj¨‡‘®< ˜ÍfÌf³~óÿâ‹/ê®à]Áår¡ª*^¯7(^ßb±têÒ,Â÷‡Ùl¦ÚчtÇ¡ˆBŒ¢À³O�ɬŸ~Em½[÷  ÌóÒÔØBScs‡\2úz&)Ñ̳O ¥³¯&oSM­CÉ8Žï�ö¹aœN'{ö•µ©©.ãpñvzç '5½·~¬Wn?FËç=ôÏÞÃÀìÎÃo4Jœ£8èý1Sg$ñÍîÊã•ï@²Û�·÷@ç !666l®˜E~~~HÆÏðáÃ>|xÈcþð˜@âãã™6mZØþÚŸc4?~<ãÇ�ïò7ÞxcØþOg~ûÛ߆Ü?nܸ�å­�†×^{-äþøøxæÌ™s\} ‚ BO ¡IÝ€Ãá`eQ@…¤€’Õ9IfÎî9ßÀa%Åè;Ç…9»7¯ïtqþãùך¼j×ݾÏ΋£w‚I‰ ¬¢´¼ˆãrÉmiiaÓ¦M¼ð ,_¾\ÿ,\¸ƒÁÀ¶mÛŽ¹ïÆÆÆ ²¢š¦±{÷núöíKff&111lذá¨úìÝÛ÷ ±}ûv}ŸªªìÙ³‡~ýú³­‚ tþù¨¨( ƒÖ&4OäêI½{GñÇg‡b2Ò!¬H QU)hÝ_ªºÝºÑ¨ðÂßFѧOLıUg3š½»2Bs»"FD ÝÑ4 ·ÛM‹#¸$õ®q»œ¸]vïØtÌÇØ±c™zá�q™®äÓ¯.ä«ï†QV›Nƒ-�ׄG5ÓèL¤¼%�m ÓXÛü;9�rÁÅ?a̘1DÅÿ.íÞñn—·ËÁ®íÁßµ-¶VÜn÷I“FAáTGsæÌÁãñ0zôhž~úiý�aæÌ™<÷Üsñøã�“í‚ =�‚ŒÁ` =3�’â<ò,‡QÜv0GöN9« ‰÷Þ>›{ØÁ×[üUŒŽˆ,�ùcE�ÀõÑg%ñÜÜ‘ädwž/Bm®Am©¢´eéƒsƒ’õö„1bÔD¶~³EƒöS«ÕJ^^^Pž­@ÂÍÿXÆAAŽŸî¾{ìJJ'ë�û ûÚüÇýÛþuc»uS»e|MMÍÆît±®¬¬ä§ŸXQµÀYø¼PÞ™•ÁàìÈÂÉè¿h;†_‚=kP@u{°®aæ°¾v0Ñ–ÐÉw•µpóÒ=Y°ÞŸWãå v233�m¢‚pŠÐÐР'‰NB‰�K§ÓÉ·_½Îè~‚%CB.]ùIÑ4XöY%úË>öï÷—dBŒÛÿŒ8î»{ Óÿ?{wU}.pü;[f²ï! �’@Øwˆ""‚BÜ@´ŠÛU©·nUkµvq«Uk¯�Š^©J¹¥"Z)‚ #›�°†²ïËì3÷�8ÃL2I&É„Dû~ž'Ïœ9ç·Î@ræ�ß2׻߅v«CÁ.vêïfä”ÛÑétÎLëÇÖÇíõÝq|îÜ9Ö~ø…Wmq¸õºK‰‹‹kSW‡ýø¾¾’’ÞÙ°£KõÝvÃeÎéž …¢Ó> !„BxËÏÏoÐXK«G;`kulw9Æå¹ë.×q9g÷p®õq{|D�1¾¢T p Ä8îG£C¼˜šÔzJ“Âåã‡KyJ­š�!±|VaDùÇøÝÒáË‹ ñó°{“›Ï4BÑ'´Z-‘—PÝðázìúþ�æS(`ÞÜÌ›;€ÃGêÙöE9_ï«¡¼ÜHIi3ØÄÆù3 ZË”ÉÌ�Ètïý0�Ù�ÝÔL­%ŽÀ˜ÙÎ)>}©£ �'ým‘]!„Bˆÿdˆñ…ËX×Q(!þ�¿Ä­§&9˃6A…ü‚uÕ›Û-/Ä_�Réad�¬³(„è#žÖ‰i}.11‰ƒû&35|XôàÅ%W#ÓCÙÅ KgLEG°T£Ð¨8Ñ0—qã’<ŽéîÈ_ŒÎì¨îŽÖæé* â!„Bø†ìšä#*î;)@©TPÝØ~ÀÄÁ5�ëŽKç�i³ Òääö?lT5˜œéΗÛÒ!„èoîu:AQs9[Ù2eÈnÑc·uþ;´·˜ÎÃXü¥MÉ„ º�®eݯþ�h€ñÔ¦ÖçûC»…B!þÓI ÆGÔJeKÐDq>ˆ¢PBE½±Ó¼®yZo9ÝúX­‚kGsߌèvË+¯7¹ƒ\22"FÑO´7’$--�ãe³0›¿Mh5‚Ýæ©ˆ^e(<Œþø7˜mZN™n$55µÓÑ0Þðåe­ëv^<f|„‘­¬…B!ºO¦&ùˆ°¸,-ì˜jtªBϨÁ•W(Ýó€ûÔ¤– ògå„0’Â;^wæt¥þûéNîÓ“l&kW»%„>ÓÑôÇ5•JÅÈ1sØ{ð,3Æj¹èÄ8ç€ö»ÅBÓá,Ì•E(5-"÷W/dôŒù¨T*g[Ûs¡Fœxjo˜B!„è;ˆñ­ ‚(_�h`áÄŽwæð¸°î÷ÇIaî�ÆôAÞ­•°ûTJ¥ŸKyß—e–@Œ¢ÿh/HAdükdLz‰3½Ýjm "(=ï×S抳4ÎÆnhta¾«›Eô°[ˆˆˆðÉh_òvÊ‘a„B!ú Äø€B¡@k· P©ÚŒBÙWnÆj³£ê`}•R�ÝÃB½‘*îÆ•)�(½¼y¶ÚìäÕZP|¿[“ÛȽYnÂ…}Ê›Q1©©©äæÎ'ÿä§ O­mI`·c³˜ �…�2ÖÆš�ÂTVØìù~tãɦi(®$--Í­�õ;X8·½:Û[¬··ëB!„Þ“5b|@¥RlÕ£Ó(Ý×tQ€A«åÓÜÒó'†ª]Ô?·Ž eýÕñ,H ò:°%§k°¿Ëb½-kÏhUJÔ�õΡõBÑt´ëЄ ©nžGîÁçµã§µØ­flÍ X›ê±™ tgK8»ÍŠ©â, 2©ß÷æÊ³œ®Kt^?Ö<‹æ2~üøvÛç‹`Ä) ñCj«B!D&�Ðh4„ш÷]ŠJPj”¼¹§‹µý ¿»8Šôh?‚´J®J âý…ñÜ>6ŒM×Þ‹ÕÎêÜJ”jåù—¾o‹½ÉL”Ê€F£éao…¢g¼U¢P(˜.¸‚MÇ®Âl÷#·ù&”C~Á”)Sº4ý§¯t¶FL{×~ÈvìØAvvö¯wݺuœ;w®Íù£G�òñÇw»\«ÕÊš5k¨¯¯ïIóúU�O>ù$Ë—/owVAAÓ¦M#//¯WêwX±bE�ÞWMMM¬[·Ž[n¹…Ù³g³`Áž{î9:Ík³Ùøàƒ¸í¶Û¸ôÒK¹öÚkùè£�Ú¤+((à¾ûîãòË/ç®»îr{}¼-ÃA¯×síµ×òÊ+¯t¯ÃB!z�LMò�Fà`…zªv»ûô¤š  >Ì,fùŃ<æ©å­ùq=nÇ»‹i F¥t_øW¥„Ʋf&DZú$óÖ[oq×]w]ðz}íBôãÇòZ áKéééœ á_;¿Š9zŸü“þ Ô̸´zR×¢±°è›°[-Ø­V°ZZŽmŽcë÷Ï-`µb¶À±ò$—&SX�ã³b–á1Æ]´€Aƒ<ÿ¾ö%שBeÅç00¾×ëìŽò³çGuþØ:­åææR__Ï¥—^Ú×MéÐ¥�'Nœ 33“™3g¶¹¶nݺ>hQÏ�Fªªªxà�ˆ��ç»ï¾cݺu<÷Üs<ûì³æÝ¶m999¬\¹’øøxöìÙË/¾HTT³gÏàÌ™3¬\¹’Ûn»�Çœ­[·rÿý÷³zõjÒÒÒ¼*ÃÕŸÿüg��C!„}O1>àççǰ;Ûö[ õ£Ábw[$Wå§bÕÞj¦‹ y@`¯´ádioî¯ÆpD«…Á;' ˜p… ?¿Žw\êˆ^¯gÆ \{íµx·pð…ÐY»ìv;ï¾û.,\¸°Z(„ðFëEe]¿IOHHÀ`˜Aî7`·Ã‰3œ8€FÃàÍ Ž­'*¤™ð &5F4 v›“IC“^Gu½ŽŠ† Š*#)®�Äbkû'pä¤+Úa¼ÓeEgºŒéN[ºš§ül)¥gŠº\�ÁÁÁ¬[·®M ¦¨¨ˆ¼¼¼~u/á�ˆˆ|ðAçó˜˜bbbX¹re§yçÌ™Ãܹs�Ï—,YB^^_}õ•3ˆòÁ0sæL–-[À-·ÜB~~>|ð¿þõ¯½*Ã!++‹¼¼<,XУ> !„èˆñ•JEJB8ak1Ô…£ Õ`u|€øþžWÆk¿ãƒ•cˆÑú´þê+ßÿŽ€”Øïwwu EµBAuA9ÑšÒÇöh��NÇÅ_Œ¿¿¿�Zî�µ«¸¸˜¸¸8JKKÑëõý®ýBˆÎÙív”í,Îk¶(9q6ˆgƒz\�R©tîäÔ<í°a äçw=ãZnguv•#“šGppp›º.D€ª«l6{÷îåÌ™3477ÈøñãIIIq¦)..&''‡ÚÚZHNNfòäÉ8pÀ9 äÔ©S >œéÓ§w«›6m"--�S§NQUUEhh(Ó§O'::ÚÙÎÜÜ\Nœ8�Ýnw þuÖ‡öÚi³ÙÈÉÉáäÉ“X,’’’˜:uªs$lGuö–«¯¾šO>ù„¼¼<çzKï½÷×_=6lpž3›Í¬ZµŠ¯¾úŠŠŠ  ÀŠ+˜?¾3ÍŠ+X¾|9[¶láÀ�<÷ÜsL™2h blÚ´‰êêjF�ÍÃ?L\\Ëhãƒò¯ý‹üü|âããyøá‡;v¬OúX]]Mlll§é”ʶÓÍ###©¬¬t>ß¾};O>ù¤[šË/¿œgžyÆë2êêêxæ™gxòÉ'ùꫯ¼ê‡Bˆ K1>Îðà£ì,÷':\M­ÝõµåÑ28Š›Víç¯w�&>Â7Á€²Zw¬9ˆuh *Õùm¯£q´F#—±h¸‰°°°Õ¥P(HJJêi“}®³v?~œÔÔT4 §N�bĈ®qBˆ6Ú t,°Z­ÔÖÖvX®BÑòû@á:,°¥dgù-?í—QSSËÀ�Q«=ÿyl/HÓQð¦³�¢‚‚‚¸æš+ظñó.cºéJ@Æ5³dÉ\‚ƒƒûM°¥#J¥’��.¿ürÔj5'OždçÎ�DGGŠÑhäßÿþ7Ó¦McÈ�!477c±X3f f³ÙgS~²²²X°`ÁÁÁûŒ¥K—âççGNNgÏžeîܹ¨Õj¾ùæ¯ûÐ^;³²²0�\}õÕØl6vîÜɾ}ûœÁ¤Žêì-:�Ž¥K—²nÝ:g ¦¢¢‚�;wò÷¿ÿÝ-£Ñh8p /¼ðZ­–mÛ¶ñûßÿž#F�˜x~!í'žx‚Gy„{ï½×Lzï½÷غu+¿ùÍoˆŒŒ$//ÏyÏSSSÃæÍ›Y³f ¼õÖ[<þøãlÚ´©ÛÓµm6MMM>|˜¿þõ¯<úè£Ý*gÿþýÌ™3h™öT[ÛòûÇÕàÁƒill¤¹¹Ùã"×2žþyF�Í´iÓ$#„ý”b|ÄßߟŒ5Ù&j  K ¡Þlw[«E­RaJŒáº¿|Ë®Me戨Õ¹ëp%�o:NÀ¨8ÔjÕùÏßb‚Õ Q@€Ò̼1AètºÕîk˜TTT�••ESS:�ŽŒŒ ç·}®ìv;Û¶m£²²µZÍÌ™3‰��¥©©‰/¿ü’šš¬V+Æ cÚ´iØívöìÙÃéÓ§Q*•$$$�‘‘ÑîùÖíre±X(..&##…BÁ¡C‡Ü1o¿ý6ÉÉÉ”——0yòdN�:Eyy9jµšY³fÓa? åÖììlŒF#áááÌš5‹€€Ö¯_OJJ ùùùL�:•´´4¯_7!ÄyF£‘Ó§N{¼¦P8'wý9¤p_ÎbìØlv�A‰ÂÂ3¤¥¥¶ˆé-ãÆ�ð:ãÍÂÁ:Ò:3qâÄÓ÷7®¿ãÇŽK~~>„††ÒÜÜŒÍfcРAhµZ´ZߎPu•‘‘áü1uêTΜ9É'HKKãðáÃ,\¸�ˆˆfΜÉñãǽêƒ'f³™üü|–.]êõ9iÒ$¶mÛÆôéÓ±Z­�ÖÙ[®½öZþ÷ÿ—üü|† Æúõë�ªÖ®¹æçñ-·ÜÂæÍ›ùî»ïÜ1?ùÉOX²d‰ó¹Õjeݺu¼òÊ+ >ÀmúNxx87ß|3£F�à§?ý)ÿøÇ?(**bÈ�!ÝêÓÚµkY³f ‰‰‰ÔÔÔt¹Œ]»vQTTÄO~òªªª tŸÂîxÏëêêÚbZ—ðÙgŸ‘••Ň~Øå6 !„¸p$ã# …‚a)IŒ:t„=•ñèJ ЦÙls¡¢@å§B72�û>>ÍðÏNòë뇓>(¤Ku/iä¥MÇÈi¶5.¥òüHÇC€FIIîqjJê¸b˜�á©£|úm¦Édâ_ÿúW]uòù石lÙ2�ÓŸÆ�Odd$ÅÅÅlݺ•eË–µ¯22 Áh4²qãF’““1™L”••±lÙ2 …óÛÊââb�ç;RXXH||>‹ÅBnn®sØmSSÑÑÑ455±{÷n’’’œÃtÃÂÂ<žïÈöíÛ±Ùl”••-ßž:uÊyæP(œ7?)))dgg;_«¡C‡¶ÙVÓS?ŒF#ÍÍÍìÞ½ÛY‡Õjuæq|C×�×Mˆ“Ž‚0ŽcOçø6o?MMÍnùÁ•JÙN0ÆQ­‚0  Û÷¥¸cššš9°ÿ !!!„„„¸/ZO\Ϲ¶¹½m¤=} ê,ãXÄ·�¥s<Ÿ÷Ò�=ûÚ½ÖY¦µþ”±X,|üñÇ$%%1a‚‚‚ؼy36[Ëû­P(¸òÊ+)))¡  €mÛ¶Çå—_îUù~~~�Æ6çÍfs§£k jµ›Íæü÷èéµë¬íµ `ñâÅÛÑY�½méÒ¥,Y²„_|‘Y³f¹ôz=wÜq—^z)wÜq±±±ü×ýW‡ýœ[GÛl¶ ú…†cdîƒ>È·ß~Ëž={¼ ĘL&}ôQ&L˜ÀâÅ‹�ç h3Rçܹs„††º�jn¯ŒÕ«WÓØØÈ›o¾é±ã¸Ù°a¿øÅ/ܾ\BÑw$ãC …‚Ñ#Ó™}"‹O äÄþ RÇ+ФÉì¸ t$¿@ ±c8a°ð‡œ*žÚršj;ájbC[þà–Ö©6˜©°)ˆ &4!’„�³ çíÔ÷Ç�%úSEä|œ‰FÌ’ÑVÆŒéó¾Z­Ö6;0™Íf� ɵ¾é³X,(•Jç<ñŒŒ """¨­­Ål6̲eË(,,$??Ÿ½{÷²dÉ’vÏ·wSi4ñóó㦛nrÞœPPPàñ›³Ömoý¼½~øùùË•W^Ùiß»òº ñcÒÑ·²­ƒ0®i9pà yyûÝò´LGRºý¨TçGÇ(ÊV�˜–€KË9»ó|ˣͭÎÜÜâ£�>ò˜æèÑ£ÔÖÖºí@tìØ1ç)íIHHÀf³qôèQF�íÓv{K£Ñxõ…—ÕjåñÇG¥Rñøã�·¹ž‘‘ÁÖ­[¹ä’KœçvìØá¶PGe<ñÄ<ñÄnç^xáüüü¸ÿþû»Ú-!„½H1>¦Õj¹rz§jO°»$šï²Ï0d\,‘C"¨5X±»ìhÔrš5‘C#ˆÚ2J¢Én'ßhi¹6H�¿JÉàïÓº®9ãz¬T@¸+6L IDATVEÅ¡“|³9»f§ØX4{\�¶¬nOll,;w¼œ˜˜JJJ°Ùl„‡‡c³Ù8pàéééhµZìv»3]EEÍÍÍDEEqòäI´Z-ÑÑјL&JKK9r$&“ ‹ÅÂ�!CïúíŸkÝ'OždРAnß�%&&²k×.·éIÞj¯v»�úúzNŸ>MRRv»‹ÅâqÀŽ^7hÙ�Ëb±\ðõ)„èMž‚0í_ßÜ[,jjjØ·7‡¼¼ýƒ®kÜŸ¢ä!s~ÑÞ–‘0 Àöýsv{K»]Ñ&(b·ÛÙ±}'õõõLš4‘ððpÔjµ3øãMPÆÓ¹ÖõxÚAÉ‘gìØ±pìØ±6e@K ÁÛ]‹Z—ÇŠóÝ^w‡¡C‡2lØ0�m÷TO_e,K›Ñ):�“ÉÄ‘#G2dçÎ�p~H6�’��€V«¥¤¤µZíü{È‘#GhllD§Óµù]<~üx>ùä‚‚‚œ»P^^ÎÅ_ìL§V«©¨¨àܹsDFFrøðaÌf3ÉÉÉ(•JRSSÉÌÌdÖ¬Y²ÿù@£¿¿‡}h¯�cÆŒaïÞ½‡^¯G¯×…F£é°Î áöÛoçÒK/eðàÁ¯GDDÐØØÈÿýßÿqÙe—‘““àÜù¨=¡¡¡Ìš5‹_|‘ßýîwDGGóÍ7ß0qâDŸï’˜››Kff&ÄÅÅqöìYvìØÁ¹sçœïÿ=÷ÜÃøñãÛ¬[g³ÙøÍo~ÃéÓ§Yµjv»Ý9=J§Ó¡P(X¾|9wÞy'ï½÷óæÍc÷îÝlß¾�·ß~Ûë2„Bü0ȧ½^���ÀÒ©ÕTï¨æÛŠ@Žì=C\U3铨µ�Éjo³°®Û±B‰ŸÚÏ-X.ÁÜ9:•‚PÝy€Âoò±cgl‚†Wt}î»·t:—]v;wîÄjµļyóP*•477sàÀˆV«E¥R‘““C}}=:�Ž+®¸µZMrr2EEE|ðÁèt:bccQ*•-¾öí£©© ›ÍƤI“Ðjµ”••y<ïÊ`08ë>~üx›oÇ´Z-±±±nÓ“¼Õ^?æÏŸOff&¹¹¹h4F�åqÀŽ^7h™û¾iÓ&æÍ›çü&^ˆ×à‹cýÇ´!ƒÁ@EE%'OœäرãÔ×7x,£e1^DZÂ-0ã:e Àjµ-ÁGàå|`Áýw«ksö}CþÑc¤¦¥0t袣£ÐétÎéOÐ2ÁÛõW<÷£íT'Çù´´´v§:ôä—czŽ·iû«£G�rôèQ·sK—.eÊ”)äææ’““ÃÀ�IrÙUÏd2qêÔ)öíÛ‡Éd"44”9sæ8ö)))±qãFâââÜ}ˆ‰‰áÊ+¯$77—C‡¡Ñhˆ��eÑ¢En�4 C† !33½^OLL W]u•ówýôéÓÉÎÎfëÖ­hµZRSS��–°°°ûÐ^;Ç��Z­fÏž=466âïïÏØ±c�#u:ªóB uÛºµÄÄDV®\ÉêÕ«yã�7¸è¢‹˜5k–WeÿêW¿âå—_æî»ïÆl6“ššJJJŠÏ1 Àl6óüóÏSVVFPPcÆŒáõ×_w¾Îõõõnkñ8ìÞ½›ÿûßn‹ëBËvç±±±¤¥¥ñÊ+¯ðú믳nÝ:RSSyõÕW�ï¿7e!„øaðõ–7å):9v=§t9×úÇqÝñÜq¬ju¬nõ\YY™}!/Û“ý5oì6q°\ %þ!Œœš@hlµf&«cW¥¶£d\G»xÖ(ðS*÷SÒx¶†£_}GCe5Fƒž´H +¯ÊÌÓ{½�BôGµµµn»lˆ¾ÓѺ0çÎ�ã…?¼t¡›äS�<ú�[ÀÛ›#Þ,XÜÑߨîŽJñv¡äöÊìO£aú»M›6‘žžî65Iüg˜;w.Ï<ó “'Oîë¦!ĆŸŸß4 °–V�vZ†5»Û]ŽqyîúƒËu\ÎÙ=œk}ÜŸdDL/š6u v{6ïd5�SбÉDÞÎbÂcƒIIÔÍfÍV;V»‡Q2nS�Zž¨• Õ ÕJô�œø !!!mÒ›Íf222ظq# ¬X±‚Å‹ó“Ÿü¤Ý:xà&L˜ÀÍ7ßÜa[Ìf3«W¯fëÖ­ÔÕÕ1tèPî¹ç&Nœè–®¡¡�×^{�¼¼<ÊËË)_h |üüç?gøðá¼ôÒK„……QQQA^^AAA>©Ãf³±ÿ~î¼óÎNÓ®^½šÌÌL~ó›ßÎ?ÿùO~øa6lØàü·_WWÇm·ÝÆäÉ“yê©§ äСCDDDxÕž®æÿóŸÿ̹sçºÜ·öòõ´ýBá ˆBqÁ9‚2W]up>ÐÒ‚0c\¯Ið¥o¨T*üüüˆ��墋.â“O>Ál6£Ñhz¥ÎI“&õJ¹â?ב#G(**âÝwßE¥RÁ°aÃ|VGAAv»Ý«2333¹îºë7nÿýßÿÍ—_~É‘#GÈÈÈ`ýúõŒ1‚Ç{Ì™/11Ñëöt%VVyyy,X° K}ë(_OÛ/„¾ �!„½¦õ(×瞎[5úz Sg#c: ÈH€æÂR«Õ¨T*ç‡Ù÷ߟK/½”øøx eúÇæÍ›Y±b›6m"))‰ââbªªªfúôéÄÆÆràÀòòò8uêÇgúôélÚ´‰ôôt燾M›6‘˜˜ÈÙ³g©ªª"44”™3gRVVF~~> ÄÇÇ“‘‘áœ2e³ÙÈÉÉáäÉ“X,’’’˜:uj¯�úŠÍfã½÷ÞcË–-ÔÔÔ0fÌ~øaç(²+V°|ùr¶lÙÂ�xî¹ç˜2e V«•7ß|“­[·b·Û™5k™™™üùÏ&!!¡M=�¥_±b—\r _ý5ùùù$$$ððÃ;§—yÓ΋/¾˜ììlŽ;ÆàÁƒyôÑG9xð ÿüç?)))aÒ¤I<þøã„……-£\Þxã ¾øâ ŒF#_|1÷ß?þþþÛo2™(--õØ?Gš·Þz‹Ï?ÿ›ÍÆôéÓÛ}ݹóÎ;™3g·ß~;yyyŒ7•JÅš5køòË/Y·n*• ½^Ï 7ÜÀ]wÝÅ‚ §  ÀY^CCõõõ$%%9Ï}òÉ'<ýôÓ½ýò6]]Ï<ó O>ù$_}õ•Ç4®}ó6_OÛ/„¾ ‹õ !„¸ Z/\G™¸>o}®/~<µ£u»[÷I\x ìÛ·�ÔÔT”JïnmŒF#999L™2…믿ž˜˜¾øâ l6cÆŒaüøñ :”Ûn»­Ý¾F£‘ÜÜ\¦N�Êõ×_Ohh(›6m¢¾¾ž9sæ°hÑ"êëëÙ·oŸ3OVV \}õÕ,^¼¸Íõ‹5kÖ°}ûvž{î9Þyç4 +W®Äl6;Ó<ñÄdddðÆo0fÌ^{í5¾þúkþøÇ?òÚk¯Q[[Kqqq»õt–¾¶¶–7ÞxƒŸýìglܸ‘Q£Fñøã�;ÛÑY;kkkyóÍ7ùùÏÎßÿþwÌŠ+(..æùçŸç�wÞáìÙ³¬ZµÊYçË/¿Ì¹sçX»v-ëÖ­ãܹsüå/ñØþ‘#G2tèPþë¿þ‹÷Þ{�òòò6iV­ZEvv6üãYµjz½ÞcYV«•_ýêW¤¥¥9ƒ0ß~û-&Là–[nÁjµòá‡-S‘RRRœ#Gî¼óN>ûì3~ûÛß²iÓ&xàî½÷^ €Á` ªª ­VËc�=Æe—]ÆâÅ‹ùÛßþÖî{äª+ùŸþyF�Í´iÓÚ-ϵoÞäëiû…ÂW$Ó™ÍfŒF#ƒ«ÕÚ×ÍBˆñf½•þ€é, ÓÕþ ß;tèkÖ¬aÍš5lÙ²…˜˜.ºè"¯ókµZfΜILL þþþŒ;½^O]]]—ËˆŽŽÆßߟѣG0nÜ8BBB %--�²²2 åï{~~>Ó¦MÃßߟÀÀ@&MšÄéÓ§»Ô÷þÎl6³~ýz}ôQ†JBBO=õMMMn#~ò“Ÿ°dÉRSSÑét�Fþþ÷¿óØc�‘ššÊÀ�ùå/Ùn=Þ¤ ã—¿ü%#GŽ$<<œŸþô§TUUQTTäU;ùGŒADDË—/àÖ[oeРA <˜ °ÿ~šššøç?ÿɃ>HDD111Üu×]ìܹÓcüüüX½z57Üp|ð‹-âÉ'Ÿäرc˜L&6lØàÕkòÒK/ÑÜÜÌO<áû¬×£ˆzšZ¦Qµî›·|Q¿Bô”¯ï&½)OÑɱë9¥Ë¹Ö?ŽëŽçŽcU«cu«ÇàÊÊÊìþzÃo2™Øöïm>œOCC'�cþüy²FŒ]P[[ë¼�BñÃUUUÅ‚ عs§W÷B]MÿcöñdzcÇþô§?õuS|îÇÜ7!þùùùM+`iõhl­Ží.Ǹn�Ï‚2"¦±Ûí�F´Zƒ»ÝNP`F£�F#ß !„â?JAA ^UºšþÇ,44”믿þ‚ÖYXXÈ 7ÜÐîõ»ï¾›[o½µÇõôEß„—$ÓOØívΜ9æ|™ÂbçùO·ü›Ã‡Ž²hñ $Á!„BühRXXÈ„ ¨ªªbÕªUÜtÓM>KÿŸä’K.¹àu&&&’��ÝëõôEß„—$ãCv»½Û úUWWó�ÿÛ̹â&MKÊÐdÀÎñã§ÉË=È?þñ K—]ãÜn°«ÔjµOƒ8ß|ó �<ò³fÍâ‰'žðY¹­=óÌ3DDDpÏ=÷ôZíÕ»cÇ åµKHHફ®bÑ¢E½ºnÏwÜÁœ9sXºti¯Õ!„BôW ¼óÎ;üú׿&&&†%K–¸­OÒÓôB!D �±X,444´ …µÛ»´è¤Ýn§¢¬‚¢3g™4y,£G§Óøý‚‚cƤ�³o?_ü{‘á] ¨( üýýIJN"..µÚ7oùöíÛIOOç믿Æd2ý(‡/\¸�;Á@NN¯½öz½žåË—÷Z�Ó§O'%%¥×ÊB!ú³Q£F±víÚ^K/„Bôˆñ‹ÅBUUƒ êv ãàÁ–m SR’1èõ465 VkHMM"gß~Ž;I`I@·Êÿæ›ý\2k&#GŽ@£Ñt« ‹ÅÂîÝ»ùÃþÀc�=FNNÓ§OïQ™ý‘ŸŸ���rÅWÐØØÈúõë{5sÛm·õZÙB!„B!úžb| ¡¡�ÈÈH�6±£V« @í§Ál2·\Rt‘f³ÙLNNƒêöô&‡}ûö°aØ6m_}õ•[ æÞ{ïåŠ+®`×®];vŒÁƒsß}÷9·ììzg6nÜÈ–-[¨©©aĈÜwß}ÄÆÆb·ÛùàƒøüóÏ©­­eäÈ‘ÎkŽzgΜINNÇ�'..Žûî»�Q£FyUïèÑ£©««C¯×ãïïϽ÷ÞËõ×_ÏçŸÎáÇyê©§˜8q"‹…µk×òå—_b2™˜1cwß}7þþþ<ýôÓèt:~øag¹ûÛßÈÏÏç7¿ù ÷Þ{/ .dþüù–õì³Ïb³ÙœSÃL&W^y%×\s�s*—^¯gñâÅüõ¯%..Ϋ~ !„B!„è=½·ØÅ³ÙL`@÷Fª8´¬ Ç�ŸF£ÑLpp0µšãÇNà§éÙôŸºÚ:Ìfs�Ê€–iIŽEÒf̘AVVV›µq^}õUV¬XÁÚµk1b�<ò���^_oχ~ÈÖ­[yì±ÇX½z5—]vaaa¬[·Ž]»vñÔSOñúë¯ãççÇÃ?ìl[}}=k×®åÎ;ïäÝwß%==�ßýîw^¯ëSUUEdd$þþþÎsO?ý4Ó§OçOú“3 ó—¿ü…’’^{í5^ýuJJJX½z5³gÏfÏž=ØlçwRÛ½{7—^z©Ç:;*kúôé|ûí·Îipû÷ï 33Ó™ÿÀ�ÄÇÇKF!„B!ú Äø€Ýnïñh˜ä!I$''’—{�ŽÐܬ§¹YÏ�GÈûæ ñ ±hüz6¥¨+ëÖ´Ç`0°gÏ.¾øb&OžŒÅbá›o¾qK÷àƒ2jÔ(¢¢¢¸çž{ s.~ëÍuO¬V+ëׯçþûï'--�¨¨(fÏž�N§Ãl6³aÃî¿ÿ~’““‰‹‹ãÑG¥¹¹™¬¬,BBBxðÁIOO',,Œ¥K—R]]Mqqq§õ?~œµk×rÝu×¹]›?> .dèСhµZš››ùôÓOY¹r%áááDGGsë­·:ƒ#S¦LÁjµrèÐ!***8sæ Ó¦MkSogeMž<™ÆÆFN�:ÀÞ½{¹ýöÛ©««ãôéÓäææ2uêÔû'„B!„â‘©IýÈå—_Ì¿>ÿ’œ}ûÉÙ·ßy~èÐDæÍ›ÍÿýãÓ>l]‹¬¬,t:Ä`00räHvíÚÅ”)Sœé\V(Œ1Â-àÑÙuOJKKÑëõ¤¥¥µ¹VRR‚Õju»¦ÓéHOO§¨¨Èc½±±±èt:ôz½Çú6nÜÈÆ�Q(ÄÆÆrÍ5×põÕW»¥1b„Ûóââbl6?ÿùÏ�uY,š››�–˜fΜIVVcÆŒ!33“‹.º­VÛ¦þÎÊ d̘1äåå1dÈöîÝ˳Ï>ËñãÇÉÎÎ&))‰ÜÜ\~ö³Ÿµÿ¢ !„B!„¸ $ÓOÔ××áÀìËfP|¦;*ödíeöì$%&$$„˜˜(ÊË+û´�_~ù%µµµ,\¸°Íµx•Jå1ŸJ¥B§Óµ[ng×çÔ%O#{L&6› «Õê6:ÉÏϯÃ�:Ú�jÞ¼yÜsÏ=øùùy½Àq`` ¯¿þ:!!!ÓÌž=›?ýéOÜ}÷Ýdff²dÉ’n—5}útöíÛÇ´iÓP©T$$$0cÆ >þøc.¿ür***=z´WmB!„BÑûdjR?QRZ‚ÝnÇh4ÌÕW/ 8$üÓ^Ì IDATƒÑ€Ñh 5-¹OÛØØØÈ¾}ûXµjÛ¶msþlܸ¥RÉ�¨®®æ“O>qË›ŸŸObb¢W×Û‡Íf#??¿Íµøøx<è<çH›œÜ½×ͱcRWv™0`ìÙ³§Ý4ãÆ�Ã`0°ÿ~Nœ8Á¤I“º]ÖE]ÄÁƒÉÊÊrNoš:u*lß¾�‰'úlËr!„B!„='�˜~Âd4a6›±Z­øëtøùù¡T*9{öV«³ÉDBBß.¸úÕW_ÙfjPhh(£G�f×®]hµZòóóÉËË£¾¾žwß}—ææfçº2�]oOHH3gÎäÕW_¥¨¨ˆææföìÙƒ^¯' €ùóçóÊ+¯�ŸŸOMM «V­",,Œ‰'öÎ â�Z­æ†n`õêÕäææbµZ©¨¨   À™F©TrÉ%—ðâ‹/2}úôv=Þ”5`Àbccyï½÷œ�Ç”¥7ß|SÖ‡B!„Bˆ~F¾*ïëQ«ÕÔ××—à¼V^QƒÝz£‘�à`¢"#¨¬ªî“vîØ±Ã¹[RkÓ§OçÃ?ä¿ÿû¿ dÖ¬YüÏÿüUUUŒ1‚—^zÉ92£³ëy衇Xµj<ðf³™””† ‚¿¿?+W®dõêÕ<õÔSX,&NœÈóÏ?ßáô£Þpã�7âççÇk¯½Fyy9áááÜpà n¬Ë.»ŒM›6ñóŸÿ¼Çe]tÑE¼ÿþûnÛpϘ1ƒœœ&Ožìû !„B!„è6_Bõ¦V‹•ŠŠ2ŒF3fdÀoû,V«•É“ÇKLt4G�°gOn·ëºù§Ë0`@·ó{ãÞ{ïeáÂ…ÌŸ?¿[×…è©ÚÚÚN§º !„B!úžŸŸß4 °–V�vÀÖêØîrŒËs×\®ãrÎîá\ëãöø,ˆ S“ú£Á€ÙlÆbµ¢Öø¡Õj)//'0ÀµZMqÑYlV+f‹™�ãûº¹B!„B!„è&™šÔÇš››P«544¶LKЉ‰aß¾}äImm=eßï”d0 &<"”šêº¾l¶B!„B!ºAFÄô±³çÎ-A›ÍÆàÁ‰�Fô†–«ÍŠÅb£®¶ƒ¡e÷¤´”!}Ùd!„B!„Bt“Œˆ¹Àjk«9Sx�Ÿ~~~456£R)±X, Föd¾ «Õ @RÒ ¢£ChÖ7j Åb±0dh#F ãø‰c„‡EPV^É×_çõqÏÎ[µjU�® !„B!„?Vˆ¹ÀL&3á‘ JZ­�� „„„¢T©Â OÐÔÜDLL4ÅÅÅÄÅÅa0 "oÿ~ z#eåUÔ×6÷e—„B!„Bá% Ä\`ÑÑ18vl:yò£»ÝÎÈ# §©I�Íb ¡©‰“'Î`69R�Z£&((µRÍwß@¡P\ð-š…B!„BÑuˆñ‘?eèržéAÍè4JÌf3§ª¬ú.0aÖ"(¨�ÒªFv” à¬!€ cMÌë�Õj!*!™÷? ìr�7w9‡B!„B!|Eëí#:Œé4 zjm!ÎkªÐÁTGLã݃aœÕŸ?ŸSØ2JÆ`4@\˜ÄÑ„B!„Bˆ Äô‘Aš2 e·$‹ÍŽ9p�óšR¥&04 ¥.*çùCjô&+½…®«»àíB!„B!D÷I ¦�DiõX­6Ìf%uVüC¢:ÍcS²ÿT=f³›ÕÊôÔ€ ÐRá‰Õjå¯ýk_7C!„B!ÄŒbú€Va"H«ÆhlÙí¨Úèåb» ö�6-Ó“¢ü‰Vu’Gô7z½žwß}—æfßîve·ÛY·n›7oöY™ÿû¿ÿKCCƒÏÊB!„BˆÿtˆéUe( 6»ƒ.Áë¼yçTX¬vŒ ,”éI?8:�Ž‹/¾Ÿ–ëØâ¼¦¦½^ïÓ²…B!„Bø†bú@´¶ ›Í†Ñd¢¢ÁŠ.4Æë¼8r¶£ÙŒÍn##M¦'ýÐ( ’’’|¾åøñãÇIMMeРAœ:uʧe !„B!„ð ÙvçóÃB°Nã±PiÔ¡TuámP(É=i`ôà z#ƒ¢PQÓlí¥»«¨¨ ++‹¦¦&t:DGG°~ýzRRRÈÏÏgêÔ©¤¥¥QRRBVVf³™ððpÊË˹ùæ¶›hw”îí·ßfÈ�!”••a·ÛÉÈÈ`àÀ��¶çí·ß&99™òòr&OžÌ©S§(//G­V3kÖ,bbZ‚`ÅÅÅdggc4 gÖ¬Y¸¹JKKÉÊÊÂd2ŠÙlv^ó”ßßߟ={öpúôi”J% dddðÖ[oq×]wõ¨ï®, ÅÅÅddd P(8tè#FŒp^_·nÉÉÉ”””`·Û™1cƒ êôš«ªª*vïÞ�^¯Çßߟ9sæØá{ „B!„Â�b.°xUiË´$£€fͺ:¹(§n±ƒÁh ÀŸ…c´¼›íÛõF<1™Lüë_ÿ⪫®"""‚ÂÂB>ÿüs–-[†J¥¢¡¡���–/_ŽR©Äd2±uëV,X@dd$EEEœ>}Úc¹¥³X,Œ?ž°°0Ž?ή]»¸ñÆ;m�Åbaâĉ„††räȶmÛÆ�7ÞHpp0$++‹E‹¡×ëÙ±cW_}5!!!äåå‘��ÍìÙ³Û´ñª«®r¶ñÌ™3íæOMM¥¬¬ŒeË–¡P(°X,>ë{k………ÄÇÇ£V«8p Û·oÇ`0 Óµüë2 Œ1‚‹/¾˜²²2>ýôS–/_ŽŸŸ_‡×\ÛñÙgŸ1oÞ<¢¢¢0 hµÚNß!„B!„îdjÒ¦µÔѬoÆ`ÐSÝdEæýú0U¦ +ôôzšš›HŒ°÷BKÛ*++#44”ˆˆ ¤ººÚ™føðá(•-ÿ¬JKK '22€øøx·÷�¥S(„……0tèPššš¼j�B¡ 44€””üüüv–S__﬿¹¹™Ý»wóé§ŸræÌjkkÛ´1,,ÌcÛËFSS»w令¨Èc`¢»}omûöí?~œõë×óÑGa6›Ý¦') ¢¢Zvæ0`!!!TTTtz͵�AAAÎt:�…BáÕ¿ !„B!„çɈ˜ Ìn·S[[Gc³�Sµþø…¶ LtF¡TóÏ}•Ü4#¬e�‘ ‡Ájµ¶ ¤˜Ífgà¥õš'6›Ícà¥5oÓ9êpÔÓY{\µ>çúÜÏÏ�ØØX®¼òÊnµ±£üË–-£°°�üü|öîÝË’%KÜ^§îöÝ•ÑhÄÏÏ�›nºÉì)((   €ôôt åß�+¥RéLÛÑ5³Ùì]ãª+ï�B!„Bã3ÞÆBê V¾=]Çî"l‘£»]_ö¹@z¿˜w�¡¸ÊØírº"66–²²2çš+%%%Øl6ÂÃÃÛM_ZZê]QYY‰ÉÔ²ý¶ÍfãÛo¿Åh4v˜Î—íiOLL õõõÎ)Av»³ÙìuÛËo2™0� 2„Y³fQ[[Û¦_Ýí»kÛNž<É AƒÜ‚'‰‰‰”––b0œç ¨®®¦©©É9º¥³kŽ>–––RSS´LU²Ûí�¾gÏžuNá(//çäÉ“ÎçUUUκ…B!„â?�Œˆñ› T^„µŽé ŠI``hTç‰; ÐøcÒ$±)¿ ŽÖ£Ô†xÑÈž-è«Óé¸ì²Ëعs'V«•   æÍ›÷ÿìýy|TõÝÿÿ?f&“LöLÈFHÈa—]ö]¥€Šu£âU•j­µWm­Z½jõkoõú¸Ý®Z× .µE«u)uCDA"‚‚Š„ìda’I2Ë™ß!c²“äy¿qn9sÎy¿Ïû,3̼Î{é°öƒÍfcîܹ¬[·³ÙL\\AAM·\CC»ví"%%…¸¸¸· dy:bµZY°`›6mbÛ¶mX­VFŽIRRR‡eLHH ""¢Óôááá|òÉ'ÔÕ5�’5aÂBBBº}Ž:ÓòüíÛ·�Q£ZõBBBHJJâÛo¿õ׊),,dûöí„„„0þüVûél@xx83gÎdíÚµX­Vl6³fÍ",,¬ÓkPPP@cc#àСC”••‘™™ @QQû÷ï';;ûD.™ˆˆˆˆˆÈ+°ãçv/?Só-—™[,k;5¯o~ݧæÂSN½`@XXñññÇu+"""""""½K�˜ !%%¥¯‹!"""""""§)uÖ+"""""""ÒKˆé% ĈˆˆˆˆˆˆˆôbDDDDDDDDz‰1""""""""½D�‘^¢@ŒˆˆˆˆˆˆˆH/Q FDDDDDDD¤—(#"""""""ÒKˆé% ĈˆˆˆˆˆˆˆôbDDDDDDDDz‰1""""""""½D�‘^¢@ŒˆˆˆˆˆˆˆH/ êë|y½^ ÃÀl6c±XŽ[Þ›Ú–AD¤§9�N^zé%>üðCŠŠŠ #++‹k¯½–‰'2gÎÂÂÂxç�wúº¨"""""½N�˜;zô(¾o>&¬¡�úðŒôDEEqôèQÌ&f³¹×‚1Íû2|>¢¢¢zeŸ"rv3 ƒßþö·|úé§ØívF�MII Û·oçꫯîë≈ˆˆˆô9b¨²²׿n§uýÃi8ZGY¿É|3åw ˜JLttŸ”«º¦†ÊÊJbccûdÿ"röøúë¯ùôÓO?~<�?þ8&“ €úúzBBBú¸t"""""}O�˜illıã"÷¬ƒ„pÿòÈ‚©z%1£Fv˜Öí—ÇGxˆ©Óm=>":Ù¦#1ÑÑ8Ž:p¹\Ÿpz‘î*//š/�«Õ @hhh«íÜn7�<òëׯÇãñðÃþ�n¸€êêjžyæ¶lÙByy9v»�yóæñ³ŸýÌÿ6gÎæÎ�KÿþýyóÍ7éß¿?O?ý4õõõ<õÔS|üñÇÔÖÖ2fÌ~ó›ßпÿ^< """""Sg½âñx¨Û·½ÝuQ‘‘�¦=âô±ïˆg]}»ë�uõqúØääËg ¢¡¡áä3é†áÇc³Ùؽ{7W\qO<ñß~ûíqÛ=z” 60`Àªªªxæ™gØ´i!!!lܸ‘ÔÔTæÎ�‹ÏçãÅ_äùçŸo•Ç;ï¼Ã3Ï\õuí¯3wÝYnéáÃLjjj/œ‘Î)@>Ÿ¯ÝåõU%]¦}áñG8Z^Éõ×ÞrÜ:·ÛMþž71y.$Ç´“ºkŽÚZìöSï#æ¾ûîcýúõX,âãã™1cË–-ó7¸á†8ï¼óøÑ�~ÀÍ7ßÌE]Ä‚ Úͳíú¶éEäÌ2aÂ^xáòòòX½z5ëׯgíÚµ˜L&þøÇ?Я_?Ÿ1#G65ÝjjjZí'$$Ä„(((`ëÖ­Lž<¹Õ¶-óéK Äô‚æÎ*;ó«{þÄëO=ÈÝsܺGÿ¼œëõK"O¡³ß  À]ê‹/¾˜o¼—ËÅž={x衇0 ƒŸÿüçL�:•Aƒ�tþ'šþù矧¨¨ˆ»ï¾û¤÷)"�e2™˜T˪OJ)«nä®+†b i7pË­7RâðQæ€Gß) ÂábÖðXæ�×Ë¥nbµZ±ÙlØl6&L˜À%—\BNNŽýO~ò“SÊÿTÓ‹Hßq»ÝìÛ·�aÆù—y< ©LwìÚµ‹††¦N�Ê„ ðz½­òéHFFf³™üü|bcc‰ì¢.‘¾ @Løt_ W?ò^ÇÅlâ®+†u�蘼½Õäí©æ¥œ"îº4‹Îëû>ÊËËIOO÷¿n¯)Rnn.¯¼ò ••• :”[n¹…”””vók›ÞçóñòË/³fͪ««1b¿üå/IJJâ•W^áÅ_ ''‡E‹qË-·àñxxî¹çøè£�p¹\L›6�›nº©Õô×_�wÞy‡ªª*†Î/ùKâââX±b[¶l¡¢¢‚øøx®¾újÎ?ÿü8s"ß?yyyÜ~ûíÄÅÅ1pà@œN'{öìàòË/ïV ¼ùæ›x<vîÜ t]³/>>žK.¹„7Þxƒë¯¿ž .¸€òòrêêêøÓŸþt G%""""8 Äô�W6á5|„…X¸øÜÄJ{Áèx–7P\ÕÀ‹9E}ˆùä“O7n^¯—�?þ˜M›6ñÄOt¸}QQ{öìá‘G!..Žçž{ŽÛn»�¿ÿýïþ>":ÓÜ×Ä=÷܃ÍfcùòåÜ~ûíüíocÉ’%8�Îãš&=þøãÔÔÔðÄOàñxx衇X±b·ÜÒÔÏ+¯¼Âºuë¸ë®»ˆ��e×®]ÄÄÄÄ€¸÷Þ{ á£�>⡇bèСêèS¤RSSùÑ�~Ä'Ÿ|B~~>f³™#Fð£ýˆyóæu+�qãÆqÝu×±jÕ*V¯^ͬY³HIIa÷îÝ]¦ýÍo~CBBï½÷+W®$%%…áÇãóùºÕLTDDDD¤§)ÓŠª¸jz2ÿsY{+ ö�2GÇ뺼MSrrþû²8ö5�д6¿ug­[h(fK™q&²úþ‡ÇÁƒ[=Ìf3o¿ý¶¿�˜¶¼^/—]v™¿CÎ;ÿú¯ÿbÆ \pÁ�îËívóꫯòÿ÷dddpç�w²téR6oÞÌÌ™3�Kãt:y÷Ýwy饗°Ûí\wÝuÜ{ï½ÜrË-x½^^zé%î¿ÿ~ÿ�·sçÎõ§¿øâ‹ýóW]u«W¯æë¯¿V F¤ÒÒÒøõ¯Ýé6Í~7›8q"[¶liµì¦›n⦛nêvÍ‚‚‚¸îºë¸îºëºW`‘^¦@L/ˆNÑêµa4�®ÖÔAedˆ‰’*'�~P…·ƒXÌeã#¸jR4ç$›ÈÛ[ÏÝïîà÷OÎöo³'7ßö[âøëЇ‰ŠŽ üÁ—]v™?èât:yï½÷xòÉ'=z4S§N=nûÔÔÔVM—¬V+£F�âàÁƒ]¸¯×ë˜Øl6† Æ¡C‡ÚMSXXˆaüêW¿ò?÷x<8�NJJJ¨¯¯o•gK555|øá‡|ñÅÔÖÖRTTDccc—eéŠ1½ £a­[’ÌM³¢p{Úßvlº­Ë<ªª�²`á\RÓPUu´Ç1-………q饗’““ÃÎ�;Û Ä´ÇjµbµZ»ÜÎåra^¯·UÿÁÁÁþá²Û à©§ž"*êøsP[[ ´]øå/ÉŒ3¸æškHHHàÖ[oÅ0:®­$""""""Ò] Äô2�×G…Ã@p�Ù¿¼_„…_Íë8pÒŸ�¯¿þšÉ“'w™oó�³Ÿþ9cÇŽÀ0 òóó[ gÛr4•ÄÄDÂÂÂÈÍÍeþüùÇåÙ¿#F´®­´gÏjjjøéOê_öÍ7ßP^^ÞeYEDDDDDDºbîz ”­{kwûF¾-­'8ÈÌ”l»Ýæ}õ ûC!Ù¿oúË5þm³D�ÝÔÉí¬ÿß–¯íº‰O y½^Ün7n·‡ÃÁÇÌÎ�;Ûí¯ ¬¬Œ×_�]»vQUUÅòåË1 ƒiÓ¦MIII»5TÂÂÂX°`�<òùùùTUUñä“OÃøñã�¦V>ÿüsJKKihh ((ˆ%K–°bÅ ¶mÛ†×를¼Ü?rKTTÓ§Oç±ÇãСC8�Nrss©¯¯Çn·SWWÇ[o½ÅÑ£GÙ°aÐÜ9UªÓ‹<†�³Ñ @zB(ýc¿1èDš&…›—É{;qy \½ÛlfÕªU¬Zµ h jdeeqï½÷¶ê¦¥Áƒ3dÈþú׿R\\ÌÈ‘#yøá‡ýM�.»ì2yä ¸÷Þ{�Kÿ‹_ü‚+VpÏ=÷àñx?~<÷ß¿¿ÿ—óÎ;�¼¼Ð¶Ú�œhãÖùqþ¡­ÛJ� ¢ÖåcWi aöئ§ý»Š¾Û~ìKX·a;YÇcNI‰ÃGRd +=‰ˆˆˆˆˆˆÈÉR ¦5�ˆl312ÙÌÈä�ÎS^åæÛâj"[®1óÐù_E´?º³ˆˆˆˆˆˆˆôbú@LxS„äýÏ*˜:Ä΄AÑÝ®¹²·ÄÉ[y…(©ÁaU�‘3ˆ†¯î3‡ÇðõáZ®~ä³Jûÿ½¼‡·?-`öðØ€—MDDDDDDDzŽjÄô�%Ó“©p¸ù÷–RŠ«O8}|t0³‡÷ã®Ë²z t"""""""ÒSˆéf“‰_.Lç— ÓO8í‹¿ø‰ˆˆˆˆˆˆH¯P ¦—ù|>>ÿâKG'”.2*’Q#G`2©O9½½÷Þ{„……1sæÌãÖ½øâ‹ 2„ &ôx9|>999äççÊÂ… éׯ_@ò~ùå—5j#FŒH~ß7§Ëùñz½<ñÄ\{íµDGGŸt>ݹoOõ˜yÎN—ó/"""íS ¦—}þÅ—üû�·N2µ‰sFéK•ˆœ¹233IHHèÖ¶[¶l¡ººšüà'µ¯/¿ü’ÂÂB®¾újL&6›í¤ò9]œêù�“×ö¾=Õkq&_˾(û™|¾DDDÚ£Îzå´äõzyþùçûº,_¾ü¤Ö‰Èñ¦L™ÂÀ�{e_ÕÕÕ$$$NXXf³þË““Ó›÷­ˆˆˆ|ÿ©FL/5r`¢¬´ü„Ò%&Å3rÄðž)ÔYhåÊ•þyÃ0ÈÊÊbÊ”)˜ÍfêëëyõÕW¹üòË ëV~'“FälÔ¶ÉÄ�ÈÍÍ¥²²’ððpÌÔ©SÙ¶m[·n`ß¾}Œ9’Ù³g·ÊËçó±mÛ6vïÞM}}=ýû÷göìÙDEE±nÝ:¾øâ òóó‰��eéÒ¥­Òw´o€gžy†ùó瓚š @YY¯½ö7ß|³?ý·ß~˶ɢi6 IDATmÛp:�$&&2gÎbbb:Í{õêÕX­VÎ;ï<>Û¶m£¸¸˜ /¼ð„χ×ë%77—½{÷âñxÈÊÊbÆŒX­VÿùÎÊÊâÀ�TTTÃܹs)..æ‹/¾Àáp�’’¼yó íò¼t÷ü“ŸŸOYYQQQÌž=›ääd¼^/›7oæÛo¿¥¶¶–ˆˆÎ=÷\†Úê>?~<»w隸¸˜… 2pàÀ.�×0 ¶lÙB~~>>Ÿ�ôôôvïÃ5kÖàóùü5,š›0�3Æß¤ÎívóôÓOóãÿ˜Õ«WûïÛÎîÍŽŽ¹¥“MßÕ±·ÕY^�½w:»¶Ýy_žÉ÷¾ˆˆHoQ ¦—™LÇš�êë’ÈâÅ‹‰ŒŒ¤¶¶–7ß|»ÝÎðáñÙlÌœ9󄾘�HšÜÜ\† æÿÁ&r¶jllä�wÞaÆŒdggS[[‹Çã`üøñ¸ÝîN›#äååQPPÀ¢E‹ bãÆ�¼ñÆüøÇ?fîܹS__ÏùçŸBûšÊÊʸüòˉˆˆ 77—×_�k¯½¯×ÛaÞƒæ£�>j•×þýû9çœsNê|lذ�††–,Y‚a¬]»–M›6ù744�››Ë’%KˆŒŒ$''‡—_~™Ñ£G³hÑ"Þyç6oÞ̼yóº}^ºÚ®¾¾žÝ»wså•WMnn.ï¾û.Ë–-Ãb±í¿n{÷îeíÚµ$&&b·Ûýy¬^½š9sæ0mÚ4ÿçeWÇ»yóf:ÄE]DPPyyyí^¿ÌÌÌVס°°Ð-š1‡&::ú¸¾e:º]ó©¦ïêØ[ê*¯ÎÞ;�ç¤ß—�ݧû½/""Ò›ˆée �ìÙ³›††¶º+6[ÙÙñÙBž÷÷YDD)))x½^ )XÖÑSÔŽœHš²²2²²4ô¸Hmm-^¯—ôôtBBB éþg—×ëeûöí\vÙeþx/¸àžþy¾ýö[ Ôcû†¦šcÇŽõ×08ï¼óøÛßþÆÞ½{IHHè0ïôôtÜn7%%%$%%át:)//'##‡ÃqBer¹\|ùå—,[¶Ì_oòäɼûî»þ£6›� &�˜˜À¸qãØ³g'Nô§>|¸¿öPwÏKWÛ…††2~üx’’’˜0a_|ñÕÕÕôë×�sÎ9Ç¿í„ øòË/)--mˆ1b£F}÷Ô¢«ãõz½ìÚµ‹Ë/¿œ¸¸8æÍ›G~~þqåOKK£±±‘ŠŠ âââ8pàS§Nå“O>áÈ‘#ôë×�ƒ’‘‘Ñé58‘c>•ô‘‘‘]^ëîæÓé{Çn·Ÿô{£³ûât¿÷EDDz“1½¬ºº²G‚0Ðä©®ª$©ÿÉ¿®®Ž�>úˆªª*¼^/C† aòäɼð dddP\\ŒÏçcÚ´iþ*ý�­k©¤¤„Í›7ãr¹ˆŽŽÆívû×½ôÒK 4ˆüü|&MšDvv6………lÙ²…ÆÆFìv;³gÏfãÆ�¤¦¦2lØ0>ÿüsœN'“&Mjµ¯ÆÆFŠ‹‹q8:tˆ¢¢¢V£a,_¾œo¼hªÂýÁPQQAPPÓ§O÷¹m©ešòòr6oÞL]]6›�3fÏgŸ}FII ÿþ÷¿IOOgþüùíGXXGŽaãÆ�Ô××ê¯ÎÝÑ59ÓÄÆÆ’’’ÂÊ•+ÉÈÈ`Ĉí~6´§¦¦Ã0Zu jµZIJJ¢ªªªG÷ `·Û‰��õ¿¶X,$''SYYÉСC;Ì;((ˆŒŒ HJJâÛo¿eàÀ�Ÿp™ª««ñù|¼úê«þõ ÃÀårµÚ®åh{Í?¼[~¾ÆÆÆú_w· ÝÙ®e-�¨¨(¬V«?õõõäççSTTDcc#555ÇÕ¼iû9ÛÕñVWWcñññí{KÁÁÁ 0€C‡GAA_|1åååø1í9:ÓÙ1ŸJúî^ëîäÕÕ{'++ë¤ß�ݧû½/""Ò›ˆée11±”••ôP�1öØv×ù|¾SÎ?44”3fEcc#¯¿þ:$&&ÒÐÐÀðáÙ9s&¥¥¥¼ûî»\}õÕwº®™Ëåâý÷ßgÑ¢Eôë×�C‡qðàAÿz‡ÃATTW_}µ¿—õë׳xñb¢¢¢Ø±c[¶laÈ�!|ñÅþ@̾}ûÚý"íñxÈÉÉ!22�ÇC}}=ð§kkìØ±ôë×�ÂÂBÞÿ}®ºêªÛå»\.Þ{ï=-ZDll,`Íš5\uÕUŒ3†0eÊ:<Ž™3g²zõj~ðƒGCC!!!ø|¾¯�È™Æd2ñÃþ�ÂÂB¾úê+ÞyçRRR¸ð »Lëõzñù|†Ñê§Åbiõº'öÝ‘æ}w•÷àÁƒÉËËcòäÉìß¿ŸÁƒŸT™š?C¯ºêª€�ÕÝ2œÊùs»Ýüë_ÿbРALš4‰ÈÈH^{í5 Ãè4]WÇk>ŸŸÏ×a¦¥ÌÌL8@FF&“‰˜˜233ÙµkC‡¥¶¶ö¸þ]úJ ¯uWï�S¹¶gò½/""Ò›ˆé¡1ß=u²ÙB8眱½^†X»�úS þ˜Íf<Û¶m£¶¶§ÓI]]Ðô%ª¹*xbb"QQQ”——3`À€N×5+))!&&ÆÿÄ*99¹U hÕ‘cII N§“�7M_ì½^/©©©|üñÇ444øŸrµ¬êÞ,<<ÜßG ÀÞ½{Ù°aÙÙÙíþˆk.WJJ 111”——wø½´´”èèhÿÓò´´4¶oßNeee«'µ�GII þóÖüEÓd2ux DÎT)))¤¤¤0nÜ8^|ñE®@‡?Λûí(**ò?9÷ù|”••1räÈSÞ·Õj¥²²²ÕSù–íúúzŽ9Ò*¯ÒÒÒVMY:Ê;==�µk×RYYÉáÇ™?þI��¨¨(‚ƒƒÙ¿?Ƕ3÷ÎÊp2ÛµTVVF}}=Ó¦Mó/«¨¨ ¶¶¶Ót]oË{"%%¥ËcÌÌÌ$77—ýû÷û¯[FF~ø!ùùù¤¦¦v:ÒVW�£®œHú@^ëî¾wNæ}ÙUÚ3áÞé ˳7˜º~:ÛãEð�z­˜òòrÖ­[GJJ S§N%>>Þìh›·Ùlö4:[×Ì0Œã/­Êßæéfpp0III,\¸�… ²xñb.½ôRÌf3YYY´zÚÖ•Aƒa2™p:�]îÛãñtúåÜëõw,n·»Ý4‡Ûín÷)_g×@ätâñxhhhh5µý,hhh`÷îÝþŽ9>ŒÕjõwzÁáÇq8ÇÝçÁÁÁŒ1‚õë×SZZŠÓé$''‡ÐÐPÒÒÒº,_WûNNNæË/¿ÄápPSSúuëüýHAS-½Ï>ûŒÃ‡ûƒ©>Ÿ�¬¬¬.ó¶X,ddd°aà àÿ¼8Ñóa6›?~<›6mâàÁƒ†Amm-eee'yÕº.Énמ°°0\.Ÿþ9 ìÝ»À?bOGº:Þàà`† ƺuë(--¥®®ÎänOdd$QQQlݺÕˆ &99™�7vÚ?Lg÷fwœhú@^ë®Þ;§ò¾<“ï}‘Þ¤1½ÀYQˆ-&®OËp°ð‰I§ÖwLUU!!!ÄÇÇãr¹())ñA °gϲ³³©¬¬¤®®Î_›££u†a°k×.† FRR}ôåååÄÇÇSQQÑiÛ÷„„Ž=JAAéééø|><V«•!C†øû\Y°`@«}µ× `II !!!þ2-5?)LHH ¼¼§Óé?6‹Å‚Çã!(è»·RRR6lð§)..Æ0 ͛͆Ãá !!¡ÃãHHH`Æ TUUa·ÛñxøàV®\Itt4ÙÙÙTWWûÓ'$$�˜˜ÈÇLMM ÉÉÉþ`pWyCS�·ß~› .¸à”ÎÇĉ±X,äääàp8 cüøñ­úÿ8Ý)û‰l×»ÝδiÓØ²e ¹¹¹¤¥¥u»ó®ŽwöìÙäääðÖ[oÂðáÃ; ðdff²uëÖV5³²²8xð`§½®îÍ®œLú@^ëÎÞ;§ò¾<“ï}‘ÞÔu#êÀçgêb¾å2s‹em§æõͯ›ç-mæƒÚü�¬¨¨Øˆ>SZª­­eH;ô6ýÂé—NÃÑ:êuŸÿs® èþNDuM5ŸíøŒaÃGtYe¼3n·›œœJKK±ÙlX,F�Eff&O?ý4ƒ¦¬¬Œ��¦OŸîo†ÓÑ:§ÓÉk¯½ÆÂ… ‰‹‹ãàÁƒäææb6›IHH °°�«¯¾hÝn³ŠŠ 6mÚäÀŒ9’ÌÌL^}õU"##ýC]¶Ý×Ê•+1™LþÚ9aaaL™2Åß©åþžyæ’““9zô(6›�iÓ¦ù�-//�C‡ñƒü€—^zÉŸ¦°°�ÜÜ\¼^/LŸ>Ý?üjii)7n$$$„… RYYÙîqìß¿ŸO?ý«ÕŠÍfcÖ¬YX­Ö¯�|§ººº[µ"DúJuu5+W®äÆoì´6 È÷�î}i+88x2ༀ§Í_`´™÷µ˜§Åë–-ÖÓb™¯�emç;° ‚1Ò2Së·× Üff@?¨žõG’æÿŒššœõNh±ïÆÚ¼îŽk~´Çg2ã3[1º8Ý^�‡ˆ¨H"ÂÃùr÷n† FxxøI_WÚ ”tg]OùàƒÈÊÊ:¡¡GåûC�9ÝmÛ¶�ÂÂB/^Ü×EéUº÷ED¤­³1£¦I�äóq¨ØI™Ó‡Ã ‰¡à©3‘X_Á7ßìãÈ‘Š^/RRÿæá?MŽòó}ãr¹(**bΜ9}]‘víÝ»÷„:ù¾Ð½/""¢Îz¦±±÷¾­TÔû(t‚Ç ^°˜|4ìè“ L³ÂÂÃØí±gMà½{÷’––Ö­¾ DDz[uu5åååjR(gÝû"""MÔ4)@ÊËËÙ÷ÛT9‚ÃýBš¦„pËJý¼;ÚMWàK¼Î£'¹W3‡Ógµê(¶-kP0¡aaŒ7î$÷!ræQÓ$‘3ƒš&ÉI Á;`Éž�”TC´µijtAcþ×�}»éLœüEð%¥uÎb'°mY,bbbüЊˆˆˆˆˆˆHßR &@¢¢¢ð]p+om%3Î…«L�­tãg±@X„•¯†.`Ô¨Q„††öÌŽDDDDDDD$ ˆ  3gòVõS Þý, ν˜Í&<ÖЀ·ÿ:’È®ä š±XA‘3ˆ1vÑÅóeV»«ª0™L�ößr²Â˜�žNdddÀ󑞣@L1bD_ADDDDDDDNC¾ZDDDDDDD¤—(#"""""""ÒKÔ4IDDz…Ï×CCɉˆˆˆt“Éè¡TDNœ1""ÒcÚ_Œ‘¾b2™Z}QPFúŠ1""Ò#Z~Ññù|þ©í:‘žÔp1™Lþ š¾�(#}A� ¨Ž0^¯·Û�a†Ñ‡%‘³‰ÙlÆl6cµZ±X,­2Íß[�‘Þ¤@ŒˆˆLË/Í“ÇãÁåra6› Åjµb6›õ…GDDDzœÏçÃ0 Ün7õõõ466LPPÐq}7‘Þ¢@ŒˆˆDÛ Œa466MP�þË‘Þe2™°X,X,l6�‡Ã�Çã!$$³ÙìßNÁé-¾ZDDNYË Œax½^œN'!!!ØívaDDDä´„Ýn'$$§Ó‰×ëÅ0 õc'½JߌEDä”´„ihh ""›ÍÖÇ¥9^XXf³™ÚÚZÿ÷•æ¦Óª#=M�˜óz½x< ÃÀl6„Åb9ëÊ "gŸæ@ŒËå"44TA9­Ùl6¼^/���„„„´QI¤')@‡Ã0ˆŒŒÄjµâv»q8˜Íf"##Ïš2ˆÈÙ£¹6Ls•^�Ç@xxx_KDDD¤[ÂÃÃillÄãñ`6›ý³U+Fz’1räÈ"##韔„Éü]×;ñqq—”PUU…ÝnïÑ2TVVÑnŠŠ‹©¬¬$66¶GË "g�¶m¨½^/.—‹˜˜˜>*‘ˆˆˆÈ‰‹ŒŒ¤ºº‹ÅÒª_;c¤§¨³Þp:�‘�mߨ& ñ˜L&êëë{¬ õõõ˜ÍæË�˜˜€¹‡Ë "g§æÚ0^¯³ÙŒÕjíë"‰ˆˆˆt›ÕjÅl6ãõzýM­Ez’jÄ@]]I MO‡}¾Ö��cøÚcbø¶ €¸¸¸)CEE™�–!6ÖNiY9¡¡¡=R9{†�ÛíV“$9#………QWW§þ5¥W(†ab Ágø0LFS5#“ ŽES}†�ÐP#†ë±2$&Äãóù:-ƒÍfStWD¢åHIÍ“×ë%88¸�K&"""r₃ƒ9zôh«ï6AIzŠ1�p,Øa^ ŸáÓú †Ñ46}OGV»S‘@jùe¥¹s;‘3MsG½m1"=A�˜@0™pÔ%&ÚŽ×ëÁd˜›+£àó5?œõuÔ:Žöh1""£‰Œˆì° G�ÖèÃDDzDó}ƈˆˆÈ™¨ù!vo<@Q &BCCÉÿ:Ÿ &b±Xðù Z&âõz)/«à£ 9=6rRee%³gÍ ,4¬Ã2|ýu>™Y§´Ÿûî»�õë×`±Xˆ��gÆŒ,[¶LMDÎR-›)�Š»ï¾›�7òúë¯ןÖòåË9pà÷Ýwß)í£§]sÍ5\vÙe,^¼¸¯‹""""'(PßiDº¢@LDFFRçl`ïÞ=¤¥§jû®3܆†zÀGff&1v;G�:ˆ��èþËËË‰ŠŒ 66–úú:0™[•¡¾¡žßî§±ÑEDDÄ)ïïâ‹/æÆoÄår±gÏzè! Ãàç?ÿù)ç-"g®@|i©««ãá‡æþûï?¥|žzê) OûÀ�ˆˆˆœ>€‘Þ¢@L˜L&Æ�ÏÇLqq1C‡dMM‚êêëIŒOÄf #öXm˜òòrâââüÕøO´*Ë6‹þ €Çí¡´¬˜°ÐL¦¦¾bòó÷R_ßÈŒ™3ÒlÀjµb³Ù°ÙlL˜0�K.¹„œœœSÎWDäÒK/eÍš5lÚ´‰iÓ¦õuqDDD¤_¹ÈÙÓÀÎC. ޏ©v�eø0› &ÌBz?+£Sƒ™™mcD²jâË™M½*HPP3gÎÄð™èŸœBÿäLf3~¸�òŠ2ŽÖTk·IQQ.—‹ÚÚZ\.W·÷Ó2Mqqq« Œãh ¥e¥|ðaÉšÊ`6›Ádaæ¬Y=ÖÖ±¼¼œôôtÿkŸÏÇ?ÿùO®»î:.¹äî¾ûnJJJøûßÿÎ�7Þˆ×ÛÔ©p}}=W]ukÖ¬Àãñ°|ùr–.]Êå—_ΟÿügêëëýyòÉ'Ü|óÍ,Z´ˆk®¹†gŸ}¶GŽIDúFRR7ß|3<ð nçv»ùË_þÂ…^ÈùçŸÏ}÷݇Óéš>gž}öYÖ¬YäI“xà�øýïÏï~÷;z—ËÅ„ ø¿ÿû?ÿ2§ÓÉäÉ“9|ø0†aðüóÏs饗2gÎ~ýë_STTäßöšk®áý÷ßç–[naÖ¬YäååWÆÚÚZ®¼òJV¬XˆS#""rÚØ´¯�›þQÁ²çËy~“ƒí©¬;Õ Œ¯iò5OƱAQ|TÖzØ~ �ç7eÙóeÜô� 6íëø{‚ÈéN�˜²X,ddd´Zvþùç³}Çç­‚1qýú1jÔ(RRRHKK£¡¡�ººº.󯫫£¡¡�´´4RRR9r¤¿…æ ÌŽÏ>çüóÏo•.=== #™|òÉ'äåå±yófxà>øà–.]ê_ÿ /�““Ã=÷ÜÃSO=Epp0·ß~;�‡¥K—âõzyã�7€¦L™™™ÌŸ?€Çœââbžxâ žzê)Š‹‹ý?b÷Üs ,àå—_æ�ü#Ó§OØq‰ÈéáŠ+®Àn·³|ùò·y衇8|ø0ÿûßyñÅ9|ø0�=öÐ$¹þúë™?>yyyÜyç�Ìœ9“O>ùÄ_åøÓO?à£�>òç¹}ûvRRR0`Ë—/çÃ?äÁdåÊ•sÓM7áv»ýÛÿîw¿cÖ¬Y¬X±‚Ñ£G·*Ÿ×ëå®»î";;›Ÿþô§�:5"""}îþÕÕÜúʶl PŽÍ�Àç;Ö×¥·é¯qlj± Ÿ�í¸õå î_] 2ˆô.bz˜ÉdbÁ‚þ`Lm­‹%È1›Í LM¥¦¦†êêjjkkÛ�ª««©©©a`jj«´Kuµµþ Ì‚ z|Ô’ƒr÷Ýwó‡?ü�µk×ÒÐÐÀÛo¿ 4=¥~õÕWùõ¯MFFýû÷çÎ;ïÄét²yóf‚‚‚øÍo~Ã?þñòòòxÿý÷¹õÖ[�¦§Ñï¾û.¿øÅ/°ÛíÄÇÇsÝu×±iÓ&Ž9‚ÇãaÒ¤IDFF’žžÎ�!CzôXE¤÷™Ífî¾ûn^yåöíÛwÜúºº:V­ZÅí·ßNll, ÜtÓM­‚*mM�:‡ÃáÏoóæÍüâ¿ ººšýû÷�——ÇôéÓq¹\¬\¹’ßýîw 4ˆpï½÷RWWתæâÅ‹¹ì²ËÈÎÎÆf³ù—û|>|ðAœN'øÃtVDDDú–£Áà¦TðÆö® wŸïØ¿cÃË…£ÃyàŠxÞº%…-¿OcËïÓxë–¸"ž G‡ã3Žiðñƶ:núG9Ž#€eéyê#¦4cV¯^ÍœÙ1>Ã0ücÕ>ƒô´T¬ÖÎÛ:ºÜ®vÓ64Ö³}Ç..\Ø+CÇ^vÙeþŽy�N'ï½÷O>ù$£G�&%%¯×Kvv¶{›ÍưaÃ8tè#FŒ`Μ9Ü}÷ÝÜyç�þZ=………†Á¯~õ+ÿqx<sƒ�2fÌ®¿þz&OžÌÂ… ;vl�¯ˆô¾ììl–,YÂ}÷ÝÇsÏ=×jÝ�0 ƒë¯¿¾ÕgEg5 #""7nŸ|ò ƒfÓ¦Müå/!??Ÿ�?þ˜ÌÌLòòò¸ãŽ;8|ø0�‡¡C‡úÓ‡††2jÔ( üËÎ9çœv÷õæ›o²k×.Ö¬Y£ÑäDDä{ãŽW+X škÂøŽ5Cºpt$?›CRôñÝ)$E[HŠcîÐ0~6+†§?ªæí�|&3Û4pÇ¿Žð×k; ŠHOR ¦—˜L&¦N�Jiiqq àóa2™ñù ¼^/n�»Ë@ŒÇãÆëñ—¶¸¤„iÓ¦õJ¦­°°0.½ôRrrrعs' FS¹‚‚¾»½‚ƒƒ[ý iÆ;4ô»Ñ�ÂÃÃ�¦ÑN¢¢¢ŽÛ—ÙlæÁdçÎ�¬Y³†{1cÆðÇ?þ±§ODúÐ�7ÞÈ•W^éoÊØ,22€•+WÝíüfÍšEnn.Ó§OÇb±0pà@fϞͫ¯¾ÊÂ… )--eìØ±|óÍ7þϱ–Í:Û~ŽudâĉðÊ+¯póÍ7w»|"""§«ûWW÷`ÆË â¸rbd·R&E[¸gq?†%óÐê |XØ~°�ûß­â®…ö–Q¤ç¨iR/ åÈ‘JÜn^¯·)°âõâv»¨®¬¤¸¸°Ó©º²ý´U•Õ­}!&&†ððp’““øüóÏýë à ??ßßΡC‡xóÍ7¹ñÆyì±Ç¨­­ 11‘°°0rss;Ý×èÑ£ùíoË£�>ÊæÍ›©¨¨è¡£‘¾d³ÙøŸÿùüñVïóþýûΆ :Mß²?€™3g²cÇrrr˜1cÓ§Oç믿öwìDjj*;vìð§5 ƒÝ»w3hР.Ë�œœÌÿþïÿò·¿ýM#ʉˆÈoÓ¾†žiŽäó�qbA˜–®œÉ âÀðâóùxc{›öÖw�Pä4 @L/ !ÆËŽ;¨®®Ä鬣ºº’;vðáú¶ämëtZ÷ÑÇí¦�ޱÒkÇÑrãv»q8|üñÇìܹ“™3gÆ‚ xä‘GÈÏϧªªŠ'Ÿ|’˜˜Æ��a<øàƒ,Y²„+¯¼’AƒñôÓOM#O-Y²„+V°mÛ6¼^/åååìÙ³hê¬wÍš5TTTÐØØÈÎ�;±ÙlíÖž‘ï‡)S¦0uêÔVµb‚‚‚¸æškxì±ÇÈËËÃëõRZZÊîÝ»ýÛ$&&²cÇŠ‹‹ý#¯õïߟäädV¬XáÄDDD0vìXyäçßaaa,^¼˜û￟ݻwSYYÉÃ?Lll,“'OîV¹'OžÌM7ÝÄþð³L‘3Ñ?rk›¡�c�îz¹pLÄIaš]91’ ÇDÀ±Ž|ÿ貊ŽP¦õ IDATô5MêeYYY¬[·ŽQ£FájtQW[KYù.½ôÒn¥o/íœ9í÷SÐSV­ZŪU«ˆŠŠ"++‹{ï½×?„õ/~ñ V¬XÁ=÷܃ÇãaüøñÜÿý˜L&þõ¯ÑÐÐÀå—_À-·Ü 7ÜÀܹs;v,K—.%88˜'žx‚²²2ìv;K–,!;;›ÚÚZrrrX±bN§“ÔÔTî¹çõÁ ò=wÛm·WSî'?ù !!!<üðÔ””˵×^ËðáÃX´h›6mbÉ’%Œ?ž?ÿùÏ@S­˜gŸ}–1cÆøóš3g[¶laÊ”)þewÜq�>ú¨Ä·I“&ñØc��PÐeË–ñÅ_ðÛßþ–矾U‡¾"""g‚/‹\�o’DSŸ0>ÃËÏfÇžrŽ?›Ë[;j0™Mì8ØÀ‡9 ÷R‹œŒ@w*Ò�üL]Ì·\fn±¬íÔ¼¾ùuó¼¥Í|P›¿‘[š‡0 ´ÒÒR23Ò(..¤¾ÁCbbâ oÓWù‹|TWW“––Ö×Åø^kþ mîKÅãñàp8HIIéã’‰ˆˆH <õÑQžßä\†ÍÃS.Á=—$$Û{W•ñÖÎZLæ –M�ææ9ÝïC®¥ÂÂB"## Âb±øûŠë‹¾8Ï&ÁÁÁ“àƒøHKÀòŒ�´4õ;ƒÑ#e 4bDDDDDD¤|W#&à9«>5M’Óž1""""""rœ˜°@þ\ôµš-wx–s¹ÃãÏ>&T?qåô§»TDDDDDDŽ“ÞÏÚcyï. ܰØ-óJëÁ2‹Š1}ÀívƒÉ„ÉdÂl67½î…´""""""Ý5:58€¹™ZÍnøª&`9oøªÆŸý9-³HÏP ¦—ÕÕÕ…ÍŠ-4Œ´ôADEEQWW×£iEDDDDDNÄÌl[€s4{¨læÍ­%”Ôœzó¤’on-Ád2ƒÉÄÌl&“©ë„"}H�˜^äñx¨­­e`jªÿÃÁd2105•ššª««©­­mwª®®¦¦¦¦Ý´µµµx<�kc)"""""2"9˜q7Ì4€ 3˜Ì`²ðÔ%§œßS”€É&3c†2"€Ãb‹ôbz‘Óé$$ÄŠá30Œ¦žÂ ÃÀ𤧥2 ¹?‰ ñíN’û“––ÚnÚ�`+N§³/MD¤Ç<úè£}]„Ӓ΋ˆˆô†O‰LF¦¦ÉÍ5bLæ þ³µ”W¶T�t–¯l©â?[K1™ƒ0™Ìü×”HÕ†‘3BP_àlâóùp:ëðz<àóa2™ñù ¼^/n�«µóöŒ�»Ý´NgáQ½tg¯•+Wúç à ++‹)S¦`6+ž)""""ßOÓÙ¸t\8ol?ÕîŽHLf0[0Y,˜|Aü¿×÷ƒY2Ù~B¹½²¥Šÿ÷ú^LÖL —Œ‹bÚ PLÇúÓ9�)Ó‹°Zƒ[t°ëÀívQSYÉQsu§é}†�5Á ·Hë&8$„††¢££{®ðÀâÅ‹‰ŒŒ¤¶¶–7ß|»ÝÎðáÃûºX"rÉÉÉaäÈ‘ÄÆÆöuQDDDâ®1TxØ~ðG:2� Ó±`Lf³�a1øß×÷°»°????™¤è΢–Ôxxjm«òŠ1[‚1›­ŒM çÎ…±z@*g bzIyy91ÑQÄÆÆâv»©©©Âj ÆåjdÏž½äïÙGDDçÕþêêêÈœEvö`‚ƒCp»]„…E�60�ʪ*ÊËˉ��ï¥#:»EDD�’’‚×ëí뢈Èi¦¤¤„ììì¾.†ˆˆH@=tE,w¼ZyŠÁ˜ïjŘ̰X1áÃl‚ÿä•°*÷—LNaÖˆX†%>²éçj¹ÃÃîÃõlø²’U[ 1™­˜ƒ‚1Y‚“ÁWÄc6›UFÎ ÄXÛæ^¯—òòr¢"#üOG]®F*ÊË)8p—ËCXx—^zi·òÿôÓOÉÍÍ#(ÈBFz:qñ>bbb‰µ7Uå+//o· �R^^ÎæÍ›©««Ãf³1cÆ ð祗^bРAäçç3iÒ$²³³)..fóæÍ¸Ýnìv;eeeüøÇ?>.ßζ{öÙgÉÌ̤´´ŸÏÇŒ3HIIé²<Ï>û,”••0qâD¾ýö[ÊÊÊ böìÙ$$$PXXÈ–-[hllÄn·3{ölÂÂÂZ•±±±‘ââb‡¢¨¨ˆ &tyn¶mÛ†Ãá`öìÙx½^þýï3}út’’’ÚÝohh(¹¹¹`6›0`3fÌØ59ù|>rrrøæ›o°X,¤¦¦2wî\ ©)àÚµk)**Â0 æÍ›ÇÀ�©««cÍš5TVVâõz1bÓ§Oà¹çžcÈ�!ìÞ½›éÓ§3lØ0µfJ¦¦{}«ø0a˜Ì൰jk «¶Æç3Àç;–¦©_ÌLA6L– Ìf+‹ÇGsçÂ8,‹0rFQ &€V«• k0f“‰¸¸Dªköc�‰öaêêj)--æÓíŸ1|ø¢££éׯ_·÷1aÂŽ9‚Ãá`ÇÎÏ;f€?ãóù(++oU†FWSð 22ò”ŽÏårñÞ{ï±hÑ"bcc9pàk֬᪫®Âb±àp8ˆŠŠâꫯÆl6ãr¹xÿý÷¹ð éׯ‡¢   Ý|;ÛÎãñ0vìXbbbØ·o999,]º´Ëòx<Æ�Ott4_}õ|ðK—.%22’Ï?ÿœÍ›7sÉ%—P__ÏúõëY¼x1QQQìØ±ƒ-[¶ø¶,GNN‘‘‘x<êëë9pàÆ ë´,ãÆ�ã?ÿù ¨¨ˆ¬¬,’’’:ÜïàÁƒ)--媫®Âd2iD,9+8p€ââb–-[Öî}?vìXÎ?ÿ|òóóùðÃY¶l¡¡¡Ì›7�èèhx饗ÈÊÊ¢ÿþ=z”˜˜~ò“Ÿ`±Xp:�¬Y³†+¯¼’èèh¶nÝÊÆ�™?>7Þxc‡åòx<œ{î¹ØíöVûî,¿ýû÷3sæL’’’سg»wïfôèÑþZ‹{öìaòäÉ466RSSCÿþýq¹\¼ùæ›üð‡?$..Žýû÷óÖ[oqÝu×tÜñ´,ßþóÆŽ« ŒˆˆôŠ»Ä0c°�äÖždí˜|˜0á3[0™“ ³aÆg²à3‚ÀçÅg€ÏŸÆdniÉd¶0&-œ«§D3cHf³Yµa䌣@L€TVVAzZZÓ‡ÃØ1cp¹1 ã» Ì¶ÏøÁtr§¿_¿~ôë×�´´4Þ{ï=ÆŒ 4câââ�< U"#£(*.¦²²ò”ú,(--%:ú» RZZÛ·o§²²Ò_ eèСþíKJJ°Ûíþ@Srr2ÁÁÇwHÜÕv&“‰˜˜²²²X¿~}·Êc2™üýæ 4ˆ-[¶øƒQYYYìØ±Ã¿§ÓÉÆ��¦~wÚ«Eîï#`ïÞ½lذ�ììì.Ë2wî\þùÏç¯ýÔÑ~cbb¨««cãÆ�¤§§ûkÿˆ|ŸÙívjkkY¿~=YYYþZ'f³™¸¸8²³³Y³f�¹Çã!//‡ÃA]]µµµþt#FŒðÏQWWçÿüp¹\ݪ-h6›±«qØrßÝÍ/33“uëÖáñxØ·o'NdÛ¶m9r„#GŽ�™™éÏÏn·û�333“­[·räÈ­˜–ÇMµˆV­ZÅÿŸ½ûޝ²¾ÿÿÿ¸Î99#d'@Ø ¶€²GØÈQÐ* (Uk[õcUÚÚeëAë×YíOTÕªˆhA"Û®€BA"#�ìääÌküþˆçx²C8àë~ãÜr�k¼¯÷urr8çyÞ£}ûöZÈ!„�mTw;£ºÛÉ<å#ã�‡/Žû8–ï§È¥£uÿC³ÀÀŒb*7FQÌå-at ŒònK±‘&:'ÚèßÉNz�Húut`6›+0ˆó‰1aàv»1™L´iÓ*¿( f‹wiI0„™2ejƒC˜ŠE+L�:5ÆX­6bãâ«­CÛ¶m8öÝ1Ün7‡£AçÓ4­J�â÷ûƒƒbU~ñÓu½Úॲúî8Gà½^uèÞ½;¸\®:ëØÚl²¶óþìg?#++‹o¿ý–={ö0gÎùÏE\ÐbccY´hG�%33“mÛ¶qíµ×VyÞ‡¾œ>}š�72qâD)((ÀçóUÿæm6íÛ·göìÙÖ÷ÝwµvMªéÜ5•W™Åb¡sçΜ8q‚¬¬,† ‚ÓéäðáÃû®îuÐç󯣺×5EQHMMåàÁƒ :´Þ¯£B!D¸ômo¥oû†ÿÿcüÐõÈ0 t]G×õà²aÁí�ÿƒÁKh+˜Àv!Î'2¬t8�Î`· `?Æ€^@ÅħÛv2jÔh<N§3,·²²2F�ÍŽ�{°X"j­CBB|…o‹ÏVrr2§OŸ޹’���®ëÁo‹«Û?''‡ÜÜ\òòò‚’t]çóÏ?ÇëõÖº_8ëS“6mÚPRRìe~¿¿B«“““ƒÍf#::ºÎºlÞ¼™)S¦àp88pà@­çõù|x½^ºvíʸqã(**ª×ã!ÄùÌëõâñxHKKcòäÉÕø·�ŸŸ�Ãá mÛ¶hšÆ©S§*tÛ •œœLqq1G�~ü{KMMåæ›o®r««…IMå8JJJ‚ûöèуýû÷‹Åb¡G�>|˜œœœ`‹·víÚ‘��MNN'OžÄ0Œ:»®4ˆ:°nÝ:t]¯u_!„¢¥ RL&‹‹ÅBDDX­V¬Vkð~`»„0â|'-bÂ@×uìv†n +zyº¥(Hsuƒˆˆ®_¸°Ñê°pÁüòÔ¸–:Øíösz£n·Û™8q"[·nEÓ4¢¢¢˜:uj�Óěܼys°kA %�ÇãáË/¿¤cÇŽ$%%Õ¸_8ëS“ˆˆ¦M›ÆöíÛÙ»w/ôë×�äää`m6k×®Åd2a6›‰ŒŒdÚ´iuÖeÿþýDFF’’’Brr2«W¯¦]»vÄÇÇW{ÞV­ZñÙgŸQVV†®ë <8x~!.Tìܹ§Ó‰¦i >»Ý^ë1Ý»w'++‹—^z ‡ÃA‡j b"""˜5k[¶la×®]X­V @ZZZƒê[[yƒ bË–-|õÕW\qŤ¤¤ðÁ0cÆ "##Q…¤¤¤à›G‡ÃÁ´iÓØ´iSð5dæÌ™õz=7nï¿ÿ>Ÿ|ò 'NlÐõ!„Í¥ºÖ¯ðck™ºöâ|îgo}ÊSêX]g YWùظX6WZ¶Tú�——·«òö¹8}ú4)]:a6[0™Êû8*Šòc0¢k¨ªZã„pÑ4퇄¸æ:d}<8Þ@S+++cݺuÌ�;7,û Q“¢¢"ºtéÒÜÕ¸ ^Cu]GÓÊ__JKKeL#!„B„E]ALc8qâÑÑÑX,–à4MuîŸ2«Õ:(4@­ôÓôJËFÈ2!÷Co„l'd�QͺÊË5 [ˆ -bÂ@QŠ‹‹‰�O@ÓTÝhŒR>Øàr•át–ÔQÒ¹‰ŠŽ!:*¦Æ:””7ù‹HYY6› ‹ÅÂÁƒIII9§ý„B!„> ?Ä…L‚˜0p8|ûí· 2³¹|¤ïÐWÓ4¾üò+Že}Oddd£ÔÁív“šÒ™¡C‡ÕX‡o¾ù–Ô®M;½é±cÇ‚c¢´mÛ–‘#GžÓ~B!„B!ÄùL‚˜0ˆŠŠÂíörèÐ7¤¤vÅaÿqV"·ÇMÖwGñûUfÍšÕhÉ®a|¶gO­uðz}DEE5ÊùkÒ·oß*S®žË~B!„B!ÄùL‚˜0P…AƒóiF§OŸ¡}»dZEEQætròT6.—‡ô1cµy]K¨ƒB!„B!j'AL˜˜ÍfÆŒËwß}Ç‘ï¾Çëõb³ÙèСƒSSÏz&ŸóµB!„B!„¨™1ad2™èÖ­ݺ5í8,-­B!„B!„¨ž4‘B!„B!„h"Ä!„B!„B4 b„B!„B!šˆ1B!„B!„MDëB6Í]!„B!Z4 b„B„MBBBsWA!„¢A\.WsWAüDH×$!„B!„Bˆ&"AŒB!„B!D‘ F!„B!„¢‰H#„B!„BÑDd°ÞDÓ44MC×u Ã@QL&‹“Ir3!„B!„â|&AL `eeeìÞ½›ŒŒ 233),,Êg éÛ·/cÆŒaèС´jÕ EQš¹ÆB!„B!„h bš™ßï'33“§Ÿ~š¯¿þ:Ø*&Ð"¦¸¸˜¬¬,>úè#úõëÇm·ÝFß¾}‰ˆˆhæš !„B!„âlI_—fäñxزe K–,aÿþýx½^TU †0º®£ª*�‡}ûö±dɶlÙ‚ÇãiÆš !„B!„¢!$ˆi&�‡­[·òàƒ’——‡®ëu£ë:yyy<ðÀlÚ´IÂ!„B!„â<#AL3„0?ü0¥¥¥ZÀÔÅ0 œN'Ë—/—0F!„B!„8ÏHÓÄÎ6„©n`Þ@³bÅ é¦$„B!„BœG$ˆiBgÂ(ŠB¯^½7n\�aLii)K—.•0FqA¸ï¾ûxì±Çš»â1oÞ<^zé¥ó¶|!„B\¸$ˆi"gÛÆ0 >ÌîÝ»kÜ7Æ<üðÃ|òÉ'Æ!~Rž}öYî»ï¾æ®†h¡Æ�G¯^½ÂRVuϵp–/„BˆŸ™¾º Ô'„Q¥ÊzMÓp¹\µ–覴téRTUeÒ¤I8ްÖ_!„8ßÜvÛmçuùBq>È<å#ã�‡/Žû8–ï§È¥£×øËz00)i&%1‚�¬Œéa§o{k8O"D““1�¬>!ŒÕjeâĉ˜Íæ�#Æ<úè£�ÞMéÁdÒ¤ILš4‰)S¦0þ|ž{î9|>_½ËX¼x1o¼ñFðþm·ÝÆúõëkÜßï÷3iÒ$N�:uNuBœ_.\ÈÊ•+¹ùæ›;v,×^{-Ÿþ9«V­â…^`Æ 6ŒeË–å¯ÿïÿý?f̘ÁäÉ“yðÁ+Ú .ä£�>âöÛogìØ±ìÞ½»Î:üûßÿÖáúë¯çÀ�u–§ë:/¾ø"sæÌaüøñÜyç�U^Ã^ýuæÎ�Ë„ *l¯ëvìØÁÂ… =z4³gÏæ©§žª×¶Êj:]u_¸p!/¼ð‹/fìØ±,X°€ðÆopÍ5×0vìX~ó›ßPXXxNÇL™2…={öïø€·Þz‹;3͛7ó /Ôûø‘#GÒ½{÷F«ŸâÂPTTÄ3Ï<Ãí·ßλï¾K¿~ýX²d ~¿Ÿ… rÓM71eÊvïÞÍ’%KX¾|9'OždÕªU¼öÚkœø€¿þõ¯¼ñÆL›6�øøø:¯¡¤¤„{Ë/¿œuëÖñè£�2a„:·UVÛùëª{QQÏ>û,wÝuï¾û.�;wfáÂ…?~œGy„W^y…'NðôÓOWø]ží1u©íùq6×A§N�X±bÿþ÷¿™9s&ùË_ÈÊʨñ¹VY}·šê{6¿;!„hnK×ñoæ³ï{o˜J /€a`:†¡•ÿÔ¸…¬Ã0Ø—åáÿÞÈcéúÂ:K¢%’®I�¤¾!Ìõ×_ÏUW]ELL £G�æË/¿¬²ott4_|1_|1iii|ùå—¼üòËx½_üBÀñãÇc·ÛÃ~mØívìv;ƒföìÙdddÔûøo¼1ìuB\xâââX´hýúõà†n`õêÕ?~œ®]»VÙ¿¬¬Œ5kÖðÁ���À­·ÞÊ’%K*|xž5kW^ye½ëñ‡?ü��ðÿ÷lÛ¶��>ú(XFåò|>¯¾ú*Ï?ÿ|0t¾ÿþû™1cŒ7Ž•+Wòä“OÒ»wo ¼õG}®!77¿ßÏèÑ£‰‰‰!&&&xÞÚ¶…Ò4­Æó×U÷‰'/}úô`Á‚lذ�›nº)XçË/¿œwß}7xΆS—³y~ÔvÍsçÎ ./Z´ˆ÷Þ{�ÌÌLºtéR¯ºœÍãV]} è×ïN!šS©Gçž· ÂÀ@y?¶‚™10šôú´³Ñ:º¼Ç@n©Æ�l/ŸróÁ祠˜@QX½·Œcy*Ëç&m—6âü!AL#8Û&)) ]×¹øâ‹«ì§( ½{÷æ–[n¡cÇŽDGGÓ£G€f cBåææ’’’¼?oÞ<~÷»ß¯çСCÜyç�Á¦Þ·Ýv3gÎdÚ´iÕ–§i/½ô›7oF×u†Za»ªª¬\¹’-[¶àóù5j·ÞzkplœÛn»�yóæ±aÃ233ùóŸÿÌ AƒáÊ…�ÍdúñMUûöíq85Ž�•••…®ëÜtÓMÁÖ…ªªRVVVa¿þýûŸUB[*šL&ú÷ïl-Q]y'OžDUÕ ¹:.ºè"Ž;ÆÉ“'q¹\ÁPâl®!55•Áƒ3oÞ<ÒÓÓ™5kVð5²¶m•ëWÓùëª{èã=\.W0TIMM­ò{jÈ1u©ïó£¶k†òÖ*ëׯçóÏ?§´´”'NœUËÒ†ÒÓÓ+¬{þùçkì¶d6›k}Mõù|躎¦i>x[­V¬V+N§(S¤òØ`u]ƒÉdâ™gžaïÞ½¼ÿþûÜsÏ= <˜G}´Öm¡j;]u¯¯Ú~Oá<¦¾eÔvÍn·›n¸� &pË-·�œœÌâÅ‹Ñ4­Þçmèã¨o}wBÑ\–®/jÄFãžiIÌ]¯#“cÍüyV"½Û[Y¾>3û¾÷°t]!¿�Æ: Ñx¤ýV�͘0¡! ”¿9t:�5æ«iº®×%%%1wî\n¼ñÆj?˜¥K—²qãFÜnw˜®¾ÿþ{î»ï>þô§?±qãF<|ðAXÊöù|¬Y³†»îº‹nݺѡCîºë®àv—Ëźuëøå/I||<­[·æ†n`ûöíÊ™6m3gΤ[·nØl¶°ÔMÑò„ŽÒ®];ZµjÅÖ­[Ϫ «ÕÊîÝ»+Ü!L^^«W¯®°ff&ݺu«±¼N�:°ÿþà:]×9pàÝ»w§C‡èºÎÁƒ«[ßk4hùË_X¹r%[·nåÌ™3õÚÔzþºêÞ”ß}÷]…u¡ÿž�Ú®ùàÁƒqûí·ÓµkW"##9tè§OŸ®°_McÏ@ø·º~wBѶÿÏÃê}euïXo?tG2 ÐÏ.„ 5oH4÷LK]Ã0 Vï+cûáð}æ¢1I&gÓæÊ+¯¬Â@yÓóêÞ †Á�xî¹çصkWð[=€ÄÄDæÌ™ÃÂ… « aL¸gSºòÊ+Ù´i›6mbíÚµÜzë­¼óÎ;ìØ±ãœË>u꺮“––\úí≷¦}Õ IDAT'Ðu�;ùóç3þ|þú׿ViŠ^Sós!Ä…£mÛ¶ìß¿ŸììlÜn7‹…… òä“O²{÷n4MãôéÓf9:[v»�ÌÌL>ûì3Š‹‹yþùçq¹\µ¤ɬY³Xºt)   €+V���ÀðáÉ��eüøñ,[¶Œ¬¬,\.¸\®:¯¡¤¤„µk×ræÌ<{÷îÅápWë¶Pµ�¿®º7¥ðÞ{ï‘��ÍÉ“'yðÁk CjSÛ5'$$àt:yûí·)..fÓ¦M@yס€ÊϵÊÎõq«ïïN!šÃ+;�uït6 ~tWcÆÀ¨…0ó†D3c`ü0�ïªp×UˆF"]“ÂÀëõ6¨;R(�ÇÖ-[ª=¶¨¨ˆwÞy‡÷Þ{�‹.ºˆåË—òKLL¬µ›lc&Lk7¥ÈÈHæÌ™CFF_|ñ#Gލö:êCUÕ`ón‹¥êÓ³U«V<ûì³2˜¡?q—]vÛ·oçꫯfРAüýïçÆoÄf³±bÅ rrrHHHàúë¯op8Å¥—^ÊÒ¥KÉËË£ÿþ<÷ÜsÕÎ^êž{îá‰'žàî»ïFUU† Æ“O>ìŠòÇ?þ‘G}”Å‹ã÷ûéÑ£iiiDFFÖz ¥¥¥lÞ¼™§žzв²2ºté²e˰Z­äææÖ¸­²ÚÎ_WÝ›ÊwÜÁý÷ßÏÕW_M‡˜2e Ç�opy5]sJJ ·ß~;Ï=÷Ï<ó #GŽdüøñŽ­î¹VÙ¹›7o®³‹�×ëåÓO?eçÎ�(ŠlcªªÖx|bb" .dĈ 6Œ‚‚l6[…Ö0ùùùÌ™3UU±X,¬^½šÄÄD’’’¸üòËÑu�U«VáóUL…5McóæÍŒ9R‚!„¨ÅªU«š» B!ÄäÇ1a/ù‡1`{"ÑRÉ1 ä÷ûÉÌ̬WÿCMÓðz½x<Ün7�¯×[cc2™˜9s&—\r f³™ÄÄDºtéBaa!Ë—/'///¸¯ËåÂívW˜¾9??Ÿ_|‘ž={2yòä Ó?Cù7Ù™™™µ¶äB!„Bü´ÅE†óã¢Qa1·4|ŸErKÕ`ñqùˆ+Z>y–6�®ë6JÙ†a°k×.JJJ€òV5ï½÷wÝuk×®eåÊ•W×ï÷S\\Ì‹/¾ÈÚµkyà�jœªº°°]-„B!„¸0¤$6^ëù§Â7-vhY]±ÎB„‹tM:�5·a:tˆW^y…_þò—˜L&òòò(..F×uÞ}÷]Ìf3Ç�†)º®³téR:wîÌ;<ÑÈãñ4iÝ…B!„†�¬ìû>\�‰RaqëÁb&ôn–’·,ß¿SÕf…hi¤EL™L&¢££«Ý¦( mÛ¶¥W¯^X,–û'*Š‚Åb¡wïÞ´mÛ¶Â6]×ÙµkN§›ÍƤI“èÝ»7Š¢àõzù÷¿ÿÍöíÛƒ�Šalß¾�7ß|¯×‹¢(tëÖ­Ú©¬¡|¶£Ê]–„B!„"`L�ê[×7œŠ‚¢˜X»'‡œâsïž”S¬²vOŠbEaL»Œ#Z}šðúë¯WÆb±pÍ5×Я_?:vìÈ�xì±Çðx<˜L& ÄÕW_�ÙlÆçóѹsg¦OŸÎÁƒ1 ¿ßü7 0{I@—.]ذaC•.H��FêB!„BÔ¤o{+—t¶…±U (˜0(fžÝ”ÃýWžÛŒ‹ÏnÊŠЉ‹;;èÆi±…h,Ä4�ÕjeĈìØ±£J£ë:~ø!_|1ééétïÞ�ýë_ö1›ÍÌš5‹.]º`±Xhß¾=‡âÃ?dæÌ™L�:•üü|®¹æú÷ïÏ AƒøðÃç²ÙlŒ7Ž¡C‡’��@^^»wï&##ŸÏ‡alݺµÊ82PÄŒ9«Uší !Z¾'žx‚Ûo¿½¹«!„Bü$-ž Fã‡1ŠÉÂ{{NÓ§C+®ß "ßÜUÈ{{Nc²ØQóGDKkq^� ¦�"""HOOgõêÕ=z´JSVVƲeË0`@µ/ñññÁé¨ãââX´hC‡¥ÿþDEEñî»ïRXXHFFÛ·oGUU ÃÀn·sóÍ73~üx’““±Z­x½^ DZZ/¼ð>Ÿ¯Æ&%%…1cÆH‹!„¨…ËåâÕW_åºë®£U«ðôaB!Î7£ºÛ™sI+Vï+;Ç’~ø<¤˜ÀdF1›Q ¿sH;ë0æÍ]…<üÎa”ŠÙÌìKbÕÝQ¥×€-‘ rÚµkÇ‚ ª}ƒn¥¥¥,[¶ŒíÛ·_jzqh×®cÆŒ¡M›6hšÆ‰'€ò6>Ÿ]×Q…qãÆ1cÆ ºté‚ÍfCQìv;ÉÉÉ$&&ÖZçÈÈH,X@»víÂð!Ä…Ëáp0qâD"##›»*B!D³úí´8.é†.?Jà3Qy‹“)ÅÁCïâÏo_¯1crŠUþüö÷<ôÎ!s&SwiÅ’é 2¦8oH‹˜s`6›?~<999¼øâ‹x½›ì˜§Ÿ~šk¯½–‹/¾8ØHQª”ØÍ�wÞÉÁƒùïÿ˦M›Ð4 EQ¸ôÒK«ëñxزe O<ñ>Ÿ¯ÚúÚl6æÏŸÏ„ 0›Íáx¦¤¤„�7â÷û5j;vì`Ú´iÄÄÄ4ú¹Ÿþyn¾ùæF?OmçÒ4�U«V±hÑ¢&©‡¢n�ñ´„BËç&pÏ[çØMéÇV1ŠÉ æ L ¼·;‡5;�3{xGÆöM O­£Ë?®æ–ª8éfkfkv�@1E`²XQÌV¦D±lnkL&“´†ç bÎQtt4sæÌA×u^~ùåØիWÓ£G†ŠÝ^¿ÑÇûôéCjj*iiilÞ¼9Ĥ¤¤Tx� „0K—.¥´´´Ú²l6 ,àÊ+¯¬q¶§æ´wï^zõêEß¾}« .ܼúê«Áe]×éÖ­#FŒ¨3uw»Ý¼õÖ[\uÕUò­ºµ0 ƒŒŒ Ž9‚Ùl¦S§NL˜0(ÿ›Û¸q#§N�B×u&NœHçÎ�)++cÆ  i}ûöeôèѬ\¹’ž={ràÀF�MïÞ½ùþûïÉÈÈÀëõ’˜˜ÈäÉ“9sæ 7n¬RŸôôtz÷î]a|šçž{ŽîÝ»sòäI Ã`ìØ±¤¤¤�››Ë–-[(++#22’Ë.»Lº3 !„¸ DÛMücAK×�[7%å‡{ù¡—`  +&Ð̬ٓÚ]'1 Ã?üЊ“ÅbG1—·¦™5(–%Ó“0›ÍÀˆóŠ1a�””ÄUW]Pcãt:Yºt)ãÇ�¯Wãr¹8zô(ÁpÂ0 éÔ©f³¹JSy¬(a.\ÈUW]ERRÒ¹^n£(**¢_¿~gÕ¤pçÎ�ôîÝ›¸¸¸ÆªZЬY³ˆŽŽÆét²víZâããéÓ§O­ÇØívÆŒƒÃáhôú q>ËÊÊ";;›E‹¡( ªZ±iòÅ_ÌäÉ“ùöÛoùøã�Y´hQ°ëPll,�‡×_�nݺѮ];JJJˆ‹‹ãÆoÄl6ãr¹Ø°aóæÍ#66–={ö°mÛ6¦L™Rïqn·›‹.ºˆ‰'’��Íš5k¸ñÆ1™L¬]»–™3gÒ¦MÜnw½w!„â|óÛiq¤§Ùye§³�­cPŒò�{MfPLº C1cè04 ]Œà1Š©|¦%Ådf`—V\7"–ôžQ˜L&i #Î;Ä„I}ØÀ¾u…1¥¥¥üñ�ä³Ï>CUÕà´Ô†a°yófzôè�ÙlfëÖ­õ aæÎ�ÛbC(¿®†ôéùäºuëFçÎ�ƒÛL&Sðõ«G�lذ!¸^UUvïÞMii)eee8�Îàq}ûö .Ÿ:uв²2>ùä|>_½þ†C™L&Ú´i”�éË™3g0 ƒ¨¨¨à6 ^…B\èFu·3ª»�ÌS>2yøâ¸�cù~Š\:zÕ�$ÕPÿ00£˜”òîJй¼%Œ®a`€QÞm)6ÒDçDý;ÙIïI¿ŽÌfs…FBq>‘ &ŒêÆð…ÚóٌÍfÃãñ`Š¢`†a°fÍú÷ï�ßïç‘GiÒ&77—;vPVV†Ýn'==�Ö­[ðúë¯Ó½{w¾ýö[† F�=ÈÎÎfÇŽøý~âãã9sæ ,¨PæŽ;ÈÍÍåí·ß&>>ž¹sçVØ^VVÆ–-[(,,DÓ4zöìÉðáÃùüóÏÉÉÉáÝwß%%%…)S¦ðòË/“ššJvv6†a0jÔ(:uêTc¡|>ï¿ÿ>ƒ ªžx½^²³³)--åøñãœ:uŠÁƒåß’¿óÎ;ÌŸ?€üü|¶nÝÊœ9s€šÇ…ÉÉÉaÇŽø|>bcc+ÌruâÄ víÚ…×ë%>>žqãÆYíc,Ä… 66–E‹qôèQ233Ù¶m×^{m•7U¡o´NŸ>ÍÆ�™8q"‰‰‰ÇȪìÚl6Ú·oÏìÙ³+¬ÿî»ïj횪r·I“Élm#á‹BˆŸ¢¾í­ômomðñ�Ï0†a ë:º®—Ÿ}àÇÿÿÁKh+˜Àv!Î'Ä„Y¸Â«ÕʰaÃØ¾};ݺu£wïÞìÙ³‡¬¬,\.ûÛ߀ò�¢©BŸÏLJ~Èe—]FBBYYYlذ�Ÿýìg˜ÍfJKK‰‰‰áºë®Ãd2áóùøè£�˜1c‰‰‰?~œcÇŽU)wäÈ‘äää0vìØjg}r8¤§§ƒ×ëå�wÞ!55•�’••ň#‚ßD{<úôéØ1c8}ú4ëÖ­ãºë®«±Œ¶mÛ ª*ëׯ碋.ª¶‹ªªddd�ªª¸Ýn²²²ª|P;›Çò£�>â²Ë. >6ßÿ=Pì|òÉ'Ìš5‹˜˜öïßÏ®]»˜0aB•ÇXˆ …×ëEUUÒÒÒHIIáùçŸÇëõÖÚr0??‡ÃAÛ¶mñz½œ:uŠþýûW»orr2ÅÅÅ=z”®]»bªª’ššzVƒu|˜­[·6¸EJNNqqqÕ>6999¸\.¶mÛ€ßï¯Ð…"ô1âBQPPÀÎ�;q:�hšÆðáÃëg¥{÷îdeeñÒK/áp8èСC�3ÂEDD0kÖ,¶lÙ®]»°Z­ 0€´´´³ªgVV{öìÁf³1sæL, QQQLš4‰ÿüç?DDDàp8˜4i’ Ö+„BÔCu­_�jƒ˜Úî q>‘ ¦‘œÍ¾ªª2iÒ¤*MÛccc9r$&“‰‚‚vïÞ]më—PV«•ë®»®QæÕ4­J�â÷ûƒ-3*¿êºÞ à¥²ÜÜ\¶nÝJzz: UèÆªòãè:PW]ºtáСC\rÉ%DDDÔY§îÝ»“‘‘�ËåÂb±œõLOµ=6V«•ääd¦OŸ^e›ü‡#Z²ÐoµÎV»ví‚Ýù* ÌZðë_ÿ(ÿ[™6mZ½ŽhÓ¦ óæÍ;«z…–c2™˜:ujµû¥¥¥�u¨#„BˆÕõþ¡±ß7ô=Œ !}Q Œ¹þúë±ÙlU¶ZÆ,_¾œM›6áv»+l4Ñóx<¼ÿþûu1V«•ùóç3oÞ¼` •pJNNæôéÓœ9s€ììlt]'>>¾ÆýsrrÈÍÍ ///8~ƒ®ë|þùçUª³Ù J ±Ùl´nÝMÓÈÉÉ ~ëm·Û«LÙ}èÐ! üö²²2’’’j-`À€´k׎�7û§ÖV¿œœl6ÑÑÑØívü~?999Ám5M#n6›QUµÖǦM›6”””»q†Qcð$DKÚ4ølÀB!„¨NhW¤¦H4M“îN¢ÉH‹˜FVW˧ÓÉ£�>ŠÅb©¶›’Ïçã›o¾©õNèÕ�Â@yè1qâD¶nÝŠ¦iDEE1uêÔÇ*±ÛíL˜0�Í›7g=±XÊŸr�‡/¿ü’Ž;VRõîÝ›�?þ˜±cÇ’ššÊñãÇyã�7°Ûí$''Ï9pà@¶mÛÆÁƒƒ-HNœ8Á¾}û°ÙlL™2‹ÅRk£F�bÆ lÛ¶�ÁƒW©ßÚµkƒ-l"##ƒßÄ+ŠÂرcÙ¸q#‡ƒ¸¸8"##«}LúõëÇš5k˜:uj…ǦM›6DEEå](¦M›ÆöíÛÙ»w/ôë×�®]»ží¯Lˆ&£( f³ŸÏü;B!„8_ø|>Ìf³„0¢I„ûYVŸò”:–C×™BÖU¾¶î–Í•–-•~Fçååíª«‹O¸åååñöÛoׯ(ŠBTTwß}7'N vSòx‹ÑÈ‘#›¹FBˆp ôÝ6™LX­V ‚Sà !„B´tB bDc“®IÍ ®nJõq¾tG¢9Hפ¦Ú=I×uTUEUU<QQQÁéÞ…B!ZªÒÒRœN'v»‹Å‚Åb©Ð*FB™Æ÷Sìš$³&5ƒºfSª‹ÍfcþüùÌ�;WB!D‹¬7зº¸¸¸Æ.•B!„-�Ë墸¸¸Úqa„hLÒ5©™Â“ÉÄ«¯¾ŠÓé¬óEQhÕª×]wsæÌ‘FÑ"„~cd2™°X,8 PU•˜˜˜f®¡B!DE%%%”””àp8*´‚‘®I¢)HÓŒaLBBo¾ù&ß}÷º®W»¯Éd"55•k®¹† &ßĵBˆŠE!´›g ˆ1 ³ÙŒÃáÀétâr¹HHHÀjµ6cm…B!ʧ©.((@×uf³“ÉTí ½ȈÆ"AL3KHH`ÆŒ¤¥¥±gÏöïßÏwß}Gqq1±±±¤¦¦rÉ%—0dÈzöì‰ÝnoæZ !D¹@Ú*&´Y¯ÍfCUUrrr°Z­ÄÄÄ›ÿÊ›!„B46Ã0Ð4 ŸÏGII >Ÿ›Í†ÍfÃl6רFÞ§ˆÆ$AL `·Û0`)))Lœ8‘ÒÒR|>P>(ott4‰‰‰ÄÆÆ6sM…¢f�1º®c6›‚ß0Y,TU ~USë?!„Bˆp ¼‰ˆˆ U«V˜L¦`K˜Ð÷,¾ˆ¦"AL +a‹â¼ÚE©røfI×õ` cFð&„BјB[º™ÐT a$��M‚!„笺0& ̦¹–Ö0B!„hj¡ãÀ„0€„0¢ÉI#„",*‡1†aTd€à`¾ÒF!„M¥òø/¡ïO$„ÍA‚!„aS9Œ*2º®Ë›!„B4‹š˜êî ј$ˆBV¡Låû•[È!„B4% `DK AL Ün7>ŸMÓ¤ ½-@`Zd«ÕŠÃáhîêˆzm¸/„BÑRÈ{Ñ\$ˆ©DÓ4œN'ªª6wU„! Ã@UUTUÅçóœnP´\¡op$ÔB!Ds“ðE´ÄT"!Œ-Ÿªª8�N™îý<#o|„B!„é¬ÂívK#ÄyBUUÜnwsWC!„B!Ί1!|>_sWAqäoV!„Bq¾‘ &„¦iÍ]!ÄY�¿Y!„B!ÄùF‚˜2�¤çù›B!„Bœo$ˆB!„B!„h"Ä!„B!„B4™¾º3 ]×1 “É„É$¹™B!„Bq>“ ¦Ò4 ¯×‹æ/ÁnÉ¢¸pû[ã§v»›ÍÖÜUB!„B!DHÓ¸\.Tß7¤u܃£•EQ‚ÛÔ279§â9Y4ƒÖm’+lB!„B!DË'}]Z�ââb"#2èßk;‘Qþ*A‹¥•ƒŽi.ê°’œSÿ“c„B!„BˆóŒ´ˆi!<6e?©� grý¬z5�]Ÿ9)uj¤t¶rŬ¦NŽ#2)†�¼Í'‘œœÜ¤õüûßÿζmÛ0›Í$&&2|øp®½öZ"""êUÆ�wÞÉØ±c¹âŠ+¸÷Þ{™2e 'N¬v¿ßÏ5×\ÃÓO?Ýä×+„B!„B„“1-DQQCûì,?áãŽß£ È�a†Á�o|d,åÛCeÜñËD&EѺp'.×"##›´®S§NeáÂ…ø|>Ž9ÂSO=…®ë,Z´¨^Ç:”®]»6r-…B!„Bˆ–Gº&µ^¯—XÛ7˜­å¹ØòGO�›ïÁçó“ŸW@î™<ÊÊ\¨ªÊëod³o)Zgâr¹š¼¾‹›ÍFtt4dúôé8p ÞÇ_{íµ 0 k(„B!„B´LÄ´n·›Ä¨Ï8“ë翟— ª*EÅŨª†ÉdBõ«ø}~TUå?ëÏ`�v´ˆqbòóóéܹsðþM7ÝÄW_}¼äÈ~ö³Ÿïß{ï½|üñÇ5–§i¯½ö·Þz+7ß|3/¼ðB…íªª²jÕ*n½õV-ZÄ?þñ<OX£òr IDAT…ò·oßÎ<À‚ øâ‹/Âq™B!„B!Ä9“®I-€ßïÇa+âÈÉñ¡ª*†a`µX1ÙÌf3f³ MÕðùüœÈ.“¥Y‚˜ýû÷Ó¿4Mc÷îÝìÞ½›Gy$lå¿öÚk|ùå—üö·¿Ån·óæ›oVØþ /PRRÂÒ¥KÑ4�§žzŠW^y…ŸÿüçÁ}{ì1n¹åæÏŸO»víÂV7!„B!„â\H‹˜fæóù0+9DGi´m�ªª¨ªŠÍA«ÈH"#DF:P5¿ªÒ6é‡üLó7K�Ož<ÉC=IJeËØ²e ^¯—�>ú(,eûý~Ö¯_Ï/~ñ RRRHNNæÖ[o nw»ÝlÚ´‰›nº‰¸¸8¹æškسgO…r&NœÈ¥—^JJJ 6›-,uB!„B!Ε´ˆiF>ŸgÉ· èµ|åëÚ¶±2°_+>ÛW„æ×°ÄX0™Š‹Jq¹<†Áe—µ@óU™âº)̘1#80¯ÛífóæÍ¬\¹’>}ú0tèÐs*;'']×+ æk2ý˜ž:u ]×ùýï¼vMÓªŒ•Ó³gÏsª‡B!„BÑ$ˆi&¡!ŒÅb€�¡ºQ,þô‡n\wÃ>òó}äååcºa`è‹vfØà8JÏä7óU€Ãáà²Ë.cçÎ�dffƒ˜†v™RU]×Ñu³Ù\e{«V­X¾|9ÑÑÑ ¯¸B!„BÑ ¤kR#3 ¯×‹Ë墬¬Œ²²2Š‹‹)-þæÇ00ÊN�Ò%’wÞÌ—·%.ތɤӧW+V,íË~× Þ ÖïBII1ªª6ÛõÄÄÄC»ÝΉ'*l×u½^å$''Ô8 SëÖ­q8|öÙgçP[!„B!„¢yH‹˜Fäõzq–äЩõ.âcrˆ°(fCÕQ,fø¡k�¡ûÈ?üÿ;Ó•a#Ý(fÉmí<ü@ßjËõŸ9ζíœþöÿЮ]{EAQ,Kµ­IÂEÓ4ü~ð¿þúk233¹æškèÕ«ü1C† A×uþñ�ÔÅÄÄpæÌ ÃÀáp0~üxž{î9î¸ã’’’X½zup_³ÙÌìÙ³yå•WHLL¤_¿~R\\L·nÝíš…õçr¹xýõ×ùøã�9uê‘‘‘tëÖ�믿ž!C†œsùãÇ�'22’ÿüç?a¨­B!„MK‚˜FRXXH|ôzöýŤÚøH‰iˆdh”åeÍî™Ä%t¢ýÉtj¯b:ŠÅ‚¢ü¸¯æ.Å}ô n‹æë¾ÄĔ݊ÿýïÉ _�]ˆ¦*ä÷C�èÝh]wÖ¯_Ïúõ눎Ž&%%…%K–§°^°`O?ý4wÞy'mÛ¶%==�œœœË›9s&Ï=÷ßÿ=K–,ᦛnâÅ_äá‡&**ŠñãÇÓ¶mÛàþW^y%V«••+W’——Gll,³gÏ– Fˆ@×uî½÷^þûßÿÏ€ÈÉÉaß¾}\wÝuÍ]=þøÇ?²qãF^yåÒÒÒš»:B!„â'&Ü#½Ö§<¥ŽåÐu¦�u•o�í�û�es¥eK¥ŸÑyyy»ªÃ$??q3ÉmNÕïÃàøa߿ާK»-¤uu£û½hÎtO)†ÏƒZR„Z’Oq‰™·2'‘SITT$]SlÌš^DlŒ¿ByÇý|[ð3’“ۇ嚄h©«¬+**¢K—.ÍPqàÀn¼ñF ÄSO=TÛívc³Ù* ¾ÝPçÚ"F‚!„Bˆ–ÃjµJ P+ý4½Ò²²LÈýÐ!Û YgT³®òrM6j5¤EL˜¹Ýn¢">«Âä竼þV>;v–RP¨gfäð(®»º5I‰P:¥¹ˆJú˜ø„òé“L6°”‘}ÚMYi4e®²K†Sdô§ÿ°Žøþ»�«€+f”â÷©üõáþ»·ŒØ8…ùW·fÊä8º›Þådñ|bcc›ëáBüÄäææ寅ªª”ì ë:«V­âÃ?äôéÓ¤¦¦²xñbFŽYeŸ 6púôiºwïÎM7ÝİaÃ*œÏï÷sã�7røða–-[ÆØ±cq»Ý<ûì³|úé§8�NÈ]wÝE»ví‚! ”·Þ3›Ílß¾½±!„B!‚$ˆ ³¢¢|†_ô5Pþáã›C~÷Çï)*V1 Ã0ÈÎöóÎj7›6°üáTzõŒÅD\¬° •f±qKùþ+‰ŠŠÂf·Ñ¶}}“’‚ß0·‹}�¨V6~yß1¾üʉÓY†ù”™¿úˆ%K–ðÒK/1a„`3vìX™ê^!„B49 bÂÈårÑ6z/&KyãrëÜ÷§, |èºFaq ~ŸŠÕf!ªU+ò TîùýÿxóÕ~D:L(f+:šó8·$bos-#kè^GÏ®>އý_Sætg&òkÿsšáÃÒˆµ}�ÇӺ·ÑBÑXZ·nÍŠ+xâ‰'8t诼ò ¯½ö'Nä7¿ù ^¯—5kÖеkW^zé%, k׮塇âÕW_eàÀ�œ9s†5kÖЩS'^{í5¬Vkµçúì³Ïø×¿þEÏž=ùõ¯ ÀáÇٱcC‡eÙ²ex<6oÞÌÉ“'?~<“'OfãÆ�,^¼Xº& !„Bˆ&'AL¹Ýn:'”k»þÃNçzÐt�üüB MÇd2¡ú4Êpc·[ÉÉQùϺ\æ^Y>­á)†0u�qa6•wóy}XíVlV+‹…¢¢b4­|–"“~ µžSG !D8 <˜—_~™Ý»w³~ýz>ùä6n܈¢(L�:]×6lKùA“'O桇âØ±c9r]×1bD�!ŒÛíæþûïÇ0 –,Yì(cÏž= >¼Â1%%%�sÁB!„Bœ bÂH×ul¶ÍÝ»¿MÕðk~"ÌfL˜L¦n &³ ¯ÏÏîÿƒMSP#/¯×@£~O�:ÅЧ—ƒý_”`RÌ”•¹p»<\6µ †æ§°0†˜�7•µBTGQ†ÎðáÙ9s&¿úկؿ°û�¦iÁ}½^/Š¢`·Û(++¶ò«ŽÝn§gÏžäåå±zõjúôékÈ�!Ü}÷ÝŽiß^/B!„Íïܧ¯˜Í?ŽÅâ,ó£j&³ ›ÝVáf·Û‰°D iNç�á�‚™6mÚÔãЋ1é‰x³ÿG±¯{ð›b!„hl~¿ŸƒVX§ªå-ôƒcÅlß¾Ÿ¯|pò;v`F°›PçÎ�ƒëûT¦( K–,!22’>ø€;v�ššŠÉdâÛo¿%!!�.]ºo�×Â@KœÒÒÒp^ºB!„õ"-bÂÌÐ U:tˆ@SU,Š»ÝÒ¦üæt–¢ª*�:Ù‚Ç躷Öò5M£¸¤”3yE¼¹!‘›ѽGO<Ö?´¸þ÷�½¤Ó¾8bóHŒ�‘qb„�n÷îÝÜ}÷Ý$%%ѹsg\.‡ફ®¢k×®Œ1‚�;wrýõ×Ó£G222°Z­,Z´€=zpñųÿ~-ZÄСC9rä?ÿùϹ袋‚çjÓ¦ ¿úÕ¯xä‘Gx衇ø×¿þEëÖ­™={6«W¯æ¦›nâÒK/%77—²²2xàÒÒÒX¿~=�?þ8£G�æ†n¨± ”B!„áî>+õ™šG©c¹¦u•o5­7UZ®|³Ý{k««˜Ûí®Gõkæv»IˆØŠ5*€˜¨Þ~7¿_%**›ÝJDDVkº¦’›[ˆaèüaImÛ–7Éwçç‘çI¯vvUU9úÝq¶î9̉ÓÅ(¶Ö¼»&‹^]}$ØËМŨùÙgîãﯘÈVÆ¡GÄò݉< KHŠ� 6ýâBQÝߊÇã!..®j# ÃÀb±�ŸŸOVVN§“=zpÇw0uêTÒÓÓq:�=z”£G�Ò§O|ðAºví,gôèÑqôèQ>ÿüsl6ƒ ¢C‡¼üòËDDDpÝu×Ñ«W/öíÛÇÑ£GÉÏÏgìØ± 6 «ÕÊ‘#Gرc^¯—öíÛ3zôhE¡gÏždgg“™™É‘#G2dIIIÍõ� !„Bü¤ýíoûÿ`z¥Ÿüð3t™j–«S×öfî9�ÃĘBÖUÄT]ÊÃ¥ÐeK¥ŸÑyyy» £êï$??¿Õ¯Yqq1±¾‡ÿöî;>ŽúLüøgvW«]iÕeYÕ¶,[®ÄEŒ«� 6.tæ€páHà€„\€päŽ�ÜårqH¸@BÀ?½›æ`pŒ…dlËcãnËEÅê]Ú:3¿?d-»ê²V’Ëó~y_š�ýÎwž™�]ï>û-¤ŽO„3ÓEÿê7GxûÝ"ï—kH0õõMxÜntn[žÌ“¿€®«ß]H]ÈxÇ9ðUSSÃÚœÝÔÛ]” .e ŽÆZfMª!cd1‘ÑTÓ@~që~-l4§ �¢‰É#˜6q©Ã’1eÌqሉ‰i³®¦¦¦[ã, !„B!–Ùlž Ô*àiõ·%)㻬û,ãsß÷†ÏãÐu"§;I›€%vdŒ˜²Z­)�î¬ñ®{üÑÜýÏ)(ŠŽÝî ²¢§Ã‰¢èÜ{ÏPþó±ÑÞ²jùqŽ”Lè° ‘Çã¡®¡¹ÕNyuó>‚-6LÖéä^Äû_߯ÚS÷Qb½‡˜„æz]·§yP̂’Ç[ýçµ×^kw½ªª¼õÖ[ý�B!„Bˆþ$cÄ�ÙlÆ`›J]Õ^ÂãÃP &ŒF…Ÿ>˜Æí·$“»©‚Šr'±ƒ‚™=#–Aƒ¾F­«¤êT ÆðާkÐ4«5˜IS2°76ç׬Þn·sªp ``è°QÞõ M?æ‹É{ï½ç]Öu�aÆq饗¢(�7³Ûí¬^½š%K–È8=B!„Bq‘“DL€ 2”õ;&pÝUùü]÷¢AqÁÜx]R»ÛxªJ°ÞÊW·qÉÔÀt§Ð´¶­¦Ú['zfáÂ…Øl6Y»v-‘‘‘¤§§wº�ÅbaêÔ©2>�B!„BéšhAAA$�úMÉ誆ær‚®µ[Vw9h<¸ƒšmëØpòJ’G-êÓ©¦»h¸!z 44”„„ï´¼�Q…!C†tÙrF!„B!Ä…OZÄô�ÁƒãtfñÑç›).j`ú¤*F ­#Ȩ¡iº³ {u=�šØz|"ƒ£¿GÂØ›ˆ‹‹ë²nÍíî²L»ÛiF£Òëd@ee%Û¶mÃn·Ìå—_îíµjÕ*RSS9zô(¤¥¥QZZÊöíÛq»ÝDFFRQQÁM7ÝÔ¦ÞÎʽñÆ :”òòrt]gêÔ©$&&vÏo¼Á�!C¨¨¨`Ò¤Iœ�C×u6lØÀ?þñöïßOrrr»×K ¼ýöÛ(ŠB\\\»÷»»ÝÅìB<­¯÷žcWå{sÎýZ<_Ÿ?UUyöÙg=z4‹å¼=!„8Ÿýú׿þ€ ÿ®G-Á¿»QOº¬+Q I‹˜ bÊ¥ŒÙûr###/˜®IBákøðáÝþ‚³eËjjjX°`ÁYíkß¾}rÛm·¡(J@f�ç¦Þ^+}¥'×{ëMlçêùB!Î’ˆ  ÈÈHù^!:qÅWôÛ¾jjjˆ‹‹#44´ßö)„¯þ¼Þ{ê\ŽM!„¸ÐI"Ƈ¢(´7›’âܤ(�žøMôµ·ß~›K.¹„qãÆpòäIòòò¨ªª"44”‘#G2mÚ4vîÜɶmÛ8zô(ãÇ�'33Ó¯.]×Ù¹s'û÷ïÇn·“��@ff&ááádggóí·ßpèÐ!¢££Y¾|¹wÛµk×¢ëº÷}UUùóŸÿÌĉ™5kn·›çŸžÛo¿›ÍF^^GŽÁãñ�––ÆÌ™3ÚzÑårñî»ï’žžÎe—]ÆÛo¿MZZ§N�¢¼¼œððp233½]I:;þžßgŸ}Öé¾|uôœuS‹Ý»wóí·ßÒÔÔD|||›ÇÛ;ªªvxþ;ºV:‹³…ªªlÞ¼™ãÇ�ÓÐЀÍfã²Ë.côèÑ@s7;“ÉÄܹs½ÛìØ±ƒÒÒR,XÐé¶Ðözïɾ[?~œ�;wÒÔÔÄàÁƒ¹òÊ+;üѧ³óÔZëØººÞZtöÚ<}ú4‡¢¬¬¬Íö=‰­£ç®;笫ãÐ4�-[¶pèÐ!t]gذamößÙ9ïìߺu+ÇŽã–[nÁ`0àv»yíµ×˜:u*cÇŽm÷9Bqq’DŒ£ÑˆÇãè0„Ýt!Œ£t1s:�|úé§Ìœ9“ôôt¼ïÁ¸ÝîN»?lݺ•'N°hÑ"L&7näƒ>àöÛo'++ ³ÙŒÝngÞ¼ym¶>|8999Þû………äçç{EEEDDDAvv6‡ƒ›o¾MÓX·n›6mj“:[š¦±fÍ¿ÁÊyyy,[¶ŒˆˆòòòX³f wÝuF£±Óãïéñuµ¯�=g]='F£‘�;wrèÐ!æÏŸOHHÅÅÅX­Ö.ÏEnnn‡ç¿½k¥«8[�F"""¼ñ9r„uëÖ1xð`¢¢¢HOOgýúõèºîMü;vŒÉ“'w¹mWº³}mm-eeeÜxã�ÞdàªU«¸óÎ;1™Ú~„ëìaÞ¼yØl¶nŸ?!„IÄ´b³Ù:lÂ,„87˜L&ùp{P…ë®»ŽÂÂB8À§Ÿ~Jrr2‹/îr[UUÑuMÓü¾ü�ÆnwY>|8'Ož$55EQˆŒŒdøðáìÙ³‡Ñ£GÓÐÐ@bb"uuuÜzë­g5󒪪<÷Üs~ën¸áHII¡ººšo¾ù¦Û¨vçø»{|=ÑÙsÖULN§ Ó±ØÚ;--ßzrþ»{m¹ÝnÞ}÷]FŒÁå—_NXXï¿ÿ>š¦yËŒ5ŠììlfΜI~~>&Lèö¶�9Ûí;ºÆÏæ<õ—žÄÖÙs×Ûs®iº®ûu5뎖sÞÝ÷���¿ãB!Z“®I­´ô? Ád2É` Bœ#EÁd2BDD„ŒsINNfÞ¼yÜtÓMäççÓÐÐà}¬£/XÞ.#Ðü¿¬¬Œ˜˜˜níwøðᓟŸïíj’ššJyy9‡"%%ƒÁ@xx8f³™üüü³:>£ÑÈý÷ßïwkI„……±`ÁvìØÑí}tçø»{|g£½ç¬«˜"""¼÷;ÒÞ¹èîùoïZéìÚ(++Ãn·3}útbbb0›ÍTTTø•KNNÆívSXXHyy9C‡íö¶�éÎö¾]ÉZ”–3îÎŒ IDAT–¶{�÷ö:í©î&?àìbkï¹ëí9oïm­³sÞ�×]uu5{öìaÆŒäääx�B!„/iÓ«Õ*Ý„â,y<‡ßºàà`¿û‡ƒüü|† ‚Åb¡¨¨ˆ   ï{¯ÍfcïÞ½Ô××c±XüÆ1›ÍŒ7Ž/¿ü’«®ºŠ°°0¶oߎÕjõ~QîJXXááálÛ¶�%K–xëMLLdãÆ�Þ±! lÚ´ ›ÍFrr2MMM455y»(X­VoË™öîweÈ�!L�:•üãÜrË-ΊӓãïîñõDgÏ™Ñhì2¦´´4rrrX°`¡¡¡‘œœì÷ܶw.º:ÿ­¯UU;½¶Z„„„àr¹Ø»w/#Gޤ  Ào'EQ9r$ëׯgøðáÞ$pw¶mÍ÷ºèÎöõõõìÞ½›´´4¢¢¢Øµkº®“––Ö¦¾î\§�ÒÙk³==‰­³kÌív÷øœû2›ÍŒ3†ììl®ºê*l6;vìð+ÓÙ97 �^㺮³nÝ:222˜ºÅ]wÝåwßétrôèQ6oÞŒËå"22’«¯¾ÚûEwôèÑœ8q‚×_�äädo2¡ÅìٳٴiŸ~ú)𦑒’µ×^Û£8‡ζmÛüºè´L}ë›Ð¹ôÒK1�lذ�úúzBBBÈÈÈð~‰œ4iÙÙÙTUU±hÑ¢6÷»ãÒK/¥¤¤„5kÖ°lÙ².Ëwçø»{|ÝÕÕsÖULsçÎ%77—÷ßUU4h±±±m¾È·>]�ÿÖ×ʬY³:�³ETTÓ§OgË–-äåå1tèPo’ÃרQ£øæ›oüÆÔéî¶¾Z_]mÇàÁƒùꫯ¨­­%11‘믿ÞÛ’©u}]�§@éêµÙžîÆÖÙ5v6ç¼µÌÌL6lØÀêÕ« fìØ±~‰œ®Îyg×ø®]»p»ÝLš4 €+¯¼’×_�Q£F‘œœÜ£8…B\ØÝï¦;õ)],û®3ø¬k}ky¼å~˲±Õ²©Õß°ŠŠŠ-�õQBœßjjjÎêK¦B!„¢™Íæ©@= žVu@kµ¬û,ãsß÷†Ïãø¬ÓÛY×z¹#K"È1B!„B!„ýD1B!„B!„ýD1B!„B!„ýD1B!„B!„ýD1B!„B!„ýD¦¯î.— ·ÛM_ÏÔ¤( AAA˜Íæ>Ý�B!„B!ÎŽ$bú�®ëTWWãv; 6›1û¶’Û­ÒØX�Éd&** E ôìäB!„B!„è éšÔ‡p¹„X-}ž„0±Z‚q»�444ôùþ„B!„BÑ3’ˆéC‡ƒ Sÿ7: 2p8ý¾_!„B!„BtNº&õ!MÓ°XýÇkq8\TVU‚ � &&Kp°wUP�·Ý !„B!„"P$Ó�o®ù{°' õZœ&n[t­_2F!„B!„çIÄô£ÂŠÓÔ�ÔA1´Þ]ãTY1é)©­W!©¯gŽB!„èŠLh"Î’ˆéG�šúâu¯(4ªý;&̆ X»v-ÇŽ£©©‰¤¤$-ZÄâÅ‹»Üö¾ûîcÉ’%,\¸°×q².!DàµN¾H2F!„EQ¿Ï"’”E1ýÈ ôÝØÈŠ¡ÿÞDV¬XÁ7ß|Ã�wÞÉøCÜn7GŽÁf³õ[ gëoûÅÅÅ<þøãŠ<ß:º®{o­B!„èK- EQ¼7hþ<"É1$Ó�""¡¶oꎊŒè›Š[ÉÎÎf÷îݬ\¹’��ïú´´´~Ù¿âÜ×QFUUÜn7š¦¡i�±\!„¢sƒƒÁ@PPF£Ñ/!Óò¹E2¢?I"¦EZÂPPÐ ì/Á ‘Ö°€ÖÙ‘W_}•;ï¼Ó/ ãËãñ°råJ¶lÙBEEƒ â¶ÛncÞ¼y�Ö»jÕ*>ýôSª««;v,<ðñññ,[¶ŒÇ{ŒI“&pøða~ò“Ÿ°fÍšïû�wÞá�7Þš»V-Z´ˆ|]×yûí·Y»v-555Œ7λhîþ´lÙ2Ö®]˾}ûxâ‰'ÈÈÈ8ës(Ä…Ì·ÅKËÍãñàr¹0 X­V‚‚‚0 ò�G!„}N×u4MÃívc·Ûq:�˜ÍfL&S›„Œ|6ýE1ý(ÜÊ ©Yœl<�®&£†„ÆÔ÷Ý‚œN'EEEŒ3¦Ã2&“‰¤¤$ž|òI‚ƒƒÉÉÉaÅŠŒ=š”””v·yç�wÈÎÎæç?ÿ9ÑÑÑìÙ³‡ÈÈÈÇ×Õ¾o¾ùfšššÚtMzå•Wغu+O<ñ‹…^x�Ÿýìg¼üò˘LÍ/‘ÿú¯ÿâÇ?þ1wß}7ÉÉÉ=ŽMˆ‹Aë$Œ¦i8�N"""¼¯'!„Bˆþ¢( F££ÑˆÅbÁãñP__�Çã!88ƒÁà-'ÉÑ_äSq?K DRè �㬣ëz—I’¥K—z—o½õV>ûì3<Øn"FUUÞ|óM~ûÛß’žž@VVÖYÇØ“}¸ÝnÞ{ï=þð‡?�šÚ<ëÔ£�>ÊòåËÙ¼y3³fÍ`áÂ…,Y²ä¬ãâB盄iézd·Û é°�B!D3™LDEEÑÔÔDSSV«ÕÛuI’1¢¿H"Ft[tt4М�5jT‡åjkkY¿~=ß~û- {o­¤¤»ÝîMÂôVOö púôiTUõÛ¿Åba̘1x×�;6 ñ q!j�„QU‡Ã�ÍfÃb± ptB!„m…„„`0hhhð~^‘dŒè/}7��èPEE§N�¤®¾®ÝÇ]n7EEEáv{Ú-S__Ç©S'©¨¨èËPýDDDÅŽ;:,ãp8xà�¨¬¬äŽ;îà—¿ü%iiiÌÙÐÐt>ƒJwgWéé¾\.—÷‹£/³ÙŒÙlîÖ~…ÍZ1.— «Õ*I!„BœÓ, V«Õû�@fuýEZÄô³ýû÷S\\ 4÷C;v, ÞÇ�N'Û·mÃq¦G~þq.¿ü2¿¤@ñéÓØ¿ßûF‘””Ș1ýÓbãÆoä�7Þ ++Ë/¶¶–ù—ñ®;vìåååíÖ—��€¦i:tˆqãÆµyÜb±pêÔ)&Ožì]×Ñdw÷íñ|—ÜJLL`ïÞ½Þ�[âY´hQ»ûB|§åõØòá¥åõ:�a !„BtKhh(N§�ǃÁ`@Ó4 ƒ´Š}JZÄô#»ÝáMÂ@ó˜üü|¿2EEEÞ$ €Óé °¨Ð¯Ìñüc~Ɉ¢¢b{Eíï†n`äÈ‘Ü{ï½|üñÇœ8q‚ÂÂB²³³ÉËË#**ŠÆÆFV¯^M]]¹¹¹ <Ø[GDD%%%èºNxx83fÌà™gž¡  €¦¦&òòò°Û›�gܸq|öÙg”––rúôiþøÇ?âv»Û­«;ûŽ‹‹cïÞ½”––âp8 aáÂ…<ýôÓ:tˆêêjþò—¿)3# Ñ…ÖIQUUq¹\„…õÏ,nB!„�†ËåjÓJ^ZȈ¾b p}ÝI*],w´®õ­£õ†VË­oÁ�<òÈÝÝ;œÞill$(è»S\pª�êš*¿2‡‹#Ò¼÷wîØ Šÿ ¾ªª–´´TïýxG÷na4š‰ŽŽòÞw{Tl¶ÀϤd0˜?>ÁÁÁlذ�·Þz‹Ï?ÿœÒÒRRSS™4iÁÁÁ¼ùæ›|ðÁ¨ªJRR‰‰‰ÞqX"##y뭷سgW^y%=z”—^z‰wß}—’’¦L™‚ÍfcܸqìÞ½›•+W²cÇ®¼òJ<È­·ÞÚ¦®k®¹¦Ë}:”ƒò /pøða²²²ÈÈÈ ´´”W^y…�?þ˜˜˜þýßÿÝÛ­âÓO?eÔ¨QŒ92àçSô ‡ÃqV3o‰³ãÛF×õ>yïB!„è+F£‡Ãá�a 𶆑V1}ï׿þõÿ\€h­þræ¯ï2í,·çœÍ¤úª t"Æà³®½DL뤋BsrÉwÙÔêoXEEÅ–þÈn–––bý®KQMM-9_æb ûn‘ŠŠn¹åFïýœ/¿Âíqx_ðº®c2Y¸òÊ™Þ2ï¼ý1±ß%]êë›ÈÌœETÔw_<›ì.¿– B\Ljjj:tè@‡qÁóí–¤ª*v»�ÐÐP¬VëG&„BÑ3v»�ÆÆF¬V+F£ÑoZkÑ·ÌfóT PO«¿-IßeÝgŸû¾7|‡®9ÝI,‰ ]“úQdd£™ÂÂRª*kÉ?VȘ1£ýÊL¹t2ùG‹(/«¢¼¬ŠcG ¹ôÒÉ~eF�Ëñã…TUÖRXXŠÑhöKÂ!D_ó�)©å¦ªª r-„Bˆó’ÙlFUU¿Ï6 Ý“Dß�ÁzûÙ’%WqôH>••U̘5„ÄÿV+6[(wÜy û`ì˜QXCüg™0aƒâb9uâ11ÑŒ9¼ßâB_¾VZ·B!„8ß´ ÔëûÙFZȾ"‰˜~¦( #ÓÓIZ‡e¬!22&tZObÂà6I!„(-\ä‹B!ÎGŠ¢xXj'Fˆ¾"?]€&»�âÓ¥¸Ýžv×u�ŠŠ**+«;l §x˜+÷apÔöe¨BÑ¥@4Ý]¿~=Ó¦M£  Àoý|ÀUW]ECCƒw]NN×]wï¾û®_ÙŽÖŸ�eË–ñòË/Ÿõö.—‹)S¦PXXØuáêmlB!„hŸtGýEZÄô³];÷ðé§ëPU•°°Pn]~‰‰ñÞÇUUå­7?äèÑæi­GŽÎ-·^ç—• .ÛÃàu÷bl*G7š©œþõ£nê÷cB_½ùÐ2gÎV¯^ÍŠ+øÓŸþ4ºüì³Ïòøã�c³Ù8pàüã)**¢´´Ô»mGë{#33“Ñ£Gw]pœË±µç¹çž£°°�ÿþïÿèP„BˆNIFôIÄô£&»Ý›„¨¯oäïÿ÷Üs‡·ÌÎßx“0GŽä³sç.»l’w]̦_bl*@Q]Älz’Æ¡óÑ,ýt$Bx�>ú(7Ýt¹¹¹Ìž=›ÿû¿ÿc„ Ì™3€O>ù„9sæpÝu×ñ“ŸüÄ»]Gë{ã¾ûî H=}á\ŽM!ÄÅe_±‹ ‡|SàâD¥›š& - ¹ ƒ‘!F†Å1!Å̬t ãerq~“DL?:vô¤7 Ó¢ät™ßý½{´ÙnÏžý~‰s¥Eua®9Š#>#€Ñ !DÿJHHàž{îá÷¿ÿ=ÁÁÁdggûu3zôÑGÛÝ®£õ¾~ñ‹_ i¿ùÍo€æ®CÓ¦Mcùòåüô§? ©©‰¬¬,V­ZÅc�=Æ 7ÜÀ5×\ÀwÜAff&[¶láСC$%%ñÈ#�0qâD ¹5ã_ÿúW>ÿüsTUeÆŒ~û×4�W^y…Õ«WS]]Í„ xä‘GHLLì—Øž{î9>ÿüst]'++‹¯¾úŠgŸ}–ääd¿87oÞÌ_ÿúWòóó‰��eîܹÜÿý<öØcX­Vþó?ÿÓ[ö•W^aÏž=<õÔSn÷ꫯòâ‹/ðÅ_pýõ×óè£�âv»ùË_þºuëp:�dffòÐCâ=¦Ù³g“——Ç‘#G2d�=ö{öìá£�>âôéÓL™2…_üâDEEuùü !„¬MG¼–×À®SÎÖªûýiYÐt¨jðPÕ ²ë¤ƒ¿mªcò ·_acúK»5 q®“1búQxX(ªÇ?corøÝ×t�ÖtÕ�¢«mÊ ·?ÞŒBœOn»í6l6÷ß?÷Þ{/ƒfPòY³f±}ûvo“ã;vÍãʴصkÉÉÉ$%%µÙ¾¦¦†¿üå/<øàƒ|øá‡Œ?Þ›PxöÙgÙ¼y3O=õÏ?ÿù$���lذ¡Ocs:�¼÷Þ{Ææ«¼¼·ÛÍŒ3'--�±cÇ0}útìv;ûöí ªªŠC‡1kÖ¬N·kOcc#}ô?ûÙÏˆŽŽ&..ŽýèG~‰§–c;v,ÑÑÑÜ~ûíüà?`È�! 2„¥K—²{÷î÷#„"°ê?z­‚v5°VýÌ¿3 Meñ„Pþ÷¦A¬~0™-¿Ê–_ eõƒÉüïMƒXÂÈ×Ä0&ÑÌŠÏ*Ð1²ë”ƒß®©æçW˸aâü -b„覂‚Ö¯_Ïĉ¹å–[¸ýöÛ™6m¡¡¡yyyÔÔÔ tBôÊgŸ}Æáǹï¾û°ÙlüÛ¿ýÏ>ûlÀ¦¤ž5k_ý56l`æÌ™Ì˜1ƒƒ²víZ.¿ürL¦žÿ>‘’ÒÜjñ믿îö㚦±ÿ~FŒѧ±µ ÆÛQlíÉÈÈà—¿ü%/½ô¹¹¹”•5*?}útŠŠŠ8~ü8_ý5³fÍêÖv€w¼h”944”ÜÜÜ�Bˆþ·é¨£oº#é:h=KÂøZvi/Œ=Ó2Fçƒ]�l:bïzC!Î’ˆégE…§yþùWùÍ?Í;o}HCCÛ7µ�_má©ßÿ™§~ÿg6nÚÚ½ŠeÎû>¥i›6mbîܹ$$$`00� 4謾ZYY.—k Ãâ¬ÕÕÕñ‡?ü�Ÿüä'Øl6æÏŸÏĉ½³ õVBB‰‰‰¬\¹Ò›ì°ÙlLš4‰§Ÿ~ºÃ1XºÂâÅ‹ùŸÿùöíÛGEEÿ÷ÿç÷ø5×\Ãoû[öïßOUU¿ÿýŽfêÔ©›¯ºº:>ùäÊÊÊp8ìܹ«ÕJdd$ÐÜ‚gæÌ™¬X±‚É“'{Ÿ§®¶œïWfdz·ù ê;ì…tZw�?5é?P§|—àh²»6ík —ËÅ;ï¼Ã¢E‹ˆŽŽæäÉ“|õÕWÜzë­�FžþyfÏžMzz:ƒ—ËÅ[o½ÅâÅ‹‰‰‰¡  €5kÖðÃþ°M½�•{þùç¹ù曉ŒŒäèÑ£lÛ¶�åË—w+ž[n¹…ˆˆ8À† X¾|9aaaìÝ»—cÇŽqíµ×b·Ûyÿý÷¹æškç믿¦ººÚ;ý*4.ùí·ß²hÑ¢vÏ�¦i444ŽÓédÕªUÌ™3‡Áƒó /pÏ=÷àñxxûí·Y°`±±±8‚ƒƒq8�&bZ¶ïlü1W\qqqq=~ž.D555 :t Ã¸ µ¼‡¶Œ}âñx¨¯¯÷&IŹ«²²’ °iÓ&¿$Kwœ:uŠeË–ñÅ_x[Ä!„¸p=—SÇß6ծ–é©5K&ØxâÚ¸€TûäGe¬þ¦Å`â®ÜwåÙ�AVXXHXX&“ £Ñèý¬,ã’õ-³Ù<¨TÀÓê¯h­–uŸe|îûÞðyŸuz;ëZ/w$`I„ ó[Ø9JSUZ'€ššüû1VVÕ¶Ù®º²Ú‡ÿÓ¦iàŽ (;VZZJDD„·UÈСC ¥ªªÊ[fôèÑÞ7¬’’¢¢¢ˆ‰‰šgòhïCWåEñ6qOKKóάÑU<Š¢x‚1bf³Ù;HdZZuuuÞý755±qãFÖ¬YéS§ÚŒ·JmmÛ禅Á`Àãñ°sçN¶lÙBSSS›@JJJ°ÙlÄÆÆ`±Xzô¦Þ�}tç¼€ÿó$„¸¸:tˆäää'arrr¸ì²Ë$ #„‰o Ùõý»Ö0h*3Gîÿ’™£l © k|Sàló�Kˆs�tMêGi#†ÑÔh'$ÔŠ¢(xT•A­ºº\15ƒ÷Þùk¨hNÔ\¾xŠ_™BóRÝÛ05'aNV†£ �Üçñ«ªÚ惻Ûíî0S¬iZ·>èw·\Ë>ZöÓU<¾Z¯k=sI|||›.¾"##q¹\¶û‹yy9¹¹¹Ìœ9“èèhjjjü§l‰Íb±´[w¦èíÎ> çÏ“âÂvâÄ Nž461]×Pt�2n¢8÷ÉOâýÈl6sß¿þ3Š®PQVÍ èhþùžÛüÊL¹t"3g_A]M=u5õÌž=�K/�èWÆ´üi²Ø{<„ojÇáù§—Q‚ú¾d||<¥¥¥Þ1WNŸ>�¦iDEµ?M\||<%%%”——PQQáPVÓ4vïÞ�Óéì´\ ãéH\\uuuœ8qhþ¢e:Ú–M&Ó¦M#;;›'N iº®SUU…Ç㡺ºšàà` „ªª”””`40�x<âââ())¡ºº¹…“ÇãA×u, n·›’’ ¹åL}ýwM@[¶ïl‹Å»M‚Š& IDAT Î‹âÂP__ÏK/½Ä‚ x衇X¼xq›1¨º£  €Ã‡3{öì>ˆR!Ũ¦©ë {JG]cP˜1`u 36�;ƒÖ'1 hÒ"¦�éºî×!uø~ùëG:Ýfñ’ù,^2¿ÃÇ á±„ÿè¯�î³/X,æÌ™Cnn.ªªb³ÙX°`A‡]\, YYYdggc0ˆ��õÎ0äp8سgÉÉÉÄÆÆvX.�ñt$((ˆ… ²iÓ&vîÜIPPãÇ�'>>Þcpp0ééé„„„°k×.6lØ€¢(DEE1{ölRSS)((àí·ßÆb±ï�cüøñ|ôÑG,X°€Y³f±nÝ:‚‚‚°X,Ìž=›��fϞͺuë¼3�øܲýœ9s:ÜÇĉÙ¸q#àꫯÈyB\.¹ä^yå•^ד’’¶mÛ‘Bˆ‹×w-b^ó™1 ·ù&ĹFëíC¥¥¥аXÛïŽÒWìv:†€ÖÛ[���¬Y³†›nº) å„èˆ ÖÛ÷d°^!„â·àéÓT5(i¢kÍõªn4·“5�Œ">"0íJj=\ý»C‚‚‰ 泇’ÎêGH¬w`È`½"àŠŠ‹û}ŸÅ°ÏŽ466âñx8pàÆ ëU9!„B!DÿÔguï/ܴؾu íØ…éšÔ‡ ee¥„‡…a0ú<“ªë:šªQZZJRò�>ÝWw�8q‚ýû÷0xð`¦M›Ö«rB!„Bˆþ1!ÅÌ®S�J˜(~‹¹jÉ�šsÔz«ÿ^JÏg¢¿I"¦Y,<ª†ÝaçôéÓ~°ö…°°0P5 «ÕÚ§ûê®qãÆ1nܸ€•B!„Bô�Yéþ¶)�ßaPÅÀ'ÛJ¸wN\¯»'•Ôzød[ † +( ³Ò-Ò•Hœó¤kR²Ùl$$$QQY…ªª}¾?UU©¨¬"11™ÐÐÀd—…B!„§q‰f& ìì¬ P  yî‹’^×÷Ü% A10iˆ•qœ[ˆ¾"-bú�¢(L˜0�£G�rúôiCßöW &!!�#FHXqQûÓŸþă>8Ða!„ç½Û¯°¦{’ ú™1ŠÁÄÇÛJ›ÊÍS£ÎªÊw¶Tóñ¶R & ŠbàŸ®“ïAâ¼ ‰˜>f0HOO'==} CBчjjj¼SÛ/Y²¤ÃuB!Äùdú ×Oåƒ]�½¬éL‚D1€Áˆb4¢è&þgÕ`d�“1ïl©æVA F1¹vr8ÓGXQE’1âœ'‰!„½ 60~üx¢££ÏjûÍ›7sìØ1 „Ûíîp�Bq>úùÂHNTxzß2æL«˜ædŒ ƒAC3jüfÕaö&pï¼Ä.ÇŒ)©õðܺb>ÚzƒÑŒÁĤ¡¡Ê+àÚ©ÉÌÍØ$+ƒÂš¿®–×{Ø_d'w_m)D1a0™QŒf&³ñ¿7 Â`0HkqÞ�DŒBˆ§ë:6làØ±c�FRRRÈÊÊ ´´”ÜÜ\±X,dee1xð`ÊËËÉÉÉ¡±±‘��-Zä7X¹ÓédÕªU\~ù夥¥qêÔ)6lØ€Óé$&&†yóæqàÀŠ‹‹yûí·IKKcüøñ¬[·®MŒ3gΤ®®Žºº:æÍ›‡ªª¼õÖ[dee‘˜˜Ø¦|lll�-!„¢ÿ…Y üõöX~ûYMïº))Íöêœiè(hŠT#m+á£-E躺~f›æqe0QL£ ƒ!ˆk2"xôêXŒF£$`ÄyE1B!ÜÉ“'9}ú4wÝuŠ¢àñxp¹\|òÉ'\wÝuÄÆÆ’ŸŸÏêÕ«ùþ÷¿�®ë|òÉ',Y²„¸¸8ìv;‹Å[§Çãáã�?fÒ¤I¤¥¥ÑÔÔÄÚµkY¶llÛ¶��7rÕUW‘ŸŸÏ¬Y³ˆ��àž{îi7N]×y÷Ýw9~ü8Œ5ªÝ$ŒBq¡úùÂHfŽ´ðZ^ÃY¶ŽQ@Ñ›î5Q@Q0htň®™@WÑ5 нÛ(†æ™–ƒ‘‰CC¹íŠf޲a0¤5Œ8ïH"F!Ä€‹ŠŠ¢¡¡�/¿ü’´´4† @qq1QQQÞÖ%ÇgÛ¶mTVVât:±ÙlÄÅÅ`µZ½õéºÎG}Dbb"cÆŒñÖÕØØÈ—_~ 4'yTUíQœŠ¢°`Áþö·¿Ç­·ÞÚëcB!Î7ÓGX˜>¾b;ø¦ÀʼnJ75MšÞõögšÅ :FCó¸1Šbln £©èè 7w[Š10$&˜ï¥X˜™Âød+F£Ñ/#Iq>‘DŒBˆÁ]wÝE~~>ûöícãÆ�,_¾MÓ0›Í~e].ƒ—Ëå—|ñ¥( ©©©8p€Ë.» ³ÙLpp0‰‰‰\{íµ�Ærüøñ»&�3Æ�4ƒBq±—hf\¢¹ë‚ÐÏt=ÒuMÓÐ4Í»¬ëº÷ñ–DKKâÅ·LËãBœO$#„bÀ9�N<#GŽdذa¼ð 8�NX·n%%%ÄÇÇSTT„®ëÄÄÄ`µZY·nUUUDGGãv»1™LÞcÔÕÕ±fÍ–.]J||<µµµäçç3|øpt]Çãñ„Õj¥®®ŽøøxRSS;ìš°víZ–,YÂþýûÙ»w/—\rI�&!„â‚¢( º®û%WZ0-Iß²¾-_$ #Îg’ˆB1પªÈËË£¡¡UU™:uªw¼—… òÅ_ ª*6›�%K–`0°ÙlÌ�;—O?ýÔ›L™;w®ß`½™™™¬^½š/¿ü’9sæpÍ5×�““Ö-[0›ÍL˜0�‘#G’‘‘ANN{÷îåºë®ëpúËíÛ·BZZ‰‰‰¼õÖ[$%%�õ´×B!ÄÅ®u"¥å~{‰˜Îî q> ôÕÛ�ú”.–}×|Öµ¾µ<Þr¿eÙØjÙÔêoXEEÅ–Ö/l!Ä…£¦¦†¡C‡t´–÷PMÓPU�ÇC}}=ÉÉÉ™B!.]%búBaa!aaa˜L&ï4ýµï‹™Ùlž Ô*àiõW´V˺Ï2>÷}oø<ŽÏ:½�u­—;°$‚´ˆB!„BqN‘䇸�µßöZ!„B!„Bœ$b„B!„B!ú‰$b„B!„B!ú‰$b„B!„B!ú‰ ÖÛGt]o3ÒwSE¹B!„B!Î!’ˆ 0�ǃÝn§©Ê‰Ç¥X2FQLf#!ÑÁX­VL&yª…B!„Bˆ�&ßÎÈn·sðË]U�»^ëzƒ~f`Ä�ƒ�9«Õ:Ðá!„B!„5#&@TU¥èp)_/?g’0îz�ƒ¯•Qt¸UU:!„B!„â¢&‰˜q:�”ì©A÷ ì¸0íÑ=:%{jp:�ŠB!„BqQ“®I¢i •�F‡*Ñ´s§¥ŽâÂTUU5Ð!!„BqN“DL�Ë]Û† X»v-ÇŽ£©©‰¤¤$-ZÄâÅ‹»Üö¾ûîcÉ’%,\¸0 1µp»Ý,\¸�W_}•ÄÄÄ>Ù‡¢}ÑÑÑ‚B!ÄYijjèÄEB1¢ë:F£ð t(í2�›ÁiÅŠ|óÍ7Üyç�üð‡?ÄívsäÈl6[@êB!„B!.T’ˆ UU ±REý@‡Ò.«Õ�V1ÙÙÙìÞ½›•+Wâ]Ÿ––Ö뺅B!„Bˆ �$bDUU\4¨çfs¶Æ† €$b^}õUî¼óN¿$Œ/�ÇÃÊ•+Ù²e  4ˆÛn»�yóæuX§Çãᥗ^"''—ËÅôéÓùÑ�~ä�nû¾ûîcÆŒìØ±ƒ£G�’��À<Àøñã�æsÿòË/“���¦i\vÙe=Šç¾ûîcÙ²e¬]»–}ûöñÄO�‘‘Ñës%„B!„B´&‰˜Ñu·Éƒmtð@‡Ò.‡ÁÙë®IN§“¢¢"ÆŒÓa“ÉDRRO>ù$ÁÁÁäää°bÅ F�MJJJ»Û<ûì³ÔÖÖòç?ÿ�ÇÊ+X¹r%>ø uuu¼ôÒK<óÌ3$$$ðòË/ó«_ýŠ7ß|“ÉÄ‹/¾È®]»øÕ¯~…ÅbáÕW_íq<ÿõ_ÿÅ�ücî¾ûn’““{už„B!„BˆŽH"&@ C&Ç0ká¥J»>ÿ$ƒ¡w³•£ë:‘‘‘�–[ºt©wùÖ[oå³Ï>ãàÁƒí&bšššX³f o¾ù&QQQ|ÿûßçÉ'Ÿô&bÂÃÃY¾|¹7tË-·ð÷¿ÿ�ÂÂBùè£�xú駽ݣ~úÓŸ²~ýúųpáB–,YÒÓS"„B!„Bôˆ$bHQz—èèKEéu-³¡3jÔ¨ËÕÖÖ²~ýz¾ýö[(..Æét¶[¶°°MÓøñ�Œr&F�ÇÓfÄrÅ'þøøx, v»�ââb4McäÈ‘ÞÇ['œºÏرc»q„B!„BˆÞ‘DLÀõ>áq®Šˆˆ **Š;vt˜ˆq8<ðÀÌœ9“;¸¸8zè!4Mk·|hh(Ï=÷áááÝŽÅ7i£iªªb2µ½œ{�B!„BÑ—ÎÝ&ç#å»›bP0šLM&ƒâ]¯ë:.·—Û�ŽÞo땺ñÆyç�w8}út»�>|˜ÚÚZþå_þ…aƱcÇ(//o·üàÁƒ !//ï¬âILL`ïÞ½Þu¾cáô4!„B!„¢/I"&ÀZrƒ]ÓÐ5 ƒÁà]¯j»vnc×®í¨ªÖoëå†n`äÈ‘Ü{ï½|üñÇœ8q‚ÂÂB²³³ÉËË#**ŠÆÆFV¯^M]]¹¹¹@sÂ¥EDD%%%躎Édâæ›ofåÊ•ìܹUU)//çðáÃÝŠ'$$„ùóçóôÓOsðàAªªªxá…¼�w'!„ÿŸ½ûŽ�ªÊ?þ™’Iï!¤I-H �)Š¢(°‹Š²î*ºÊ³lø¸º¿çqUpÕõY¬HSŠ $¡$ Dé-RHH�$“™¹¿?BÆLzÈ„~ß:¯Ü9sï¹ß{'æ›s¾G!„B\+25ɦj¥=@UkûJ»ZÞÞ>W¶U׬ÝVé­VË‚ X»v-ñññ,_¾µZM—.]˜4iÁÁÁüå/aÅŠ,_¾œÁƒ3jÔ(«>î½÷^Þ{ï=RSSyýõ×™1c:�Ž>ø€ÜÜ\<==™>}:-Šé©§žbñâżòÊ+¸¹¹qÛm·áççТx„B!„BˆkÅÖMZÒŸª™íÚmêZmu5¯[¡\ùª©³­­óÕõÒ¥KÉm]ʹ®‚‚2N\"fBÔoÁ_IĘ뜫¦>IÝ¢²íÙ¾uã"ú†Z î q3+,,¤K—.ÆM­æghM�&£ÑHII‰,ÿ.„BˆVff&®®®hµZ4�åó”Ê ŸˆÆétºa@ `Œu¾*€¹Î¶Rk›ZÏk?¨õ:µÚ”Úên7ÆfI™šdkµREfÌuë´¨@­Q£Ö¨¯m»B\Çž}öYžyæ™zío¼ñQQQõVRKOOgÈ�!·é¼3gÎdýúõmê£)ƒ�¨¨(233ÛÔÏ´iÓøôÓO;<ކ´56!„BˆßIÄØPuÎãzýO!®_Ç'%%¥ÞŠf{÷î 99ÙªýÀ�ôêÕ«U«­ÝÈâââèÙ³gG‡Ñ ë9¶†,Y²„yóæutB!„ø“1B!:ÜðáÃyóÍ79uê”åCýùóç1 Üu×]ìÚµ‹Ñ£G[ö?pàÇï¨p¯¹'žx¢£ChÔõ›Bˆöuô‚�ÄSüœa 5¿ŠB½³M+@(¨Uàᤡ«·ý‚uÄD8Ð'@gË“qÍI"Æ–Ú0 ¨à|1§.Ð=.¯®®¶‹ dz’âºHHH´$b’’’9r$qqqüÏÿüæ+«Ð)ŠÂ�˜6mUUU,\¸�]»v‘››KçÎ�ùóŸÿÌí·ßÀK/½„££#¯¾úªå\+V¬àÈ‘#¼óÎ;V14×TOeŠ‹‹#99™“'OÈóÏ?Oÿþý0™L,]º”-[¶`2™-þÊ+¯`6›yã�7€ê©C#FŒ`ÆŒ–)Zz½žÑ£G³fÍ^zé%î½÷^&Ožl“8Ìf3+V¬`ãÆ�\¾|™~ýúñüóÏpMb[²d [¶lAQF�Í®]»X´hQ½C{÷îeéÒ¥œ;wÆŽË“O>ÙìûÚØq+W®dÙ²elß¾�)S¦ð /PUUÅâŋٶm•••ÄÅÅñôÓOãääd¹¦ØØX’’’8}ú4!!!¼ôÒK9r„uëÖqñâE¢¢¢xå•Wðôôlð=Bˆ›Éž3|–TJJz¥ {U¬¾Ôl˜((5RPj"%­‚Oö30Ä�‡»02ÜÁ†çâÚ‘©IíHQ* \·=ý@._ÿ5‘ƒ«Oqpõ)¾~"�Œ”¼V÷Ó\»B\φ ÆÁƒ-Ï÷ìÙÃÈ‘#:t(z½žcÇŽpîÜ9*++éÛ·/vvv³`Á¾úê+î¼óN^{í5ÒÒÒ7n»wï¶ú™˜��Àرcë�¿¹¾ ºôâÅ‹™3gk×®%22ÒòA`Ñ¢EìÝ»—wÞy‡?ü�òòò¯5&&†Ÿ~úÉ×�ˆ��·ì“’’BPP���õŽok}ô?þø#o¿ý6«V­B§Ó1{ölªªªÚ=¶… ’””Ä¿þõ/–.]JaaaƒµkŠ‹‹™;w.wÝu›6mâ�wÞ±ŒŠjê}m긙3gòÈ#�0~üxöíÛÇ /¼ÀüùóÉÊÊbåÊ•üç?ÿ!++‹… Z]Ó’%Kxæ™gX»v-!!!Ìœ9“ŒŒ Þ~ûm>ûì3233ùàƒê]‡BÜlÞÜ\ÈÓ_æÛ0 £€¢\)±ª (fÅTýÕ|åQ« E!%­‚§¿¸Ä››/Û(!®-IÄØÔoÕqMFéé餧§c2›lß·ü8&ãouLF3ÉËŽ·ºŸ¦ÚeHŒâzW»NLEEGŽaèСØÛÛ3tèPvíÚÀO?ýÄàÁƒÑh4L�:•°°0™5k=z€‘#GR^^ny^PPÀÉ“'‰‰‰i0†¦úððð`Þ¼yDFFâååÅÃ?L~~> ¾úê+æÍ›GDDÁÁÁ�Ö"1b%%%œ9s¨ùñ׿þ•ÂÂBÎ�;À¾}ûQÓ–8 «V­âå—_&<<œÀÀ@^ýuÊÊÊHLLlר*++ùúë¯[t�òòò¨ªªbÔ¨Q¸¹¹FïÞ½›}_›:®!eee¬[·Žçž{///|}}™={¶Uâ©æšz÷î�——>ø �<ò!!!„„„p×]wqøðáFÏ#„7º’ 3³?»Ä·)e6ìU¹òÿ•ŒÙĤ~μ5µç‘üJ’_éÂÆ9A¼5µ“ú9£˜¯$iPøö`³?Ë£¤ÂÜü©„¸ŽÈÔ$«Iw˜Íf23Ò–ÝP{q¶¾^?ÅÙzT­ì§©v!„¸ÞEEEQYYÉ©S§ÈËË£W¯^¸ºVOÓŒ��åË/¿äñǯW¦°°�Í›7søðaJJJÈÌ̤¢¢{{{bbbصk‘‘‘$&&2tèPœ��Œ¡©¾jÔ,e €££#z½žÌÌLL&“UáÚÚûÖæââÂÀ�ùé§ŸèÞ½;{öìáý÷ßçäÉ“ìÚµ‹ÐÐPöíÛÇܹs½_WGVVF£ÑêuGGGúöíKjj*cÆŒi·Ø²²²Z|�ºuëFTTÓ¦M#::šÉ“'3dÈ é÷µ©ã’––†Ùlæ‘G±,Oj4)+³þ Q;ÎÐÐP zŠ–———%Þº«{ !ÄÍdî×¶ŸŠT3’_13©Ÿ+�Åyà箩·§Ÿ»?w'F÷tâ±X>Œ/仟KPTjRÒ*˜ûU>Kgv²alB´/ckWŸh´úõ@¿~ý«kÛD{ç^^õºñëíÙê~šjBˆë�££#ýû÷çàÁƒìÝ»×jÄEtt4§OŸæâÅ‹œXêÃÔðôô¤oß¾,[¶ Km’ãÇ�SXXÈœ9s ÅÉɉS§N‘““c9väÈ‘deeqþüy:Ôè´¤–ôÕ”àà`:Ô¢ýcbb8t艉‰DGG0jÔ(Nœ8ÁÖ­[:t(ZmëÇ56GC¯›ÍfŽ;Fxxx»ÆVSŒ·¥÷`РA¼öÚk,_¾œ„„rss�æßׯŽ,õjüýýqvv&!!¡Õ×#„¿{ÎT´Ït$E³‰¹}˜6¸õ •LìÊ܉>`®NÆ|›RÆžÓ ×fâz#‰1›Í¸y6<Ô½9�.LÿðVîž?Š»ç�âÞŠ{ÀÕõÕOo×ÿ–VØÖG}d³¾L&Ÿ|ò‰Íúâz3lØ0víÚEUUaaaV¯ÅÆÆ²nÝ:Ëh///JKKùæ›o(**bûöí@õt˜:�ŽèèhæÏŸÏÀ�qq©•øöð ++ EQZÔWSœœœ˜4iÿüç?9zô(—.]âý÷ßotøøã�-É À{ï½×h –¶ÆáääÄäÉ“yóÍ79vì,X°///Ë½í¨Øj+..fÆ äææRQQÁÁƒqttÄÃÃhü}mî¸Î�;sèÐ!.^¼Hyy9Z­–™3g²páBöíÛ‡Éd"''ÇRZ!~ï>K*µm‡ WŠîš˜Ôß媒05¦ veR—+#c̬´u¬B´IÄØˆ¢(èt«Ò¸­yØÙkêïCP´mè§±‡½½NVR²�üü|6oÞÌêÕ«ùôÓOY¿~=EEE–7�ˆˆ z4C]±±±VõaºvíÊœ9søðùçž{ˆ��çÖ[o­wì¸qãØ¿½iI3fÌ`Ë–-Ì�;·Å}5åùçŸ'**ЧŸ~šÙ³gãëëÛd"'&&†²²2ËÒ΀圵¯³µš‹cîܹŒ1‚çž{Ž?üá”””°páB«é5×*6www ~­˜’’vìØÁ<À˜1cX·no½õ–eú4ü¾6wÜwÜÁ-·ÜÂôéÓyùå—øÓŸþÄC=Ä‚ ˆ‹‹ãÑGåĉW}�Bq³8zÁÐKTWׄQÌ&‹«_¢¡µ‹óB1›@1s(½‚_³l¯íÃÖš[ÒŸª™íÚmêZmu5¯×<¯ÙÖÔÙÖÖùêzéÒ¥d['%òòò0êÍôгù�;ÀÏÆÁÅ‘N�¤ˆÕÕÊÈÈ ))‰èèh:w(àééÙäý�>úˆG}Ô&1˜L&V®\ɬY³lÒßͪ°°�.]ºtt7µšŸ¡5µFŒF#%%%–©'×›ôôt¦M›ÆöíÛ­FÄˆŽ—ŸŸÏ„ سg�U’¥%ä}Bˆöµ$¾˜Oö”خÚå©ÍFîìçÂßïöµI·¯¯ËeãÏ¥¨ÔZf�rç‰[ݯªŸÌÌL\]]Ñjµh4Ë/ ¤XûÒétÀÀë|Us�m¥Ö6µž×~Pëujµ) ´ÕÝnŒÍ’2"Ʀl=ŽÅÖqµÌf3{öìaìØ±øûû£V«Ñh4têÔéªê$!®­øøx† "Ö¯C'Ož$((¨ÕI�÷U!ÚÛÏööÛhÌ&¢{Øîgwt¸2*æçŒJ™ ®{ò ²½( Cõ.�N5YÔ«h·rµí6’——ÇÞ½{)++ÃÁÁ�èèhË(›Õ«WÎÉ“':t(\¼x‘½{÷RUU…§§'¹¹¹<øàƒõúmj¿eË–JNNŠ¢mù­{Sñ,[¶ŒnݺY 4<˜óçÏ“››‹V«%.._ßê,|ff&ÉÉÉTVVâééI\\NNN–øŠŠŠÐh4–eJë*++#>>žË—/c2™èÑ£‡U‹��§©kÌÎÎfïÞ½ ÜÝÝ-E&›:gCï…¿gäp¾ë IDAT?üð÷Þ{oG‡!€ÔÔTÒÒÒ4hùùù,Z´¨Á¿ZBÞW!„h_©ùUÍïÔR5z¯ŒŠé`o³®{Ø£(fTŠBê%[&�„h’ˆ±±š¼Ge¥�C‡0°ÿ töWÕ®(`¾’\Q«TVù–Ö´Û‚Á``Ë–-ÜqÇxyy‘––ÆÖ­[ùãÿˆF£¡¤¤777î¿ÿ~Ôj5ƒ�~ø�I“&áííMFF©©© öÛÔ~F£‘àááÁ™3gHLLdÆŒÍÆc44hîîî?~œíÛ·3cÆ \]]ùå—_Ø»w/wß}7åååìܹ“É“'ãææÆ¡C‡HNNfôèÑ–Š‹‹­3u9::�››•••¬Y³†nݺѹsgË>M�§©küᇸãŽ;,÷&==½ÙsÖ}/„ø=ËÈÈàÔ©S–3¢c•””°|ùræÍ›‡¯¯/÷ÝwS¦Liu?ò¾ !Dû+ÔÛ~±3(f:¹ÚnU×N®šêº3˜Û%f!lM16§jäÙÕ¶×Vwµím—““ƒ»»»eTH—.]HII¡  À2 ¥gÏßjädggãé鉷·7P½òHCCÏ›ÛO¥RYV» cçÎ�-ŠG¥RYŠ@†‡‡“œœŒ«««¥ŸšåS³³³ÑëõìÞ½¨^ÖÔd2YÅèììÜdQ^µZ�ÑhäàÁƒ”––¢×ë)+³^毩ó4v�ÙÙÙxxx4xoš;gí÷Bˆß³àà`öïßßÑaˆ+úöíËŠ+ÚÜ�¼¯Bq#úmDŒÍ{¾2"E‘º.âº&‰ª=òÀÞÞž�ý«WýÐÙÛ_u»J¥ú­bq­&­ooû¨“ÉT/‘RUUÕh+³ÙÜ¢9ÿ-ݯæ5çi.žÚê¶Õ~®ÓéðóóãöÛooô¼ 233,Fš——GBBÑÑÑxyyQXXh™BÔšóԽƦîMS甿x„B!D[y8©)(³UÒD±ÚÌ+1âçn›�£y%FK÷Ž2\\ÿä»ÔFT*e%eµÐ98 sp°®Órí*µ•ZݦöÒ’Ò68÷óó#''ÇRsåâÅ‹˜Íf<==Ý?;;›¼¼<.]ºd©ƒc6›9|ø0•••MîgËxãëëKqq±e:”¢(TUUYŨÕj1b;vì 55³ÙlY5Éh4rùòeìííéÔ©&“‰ììl4šêá–5Ó¤;Os×ØØ½iêœB!„B´UWo»vëûØÛ-3]»¯.í³¶"#blD­V“•~‘Afóu÷aØl6‘žšŽo`Û–®vpp`̘1$$$`2™pqqa„ �Ö qpp`ôèÑìØ±µZ����e…¡ŠŠ Ž9BPP>>>�îgËxcggÇĉÙ³gÄÎÎŽÈÈHüüü,1ÚÛÛ�““)))$&&¢R©ðôô$66–nݺ‘‘‘Á_|�ƒƒ~~~–8"##Y·n&Lhð<¡¡¡M^cí{ãëëkY¤©s !„BÑVý‚u¤¤Û*a¢²ÚL8^Äè^Î6é9áx‘¥û[‚[¿ Ÿך­ç/´¤?U3ÛµÛÔµÚZ‹Y]ëyͶ¦Î¶¶ÎW×K—.%ÛzI³ÂÂB~Úq„1“‡ãêæŽF­±ùŠE­¦(((èËJYóùFâÆG[ê�t„²²26mÚÄÔ©Sm²Ÿ�),,¤K—.ÆM­æg¨ÙlÆd2a4)))ipêžB!nLG/˜õIžm:»RF1W¡ ˜«ÊÙüÒ-mžž”]ddâ?� ¶sD¥Õ±üOþô r¼ªÙ™™™¸ºº¢ÕjÑh4�–`¶¥Óé†%€ 0Öùªæ:ÛJ­mj=¯ý ÖëÔjSh«»Ý›%dDŒ�ØÛÛSV¡ÇPQE¡)ŸËù¾�ý©2©¬4`oo»%âZª¬¬ {{{´Z-Ç�§k×®mÚO!„Bqmô Ð10ÄÞ†£b@…E¥•†%Û³yýÞ¶ýgÉölPi@¥f@ˆ#}l¸,¶íEæ1؈££#a‘�ìþO†âŽŽæ7e— |ýÁ�ôÐGGÇk~þÔÔTÖ®]Ë×_�^¯gÀ€mÚO!ZâßÿþwG‡Ðj¶ŒÙd2±dÉ›õ'„â÷ëÁá.¶éHued‰J…J¥F¥Ö²~_&_¾ê.¿L¾Ìúý9¨ÔZT*5 w•Ñ+↠#bl¨wŸÞd¦í`çÇ*ró.p©üB‡Æãj玓»#ÞQлw¯‰¡OŸ>ôéÓÇfû !„B!®�‘áLèÌ·)eÍïܤ+ •ÔT *EË?לº3}XëÜø2ù2ÿ\s•�=*�†»º12ÜÑjR!®W’ˆ±!�FÃØ qœ =…{�áJH‡Æ£R©ðöö¦{÷î×]a!„¸ž$&&‰——WG‡"„B\w^œèAê%cÛ§(©@…êJ2F‹ZmƬ1óÆšSËôçñqÍÖŒÉ.2²dÛÖí»ˆZ£C­¶c@g^¸ÝK®7 IÄØ˜���ŒìBˆLvv6†BqÝš?Õ‹¹_´1óÛ¨•Z;T(¨U°~_6ë’2¸{X±}¼èèH'×ê�«y%FŽe•“p´€uÉ™¨Ôv¨µ:Tý»ºðÖÔN¨Õj #n’ˆBÑáE!11‘³gÏ¢ÑhfôèÑäää���@YY™eI÷Î�;�——G||>|Ø’ˆ9yò$·Ýv›Õ9<ÖßߣÑÈ�!CðôôääÉ“üøã�Ìš5‹ÊÊJ¾ûî;¦L™‚��iiiœ?¾=Þ*!„¿s/Nô º»Ÿ%•^åè¨T¨PÔT*@¥BmV£¨4(f-(&sÍ*ÅÕǨÔÕ+-©ÔúwqæþáîD÷pA­VËhqÑDŒBˆçééIii);wî$,,Ìj”‡§§'>>>„††²ÿ~òó󩬬ÄÅÅ___«•áEaݺuЫW/K_eeeìܹ¨Nò˜L¦VÅÊŽ;0�œ9s†ÁƒsðàAòóóÉÏÏ'44µZ�Ñhdß¾}”””PVVFii)aaaüøã�TTTXF¬Ô­KÓØ±5¯yzV3Œˆˆ`ëÖ­\¼x///Ë} ÂÞ^–ïBÑ>F†;02Ü�£ $žªàç ©ùUê͘•æ�¿2,  A¥®®£RiªG˜M(( TO[rwRâmÏ-ÁDG8äˆF£±JÀHFÜH$#„¢Ã¹»»3kÖ,Î�;ÇÑ£GÙ½{73fÌÀl6£Óé¬ö5 ¨Õj ƒUò¥6•JE·nÝ8~ü8C† A§ÓaooO@@wß}w“±œ?¾Ñ©I½zõ"$$„ÌÌLÒÒÒ}š¢¢"z÷î TO§Ú¶mcÆŒÁÛÛ›‚‚KÜœ={–ŠŠ zöìYï<�ÛÐ5Öü£³¡û$„B´·>:ú\ýß?Ê•©GŠ¢`6›1›Í–mEQ,¯×ü�W“x©= ¦æu!n$RVZ!D‡«¬¬¤¢¢‚îÝ»3nÜ8 ©¬¬Äßߟ‹/’�� @VVŠ¢àíí�ŸŸYYYPUUeùÀ Aƒ dÓ¦M˜Ífüüü(**âܹs@õ?úªªª€êÑ4ÅÅÅtëÖ�G}´Þ£fdMDD‡ÂÝÝ­VKDD§OŸ&;;›   òóóqtt¤sçΘL&.\¸`Y½®wïÞœ>}šÓ§OÓ£GK¼5#aš:¶1þþþ\¸p�œœrss©¬lãÊB!D;«�HQ«ÕhµZ´Z-vvvØÙÙ¡ÓéÐét–ç5¯KFÜèdDŒBˆWPP@RR¥¥¥˜L&† f©÷2qâD¶oߎÉdÂÅÅ…;ï¼µZ�‹‹ cÇŽåûï¿ÇÎÎGGGÆŽkU¬7..Ž�7²sçNÆŒÃäÉ“‰��'99�NG¿~ýèÞ½;ƒ ">>ž_~ù…{î¹§Éå/»víÊwß}ǤI“prrB¥RáããcùÇ`xx8iii|úé§8::hI¦øøøPZZŠ›››Õˆžþýûóå—_2qâÄF�mŒ££#ãÇ�gëÖ­¨Õj:w«ëÕ½B!Ä5T7‘Ró¼ö/WšÚOˆ‘­¿{[ÒŸª™íÚmêZmu5¯×<¯ÙÖÔÙÖÖùêzéҥ亰…7�ÂÂBºtéÒÑaÜÔj~†šÍfL&F£‘’’ˈÑ´M›6AxxxG‡"„B\—šKÄ´‡ÌÌL\]]Ñjµ–4×êÜ¿g:�nP˜c�¯ `®³­ÔÚ¦ÖóÚj½N­6¥�¶ºÛ�±YA¦& !„×Pee%™™™tëÖ­£CB!®[µ‹ðJ"DÜl$#„B\C'Nœ [·nÍN7B!„7'©#„B\Cýúõëè„B!D’1B!„B!„׈$b„B!„B!®IÄ!„B!„B\#’ˆB!„B!„¸F$#„B!„Bq�H"F!„B!„â‘DŒB!„B!Ä5¢íè„BÜ< ::!„B!®k’ˆBa3^^^‚B!ÄUÑëõ‚ø��©IB!„B!„׈$b„B!„B!®™šdCf³™ÊÊÊŽ£Aööö¨Õ¶Ë»%&&²uëVΞ=‹^¯'00�;I“&Ùìµ=ñÄÜyç�Lœ8±CŽo¯¾„B!„Bü¾H"ÆFôz=§OŸáäÉ3ØÛÛ¡(JG‡€J¥¢²¢Š=ÃéÞ=''§6÷9þ|~þùgzè!{ì1ªªª8}ú4...6ˆX!„B!„¸yI"Æôz=û’÷c§Ó2a|*•ª£C²¢( ¿ürœääý 6¤Mɘ;vpøða>þøc«~ÂÂÂlªB!„BqS“DŒ ”––RR\ÊÈQCHLLÂÅŹ‘ýÊ>|0:��MÏo0X¶ág ·_×™Šyä®~ìÞý¥¥¥mJĬ\¹’‡z¨Ñ>ŒF#ü1ÉÉÉ\ºt‰N�:qÿý÷3nÜ8Ë>O<ñ#GŽä§Ÿ~âܹsñ·¿ý�£G�²iÓ&rrrèß¿?Ï>û,îîî–ã’’’øòË/)(( gϞ̙3‡   �³µ1¬Y³†ï¿ÿžË—/Ó»wožzê)üüü8zô(Û·oçôéÓøûûóÔSOiéùòåÄÇÇc09r$³gÏÆÑÑñªï»B!„Bˆ›ƒ$bl@Qœ]œÐëËéÒ%ˆ®]CÜ/55½¾Ü扽¾‚bÇ0ªÜB|Ý®øz}..Nmš2UYYIVV½zõjt­VK`` ¯¿þ:öööÄÇÇ3þ|zöìIpp0ÅÅÅ|òÉ'|ðÁøúú²dÉžxâ î¾ûn^{í5Eáõ×_gÙ²e<óÌ3\¸p�S§NñÞ{ïáããÃòåËyöÙgY¹r%öööÍž³µ1~ùå—ìØ±ƒ_|///Ž9‚‡‡EEElÙ²…… âïïϧŸ~Ê?þñV¯^�V«eÑ¢EñÁ`4™?>ü1sæÌ¹ê{/„B!„âæ ‰rrräÈ‘£äç_nðõ²2=þíp^ÜÊÆ`Èkðu�©'§[Ú|ž . (Š%!ј»îºË²ýÇ?þ‘Í›7sâÄ K’ÃÍÍ�3fУG¦N�ÊŽ;¸ÿþûñôô`üøñlÚ´ÉÒ�ÉdâÞ{﵌:™;w.<ð ÜvÛmÍž³51šL&V¯^Í›o¾IDD£G�¶ìïîîÎôéÓ- ©?üá|÷Ýwdffâëë˦M›X½zµåZ~øa^ýuIÄ!„B!„�DŒ-étvÄÄ ï€óêxü¾Áí~/// :!S“DiHQQ?þø#¿þú+¥¥¥\¸p¡ÞjRµëètéÒ€òòrKò¢K—.”——[ö ¦k×®–çvvvôíÛ—ôôôŸ³¥1fggS^^nIÂ4ÄÎî·QM~~~888P^^Nff&f³™ÿú¯ÿ²\£ÑhD¯×7Ú—B!„BˆßIÄØHQQ©©™F“Š‹KÚt¼»»;žžž8p ÑDLEEO=õÑÑÑÌœ9___ž~úiÌfs£ý6Tܸ%�íìì°³³kõ9›Û¿´´ UÓ¸jâuv®®´dÉÜÜ®Ù#„B!„â÷K16ÒÙÏ�aÆttM*.)ms÷ÝwÿùÏ=z4þþõ§Y�:uŠ¢¢"þò—¿XÚΞ=K^^ÃÓ¦Zª:Ñ•jy®( 'Nœ`ذa­>gsûûûûc6›9yò$}úôiUœ�;wÆÉɉ¤¤$Æ�ߪc…B!„BÜüÔÀÍBMó#8Ò/ä±v[ÛöbǾ#ü˜ü3Û÷Æh2µê\UF#‡Ž�%çR¡Íclν÷ÞK÷îÝyüñÇY¿~=©©©dff²cÇ’’’ðôô¤¬¬Œ�7R\\LBBP� h‹ÜÜ\Ö¬YÑ#G¸|ù2}ôf³™‘#G¶èœîîîdgg£(J³û»¹¹1jÔ(.\HFFz½ž¤¤$«©R�ÑjµLŸ>��?þ˜ƒb2™ÈËËãÔ©Smº~!~æÍ›GTTT½Ç /¼Ð¢ãgΜÉúõë[üÜ–Ú³ï?þø##FŒ ##êýÛo¿eüøñ–Ñ|ñññÜsÏ=|õÕWVû6Ö~5¦M›Æ§Ÿ~zÕÇ ¢¢¢ÈÌ´ýhÒ¶Æ&„BÑždDŒ�(4=�%íB.— йgœu C•‘ïã0yÌÐ�'íB.GO§1¬O2³/qâ|&±ƒ#mcKhµZ,XÀÚµk‰��gùòå¨Õjºté¤I“æ/ù +V¬`ùòå <˜Q£Fµù¼Ý»w§G�,]º”‹/É‚ Ðjµ-:ç½÷ÞË{ï½Gjj*¯¿þz³û?ûì³,^¼˜§Ÿ~šªª*ÂÃà mÑÔ3fÌ@§ÓñÁ�››‹§§'Ó§Oo²æŒ¢Ú}÷ÝÇ“O>iÕ¦ÕÞ<U-Y²„ÌÌLþ÷ÿ·ÕÇŽ3†�72þ|þýïPXXÈ¢E‹˜7o...?~œwß}—¬¬,rrr,Ç6ÖÞqqqôìÙÓ&}ÙÚõ[CÚò}!„BˆÏÍó¯ÛëÜùÌâ†ô­×®³ÓrK�.ü|â<ýzvk¶Ÿ£§Ó¸=¶º0¯—»+ϽµŒ¡·Dà`¯³yÌ�Q©TL™2…)S¦4øúôéÓ™>}z£Ç/^¼Øê¹��Û·o·j‹ŠŠâóÏ?oô˜Öž3**ŠU«VµxWW×F ßP,7n´l«T*¦N�ÊÔ©S›ŒYQŸN§ÃÅÅ¥£Ã¸n½ð L�:•„„bccyÿý÷éׯcÆŒ`Æ Œ3†{¿ýío–ãko‹'žxÂ&ý´‡ë96!„¸™½` ñT?gHͯ¢PoÆÜößýÖ¢ V�‡“†®Þvô Öá@Ÿ€k÷ÙGˆö ‰˜k`ßÏ'Ø'¼Ñ×»ùñÃî éDŒÙ¬àà`oÕößOüáš&a„¢#TUU±páBvíÚEnn.�;wæÏþ3·ß~{«úILLdÅŠäççÓ§O^|ñEBBBZÜÿêÕ«Y»v-ùùùÜrË-<ÿüóXíSZZÊŸþô'Æ�gU‹jåÊ•,[¶ €íÛ·3eÊ^xáÌf3+V¬`ãÆ�\¾|™~ýú5Ø/T×°zôÑGY°`öööìØ±ÃjšQc ä–Lïzå•W0›Í¼ñÆ@õÔ¡#F0cÆ žyæôz=£G�fÍš5¼ôÒKÜ{ï½Lž<¨žžGrr2'Ož$00�矞þýû`2™Xºt)[¶lÁd2Õ‰ØÔ}¸±-Y²„-[¶ ( £G�f×®],Z´ˆ   «8÷îÝËÒ¥K9wî>>>Œ;–'Ÿ|’—^z GGG^}õU˾+V¬àÈ‘#¼óÎ;�ר÷EUU‹/fÛ¶mTVVÇÓO?�“““åšbccIJJâôéÓ„„„ðÒK/qäÈÖ­[ÇÅ‹‰ŠŠâ•W^±¬H(„¶²çLŸ%•’’Þø*¥­§X}©Ù0+PPj¤ ÔDJZŸì)f`ˆwad¸ƒ Ï/ĵ#5b®�‚¢ÜœŸÒ¢( jMÓoÅgv¢V«0V­ÚÝ]�m£B\ªªª(//·z˜ÍfìììfÁ‚|õÕWÜyç�¼öÚk¤¥¥µ¸ïŒŒ xõÕWùüóÏñòòâÑG¥¢¢¢Eý¯\¹’ï¾ûŽüã|ñÅLœ8±Þ\“ÉÄ‹/¾HDD„Uª?8?òÈ#Œ?ž}ûöY’#}ô?þø#o¿ý6«V­B§Ó1{ölªªª¼Žû￞|òIüñ6×àªÃO?ýdY1îÀ�@u]™)))XïøÂÂB/^Ìœ9sX»v-‘‘‘–„À¢E‹Ø»w/ï¼ó~øa½º[M݇öŽmáÂ…$%%ñ¯ý‹¥K—RXXØ`íšââbæÎ�Ë]wÝŦM›xç�w=z4ãÆ�c÷îÝV+î%$$0vìØ&�kìûbþüùdee±råJþóŸÿ�••ÅÂ… ­®iÉ’%<óÌ3¬]»–��fΜIFFo¿ý6Ÿ}ö™™™|ðÁõ®C!ÚâÍÍ…<ýe¾ “0 (JuÞEQP3Šbªþj¾ò¨Õ†¢�’VÁÓ_\âÍÍ—mƒ×–$bÚÀ`0`0š]æØhlºoüþ_‰êÓ½É}†÷ëÉÑÓéhí´äµ:V!„¸|ýõ×DGG[=> ÀÔ©S #00�Y³fÀÑ£G[Ü·ÉdbÆŒôïߟ€€^}õUT*•ejdSý›L&–/_ÎK/½D¯^½ðõõeüøñVu£Eáí·ßF¯×[�ŠhŠÁ``ÕªU¼üòË„‡‡È믿NYY‰‰‰ £Ñh,5§¢¢¢Z|ýÍ1b%%%œ9s¨ùñ׿þ•ÂÂBÎ�;À¾}û­ûåááÁ¼y󈌌ÄËË‹‡~˜üü|2220 |õÕWÌ›7�ˆˆ‚ƒƒ™7o^‹ïC{ÆVYYÉ×_ÝhlµåååQUUŨQ£pss#,,ŒÞ½{0räHÊËË-ß3œÀ#�'Ožd×®]„††²oß>æÎ�ÛhµãÀÑѽ^Off&&“Éê:kïÛÜ}3fL»Å–••ÕdlµuëÖ�¨¨(¦M›Ftt4“'OfÈ�!ØÛÛî]»ˆŒŒ$11‘¡C‡âììÜäq IKKÃl6óÈ#�Xþ~7�”•Yø©ghh(P=EËËË˯^¯oôΜOmpߨ!‘lN<`Õöÿ;‡ˆ®�Ü5f(}üPÀ÷ IDAT#º6y®¬œ|¾Þ¼› ;ö‘rô ~�<Ù±ï/¾ó)[v¥°e×AË£¢Ò`£+BˆëGyy9?ü0yyy<öØc,X°€ˆˆL¦¦G6G§Ó¡Óéší¿fih³¹ñ߸ <777¾üòËŸß`0`6›ë]GM\ yã�7¸ãŽ;X¸p!YYY|óÍ7->_sbccÙ¿?éééh4BBBˆ‹‹#11‘¼¼û,‹-²Ù’Ô111:tˆÄÄD¢££5j'Nœ`ëÖ­ :ôª–oè:›{½î}h¯ØjŠñ6[C Äk¯½ÆòåËIHH 77¨žž”••Åùóç9tè111-:¬¿/üýýqvv&!!¡Õ×#„¶¶çLEûLGR0›˜;чiƒ][ÝË´Á®Ì�èæêdÌ·)eì9]Þü�B\$s•4 ={ö@›a ¦¢·ª§ —&8²Æýß°˜Ï·l ¢¼zXûí±ƒI9~†¤C'íó‰×3dê3f³™[o½µÙþÝÝݹõÖ[yë­·HKKC¯×“˜˜XoÚǰaØ={6¯¾ú*õ“â�;wæÐ¡C\¼x‘òòrœœœ˜´¼OÍW÷ûB«Õ2sæL.\Ⱦ}û0™LäääpìØ±«ºF!„h‹Ï’Jmۡ•¢»&&õw¹ª$L�iƒ]™ÔßåÊÈ3+m«íD1màââ‚s…°ú«ñs¤8Ö‰¤~¹üwü‡|°ö3.æä2}b4ö:-˾ù�¯6ïf뮾ٲ‡/6%òï•éß+Œ Kþ›·çÎbêÄQ89Z/U}ül:O>0 {�]“qõ�èJÞå"ŠË$#,„¸9tíÚ•9sæðá‡rÏ=÷Ï­·ÞjµÏŒ3زe‹¥NHÝç½zõâ¾ûîãÝwßå¾ûî#==�?ü­VÛ¢þÿû¿ÿ›ððp˲֫V­¢¨¨~ñôY³f1pà@žþùz5lî¸ãn¹å¦OŸÎË/¿ Àܹs1bÏ=÷øÃ())aáÂ…õ¦•¼ûî»tëÖ­Þ’Ú/¾ø"`ëÖ­Wqg닉‰¡¬¬Ì²´3`¹Ç¿ê~Ÿþy¢¢¢xúé§™={6¾¾¾V‰´–܇k›»»;P¿VLII ;vìà�`̘1¬[·Ž·ÞzËjÙ¸qãØ¿¿eZRKŽkèûâOú=ô , ..ŽG}”'ÿeŽB´‡£ í°DuuMÅlâ±8¯6÷øXœŠÙŠ™CéüšeËx…h¶ž<Ü’þTÍl×nS×j«û¨y½æyͶ¦Î¶¶ÎW×K—.%7·ÒQK”––²øóO¹xŸ­{{û÷SÌ ù¹¿\ÆEŽ`@ŸHÊÊ+ШÕ8Ø7_Ôñ|f6£‰]­—åü>þ'N§]`ü¨�ô ¶zmë®ÆG´<ß¶maá¡6[êTˆëUaa!]ºtéè0nj5?Ckêz�FJJJ,Ó<„¸‘åçç3aÂöìÙÓâÂË5ÒÓÓ™6mÛ·o·ŒˆBˆÕ’øb>ÙSb»k–§6¹³Ÿ ¿Û×&ݾ¾.—�?—¢Rk™5Ê�'nu¿ª~233quuE«Õ¢Ñh, y©¹Õ¾t:Ý0 0Æ:_À\g[©µM­çµÔz�ZmJmu·Óö$Â2"¦ ìííéá×cZÓ?œTj0påÂx;>©ÚÉ?¾]ÊÆ�Û±·Ó¶( p&íb½$ ÀqƒùÛC“)(*år±õP<�VÝìÒÚÂv>úè£krŒ-ŽBѸ“'OÔê$ @||&´ª“ÅÒ%8˜†ÜÑ•”cgÜ7¢Á×U*U½!s¾Þœ8›N`g﫾¾öäèèHLL í~®ŒŒ ’’’ˆŽŽ¦sçÎ(ŠBAAÎÎÎí~n!„×·’’–/_μyóðõõå¾ûîcÊ”)­î'##ƒS§NÛQ !ĵW¨oüÁWKÁ Š™N®Í/UÝR�\5Õug0·KÌBØš$bÚH«ÕâZ¥£îªõ;""™>`"ßïOà¸>�ÒÁ¨]­ íªì4˜Fzpš*Þ=µžÎìî߇ءí+¾Þì:pŒA}º£Vן£xà×Ót ´®ýRQQ‰c#uk®*•Š®]»¶ûyÌf3{öìá¶ÛnÃËë·‚`�:ujâ(!„¿}ûöeÅŠmî'88˜ýû÷Û "!„¸Yý6"Ææ=+fTJõô'EQ¤®‹¸®I"¦�t:]ÝýÉ˹Œ}ˆuÒ#_)ÁËË“'ÜMU•‘÷íá§ìcäE˜P‡40#™œX“ó3?nâÑG¥¼¼œ5kÖðÀTß»ü|˜2eJ“ç]¶l¡¡¡äää ( ÑÑÑõŠ…¡Ñh¬’0-½®eË–Ñ­[7rssêAõ§-uv ¤3ìÑç�òÃR‚ËÝ™w;~�}™~{4?ìN¡¼¢ {�–Jƒ‘_/nõÛêHË×üÀŸ§Ž§L_ÑâbÀ-áèèHtt4nnnTVV²fͺuëFçÎ�)))ÁÍÍ�ûï¿¿ÞrŸdýúõ¤¥¥qáÂÂÂÂðóó³Éy�F# ÀÃÃ3gÎ�˜˜ÈŒ3¬Ž/..n2 Ñ\ÿƒ ÂÝÝ�ãÇ�³}ûvf̘�««+¿üò {÷îåî»ï¶ô5`À¼½½ÉÌÌä‡~à�üc“ý7ƒ··7›7of„ øøøPQQaµ:×-·ÜB\\œÕµ———³sçN&OžŒ››‡"99™Ñ£G·øž !„BÑÕÛŽ‚²öYúØ…J›%bŽ]ø-Æ.ÞvMì)nP7]õå›1sM©T*|}}q:®®÷Ýa·çðñ_>0ʪ=²GO"{ôäR~>ßïOäXyú!Nhœ­hhœ´bÜ8cV˜ÿë—$¹0&b·Çn2¦î]É/,ÁÅÙÑ—h¡V«1�ÞÞ<4á [’IÉ>AA5ê@ëŠJ ¦[\È–§îÄçÛ] ðçöØ[Ñhê¹êä鯯�ûyøž16ºÂjyyy$$$�——………TUUWRonfÍ �¦Ñ}Íæ†‡=6uÞÚ*X àáá�Á` 33³Þ´¥Öô_w¤OÝçuÏm4Q«Õ-꿱}T*U‹Š×¾v�N‡ŸŸ·ß~{³Ç !„Bј˜>ÙS÷SN[¨@¥B¥R³a6��ñmó¨˜ì"#ög£¶s•Š˜©óûpC�’‘ t6â­uÅT\?[|ÉÔüòÈ:�Ž1Q#¹5$ »µyT&å6º¯º«sõòסgyuýbþ³y-ú²ß–Ï>›žÍŠu;Ú¯ÇÕ]H._¾Œ½½=�:uÂd2‘��Ý`"ª“*‡¦²²úžìرƒñãÇãèèȱcÇêíïàà@UUÙÙÙ@õ¨Ž’’’VŸ·¡ókµZFŒÁŽ;HMMÅl6[VM2�WÕCE±Ô’ÉËËC¯×ãããÓdÿ�¦É|}}ÉÎÎæòåêrÐF£±zÙ¿&øúúR\\Ljjª%®†KB!„B4¥O€Ž�!¶]üC…ºú7Í* K¶g·¹¿%Û³A¥•š!Žô±á²ØB´—}DÌu#Ø'€ó§Î@”õüK”b2™ê}°¿t)ŸƒG!½8›såºÛ£}2„–üèP;k(bO|ÚRâSéZå͘Þ#xü˘ûÈ=ô ­?ò£Êضé)ݺu###ƒ/¾øüüüê� ©QQQÁ‘#G âØ±c899ѵkWüüüøöÛoñ÷÷ÇÓÓÓ²¿J¥"66–mÛ¶áè與‡‡¥®KkÎÛÐùíí퉈ˆÀÉɉ””Q©Txzz{Uý7D£ÑpàÀŠ‹‹qpp`üøñhµÚ&û�ŒŒdݺuŒ3¦Á}œ��‰‰‰aÛ¶mØÙÙáàà@lll“5oììì˜8q"{öìáàÁƒØÙÙIhhh«¯IˆÕ¿ÿýoæÌ™Ó.}ñý÷ßcøÿíÝ}�å�Çñ_wϾ̾°oì ¸Â‚Ê›J( 5ÊKEc@©«$•p©ÂºTªîþ¼ªTr÷§¹;/¹JÕýwWVÅxZFÍ•w€†ˆÄ€ÈEÀÜ]" u¤DWaeyYØ—ÙÙÙ™î¾?vgišîyÙ�ÝyÙï§œêî§ŸîyzvéŸÏóôؘ~øauuuemCØútÍäu Iß¹·¡0Ó É�!w¢GŒaF´÷DŸV/®×77µd?>À+Ç®jï‰>™‘Z†©?¿·‘Þ0( …þSšËùŒ,ëÞ2ÓSæ¥ËÍ€¥5±ni‡ëê¹ç^Ô—ºÿ†Ib‹É¶m½ð ڽ{w±›‚ síڵЛcFúg¨ã8²m[©TJCCC�ÃÿŠa&Š7ß|S ,Ð]wÝ%ÇqBƒÛr b®]»6Poß¾=´ 0wý㯯é?þ'–½b6�®v�”\{LN*!7™ÐßüÙʼØWŽ]ÕÓ¯þIFU�ÌH�vnhÑkË8B6çÎ�Scc£"‘ˆ,ËšüO¸3³ª««7I’dKJù–îÄÒ™X÷/5±ô¿4QGž:Þe¦õ0 Ê©GL>óÁÌêÜ1¦i*Q|d@ŽS{Ã?Ê#KôÌÁ½²—Õʺ§A†eJªË8&ÌIØ2«L�õ�(Ù““°U¿¶Mƒï|®š~G ÛækÞ�¤¾Ps‡î}d½Ú;Ú5o^£"‘àÂûú.éø±ŠÇG¦ÔÓc¦ôôô”ÌM€¹íÈ‘#Z»vmècî½úûûu÷ÝwKºy®¨ró»ßýN}ô‘ÚÛÛ'‡0•æ¶>Ú¬O.§¦ß3f¢WŒ S2#2MGŽåè^=£Sçé/·uf�3æÂ@Jÿr°W{Ž.Óª–iVi}W½~ðÕÖ²ÿ½Œ@ù„e3oL1‚˜’˜`·�êêêTWU§Ýªã2ª}—÷@Ãø21x¼;’’µ4öYL©+£2«LEÔ)vôsYWm5F£²Þ‹kUm³º—.Q2•Rl8¦øÈ€~{èpæÆ†ëë´bårõ_ëÏ8¤e6¹®«³gÏêþûï/vS@.\Ðm·Ý–S]×u+æÿŒÝvÛmº÷Þ{õé§Ÿêý÷ß-àŸ¾Þªïÿ{ÿ4؉ߟ†)ô$«J†\™†´÷øíy÷3=±i‰¾¼¦U«GÕÞ8~»zi(¥SçãzûÃ~í9vN†Y%3R-êÖÝ·6èÇ_o—iš¡ﲘõ§œzÄ”¬úúz­Y³Z§N�’óÑgЬjÎXßJʬ�hôãAÙWFeµÖȨ6?qI5#†Zç©ú÷1mh^®Åë:•L&�Çå8R|4.Iª©Íí±l†a¨6Z£‹—®hݺµª¯/Ì#â¦Ë0 mݺµØÍP"\×Õ‘#GôÑGɲ,-]ºT›7o–41üóí·‹ÅT[[«Í›7O±¼té’>¬X,¦ºº:=öØc7üœK$zõÕWõÅ/~QÝÝÝúôÓOuäÈ% µµµiÛ¶m:}ú´z{{õòË/«»»[k×®ÕÁƒojã< K—.©¯¯O/¾ø¢ÚÚÚ´sçN½ùæ›êïï—mÛZ³fMÖ€Ùqíß¿_—.]R$ÑÃ?¬ÎÎNÅb18p ð\ù^§ßñãÇ588¨m۶ɶm½ôÒKÚ¼y³:;;oª;þü¾1À\ÓXkê_¿3úÔŒñ {]MtŒ‘äÊ�c˜’miω Úsì¼\בÒÓILÌ+#Ó’©•aEdšUz|C“~ðÕùÓŽAL�¬^½Zñx\ïœþ“œ;®EsÉ��IÕ–’Ÿ )uyTÕËe÷Œiì�ýªJji±T7hjÅ‚uš¿¬U¶íÊít‰Ddš¦ª«kÕØ8µ ¬$©¦¦F‹-ÒÒ¥K q©Pp===úüóÏõä“OÊ0 ¥R)IÒØØ˜öíÛ§�;wjþüù:{ö¬^{í5íÞ½[®ëjß¾}Ú¾}»:::�ÇoxÜ{*•ÒÞ½{µ~ýzuwwkddDÐ7¾ñ 555éĉ:zô¨¾ò•¯èìÙ³zðÁµpáBIÒ÷¾÷½Àv®ZµJçÏŸ×Ö­[ÕÞÞ.Çq´eË555ittT¿øÅ/ÔÝÝ­E‹e¼Þ{î¹GíííêééÑ믿®Ý»w+�žkþüùy]g��7ê—¿ü¥>þøc}öÙgºýöÛC²ùá£Íz`e­^xwxнc ÉpÇ'î5-†$Ã�é˜r K®‘\[®ã�Ä�aŽ?iÉ0-ÝÝU¯]÷6é�Ûdš&½aPvJ)ˆÉeÈRIkZ±b…Þÿ­††“r )ùɰRWF]תÄ—”:3¬Z;¢¶Þ5¦ªµfÙýjll�iZŠD"jjjRCCƒš››ÕÐÐPìË€YÓÒÒ¢ááa:tHÝÝݺå–[$I½½½jii™ì¥±|ùr�8qBW®\Q"‘PCCƒ:::$IÑhtò|®ëjÏž=êììÔªU«&Ï‹ÅtèÐ!Iã!�mOïir¦i*•JéøñãR,ÓððpÆc ÃP{{»$©««K---êëëÓÒ¥KÏ•L&óºÎ«W¯jÿþý“uî»ï>-[¶L�<òˆ~þóŸ«££CßúÖ·¦uÝ€¹íK+jõ¥µú°wLGÎŒê�Ÿ�é“+I]qää4ÈÃHÿ'W– s|ÞðÆ{Â8¶\¹’;>l©©ÎÔ-m5ºsi­¸­Nk—D''ÓM0„0sÞ¬N¶;]¥ÄÌ” Ù‘g„eYjJÕiH†âï\�z㪷jÕÖ;¢·Uw¬¾G5µ5ŠDªTSS3¸´´´¨º:·¡FP‰šššôä“OêìÙ³úðÃuôèQ}ûÛß–ã87ý|“iš»!”ð2 CË–-ÓéÓ§µqãFUWW«¦¦F���zâ‰'2¶åã�?š”;ÒúúútðàAmÙ²EmmmêïïרØXÆóûÿ¡˜J¥dYVè¹ ÃÈë:[ZZ´k×®›ê¦?Gºo eMgµÖtNý>&ýF×uå8ŽÇ™\w]wr:hI/Þ^0éý¨³vï^låÄdêS´/­¶¶Vë—ß!ã�SZíV׆Å2-KU‘*Eëê4oÞ<Í›7O---Ìè ‰DB©TJ+W®Ô­·ÞªgžyF‰DB‹-ÒÁƒuáÂ-\¸PçÏŸ—ëºjkkS4ÕÁƒÕß߯ÖÖV%“IE"‘ÉŒmذAƒƒƒÚ¿¿vìØ¡… j``@gÏžÕòåË庮R©”ªªª�F588¨… jÙ²e¡C“ü®\¹¢h4ª (‘H¨··WwÞy§¤ë½eÒÃLÓëŽãL^O__Ÿb±˜:::tæÌ™Às-\¸0¯ë ûýràÀmß¾]§N�ÒÉ“'µnݺ|sL�a““à§Ã•t“a¼u½=_aæ”L÷øeÚ”z3Õ¡HEù2"‘ˆ6m܍ֿfÕÕÕMöv©¯¯çdÐß߯wß}WÃÃòm[›6mšœåÑGÕo~óÙ¶­††mß¾]¦iª¡¡A[·nÕ¯~õ«É0eëÖ­7LbûÐCéµ×^Ó¡C‡´eË=þøã:|ø°Ž;¦êêjÝu×]Z¹r¥6lؠÇëäɓڹsgÎaùŠ+ÔÓÓ£çž{NÑhT‹/–eY’¤»ï¾[¯¼òŠvìØqúeY:vì˜T[[«;v(‰„žk*×é÷Þ{ï©®®NÝÝÝêììÔK/½¤Å‹çô¸nf’ÿ>)½ÄdÚFÅšê½}I4…þÓ›ëù ßÒ[nl{뛾}¦¯ÜœxYžWijl¼|ùò1ÿ_l•ãÚµkêêê*v3*Zúg¨ã8²m[©TJCCCZ²dI‘[*A¶ f&œ;wN���ŠD"“sÐÌÖ{ÏeÕÕÕ›$ IJI²=ËôË™xibéz–®¯\žrï"ÿ¶”ÿP¨‚…¥Þ#&é^3%=‘/ 7„P1sÈTúD%óEPáæÄ=|91A_H.“÷uEE`†=±ê½_ÏwrÞ²»Ï/tSˆ ßs„}YNXÃ0€bº<± º¯÷ß·Oµ·L1rŠŒŠÝ#f*“â„­{Ë2�×6 c0Ç÷3 ™LžÑø„¼aÂîïóÉÂÎ[4Å bÂ.:l㩞?hÖd{llìC& x.^¼ø{�1þ'Mw®˜\³…¢2Åî“‹\’® õô—èøÊ“o½õÖËm!È˳Ï>ûޤäĦÿQÔAaL¾ë%©‚˜|dz.ød�˜]»v7 ã½b˜}ñx|ïSO=uN™{Ä(d»¬•k4iO¦ùbü¯Äo¼ñãmažÇQ2™Ôèè¨FGG�Ç�Ç'·“ɤ‡9†åÍ0 û§?ýé¿IJ(ü¾Ý/¨¼,o’#Ån@¸’ ÝÜÉ‘dM,MO™))µk×®w{zzöÕ××ïpÝâ„kÉdrò•J¥d™¦ªª"2 C–5ž‘Ù¶-×u5�ËvE"UUUM¾('|ðÁ�žzê©O%¥tý^Ý?½Hº,mºóÆ”ŒR bÒªáÛN—¹¾}ÞñEAuý/gbßhWW×ß÷ööί®®¾o¶Â×u•H$488¨ªªˆÔÜܤªHn_E2•ÒH,¦¡áA%“¶æÍ›§šš>ÐS- IDAT1Ì @)èïï/vPÂΟ?ÿÏëׯÿµ¤Q�ߟ{C˜ !JA=a2ÍëßWrÁÍL1þp$[½\ëçr¾ `ƾ¤_æDY¼³³ó¯{zzþ¶¾¾~‡4”Ì”x<®��Ík¬×-K˲nþø/_¾¬ .(‹I’êëëµhÑ"µµµI’ª"555©©©I©TJW¯]Õ… WÕÜܬh4:cm€\´¶¶» S222Rì&T4Ã0ì>øàGëׯCR\×Ç÷ ^ u³žoÏš‚‡¥Ø#&WéaFRðð¤ !IéõôsÊmI±®®®¿{þùçßzì±Ç¾/i‰TØ@ƶm]¼xQ� õºµëY–5¹ïôéÓzíõ×uäí#úß?üAW¯^ §ñ‰y“º1€I/Sº9˜ñ/ýC�ÒALÐP&…lK%Ð#¦Tƒ˜tYPã?Æ (·|ûMOyúå aL϶¥ñ°&â9&×ëâo( e $¼ûÓ�¤NM¼l]Yü½alÏË;T)}N[7-ÞýÞò\æ‡)zSì¡I…œ'Æ{ŽôP¤ô¹ÓÛŽÂßÇû…¦Þ ' !  ’寅#Þù_‚zÄø{¿H7.¹¼w.JâÉK3ÄjÞ s…7þuïRžúé4Í^K7‡6A½o²V@¥ÈÔÃÄ¿íŸ÷%½´=Kdzàõr zŸ°¶M׌6Åî“Iú‚ýOAòÞ‰xÓõýOPòöˆ1u=ŒI‡0®ç†n~Ê’¿~¹Ô \åxd S¼=_lßÒÖÈwÿzÐ$½3ù”¥‚›Éà ŸsOuÒ^oYÐP"ÒÍ“øZ¾mÿº|Çær T¢láFØÜ-AOF a‚&è•nv‚ÞG!Ûþº¹*»1…ž4ìÈÞ°áJÒ�C�¼=bÒÁŠ·'Œ¿g�7�±=åAm+ Üå3ñmP`âc¼“ò†…0ÙÞGêN׌õ¨)å¡IRæ0Ǿ„ Qòîó®;¾óx�õ>[žõ\‚Â@%É%” DÂB–°Æ{lÐ�¤|†H•¤™ 5<É_žÏ%éÆÞ/AOB23ŸËÜ0SÝ@)Êfd B†9!u‚‚™ ãƒöùÛT²Ã’¤Òï#÷ŠÉuˆ’¿GŒw^ùöK×'î•ÂC˜é†+„3€R2ÝÐ!—!Cv@¹?` ëõ’Ëù3µ¥¤ÌF(0Û½b¤›‡•‡MTÔ&p]PpÔ£Å_.…‡0™Â™²ë #•O¶o*aLØÓ•ÂÞ'×¹aüÇP ò 12õh fVº!L¶}aÊ>ˆÉ÷}²…1A½e²…1ùìóŸŸÇVp]¶ Âñm…-Þzùì ’”m˜RÉ„0Ri1AÇ……4™—LAMXo˜Lç k+sE¶!@aûÓëaõ³õ¨ yry¿\ÍÉ Æ[?×!JRîaL.ûÃÞ;—öPé¦òé\‡-…íÏ5„ɵ}A*&ˆÉ÷½2õRñ–åƤ׳õnñA ko.×A@¨¹auüåÙ‚”°¹_r96ì}Kª7ŒTºAŒ¿~¦Þ*Ó c²ÕËÔ&0.S“)™N“é|™Ú¦â‚˜©¼_!˜ ºùž—€ì†ÕI¯gª[Q!Œ$Y³õF ÄdÚïÔÏg¿·^z9k_ e&ìÉHþ:^™B–lûËö½==f+ŒIog \ÂO�Ï\0ô˜ÌùL‚V'[öˆêLç-‹Þ0Rñ„Ù c¤à°%×Gcg;.5€r0•P"Û1¹—zùÎïB/n4•0$Ó<3ùô É¥^¶6̺b …šo¥�eÓýLŠý™PHÓ -òíÝRˆ²læl#M½ Sí“oÝLåàº\{°d*Ÿ©^0Ó=® J%`(T“OY¶}¥òÙPŽò eÂöªÌtŽ+˜R f:ŒÉõ=fk"_*E¾áJ®u**„‘ŠûÔ$¿é„¥0Ôˆ�Pɦ¶äsÜTzÓ”…R fj¢\z¹P¦èzÂà¢)Åb¦ŸZD(ÀìšNošŠ a¤Ò  Ñ®éÎS¨v0×"\)D€RR!ŒTÚAC¡Ú–Ïy Þ0—:T)TxRr!ŒTú¡B!Û7ÓCž ý~S¾AF) !*ÉF*Ÿ° ”P8s"€I+§P‚GNPf"0)ùF*¿ b&Û[nŸåd&ƒ’²a¤ò f«ÍåøÙP*f+)›F*ï°¡Xm/çÏ €B+VRVLZ%„ ¥~ ¥Þ>¼J=à(õöeT)!A¥\WÖ!ŒTyF¥]¨€&­Rƒ‹J½.æ’Š `ÒæB`1®€JQqá‹×\ )æÒµPn*:€I›«áÄ\½nJÉœ_¼$Æñ90óæ\ðâGŽÏ€©›ó¡K†©ã³Ìe-@åø»Êiãá}NIEND®B`‚Flatseal-2.4.1/screenshots/en/2.png000066400000000000000000003366661520337174300171130ustar00rootroot00000000000000‰PNG  IHDRb6½‹%ðsBIT|dˆtEXtSoftwaregnome-screenshotï¿>-tEXtCreation TimeSat 13 Apr 2024 09:35:03 AM -04€ƒ…ñ IDATxœìÝyX”åâ>ð{6`†PQwÀÜ-5õ›–¹åšžº¬Nu:§¬cžêdý<¶g–©eš5-ÍÒ0sÉpÁ]Oˆ Ê¢ì00Ëïšif†™a€îÏuqÁ¼Ëó>ï;3ðÎͳDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDvIÐÒhÅx툈ˆˆˆˆ¨=S·tZ#† ÆñÚY�A� jñ:5½vδע½ž7‘=iwÁL{ $ÚÓ¹µ6í"”iáD{8G""""""¢¶¢M2m5¤h«çEDDDDDDÔž´¹P¦­mí|ˆˆˆˆˆˆˆ¨ 2m%¸h+çADDDDDDDƵú@¦-Íu�9N[¸ÎDDDDDDÔö5&èh®�¤U‡1­9 hŠº›Sfk¾fDDDDDDD¶fN0ÒáI« dZc¨`Ë:›*«5^"""""""{a*(±eˆÒª™Ö6Ø¢¾ÆÊhmׂˆˆˆˆˆˆ¨51˜Ø"Hi5aLk šbŒ–ÖtþDDDDDDDmES„2­"Œi-A„µõ4´Ý%""""""²-[(Ö–g÷aŒ½ -ÀØêšØûµ%""""""2ÅV¡†¹å´‹@ÆžÃ[…0 •céqìùš57KC�†¶¯»¾M…1ö*XS/KK[ÇØëu"""""""²'ê:ßÍÝÞœuÖ+vÆØcÀÐØ¦1ŒÀÊã‘ajXÞ ÆØºVÆØ[èÐØnBÖÌŽ$´òXDDDDDDDô's•e4¶uŒÝ„1ö.4&„±4€1ÕòÅ–³*ÙÓõ%""""""2—­Æi1µ¯©–2æ,o•aŒ=–ÔÅÚÆXëKº3ÙÓ5#""""""ji–„6ÆÖj%cë0†AŒ[†0æ0æ8�™›ˆˆˆˆˆˆ¨=hhÚiKZ½˜È´Ú0ÆB…æajábÍLIöp‰ˆˆˆˆˆˆšš5¡GC-fê>nÓaLKMÂXÀ4Õ˜1¶,ƒˆˆˆˆˆˆ¨©Ù"¤0wLK™6Æ´t@`MÓØ¦n9æŒÓ”! QkcIw#c�‹¡3� cÄØðØæ†0u[¶ûÙÒîJ†Ê&""""""¢ZÆf@²¤Õ‹±@¦¡–4ºËì>Œi©`¡¥BÌo #4²Ža ÑŸŒ…$ µfÑ OjÓfÂ{b `Œ•+0±�©ºµGæNS­†ñ ÅXØÒÐzcÇ·4ŒiAŒ¥­al `„F–›:¾±º˜ZFDDDDDDÔÚ˜ÓÝÈÐzS­_ uG2Õ:Æš0Æn[Å4w`ÐÜ!Œ¡îEºëj9S· cõ0ô˜ˆˆˆˆˆˆ¨-ih¼ C]’ …+*Ëê–ÑæÂ{ bÌé’d*„i¨ŒÈŠ}Œ2–b`CDDDDDDöÄV!„9-]ê.WZ±L,7VVCÚdcËÖ0Ö†0Bëë~ZnÍ9µÆÆ„1ªZn¬Lcûk#nŽƒXÈœ.I†–7ˆ lW÷KÓê¥îwCu`(CDDDDDD황îA*ß�…1@ígv%j?k«ë|×=††CË5û¶È4ÕÆ4WcËÐÂܱct¿ a„¾ ”Á†ˆˆˆˆˆˆÈ0C­T„|¡6„Ñ%*è·€ÑÝÏX4OÐb,䱩æ ,ÆV]’ …0º� ðgð"ÔY' AmHe(˜±ä|ˆˆˆˆˆˆˆÚ2C­bT|)Ô 6\Që,×|i¶Õ h€?Ç�1ÖµÉÐqmÕE©Éƒ{ìšd®Æ„0ºßEü,à°gÏžQ#FŒ˜+‹û«Õj7µZm«Az‰¨™”””Àßß¿¥«ADDDDÔî%€» …"ùÞ½{g¶mÛvôå—_¾ µ¡Œîgwj?�ë~¯Û2°¬‹’ÝkŽ––ÃPèÑPk¡�õºA‹±FôÇ—€tÏž=£ÇŒóšJ¥ê ju«|>‰@QQZºDDDDD ªªjïºuë6¼üòËi*Q (ÿøªÛ"Fw,ÝV2º­Zêì[w½¡ôu»B™Ò¤�€=1¦º%™š©îòºá‹îcÍ—HçKš‘‘ñ¶T*� 0€!j ÄÙ�@ LIIy½OŸ>{PÆ(¡Æh¾t» Õ} c 6ºì¦{RSw»±$è±d¦$CÛ aã-a„dùùùë¤RéTµZ͆ˆˆˆˆˆˆ¨ ¨ÕjQ�=Vfee- CýÏç¦>Ëj aеù‚5ÛZ¬5ŒÒPkÝeuÖ}Ò4O®6„ÉÈÈX) G1€!""""""jz;vüÇõë×§B?ŒÑ|×m\¡aêó¾î2K‚še/AŒ¥õ0Õ…ÉPZ¦Û%I€ÚAyGjZÂQó ysÕªUÝ8@¿áDÝ1†>ãë²4t±‹ ¤©“"sË·t�^CÉ—±1a¨�J7es¹wïÞ~•JÕ•A QÛcî1•••�ËåP(ÍP+jJb±ŽŽŽ�J¥-]"""jíý>®-ÜûTUUíussû€2ü9NŒµS^ëNumhÌ@¬˜¦´·ÉÂQÛXÍãÃjbdlªjcƒôŠ¡ß"FòÝwß�xœ! QÛTUU£ë•J%JJJ —Ë¡RY2x:Ù+•J…ššTWWC"‘@(´‹v‘�ñ>®V[¸÷‹Å½¤Ré�Ç߇~Ø¢™Öºn¸�õ 1µ�¹A@“5\±‡gËÚ“k¨o˜nËÝ�FŽ9×ÊcQPZZÚnÿ{ÒÖ) ”––¶t5ˆˆˆ¨‰ð>N_k¿÷™?~4j»'é~fôX@ç»±±c,ÑâcÈØscéũۅ©î§y,’H$ý؆¨}ª¬¬äï6N¡P ²²²¥«ADDD6Æû8ÃZó½O‡†àϱ\uX°×šŒÀ’åͦ©‚˜Æž˜¡Q‘ ÐcèÉ04žŒ^W%µZíÖÈúQ+%—Ë[º Ô ø<µ=üûn\k½6b±¸'j‡©;Þ«±™’ã¹€¡Y“l™MØŒ¸) µ€-NÊP†ž8퓪V«í¡%µþ¥}àóLDDÔöðï»q¶¼6J¥r¹555P*•Ú±x„B!D"$ !ÙdÈYoÔo<¡¡ e”uö ñéÚ¢ «µtcLCÓRÄלu-Þ ‰ˆˆˆˆˆˆÈž(•JTTTm]£R©´ƒWTTÀÑÑ2™¬Q�ŒZ­ÖtKjè³½î ½ê:ËÔu¶ÓÕ¢�‹1öÄX«nÈR·�C"""""""UUU(++³h¹\¹\8995¶ u?³×m c—�еZ[súzëOf¨¿Q»UQQaq£«¬¬ �©‚©Ïìuí5´_ÝŸí^S´ˆ1÷4vîoSö˜ÙfOÐÕ«W±wï^\¹r%%%pwwGÿþý1uêTôíÛ×V‡!""""""²¹ªªªÆ†(jáPhmËSŸÓu» Õmcª•Œ9-hÌmecóÖ8-Ý5©¡±`4ÌIÀ:†ÍB¥R‰µk×bß¾}zËïÞ½‹£G�âèÑ£˜:u*–.]j«ŒˆˆˆˆˆˆˆlF©T6ª%L]eee�H$Ö~6§aEÝí …#B*3¶å`½uX;7¸©i¬ëvWjMãèèˆÙ³gcìØ±èØ±#òóóqäÈlß¾{÷î…Z­Æ_ÿúW[Ö®íØ±7n¬\¹QQQMrœ)S¦@*•âÛo¿EEE{ì1ÀîÝ»!•Jm~¼æ8F[7nÜ8«öûõ×_m\Ûª¬¬Äwß}‡ãÇ�#//R©���˜9s& €iÓ¦ÁÉÉ Û·oo±:>óÌ3HMMx{{ÃßßãÇ�Gttt“¿²²³fÍPû;B*•ÚÅu!"Û˜?>nܸ v& ___ <O=õ¼½½›ôØ»víÂŽ;P^^މ'âùçŸopŸ˜˜Èd2ìß¿˜8q" ..Ž߉ÚÝ{$puuEPPæÎ�‹þýû·`Íš—-ZÂ*ÓÕÕÕÚÝ5Ý�T:�ë¶€1´Üœríj|™Ö6F `¸eKC!‹ÍƇ¹zõª6„yï½÷0wî\têÔ b±�;wÆÜ¹sñÞ{ïÁÑÑ?üð®]»ÖØC¶ ÇŽÓþ|òäÉf9¦““GGÇF—÷öÛocܸqz¿”m} jT*Þ|óMlݺ%%%èÛ·/œ��qéÒ%»œVqôèÑ3f <<têÔ >>>8tè`Þ¼y‰D8uê–-[†ß~û °téRÀš5k0hР�SWLL µ&Ì©+µM�¸pá‚¶u³©{#Àô=Œ5÷UÍ­¦¦Æäú€€\»v Ë–-Ãþó¼úê«HMMm°%bCe7‚%Ù€]uEª«¥º&™¹1åYÚeÉb%%%€Ž;šÜÎÇÇP\\lë*Ø�ß~û 2™ aaa6lÃÝ“¶oߎ«W¯¢ÿþÈÏÏÇ|€„„‹·1eÍš5øê«¯ P(…ÊÊJÈd2888 11�;wÆèÑ£¡R©ðí·ßbÛ¶mj»nhŒ1óæÍ3yŒM›6A,cðàÁ¸yó&–/_Ž+W®èmwàÀÄÇÇ£K—.(..Æ7ß|ƒÓ§OòòòðÆo //“'Oƈ#àääĦ•èÙ³'‘œœŒÅ‹ãË/¿Ä�;wêmWZZŠøøxtêÔ EEEغu+Μ9£]ÿÙgŸaóæÍ‰D4hRSS±bÅ \½z´ï'Íã«W¯¢¼¼ÕÕÕ8wîàÊ•+P«Õ:t¨Ùõ×”›‘‘¡]ööÛocß¾}FTTÎ�;‡ÿûßP«Õ9r¤v»áÇãñÇ888àôéÓèܹ3FŽ µZ�Ý»w›=þK~~>Þzë-äååᡇÂðáÃáääƨÓ4G׌óÞ{ïaݺu‹ÅˆŠŠBrr2^|ñE\¼xQo¿ýû÷cãÆ��J¥ Ell¬vݘ1c°xñbÐkÅ7lØ0,Y²]ºt1û8¦Ø¢ "j�ÒÓÓµáˆfŒS÷F ÝÃXs_ÕÜê>ôöÛo£sçÎHOODze˰lÙ2¤¦¦Â××+W®lTÙf2öÙ¾±™�¹Ë›TkhcWÜÜÜPXXˆüü|tîÜÙèvùùùÚíÛ²ŒŒ ¤¥¥!::b±C‡…P(ÄÉ“'ñì³Ïj»lh¬_¿b±GŽÁ;#~øAû¡Ð’m )((ÀþýûÑ¥Klذ¡^Mè999˜?>Ξ=‹E‹aÔ¨Qˆ‰‰ÁÑ£G1þ|›ûì3ˆÅb8p|ð¾ýöÛzƒ{mÚ´ ‰Û¶mæM›péÒ%DFF"## …ýû÷ÇâÅ‹!·Ý·b[¬·C‡xóÍ7±a䦦b×®]ؽ{7ÆŒƒ¥K—j›oµ¯gGGGlݺ[·nÅåË—1tèPík) kÖ¬�X,F\\>úè#ìÞ½ýúõðaÃðõ×_kƒ˜óçÏkÿËröìYLž<—.]½Y ‘Éd�Éd(//‡B¡À�;wpöìY 8ÿú׿Ô6)=qâ²³³1räHDGGãØ±c˜;w.‚‚‚R©[¶lÑ–›““ƒ'žxçÎ�ÓkýeŒæ}Я_?,Z´¨M¿ˆÚ:•J…””ìÝ»b±D^^öîÝ‹   |ýõ׋Ũ·oÞyçlݺze¬[·NoÙ<€C‡aÉ’% Pû7åÒ¥Kصk–,Y‚¾}ûZ|ClQµ>3fÌÐ{}úh·íÒ¥‹ö—Ôˆ# ^+s¶1æÖ­[P©T2dˆÁq:’““ñý÷ßãÚµk())�Z­Ö¶p2WZZT*¬­gLL >øàƒz{¹»»k»¬h®ƒ¦…THH\]]qâÄ <òÈ#:t(fÏžm4"û�O?ýIII8räNž<©}?¼òÊ+OOOí �š1¥4S¦§§C­VcРAÚ×Ò˜1cðÑGi_Kèܹ3®_¿•J…óçÏc̘1ÈÎÎÆÅ‹QSSƒK—.¡S§N V)—ËQYY©h\Ó2æüùó˜0a‚Þ¶¥¥¥&˺qãöîÝ‹k×®¡´´Ô¢÷U�=àââ‚S§Ná±ÇÃ�!C0sæL¾ˆZ™ñãÇk …xá…Э[7ÄÇÇC¥R!22Rû{î�À;ï¼£½©×ptt´:ìHMM5û8MYµ>ÇG||<€Ú.æO=õ4xodê¦1÷UöF,ë}®’H$Í=¢9³$i¶iê®H6íîÔþýhÓ`fêÔ©8zô(¶oߎAƒ°÷úõëØ¹s'¦N�j‹ÃÚ-ÝÙ’Ž?®·îäÉ“zAŒ®ÊÊJ09S�9ÛèÒL¿¦V×äææâÅ_„¯¯/þþ÷¿#  ^nŽªª*úÍíª««!ê�¢«îÀÅîîîØ¸q#¾ûî;íøãÇ�cÍš5èÙ³§Åõ²göܲ¥±ŒÁƒãÁÄ+¯¼¢m½RWÝ×€¹¯¥¨¨(|ÿý÷HJJ­[·°`ÁäççãÂ… 8uênß¾�‡~Ø¢z_¼xjµÝ»wm—¸ˆˆ<ûì³zÛšú�Gnn.^zé%øúúâoû0{öl³ëáîîŽ/¾ø{öìÁ©S§püøqœ8qü1BCC-:'"j9„��üýý«ýï®æï¸îï9¹\nðofc¦�¶ä8MYµ>/¼ð–/_Ž'Ÿ|YYY8wîÜདD"1zcí}Us …&[®Ü¿Ë–-Ã�;w´ÿðËÈÈÀ+¯¼‚Õ«WÃÓÓÓdÙVjÒFö¤5N_Ý¢úöí‹©S§B.—ãÿø¾ùædgg£¦¦YYYزe ^zé%Èår¸¹¹¡K—.-]å&“žžŽÛ·o#<<¿þú«ökãÆ�j§—Ô•••¥m  ™ñ 00ÐâmŒýÂð÷÷P;pVÝi3¯^½ ¹\ŽÈÈH 0@ÛuDwªaÍÀ4Ç7D3‚zbb¢ögΜ�Z­¶ø¿ø:tÀ“O>‰-[¶`Ö¬YP©Tì‡ÞJ( ܸq£Þ2&ÿ(éÒüA;sæŒöµtöìY¨Õj½&ªšnyß|ó Äb1ÂÃÃøê«¯ V«-ê–”���õë×C$iû$@("55ð÷÷×~iZui‚$Ý÷Çõë×!—Ë1dÈDDDh»b6Ô/X7,íС–,Y‚M›6aÆŒP«ÕÚîVDÔ:ü¿ÿ÷ÿðÆo`É’%z¿¿4aï©S§´¿çâãã¡V«µ]�LÑü]nè?È–ÇØ=DcëJD­—H$Âüùó6l€J¥2ëÞÈØ=Œµ÷UÍ­¡n_{í5m³zõj¬^½]»vEFF^{íµF•Mm£EL³§ešQú÷î݋͛7cóæÍúàáá�¢¢"üýïÇûï¿oö‡³ÖDÓFó¡P#00~~~ÈÉÉAjjª^@ñä“O¢_¿~HLL„@ 0Ø*ÅÔ6îîîÈÍÍŦM›0sæL½ýzôè�°°0\¾|Ï<ó  „[·naþüùÚÁ•8€ššm«Ýþœš›ÇÏ?ÿQQQ˜3gN½¦w���:t(Μ9ƒ¥K—¢G�ˆ��‡D"±h ­ôôt¼ýöÛ0`d2™¶5‘æF�ìÛ¹sçðÆo C‡èÒ¥ *++‘šš  vÆ,sbÈ�!8{ö,ž}öYôèÑ �H$˜3gŽv»¾}ûÂÝÝ7nÜ@DD¤R)¤R)‚ƒƒ‘šš ©TÚ`ÈO?ýb±yyyHNN†B¡ÀâÅ‹µ¯ù:`âĉؿ?žþyÄÄÄ °°xõÕWÔ¾?>Œ/¾ø‘‘‘˜5k–v0θ¸8( íûÊÔ_777äååaóæÍˆŠŠÂ‡~ˆˆˆÈd2mx[7|%¢Ö)((Æ CBB,X€ÐÐP?~X´hQƒû‡„„àçŸÆG}„‘#Gjg:´ö8ÈÉÉÁ_|QoPþÆÖ•ˆZ·Ñ£GcçÎ�HKKÃÁƒ1qâD“÷FéééXµj•Á{k﫚¹Ë$‰ÉÙ�4ŸãV®\©ý,»zõj¼öÚkÚû^Se71»Ÿ©!lc‘H„gŸ}ü1bccѱcGH$x{{#&&}ô6n܈îÝ»ãÎ�;øûßÿŽû÷ï·tµmN3}¤¡�t5áŒn«WWWôêÕ gÏžE§N�ðÖ[oÕëÚÕÐ6ùË_àåå…Ÿ~ú iiiõŽûúë¯c„ (--Å�?þˆ¢¢"TWW#<<sæÌ�X,ÆáÇѣGŒ3Fo߇~ãÆ�CNN~þùg£}Â_{í5L™28sæ z÷î�5kÖh[䘣¦¦žžž8r䈶Û3Ïúè#½–tB¡PûºÐLk üù¾8p`ƒƒÜjƵºÿ>"##ñÉ'Ÿà‘GÑÛféÒ¥X°`D"víÚ…ßÿNNNÚÖ+S¦LAll,rss‡Û·o#,, ³fÍÒ¾¯‚ƒƒ1jÔ(“uY²d <==qàÀܺu žžž8zô(víÚ¡Pˆ¥K—ê�'µn+W®Ä#�<‚ŠŠ ÄÇÇ£_¿~ظq#ºuëÖà¾Ó§OÇ„ ����}ûöü»oÉqž}öYtèÐ{öìAJJŠMëJD­›@ À««¾u IDATÂ… [¶lAee¥É{#…BaòÆšûªæÖÐðqqqX»v­^ƒOOO¬]»qqq�*›lߚĒy½ m_w ^a�í,3ôX÷»æK„ÚV?ºß]ïÞ½›hh[+**ÂK/½„[·n!$$Ÿþy“Ó^M™2^^^õZYº µ>-1kRQQ‘¶Y]wïÞµº\j]4-vˆˆˆ¨mà}œi–Þû”––B.—Û´ŽŽŽÚqrÌåàà €€¢Îw•ΗÚÀwyŒ?–AgYÝ îö i—ƒõZÙÅà>x÷Ýw±|ùrøøø´tuˆZD[¬—ˆˆˆˆ¨µ’Éd6bd2™M˃å9@«è²Ôš‚˜VÉÃÃk×®méji‰D"¸¸¸ØlÐ`Ôk&{#Æœ¤Ë.ZºµvNNN6iÅ"“ÉàäädƒY­Uå lCÍâÇ´É6DDDDDDd;2™ B¡Ðê–1...-´: bˆˆˆˆˆˆˆÚ1'''H$TTT˜=nŒ££#d2»#Y¡%‚»iDDDDDDDDµcƸººjñ­©©�R©„JU;ù�P(„H$‚D"�££c[ `š}�_¶ˆ!¢vE,C¡P´t5¨‰‰ÅüóFDDÔÖð>Î8[ÞûˆD¢¦˜ýˆtØÓ`½DDMÎÑѱ¥«@Í€Ï3QÛÿïÆñÚ´. bˆ¨]‘J¥l-ÑÆ‰ÅbH¥Ò–®Ùïã ã½Oëà †ˆÚWWWþo£Äb1\]][ºDDDÔDx§�÷>­Sksà_"²˜H$‚‡‡*++!—ËÙ׸ ‹Åptt䃈ˆˆÚ8ÞÇÕâ½Oó°kK­=ˆ!"²šT*mϼˆˆˆˆZ-ÞÇQkÖ»&±• QÛÐæ>ã·Å †ˆˆˆˆˆˆˆÈ.1ˆ!"""""""j& bˆˆˆˆˆˆˆˆš ƒ"""""""¢fÒ.gM*((€R©léjQ)))�££cKWƒˆˆˆˆˆL ÛgÛ�vĸ¹¹A¥Rµt5ˆ¨ yxx´t¨µZÝÒU ""¢vN hsð´jíõùh—AŒH$j·O8Q{ ‰ ‰ZºDDDDDdB{ý\Î †ˆÚ1DDDDDö¯½~.o—AŒ@ h·}шھljˆˆˆˆÈ^ñ“ Q3aCDDDDDDDÔLÄ51DDDDDDDDÍ„A Q3aCDDDDDDDÔLÚåôÕöL­VC©TB¥R„B!D"Q»�_�ˆˆˆˆˆˆ¨-ac'”J%är9î•Uà÷J «Uð+á/ÂÏÅR©”� Q+Æ ¦…)•J”••áÚ½*ÄW:#[í©¿�@9Ðó^Ƹ”ÂßÃR©"‘¨EêKDDDDDDDÖcÓB ÊËËuo“Û'+]�\ì‚Î%•.½‹>žŽpqq�X̧�ˆˆˆˆˆˆ¨µà§øf¤V«QSSƒÒÒRœ-®V9 ¦˜º²ÕRì®�Â¥¢Ã‹é%„››""""""¢V€ŸÞ›�Z­Fuu5ò‹JpªX„K5n�7rª2HpHœ »Wȸ¸¸@"‘p""""""";Å ¦ Õ`<ÀÔ¥Èô‘”a ‹R;Ž """""""û ¦ hf@Ê,*GR©—¶`ê*ƒgjÜqæ>г¤v`ßn^® dˆˆˆˆˆˆˆìƒÒÌ€ô{q Η‰�¢öj‘zhöíYÆ™–ˆˆˆˆˆˆˆì ƒ¨?µKKW @ÓÍ´¤R©°sçNÄÇÇãöíÛðóóCxx8-Z™L¦Ýîí·ßÆéÓ§ñõ×_ÃËK?”Ú²e 222°|ùrí¶^^^Xºt©Þv«V­BNN>þøc½å)))xî¹ç°~ýztíÚÕâz=z´Þy�=ÿú׿ÌZo¨®Ç�ÇÁƒ‘ššŠŠŠ téÒ“&MÂäÉ“�–Ž÷ß¿ÞrÝí…B!:uê„   Ì›7AAAõ¶·ÆÓO?�)S¦`âĉ6)�ˆˆˆˆˆˆÆ ¦ ÊÊÊpý¾Ü¬)¨[Š-gZR(x饗 —˱`ÁtëÖ éé騼y3ž|òI|ôÑGðöþó:TTT`íÚµX±b…Uu_²d .\ˆ'N`Ô¨QÚå7nĤI“´!Œ¥õš2e –,Y¢w,ÝëÑÐúºÞ}÷]\ºt ,ÀSO=…šš¤¤¤ÀÅåÏPÎP™¦Z)i¶W(ÈÈÈÀ¯¿þŠgžy/¿ü2bbbŒîg ›6mBvv¶6(#""""""Û`c%¹\ŽøÌb­rC\[º:fÑ ì›˜«@ôý{îïGGG‹ÊØ»w/Š‹‹ñùçŸk÷íÔ© „çŸ_~ù%–-[¦Ý~òäÉ8räNŸ>�ÈÈH‹ëìíí�Y³faãÆ�6lÄb1.\¸€ääd½�ÀÒz988ÀÙÙÙèqZ¯ëÈ‘#¸xñ"6lØ ×ò&88Øê2ënïîîŽ~ýúÁÇÇk×®Å�!CôB"{2þ|ܸq£Þr‘H„C‡i[aÅÅÅA*•"&&2™ û÷ïoîª5»¦A¶ +**Â�UPIKWÅb¥j1V¹£¸¸Øâ}wíÚ…9sæÔ p°páBüúë¯(--Õ.ïØ±#žxâ ¬Y³r¹Üªú>öØc¨©©ÁO?ýµZ� 6`îܹpss³º^¶´eË,X°@/„i*Ó§O‡Z­FBB€Ú–@ëׯǜ9s0}út|øá‡¨¬¬ÔnöìY<ýôÓ˜4iæÏŸ�/¿üÒ`¹åååX¼x1¾ùæìܹÛ¶mÃÑ£G1~üx|òÉ'jgÛ¾};.\ˆ©S§bùòåÈÍÍmòs¦ÖkäÈ‘ˆ��Õ~ÅÄÄÀÉÉ ÁÁÁ¶8nJ+V¬@TTRRRZº*DDDDÔÆ±EŒ•œ��ÑåúudùôiéªXÅ÷îMÈ,Ú§¼¼………èÕ«—ÁõaaaP«ÕÈÌÌDïÞ½µË~øaüúë¯Ø²e þò—¿X\WGGG<ù䓸ä“O ‘HPVV†©S§6ª^555¨ªªªwÍ S ­×�ËåÈÊÊÒ;_c •)‘H,DÙÁÁÝ»wGff&àÓO?Eqq1Ö®] …B�wß}6lÀsÏ=‡ÒÒR¼þúëXºt)¢££QXXh0 S*•xë­·Œyóæ¨íRV·kÒæÍ›qúôi¼þúëprrÂúõëñ�ü_ýu£Ç¢¶éŸÿüg½ñ¡à«¯¾j�ÚÙ~z²’‹‹ þÏß çoÆM÷`z¶t•$RÖÀ¯0ewÑ»§Å][òòò×K¥R¸ºº¢°°Po¹@ Àßþö7<÷Üs7nºwïnqÝ£££±wï^|øá‡xã�7ô>ø[S¯}ûöaß¾}zÛ}ðÁ 3k½Fvv6ÔjµÑcë2Tæk¯½†èèè÷ÕÕ¡C£¢¢Àÿû_xzz.\ˆ7ß|Ï=÷ ¡P( WWW¸ºÖïB§V«ñé§Ÿ¢¢¢o½õ–ÑcÖÔÔ`×®]øàƒ´Ïß²eË0gÎÄÇÇcôèÑ�µo111pttD\\œÁõ•••øüóÏqâÄ ”••!""/¾ø":uê8yò$¾úê+ܺu ÎÎÎèÞ½;Þyç<ÿüó¸~ý:Ö­[‡ˆˆÀ{gݻwã³Ï>CEE…ÁýV¯^�C‡æÍ›‘H„S§N™U—˜˜<ðÀprr±cÇ T*ñØc�!&&~ø!®^½ ___¼ôÒKÚ:QûÆ ¦BBBàïï�””ü~û2¤~(ð@µƒùã€4M\•�~!Á oU †:òóó †8ÕÕÕ(//×~@ÑŒ©S§âƒ>Ðvu±Ôÿýßÿ!++ #GŽlt½}ôÑz³éjh½†æ¿ýÙÙÙèÙ³§ÉmÍ-³!………ˆŠŠBff&T*žþymK…B�ŠŠ @·nÝ�Å‹#** =ô  WV\\®_¿Žo¿ý‰ñnv999P*• Õ.srrBïÞ½‘‘‘Ñès¢¶iÕªUzÝ�¢££1vìØ÷[¾|91jÔ(8;;ã—_~Á²eËðõ×_#??¯¼ò \]]1mÚ4ÈårÀÕÕcÇŽÅõë×qöìYm葘˜OOOøùùaÆŒ÷‹��Õ1cÆŒÑ{/›ª‹PXÛ»wß¾}èÔ©ºvíŠ .`ݺuX·nÂÂÂàíí�ÔÔT¼öÚkسg�É÷µ bI*•",, !!•ÈÎÎFZÚi¤Àw¼{¶x ãP]Ÿâ;ªÌú#€Û¨.$îîîpssÕ+W N¡üûï¿C(ÂßßßàþóçÏÇâÅ‹ñÓO?Yu|‰Db°þ�­Wc¸»»ÃÓÓçÎ�k0ˆ±…êêjܺu ³fÍÒäûùçŸë�—£! ±zõj\ºt Äë¯¿ŽˆˆüûßÿÖn3`Àddd`ïÞ½xâ‰'LW¥RA©Tê=ppp°áR[rüøq½Çþþþ 1)))ˆ��ÇСCñŸÿüPUU…#GŽ ++ YYYP(ÇÓO?­÷z;v,Ö¬Yƒ3gÎà/ù 233‘™™‰iÓ¦áÎ�;F÷Ó´j9tè–,Y‚��³ê¢™µ €6Ì\¿~=¾úê+Œ=«W¯Ìš5 éééÈÈȰÙôóDDDDÔz1ˆ±©Tª€²OV®_o¹@Æ¥,]‹n!H\‰ÀÀ@4.€ÑõðÃcçÎ�xà�ô§U©Tزe ¦N�jtNGGG¼ð X¹r¥ÅÝqš²^�5}útlÛ¶ ±±±[ÙÒ÷߯� J©TB&“!!!ãÇ�7ºOxx8ÂÃÃ1cÆ ,Y²wïÞÕNåíçç‡åË—ãŸÿü'z÷î�aÆi÷S(ÚŸ;wî ¸r劶U�J¥Brr2&MšÔ§JmÀ� ŽcJzz:àÌ™3ˆŠŠÒ[WRR‚^½zÁÕÕÇŽÃ>ˆáÇcþüù …ŸŸúôéƒk×®¡¼¼\;¨ull,BBBŒîgm]4<<<´-]úöí Ú÷˜fYzzºU¤QÛÃY“š@çÎ�1fÌ<ÒÞ?‡þ§àR–ßäÇu)ËG¿;'1Ay õ ÀÈ‘#dÓ�Tg̘<ûì³HLLDaa!._¾ŒW_}¥¥¥xüñÇMî?xð` :Ô`«¹\Ž’’½/µZÝ,õjŒG}!!!Xºt)~øá¤§§#33GŽÑ~þ¬W÷«ººÚh¹šíËËËñûï¿cíڵسgþö·¿A @,cæÌ™Ø°a’’’ T*QPP �6¸´´ÄÝ»w!—ËqéÒ%899Õk=3xð`,X°«V­BVVÀÇÇW®\A^^ªªª “É0qâD|ôÑGHNNÆýû÷ñÙgŸÁÃà \»v Ï=÷œv aHHHÀ /¼ ÷¡õÀ�xùå—õ‚" wwwÀ�!C°sçN½¯ÐÐPxxx`ûöíxüñÇáåå…_ý .Äõë×Ô¶ŠQ©T8þ<àîîŽ�6¸Ÿ5u1ÄÐàÛ– ÈMDDDDm[ÄØ�Z­Fuu5îåâNùA¨Õj÷‰žjddÜÆíô+M2°¯KY>ïÝ@/w ‚ô„Z Ç�òýHϬD§±ðñ ‚T*­7ã�5¤R)>ýôSlÙ²_ýµ¶yþàÁƒ1oÞ<³Æ?xúé§qöìÙzËúé§zͶmÛàëëÛ,õ²–X,Æ{g={öàØ±cøê«¯  €É“'k·34Xoxx8Þÿ}ƒåj¶—H$@ß¾}±aý eΜ9pppÀÚµk‘ŸŸOOOÌœ9¡¡¡(++ÃñãDZaÃTTT k×®xýõ× v%š3g~ÿýw¼ùæ›X³f Æ�‡Ó§OcÉ’%ÇÊ•+ñÌ3Ï`Æ xýõסP(0hÐ ¬ZµJûº*++Cnn®vŒ(..Fnn®^àtÿþ}äææÖëæDí›J¥tïÞB¡ÉÉÉðòò28È´··7þú׿â¯ý+Ö®]‹o¾ùIIIèÓ§�¶{Ò‰'pþüy<øàƒÚ ÄÔ~š×¢î4÷æÔ…ˆˆˆˆÈR�ÿdnyy‚~Ö]&ÔYV÷K³^óXó³¨ÎÏâ:ß]ïÞ½›hnK s(•ÊÚ�‹náNÉQä)ƒ NSì%‚`×ip—uAFF~ÏÌkt #RÖ cÑm”ÞF7/WB-�#­x?rÇ ß×+Øf� ‘=+**B€…Ó³“íÌŸ?7nÜ0Ú5©î¬IÓ¦MCNN-Z„yóæáÓO?Å÷ß�nݺáÁDAAÊË˱råJ¤¥¥aÅŠù¡¡¡9r$.\¬^½Úh] �Kbb"^xá<òÈ#xùå—ï¼óöíÛ‡Ï?ÿ¼Þ€ÙDDDDí�ƒƒC€RJŠ:ßÕTu~Vëü �Ǻ_ÐY�ejËêþlŒÍBþ;ºÔj5JJJ�]|™e¿á¾úœÁíî©Îâ^ñYx•Ap‡ix ë`ô¼sÉé‡qÛ5÷\;™=ŽŒî H!ÝüáÝ3÷äÿÃÕûëÍ;>"²3Ï>û,>øàìÙ³QQQxñÅáãヸ¸8lݺþþþèÓ§Ôj5jjjàåå…_~ùåååðõõÅ‹/¾¨7¾‘fö$WWWm×¹†ö›>}:nܸ�“'Obß¾}=z4zõêe².üJDDDDÖ`‹+)•JÜξ†ä²M(UÝ´h_OÁ`ø»Œ�—coàN^ҕθӱ—Ñ@F7€éoooä”\Ä�ÊQ¦Nµèø^Â!èáþ(ºúöâØÔ&±ELû�_|“&MŠ+Zº:DDDDd[Ä�ÙîÝ»‡+¥ïC®¾gñ¾÷Õçp¿ôœË‚ÑE6CÂ"ѯ²))gq[í‚BGOT jµ>•ùè„ ÀÛ{0rJ.âtÞç0Úº«ÎâRQ*œ%ï¡cÇŽV•ADd¯Ž;=ztËV„ˆˆˆˆÈ1Vrpp@MqÀÍò F£\�Š•©H¯üþŽ“0`Àè#—£¨¨ … ‘Hàå ±XŒ[÷Ejn<Ê`]£«¦¸ºÔ´•ˆ¨5«©©ÁÑ£Gáàà€ÈÈÈ–®Q= b¬äîîŽî�#-ûTÞ!p(·º¬jÜGš|+2sö£³d":z„ÂÅÁ�åU÷kà­>ŠjÜot½Ue>߈`¿áÚ©Y‰ˆÚŠ„„”––bäÈ‘prrjéêÕÃ1b)++ ÉÉɸ_ý;žI¸äÛ¤\[Ó0]<¢W¯^ðôôlé*5ŽCDDDDÔ:pŒ²X—.]Ð¥KÜ¿?7n BNz ªÜÎ@èu«¥«àϦ«Ç@ôŠbCDDDDDDÔ’ÄØˆ§§'"##QY†””0¤¥_n±@F­”%]áP4�;†"4*” ‘`ccR©aaaèÑ£RRúãVúÈÝÏnˆjšôØj¥‚ÂÞp© ÿÎA™LÖ¤Ç$"""""""ó Þ„,¡V«!—Ë¡*/A¨·+FEMD¨óB¸äÎòà®v¶ý1• ? .YóÞy>†GE£§‹êÂlTTTÀVãáØ£õë×7jÿ’’|÷Ýwرc222ê=ÎÌÌDM�m4¥R‰M›6Y½cÏÙ{DDDDDDí[ÄØˆR©DMM Ê ráz>þ¿‡¸¦ …�ûB>�ãQT�;wî I�ži ÐoÓ#¨:vìAê%øÛ÷‚4@A÷Á(22ÿ`H¥R¶Ÿ¹uKJJB¯^½Ð·o_¨T*üöÛoz�wìØ�ØØXøùùµtUíVee%víÚ…éÓ§³QÄ4’R©DYYpó"\®Ÿ@¯ÛçõÖwȾ†Ù×PÜ1.¡Qè8(ee=‘œ<Èê@FUæqi(œkÂd0€Ñèxë:Þ:§È8::B$5úÜÛ‚¢¢"ôë×  ë=ž3gNKVÏ" èÝ»7<<<šõ¸NNN=z4¤Ri‹Öƒˆˆˆˆˆ¨5`Ó¥¥¥Pü~>ç÷× @êr/Hƒ{Aª.@nÄD 4VÈ ÎCéz£Á©¯53 ù»@ç�áêê §ËGá~, _ÈäBiï‘õ‹Ï¹­Q«Õ …F·&ùùùnöã ¶x=ˆˆˆˆˆˆZ1V*--…ìà—ðýý¸Eû9U!0~;ª.þ¬ dJJB����¼¬Ë�K¯Càž©ØW­”@]é© `‚A¢�Ã%égøþÑýÉ>éIðIOBvÖx”Å>nqSPP€øøx”——ÃÉÉ £F�BÇŽÿýïÑ£G$''#22¡¡¡ÈÉÉA||>ؽ{7<==áïï¯÷ø±Ç÷ß~‹‰'ÂÍÍ ………8yò$*++!•J1nÜ88;;#33‰‰‰�ËåðôôDttt½.:¹¹¹ˆ��Guu5ÜÝÝõÆ�1´¿T*EBBÒÓÓ! Ñ¥KŒ5J¯Ìêêjüøã�4hŠŠŠ�››‹={ö 00ãÇ�7yM7oÞŒîÝ»#''jµ#FŒ@×®]�ÖG&“™<‡õë×ãÉ'ŸÄÅ‹ëÕƒˆˆˆˆˆˆþÄ ÆJ•••ð¿yÚêýu™Âà¡ðè?ŽSpïÞäçç£FYµP <áææ†nºÕ0§÷ZÀÔåq#·‡=bQS]]�¸¸8Lš4 ^^^¸}û6<ˆÙ³gC$¡´´nnnxüñÇ! Q]]�_~ù“'OF‡�‘‘�ôôt‹ËU(0`<<7†êdôêª[M+%Í�iFFòóóÈÎÎFZZšÑnVÔ¶ìØ±ýû÷Gß¾}ÔŽm”��€{÷îÁÙÙ!!!>|8’’’pæÌµc>õë×ÑÑÑze©Õj$%%áúõ먬¬D§N� 7779rW¯^$''ÃËËKol)cëwìØ�ððpíxSu)•J$$$ %% …ÁÁÁ5j”¶eš±óùùçŸ!‘H0nÜ8mYIIIÈÉÉÁäÉ“-¾ ÕcÇŽÆíÛ·q÷î]xxx 66999¸zõ*JKKáïï�±cÇj§ž×e¬>°qãFŒ?^;Àw~~>vïÞ�§Ÿ~Z»ÿ­[·�””„ŠŠ øúú"&&FÛÅÔTÙ¦ÎËØµ0Užîó�[·n¡¬¬ ...:t(zõê ¶;�X,Ö{~Î�;‡¼¼}�’’‚‚‚í ò¾¾¾f­¯ËÐsuñâE\½zðóóCtt4œ��MÖÍØµ©[~C×Zó^½sç ê]K""j›ÄØ�T*EXX*CB´�LxÎt*Ï…»²²Yê JpÙ³'nv€®¡½1< ÀàM¶µüýýñØc�\÷ä“OÖ[Ö­[7íðòòrܽ[Û}K&“aþüùV•»dÉíÏ‘‘‘ˆŒŒÔ>öôô¬7u²©²yä“�gΜ©ý9((HèòööÆÃ?\o¹îùé^s÷Ÿª}lê¼�Þ€ÂæÔÇÔ9è>Guë1bĽm ¤÷¸ÿþèß¿¿Ár©m“ËåØ¿?F�…ÐÐP”••i[¸ 4555&»Dœ>}ééé˜4iÄb1Nž<‰ï¿ÿóæÍCll,PYY‰x Þ¾ ­7æ·ß~CUUfΜ •J…C‡áÔ©SˆŽŽ6y>!!!8vì˜^Yiii ³ê:˜ªPv'$$`æÌ™puuÅñãǵ!Ó¤I“û÷ïG||<ÆŽköóbŽââbäççcúôépqqABB¾ûî;,X°J¥ÒdÙ¦ÎËе0·®"‘îîîÚ×JJJ :___xzz"44‡†Z­ÖvMMMÅÀ�Ü·!æìoêšêFÜÐó¯aìõcê½£;&™±ý+++qýúu̘1îîîHHHÀ�°hÑ"ˆD"³ëgîµ=vì¦OŸ777œ?{öìÁ¢E‹´ÿ hh½)IIIHNNƃ>™L†ììlH¥ÒëfÎï(s®µæ½jìZQÛÄ®IM@È Ÿü(²£àxØ£8üÿÙ»óø¨ªûñÿ¯{gϾ²B"«HALA "HÕ"‚T”º E\*~ªÖå×íSûý´ÔŸýj]>¥¢P¤®­Šõç‚,Ù ‚²o!!dßf¿÷þþ˜ä6 d’|?�ydæÞ¹çžsfÉÌ{ÎyŸž£Ú�Ø÷L|ª�-‰CøÇ�›Ñ&ÍæÊk§0`À€°aÎEmm­ù¡ø›o¾1Wøé~¿Ÿ‚‚,D7QSSƒ¦iôéÓ‡ÃAbbb‹¿b7¥iÛ·oçÊ+¯$11‘ØØX®¾újü~?‡î�úúý~vïÞ͸q㈈ˆ **Šœœ<Øj{úôéC àäÉ“¸ÝnŠ‹‹ÉÊÊ:ë~h­ðŸ‰={ö$""œnuÙe—G\\ƒ ¢  à´òÛó¸@hêéðáÃIKK#&&Æe²ÿþ3–Ý–vµ§®—\r‰ù\9r$111¡¼[º®›ýQSSCYYYYY­Û­¦>kê\ú©¡p¼v\.¹¹¹¤¤¤àr¹9r$n·ÛœF{6õkKß^uÕU¤¥¥Åرc‰ˆˆh4¥µµý-Ñu�-[¶0aÂs¤gÿþýÍ‘;í}ÜÛÒ×õ¯ÕæúR!Ä…KFÄt †#dÊËsøxÏzÝΈâ�ÄÝa9G•5‚�ñs"ý2 æÊ>}Î: oG:rä{öìB#%š§ýû÷“™™)¿ ÑM$$$ЫW/–.]JVVƒ6§»´¦²²]×%Å´Ùl¤¤¤˜¹œÂ­¢¢Ã0xç�wÌQº®›ù’ÎÔ«ÕJVVGŽ!%%…ÇÓ»woìvûY÷Ckõ¨×0±yýŠg�@ÀÜ–��ÐèvÃíçú¸@hdbýŠmõ�––FYY h±ì¶¶ë\ëêñxØ»w/ø|>*++Í , ÙÙÙ:tˆôôtþýÚ9›ú�kß(ŠrÆÏ<­í¯çóù€ÓWlOÝêŠ÷)!„݃LMêdiiiLœ8‘Äknã“Qw±œMýÚÒ7n·ÛL¬]¯aß´¶ÿLbccͶŸKÝàÌ}ÓïSB!º Ät‘´´4sé믮¸‹öûá—¾nn ê–†Ò !DW ƒx½ÞF—¦¿:{½^öìÙc&X=qâ6›ÍÌmʼn'¨®®>m˜¾ÝngðàÁ¬ZµŠ¢¢"Ün7yyy¸\.ó t8¸\.ªªªPU•#Fðå—_rìØ1t]§¦¦Æü×Z{, YYY¬Y³†ôôtsäÀÙöCkõh¯Öê“––ÆîÝ»©®®¦²²’•+W¢išy|uu5_}õ'NœÀív³nÝ: à ;;ûŒe·¥]Mû¢µºÖ‹ˆˆÀï÷³k×.¼^¯™{¥á*AŠ¢pÑEñÅ_зo_sÄB[Žmªáó¦-ÇŸ©Ïš–w¶�Ó>;Û×Ι^‡Í9›úµ¥o¬V+EEEäççãõzÙ´i~¿ßì›Öö7컦œN'ÙÙÙ¬^½šòòr3wK hSÝZë›ÎzŸBÑýÈ0Š.ONNÕƒsøðHöÜCtÕ)½e†A­#šüø,âÓ2xÑEí^‚Z!:Ã×_}Ú¯ÔwÞyg£Û>Ÿ�°~ýzü~?qqq\{íµæàpäÈ–.]J¯^½˜2eJ£ãÇ�Ï—_~É¿þõ/t]'##ƒn¸!¬í>|8+W®¤¬¬Œë®»ŽË.» ‹ÅB^^ÕÕÕDDD0bÄ’““[m„¦'}ôÑG\}õÕíê‡3Õ£½Z«Ï˜1cX±bK—.%66–þýû7ÊÇ‘œœLÏž=Y»v-•••¤¥¥1}útTUmµìÖÚÕ´/Æ�×jŸCèí˜1cظq#6l 33ó´ö 4=éßÿþw£Õ}ÚzlCMŸ7­¦>k®¼³yü›{þœÍk§µ×asÚZ¿¶ô­Ýn§ÿþ¬ZµŠÚÚZRSS¹ñÆÍǸµýMû®©‰'²fÍÞ}÷]4M£G�$%%µ©nmé›ÎxŸBÑý(­ß%ìå)­\o¸Mm°­é¥~ýíúë–&×­MþF—””lln>ðùÀãñP]]Muu5ú%'99Y¦ q***ä×Fq^ª¨¨`éÒ¥Ü{ï½æˆ!DËÞ|óM†Úb¸Öö !„8ÿÙíö Ѐ`“¿ 7¹n4¸NƒÛ /4ØOƒmF3Ûš^oIØ‚òíþŸŸÏ‡¦Ñ‚A~?`µZ±Ûí(ŠŠÃéÄáp`±X°ÛíX,–®n‚B4Ò4ø"Á!„BtEQ}‘ Œè*ˆéB†a¸Ýn¶oÝBZr~Ÿ‡Ý�bèÔ�ŠT ü€P PTðù|XíNŠ«= »t88ySBt¹†t Ã0/M÷ !„Bt¤úïFõ³ êo†!ß›D—�@LÐu�ÇéS§¨,+Åú±[môJN œ𦅾¨4Æ„Þ8êKRp:è¤Æ8(9ú åUnœqÉdggÕ5 B|§µ€Ñ4Íõ§ëzÖP!„ß%ªª¢ª*6› ‹ÅÒ( Sÿ¹E2¢3I ¦†AMM Ç�£¶²‚—«b€ÕŠnèXTCÓ¨(/Åã®Äb±¢é,V g$Š¢bU­Ølv¬ ‹ŠEQPTÀ„è ­ŠëW‘–=ˆÌÌL¬Vy˜…�£áˆ—úK0Äï÷£ª*.— ›Í†ªªò�G!„Î0 t]'àñxðù|Øív¬Vëiùl":‹|Cï$n·›oö|ƒ]UQpÕ�z øýÔÖTqòÄA† ËAU@WT‹•í[ד�”ŒÃéÄj³as8°ÚìX­6¬6;‹ »ÕNLDN'K(�cA%5)½¢€¼Ã‡È=†ˆˆˆ®î!Ä®i¦>ß@ll¬……BÑéEÁb±`±Xp:�ƒAª«« ƒ8TU5ï'ÁÑYäSqÓ4�ãÇ�STX@ldš$¨q×TSpì[ � ¸¼†‹^†ÕbÅ@A!!>¿Ï øT1 IIØ� `Ó!¨ƒUWP-:_€²Šjü/)ÉôLN‹Šª(¨d%E°kÛfû111]ÝBˆ Tà LýÔ#�ÇCDD„‚…BqÞ°Z­ÄÇÇãv»q»Ý¸\.sê’cDgQ»º2·ÛÍ®]»z<ÄFE ©¬(cÇú�YóÉR¾Ù¹™Ã'JØs¤‚Ñ9—c±(XT«EÅfµ2}ælþ½c–¨TzöLJï!$ôì‡3²'å•.$ éø5 ÃbeÏ�clÙ¾]×Q ±SQH‰¶±gçÜnwWw‰âÔ4£i�‡¨¨( Â!„â¼ATT�MÓÐu]�FFÄt�’’¾Ú¾ƒÌ^éƒA¼7;7Á‘»‚ŠJ•×àÈ©·ßü#TUCBCúUUťؘ4ùœN'NÄår¡d¿n·›’’ q»Ý”––RQp’@@cý¶o7jŠª `€¡�cãСC <¸Ý^]×yë­·X¿~=G�%%%…aÆqç�wvÉ—®íÛ·óØc�‘››ËÓO?ÝéçB„Ôbü~?.— §ÓÙÕUB!„h‘ÓéDÓ4|>Ÿ¹ò¬Œ†�A1àäÉ“?NVïÞ‚~NcÝgoRUY�f¨ÔúáÐIŽˆH.>ŒÐÔD%´JR]~Å¢0.w�̘ñ¹¹dff¡¬ßQQQDEEѧO�‡f×®]œ8–ÏžCÅ\Ò/@Q00ˆÔ*9uê={ö<綃A}ôQ|>?þñ�éÝ»7GŽañâÅÜ{ï½üéO"))©½]xVV®\ÉÀ�Ù´i~¿»ÝÞ©ç⻬þ£ú_‘‚Á ‘‘‘]Y-!„Bˆ6‰ŒŒÄçó QU]×QUU¦(‰%S“¬°°�ÂüÄÅÆ 8øíW|òÎË”–á÷û ‚Ôº}+rݯcæôë±Z-¨Jhõ#‹EAUÕÐjH—ÃÎÏœ¿½þÕÕÕ-ž×f³Ñ¿¦OŸÎ•'p´ðnUQQÔPò)›Š‹Nš_”ÎÅûï¿Oee%Ï=÷—_~9©©©|ÿûßçùçŸ'::šW_}õœË>Á`�uëÖñÀ`µZÙºuk§ž_ˆï²¦Ãv5MÃï÷ÝE5B!„8{ÑÑÑøý~4Mk´]¦(‰Ž"#b¨¬¬Œý{÷’™Ñ¿ßÇ×Û×òåçï•”þ£™6ú ÒÓÓIp†ôbFh*‘a Ý6 UÑÉè�Á®ÿÌñã38pà#³Š¢0tèPÒÓÓùÿ–À„Ë…v Vo %%%¤¤¤œSßyçî¹çG£ív»�;§Ÿ~šyóæͼyó˜/š¦ j`±1áGó¸uÖm¤§§SZZJzr"UÅÒ0£XPU«ZAÉbQ°Z,ÄÅÆ0 O{÷îmSEQ’{öDUAU@”РÞúÛ¢3NsjIQQqqqÍîw¹\DGGSZZjn{ä‘G2dIIIÜwß}ÄÅűjÕ*Ün7ü1÷ß?ñññôèу;/¿üÒ<6&&†Gy„�ÇÍ7ßLYY™èñz½lذ�qãÆpÙe— Ù¾}{£z]sÍ5L™2…ììlGXÎ}ýõ×Ó§ORSS¹å–[HIIáÛo¿=ë>¢»j¸ª@ýEÓ4ÉÑ$„BˆnÉn·£iZ£Ï6 Ó“DÇ�©IaPRR‚­.¡S0àÝ×þHUe¡Xª‚Åfçê™2mÚ4E¡¬¬ Ý[ƒ‰EU1Bó�B…: *(Ša†b (0ë¶YÜõ“XöÞ¤¦¦ž±Nš¦Q^^Fd„:ÀP0tƒ=»¾Âçó�u;8uêQQQ§í÷ûýÔÖÖ6ª[ÃiTŠ¢0hÐ òóóÉÏÏG×u~úÓŸš÷ ƒ§-±Ýðø””œN'�€õë×ãt:éÕ«^¯€Áƒ“——ǨQ£Ìã Ô¨Ìpœ»²²’/¾ø‚¯¿þššš ΩO…èî~X‘a¼B!„è®êõ6ül#ÉzEG‘@L;éºNiI Iñ ‚ ŽâØ‘C5 E M ºâ†¹\ýõ(Š‚a”•–’Êc(†Žn„‚>Ÿ—ȈˆK§ºŽ¢ªDº<|ÿ=,ÿðnŸýc3ŸIs|>VÍ‹¢ÚQtE1°X,X­–srKLL »ví¢oß¾§íÿöÛoQU•^½zµX†ÅbÁétš+ª¼üòËÄÄÄ´¹ ß W¯^MEES¦L9í~óçÏÇb±4[F{ÏíõzyðÁ;v,³gÏ&99™ùóçË0Fñ�VÿÁE>°!„¢;ªÿ®¦ëz‹ß#„ùé²�ÊËËñÔºÍî'ÿx ¯Ï‡ÏÄç’rqSo˜ŽÕŠyUTTP|2‹ ´¨ŠŠ‚n”——òëÇç‚jÝÔ$UQB+(© V«•ËFŽäŸ_LAAÁ‡ÉUUUc×QQBS’ê;Á †×륶¶öœ†ÙM�:•·Þzë´Ñ#º®³dÉn¸á3‘oYY}ôQ£ûíÝ»—ÌÌLzöìIDD6l8ë:ÔÔÔ°eË^zé%V¬Xa^Þ{ï=TUeçÎ�-ÛÞsïÛ·�ÊÊJî¹çúôéCDD¤¸¸øœÊ¢» ÷ÐÝÍ›73räHž|òÉÓöÍž=›>ø ÅÛ"]×Y°`W]u7Þx#‡âÿ÷­÷]è!„¢£Ét$ÑY$ÓN�‡¾YYf–횊lVÝÐ hÓgþ؜ңë: п.o()/(‚Ö|þ!5µnÖ­ûUµ ÔcÔP0ƪ*86~ÿÛ_ñÜÿ@eee³u ìýöâ"#PÕPn½¡5�êåååç4‚cÆŒDEEñÀ°qãFJKKÙ¹s'O<ñÕÕÕÌš5˼¯Ãá`ïÞ½ìØ±ƒªª*–,Y‚ÛífܸqX­VfΜÉÂ… Ù¶mš¦Q\\̾}ûÚT�µk×’˜˜Hÿþým���eèСäååµxl{ÏOmm-Ë—/§ªªŠ5kÖ¡�ßeáúÐòÉ'Ÿ0dÈÖ­[‡ßïK™áòòË/óÔSOuê9?øà¶nÝÊ[o½ÅÂ… éÝ»7+V¬`Ïž=�Z!„âB'ÑYdjR;øý~N—Ý]Ójìv :®è\Ô PPUU… ‹¢¢+uS’tƒò²6®ý‚`0ÈÿùÃ&NÈ åŠ©Ïc芊U�´´TTo%ÇŽ#&&¦QNÃ08rä—dĆ"0 ¨(ІnԺݸ}çþÅÆårñç?ÿ™%K–ðúë¯sâÄ 2229r$·ß~{£ek###ÉÍÍåù矧´´”Aƒñì³Ïš£ƒn½õVìv;/¾ø"§N�">>ž™3gž\iΪU«ÌÕ’š=z4o½õ=ôP‹Ç·çÜÜsÏ=,^¼˜E‹qÙe—qÅW´zœ¢u�@€U«Vñâ‹/òÀ°aÆ_ëßÇŽcРA$%%™ÛÞyç�.¬‘Bâóùðx<ø|>�€™ì6œS•CéTl6‡—ËeŽÀ¢»’@L;øý~¢£¢Pëõª UÕüUUÉp™¹”«a“™ž‚¡ë¨uIy�+?~�ׇn(¨†Ÿ�¿XË”Iã0 PPt̤»v«…ÿzä§Ìyð~þöæ;¤¤¤˜u:zô(qF%6«C70CÓ1MÓÉ[½@#11ñœç>ÚívæÌ™Ãœ9sZ½ïˆ#xú駛ݧ( 7Ýt7ÝtS³û_zé¥Ó¶-_¾€?üá-žóÆoäÆol±Œöž`æÌ™Ìœ9³Å:!Î͆ ˆ��eРAŒ;¶Ñõgkýúõ¼òÊ+:tˆ¤¤$&NœÈ<ÀO<�Ëåâ¿ø…yßÅ‹³sçNž}öÙ�[²d ¯¾ú*+V¬`úôé<þøã^zé%>ÿüs|>¹¹¹ÌŸ?ß|ÿŸ={6ãÇ�gÆ ìß¿ŸÞ½[`  IDAT{óÄO°sçNÞÿ} 9r$O?ý4ñññ�Úð»ßýŽüã|üñÇdgg³lÙ2fϞ͌3øáØlÛ[«SKmB!ÚÂãñPUUe.d�G“4 Æ´'0S¿2£¦…R,TVVât:‰‰‰9cÎL!Îgˆi‡`0HmM-‹ 8�N"b)Ï?Ž�Azï¾f°£´´”Ä(ª¢`Ô­”¤k†nPUYÁ¶Ík h¡2C†Å“º/Jh%EA×UEbc¢¹ñšñlÚ´‘k®¹»ÝZ ¨²€È„ÈP¦o…Ј Ý Öãå³/Ö`˜Æ…â|òé§Ÿ2qâDrssùõ¯M h4Ú®-ªªªxôÑG™?>W_}5ÅÅÅæÊf“&Mâþç}H\³f 7ÝtÓ�›={6µµµäççóÌ3ϘçZ°`,Y²„`0ȯ~õ+^xáüq ”ìå—_fÉ’%¤¤¤ðì³Ï2{ölfΜi•}ôQ^|ñÅÓ×O>ù$‘‘‘TTTðË_þ²Íí?S�ÎÔF!„¢5¥¥¥TWW�WOlÎ i¼­½¼^/^¯—èèhÚ]ž�MrÄ´ƒ®ë¨ŠŠÕbÁépp㬹(VMáø‘ýøý~t]§¼¬ŒØèȺ¼0uoHJ(7Ìòw^Çãñá êè†ÁÔ›ïf̘1lüjw(—Œ¢šCòUAµ(Ø­¦M›Æ x†‚‚Ž> U¤&F£(* Ö½É)øƒA¾Þ½›âòJ{ô0§ !ÄùÂãñ�——gb¾ÿýïزeËY—U\\L àŠ+® &&†ììls)û1cÆàñxؽ{7J,¾wï^Æ�wÆãšS[[Ëûï¿ÏÏ~ö3HNNfîܹ¬^½Ú¼O\\O=õƒ "!!�Ûo¿€»ï¾›Þ½{Ó»wo®¿þz¾úꫳnç¹ÔélÛ(„B@è»ÏÉ“'©®®6WÒ4�¨¨(RRRÈÌÌ$;;›ììl233III!** MÓÌÕ!¼yXª««)**’ÕKE·#߯ÛA©ËÁb±¨:Øí6F\~©éY=z„[6áñxðz½X „VHª‹}éuùaÊËJÙ¹}U^�Âr� ¹£nÜ8Ö®]Ë�!CÈËËãòË/'22òŒÇ5çèÑ£èºÎÝwßmþ ©­­mt¿†¹¼úöí €Ûí6ÅËÊÊ:m5ºsÕZ�ζ�B!À©S§ðxŒáÇ¡ƒ¨ ¡©Lº�¢*蚎¦Ôzýüë£)©¬UaÚôq:�Þ?-ågBˆæ|úé§”••1nܸÓö=õÔSg•×JUU^zé%¶mÛÆòåËyôÑG9r$Ï>û,'NdáÂ…Üwß}¬Y³†I“&µé¸¦¢££Xºt)±±±gÛdS8“¶V§³m£BQZZja4M#99¹Íÿ÷¬V+ÉÉÉ8N�:Õèÿy8ƒ1eee2MIt25©§Jб¨ ‹‚EU±Y­ÄÇÆò¿¯¾AßÞÌÿéÃôˆ�BUsŠ‘‚‚n”—³uãªÜAœ‘±\9n 1ÑŒ¿"‡Çº‡ýûöP�æRÖŠ¢ * ª‚¹üuhê’Z¦Z­›‡©*f¤Úëó³mû6>[µ– ·ßq/ èê®BˆFª««Ù°aûÛߨºu«yY±bªª²mÛ¶s*wĈüêW¿bÑ¢E¬Y³†S§N¡éI'NœàðáÃìØ±ã´àOKÇA(ˆ^/55•ÈÈHsûóA[ët¦6 !„õÜn·9élƒ0 ÅÆÆ’œœl®¬៦Ô0y°ç3 Ä´ƒÃá ©GT‹UQ±X,X-*6«…Ä„8/ý;ÿuÿ=ôÍÌ@U”CñÁŸ¼ÿwܾÇK|üõÅ?aµ¨Ø­V®œ0‘+üü‘HMMåí}u‰®T¥>ø¢`QC«TƒŠÄ@]ÆÀrðð^{})_€´^™Ü4cv»½ë:M!š±råJzôèÁÀ�m�‹‹ãÒK/eåÊ•æí'N˜ÜšÞ®WUUŇ~È©S§ðz½lÛ¶ —ËE\\ZýmìØ±,X°€ï}ï{ætÍÖŽëÙ³';vì °°�ǃÕjeöìÙ¼ð lÚ´ MÓ(**bÏž=Ú_M5ì‡ÖêÔZ…Bˆ†ªªªÌ|0111íKLLŒ™7&ܪªªÂ^¦A1픑‘Á'ŸŽÅ¢†F½XT,–Pò^»ÍÊM3gÖÍ…TCq%4¦ª²‚M_®¦¢6@TLÇ Å¢†‚9‘N}ü Ðýä­^IrzZU �vQÕÿeB5äÁÀ0@Ó üÁ Ç Nò§ÿû©t{±;£xà៙¹ „â|Òpµ¤¦rssYµjº®së­·òÉ'Ÿðè£�œv»^uu5+W®ä¶Ûn㪫®âý÷ßç÷¿ÿ}£@ô¤I“ؼys£ó¶vÜu×]Ç%—\ÂÌ™3yòÉ'¸ë®»øñ�ÌÿøGrss¹÷Þ{ùöÛoÃÚ?­iÚgªS[úF!„€Ð”�ÇcbÛ]fbbb£¾áãõze%@Ñ-„oRzÛËSZ¹Þp›Ú`[ÓKýþúÛõ×-M®[›ü�.))Ù®¼a¬\¹’Ér±Z,¡å¢ÑëV�Ö¡þÍÅ0Ð�ИÛíæ/Ïý–µëVñõѶlXC|L4†¡c蚤Öíåç�=Â×û�ñò¢7Ø¿çßL�8ÅÐÍò #´j“¡zhÅ¥@0ˆÇëçh~\°€üâr4îä n¾ùæ°æ!â|UQQAfffWWã‚VÿZÿÁ, R]]M¯^½º¸fmwìØ1f̘ÁŠ+$�¹BÑŒòòrÊËË ƒÄÄÄ�’’–rOžæÞ{j(VS·*RݪGuU†B¤ <ó+|† «Å À( FÝýC£mTU¥gÏd’“’°Ø]Ü÷ÓǸå–[$s9zô(|ðK–,áí·ßfëÖ­’¨¬!Ã0X¼x1Ë—/ïÐóÑ�?~œ}ûö1~üø®®ŠBqÞª±¢ë:V«5låZ­V³ìpëèÏÖB„ƒbÂè²Ë.Ãj·óÇ^ªáòŸ� ÃÀï÷óáÛ¯ãõùq{ƒTTUÕ%Ù­ƒbf¿ÑuƒêÚZÞ{s zÐÇ©üÄÆÄðÚ??GQêß°Ôºd½ÿ ܸv~þøÏ¨(+#''‹ÅÒE½!šÚ·o[¶laܸqÌž=›k®¹†¢¢">ÿüó=o~~>©©©”——Ë’~BÔÉÈÈ`óæÍ$$$tuU„BˆóRýh•ŽµÒ´|!¾k$f©©©ÜsÇìP>Œº Œ¦ëTT”óåš4›M%ïË�u ªêâ/uCg ü�Ÿýë}JË+ê:‘¤¦¥1ôÒx¼~TE©{ô”ÿcT«E%µgÆ_>œU+Wâõz»°7D=MÓÌÕYâã㈎ŽfòäÉQXXØaç>pà]t>|¸ÃÎ#„B!.,ªªšÁ’`0¶rƒÁ`‡aêì q> ßø2A0¤¤¤„‹3Ó1 ÅP�ÐÜÇ€ßϲ¿þ �ׇ®8¬ sîý }ã=î¾yj(˜R÷F¤é:Å¥%|¼üŸøº7Ïy˜ôôtzôèÁßßþ;wMŸˆªƒ¡è (¨€®(X­{ôa¦Íú WN˜¶UL>ûì3ÒÓÓñññäææÁ«¯¾Jß¾})**Â0 ÆŽK¯^½¨­­eõêÕ”——£i_|1999,[¶Œ~ýú±wï^.¿ürú÷ïÖòëUTTàt:OËànµZéÛ·/'Ož$555¬í†Ðs2??Ÿ±cÇ¢( _ý5ƒ 2ÏßYíB!„Ý�Íf3ØõxLii)‰‰‰}ú4;"§¨¨ˆØØX3?Cff&Û·o§¬¬Œ=z ( IIIôìÙ“˜˜Š‹‹ñûý¸ÝnÖ­[„²¢kš„òäÔ�8ÉÎÎfÕªU@hxb0dÛ¶mÔÔÔàv»©­­5ë2`ÀóúÉ“'Ã^>„VÖª©©i¶_kkkÍjál7ÀÊ•+Ñu�¢¢"ó¸Ã‡3pàÀNm¿B!„è^EÁår™“úÜíMÚ 9yò$N§³C‚1-ýø)ÄùD1abA-ˆ¡¨(†ж¡Ñ0EE|¹fAMG× â{¤1n|nhÙjUeÜø\ ‹KIŠ‹¥ÖífÑ+ÏãñÐ vy.W\qE£sÙív† Iie ±‘.‚š�Ï ¬²Š¿¿ý>ÏÛ„Û$+»S¦L!===,opõ£* 8~ü8—^z)µµµ:tˆÊÊJó }tt4·Ür G�eïÞ½lÞ¼™éÓ§7ªƒ¦iØíöFåsNgÓù¢ªªb±X°Ûí¤¤¤píµ×ž±® ßÔ‹‹‹Y³f cÇŽ%!!�ŠŠ sY»¦ýîòëÅÇÇãñx())1- Ô=z”‰'†½Ý>Ÿ»ÝÎm·Ýf&mÞ·oûöí31�Õ~!„BÑý8�N\.�@‹ÅBAA½{÷nW™X,TU {ÆétʈÑ-H&£0q:�ôè‘Ì«K–±c÷·€nø|~þ¾è<þ@hê0ãîù�¦mdddðñê øA¶mÙÄÞýû ê€baæmw5;°_¿~|¶a7þ€FqY%ïÿë3~òð“|¸b=VW4÷Ýÿÿõ_ÿÅôéÓúÔ\vv6»ví"::«ÕJvv6¤¸¸˜ÔÔT 4íÈçóÑ·o_rss©¨¨Àï÷£ë:_}õ>Ÿ�””ŠŠŠ8uê………èºn&²…PР¬¬ŒÚÚZ’’’HNN¦ªªŠ#GŽ¡ÀEk_úËËËq8ôèÑMÓ8yòd‹«I…³ü†íµZ­Œ1‚+VPZZ „%«V­"--ÍÌ�Îv:tˆŒŒŒFmÍÌÌääÉ“-&qîèþâL*++Y¶l¯¿þ:G�娱cæóïùçŸïâÚuœ ¹mB!º7EQˆ��Åb±`±X(,,4?Ëž‹ÒÒR ÍòÂ="&&&&le Ñ‘dDL¥¤¤pã�7²uëVþºôM®Î‡ÏSͦ�ëÐ  …´¬§�p±ÙlŒ•êõ›Y¼ðe4CÅ@eÚm÷2bĈfÏe±XåþúÖlÚ°�‚“§Ð ·Þv;ƒ bôèÑòe¸wïÞ|öÙg\}õÕæpÅøøxóM´¼¼œ-[¶P[[‹®ëŒ9‡Ã�ÛífçÎ�ôêÕ‹¤¤$®ºê*Ö¬Yƒ¦iDEEñƒü Q–óüü|¶oߎÃá`òäÉf@éšk®áË/¿dÛ¶mØl6† Bß¾}[¬sVVÇ�çÍ7ßÄét’’’Òb6u›Í¶ò½^¯Ù^‡ÃÁСCq8¬^½�ǃËå¢_¿~ 6¬Qyáj÷�:th£m‡ƒ”””Ó¦'uDû…8[›6mbðàÁ 6 MÓX¼x1?øÁHKKëêª !„ß9õŸí#""ˆ��¥¬¬ ›ÍÆÞ½{¹øâ‹ILL<«òJKKÙ»w/N§³nåXÕŽ`Ltt´LKÝF¸³#µ¥<¥•ë ·© ¶5½Ôﯿ]ÝÒ亵Éßè’’’�½^½ÏçcÆ ”——süè!N�8̉cG™uÏO¹êª«š}³Ù¼y3¥¥¥�,äÔÉîœó“F#%šsðàA8@uu ñäääÑQÍê4ùË_¸÷Þ{»º�î»Úîp«¨¨0s‰ŽQÿªë:𦠩®®n×*mo¾ù&&L 99ù´}Ï?ÿ<=ôÐ9—}6òòò2dˆ™Ãª£…»m�]!„®ú%¦5MãĉTUU™£ßÓÓÓéÕ«W«£ïëWñ‰‰‰Lš4‰ˆˆòòò8xð ‹…ŒŒ &L˜ÀG}DŸ>}2d;vìÀív3zôèfï¿uëV xóÍ7ÉÎÎfÊ”)Íž/22’?ÿùÏôë×�“'O0zôh8@QQ‹…«¯¾Úœ øùçŸŸÖæ±cÇ2pà@t]çóÏ?§  ]׹ꪫÌDˆEEE¬Y³†ÚÚZœN'&L gÏž†Ñæú !„í¥( V«•´´4Š‹‹)++CUU�€¹�‡®ë�Ž©_tÂáp`³Ù°Z­æß†£MÚ#::ZF€ŠnI1â¼ô]�žó]m·ãÆ�ãĉLœ8ñŒ¿j¹Ýn>ýôSf̘All,›7ofݺu\|ñÅrç�w¢( Á`€ÁƒóÕW_™�˜½{÷rõÕWsôèÑfï?räH:ĸqãHIIiñ|“'O& rùå—Ï×_ÍÇÌ�wÞIll,;vì`Íš5Ìœ9“¬¬¬V_ÛÇgÒ¤IìÝ»—/¾ø‚;_ßχ~È´iÓHJJâСC,_¾œ;üüü6Õ_!„h¯†£b ´¸ƒË墼¼œÚÚZ‚Á š¦¡ëº9uYQ3Sx©ÿ[?©aÙgËét#9aD·%�!„ÝFAAµµµ¬Zµ ­Ò¦iñññÔÔÔ°jÕ*²³³Í%™™™|ñÅx½^ü~? X,–fïßÖóAèiýJoýû÷gíÚµæè�þýû³eË–6µIUUsYûþýûóé§ŸšçŽ��7÷õíÛ×Ì%ÖR{…BˆŽÐ0£( 111DFFâv»©­­Åãñ˜ÿ#ë§×'ã­È4MÎÛÖ L}Y6› ‡Ã�Ëå’%ªE·'�!„݆Ãá --�n¸á´}wÞy'‡b÷îݬ[·Ž[o½UUéß¿?Äëõ2`Àbcc›½Ó…g:_CMW©kx»µ©I 5ü`ªëúiÓNý~?ªª¶¹þB!D¸4ÅR‰ŠŠ"22Ò ÓpDL}¥aP¦½#a„¸PH F!ÄyOUU‚Á )))TVVrèÐ!úöí‹aƒAt]' rÑEѧOþò—¿àóùp:� 4ˆuëÖáõz™:u*ZÙ®¥û»\.ªªªHIIiñ|6›­ÍuoËԤ椦¦òùçŸsòäIRRR8qâ†a�˜˜Øæú !„á¤(Êi#^ê0MW¥m:òE‚0Bü‡b„Bœ÷.½ôRÞzë-®¿þz¦N�ÊêÕ«Ù¸q#v»�aÆņ ¨©©AÓ4rrrp:�$%%QSSÓh.yYYY‹÷1b«W¯f×®]L›6­Ùó]tÑEÞf—ËÅ5×\Ê+Ð4�¨¨(¦L™‚ªªgUÿp$CB!ê5 ¤Ôßn.s¦ÛB|—…ûÕЖò”V®7ܦ6ØÖôR¿¿þvýuK“ëÖ&£KJJ66}£B\8***ÈÌÌìêj\ÐêßCu]GÓ4‚Á ÕÕÕôêÕ«‹kÖ¼�?þ˜þýûÓ¯_¿®®ŠBqAj-Óäçç}ÚÊNݱ-݉ÝnϪ 6ùkz“ëFƒë4¸ÝðBƒý4Øf4³­éõ–„-ˆ ?“ !„¸ ù|>òóóÉÊÊêêª!„¬†S‘$p!Ä™I F!ÄíÛo¿%++ë´„ºB!„BtÉ#„â‚6lذ®®‚B!„&#„B!„BÑI$#„B!„BÑI$#„B!„BÑI$#„B!„BÑI$#„B!„BÑI$#„B!„BÑI$#„B!„BÑI¬]]^†a (JWWCñUVVÖÕUB!„â¼&�˜ „¦ix<***ˆ��ÅåraµÊÃ+„è\ ]]!„Bˆsâv»»º â;B¦&]ªªªøûßÿÎøñã>|8C† áõ×_ÇãñtuÕ„B!„BÑ€bº1Ã08zô(?ü0óçÏçØ±c@(’ûÔSO±{÷n4MëâZ !„B!„¢žbº)Ã08~ü8óæÍcùòå§í×u�/¾øŸÏ×µB!„B!Ds$ÓMòÓŸþ”Í›7›Û®½öZ¦N�jÞ.))Á0Œ®¨žB!„B!š!�˜n¨²²’çž{ŽuëÖ™Ûî¿ÿ~–.]JII‰¹-!!U•‡X!„B!„8_È·ôn&°víZþö·¿™ÛæÌ™Ão~óŠ‹‹Ù¸q£¹}ĈØíö®¨¦B!„B!š!ëw3EEEüâ¿0“ðŽ1‚ßýîw(ŠÂòåËÍí <‹ÅÖó?óÌ3¬Zµ «ÕJzz:×]w7ÜpC›GßÌ™3‡‰'róÍ7‡µnB!„B!ÄùN1݈Çãá�wÞáøñã¸\.^~ùe¬V+š¦ñÊ+¯˜÷ÍÉÉ!..®Cê1eÊæÌ™ƒ×ëeëÖ­¼øâ‹x<fÍšÕ¦ãG�M¿~ýÚ|¾×^{�‚‚žzê©s­²B!„Bq^�@L7RRR«¯¾jÞž7ožÐøÇ„kQ¯ IDAT?þÁ�°ÙlL�:—ËÕ!õ°ÛíDFFÉäÉ“©©©aÙ²emÄÜu×]R/!„B!„â|'�˜Nä÷û ƒ†a^�6› EQÌ‹ÅbÁf³5šêS?¦¨¨€èèhæÍ›g–»`Áó¾ãÆ�cĈ�–¨wèСTVVâñx°Ùl,\¸��7RRRB�=˜5k“&M2ï?oÞ<¦L™Â5×\cÞ¾âŠ+غu+ 55•|�!C†ðÖ[oñÆo�——Çu×]ÇC=Ô)íB!„B!ÂM1Ì0 <ÅÅÅ,Z´ˆO?ý”¢¢"Ün7º®›÷SU»ÝNRR999Ìš5‹¡C‡ât:±Ùló׿þÕ¼ÿO~òâããxöÙg�†¹ýöÛIHHè´6–––’˜˜hŽÀIOOç׿þ5‡ƒÕ«W³`Á @FFF³ÇWUU±hÑ"^xáRSSyýõ×ùÍo~òe˘9s&n·[¦& !„B!„¸ ȪIÈëõòÕW_1mÚ4F�ÅK/½ÄÁƒ©©©i„Ðu¯×K~~>ï¾û.Ó¦Mã’K.áá‡æÛo¿åí·ß¦¸¸€˜˜s4ÌW_}ÅsÏ=g–3yòd¾ÿýïwÊhMÓ8pà‹-⦛n2·_ýõôéÓ‡ÔÔTn¹åRRRøöÛo[,'&&†Gy„�ÇÍ7ßLYYùùùÞ!ÄùgóæÍŒ9’'Ÿ|ò´}³gÏæƒ>hñö…¨ig̘Á믿ÞâþŽÖôü¢u­=FÝåyì÷û9rd—ý×s¯«Û!„BȈ˜RRRÂÿøG^{íµÓ‚.måv»y÷Ýwyï½÷­~4wî\âââp»ÝÌ�;—`0„VJš;wn‡�†yï½÷xï½÷P…””n¼ñF¦N�j¬ä‹/¾à믿¦¦¦†‚‚|>ßËTżž’’‚ÓéÄãñtX„ç¯O>ù„!C†°nÝ:ü~?v»½««dzùå—ÉÏÏç™gžé²:äææ2`À€ïìù»ÚùðènΥϚ;¦«ž{ò˜ !„7 Ät€‚‚î¾ûn¶nÝÚh{�=¸öÚk?~<ƒ&99—ËEyy9¥¥¥äçç³víZÖ®]Ë×_mp Ã0ƒ-±±±Üwß}üìg?cß¾}@h)é¹sçò½ï}¯ÃÛ÷ƒü€ûݎÍfk´Ïëõòàƒ2vìXfÏžMrr2óçÏ?ë`TÃÀŒâ»#°jÕ*^|ñExà6lØÀøñ㻺Zç•ú‘ßÕó‹ï.yî qþñù|x<|>�@MÓ0 #¬ŸåEAUUl6‡—Ë…Ãá[ùBt Ä„YQQwÝuÛ¶m3·ÅÇÇóÔSO1kÖ¬fß4zöìIÏž=4hW_}5G�åµ×^céÒ¥”••™÷�;w.±±±¼ñƼùæ›æöiÓ¦qà 7œéõ+&5gß¾}TVVrÏ=÷˜Ûûl‹Ç-Y²Ä\¹nÅŠLŸ>�Çœ@ ÀK/½Ä矎Ïç#77—ùó焦�Œ?ž 6°ÿ~z÷îÍO<ÁÎ�;yÿý÷),,däÈ‘<ýôÓfî¯3™={öi#óòòX¼x1¥¥¥ <˜ŸÿüçôîÝÛ¼ÿm·ÝÆG}Ä¿ÿýoþð‡?ð½ï}�^x�µk×rêÔ)zöìÉœ9s¸öÚk�§éq—_~ùiço­ý-õgkÎTî_þòV­ZÅÒ¥K±X,¸Ýn~ô£1wî\®¿þúVë°lÙ2þùÏRZZÊ%—\Âc�=FZZ“'Oæ¿ÿû¿5jß|ó sæÌáË/¿lö9ðÈ#�´Ú—­=FgÓö¶öi hÓcœ››ËÆ�Ùûÿ³wßñQÕÙãÿ_÷ÎLf&½éMš( QjèMŠ~ ‚²¬ºþXý®eÑÝÏb]l ¢¢¢ ²–U±!m))†Ïî •–6!¤�0Éd23÷÷Çd®é…L�óä‘GfæÞû¾ï{o¸™œ9ïóNI¡M›6<øàƒôíÛðA~õÕWÙ¸q#n·›¡C‡Öx½òÿ¦®sVÓÿµê~ökºŽåÕvu�§Æ\s!.eÅÅÅTÈ`×4­ÂãòÁ˜Æf4MÃívãv»q8œ={‹ÅBhhh“Í+DS“@Œ²lÙ² A˜øøxÞ{ï=bbbÔV‡X²d �;wæÞ{ï 88˜… røða|ðA}Ý«¯¾š;ï¼“ØØXÿH#DDD`·Ûùâ‹/>|8ÉÉÉ€7Øt¾bccùꫯÈÊÊ",, ‹Åâ¯î !.2›6mb̘1€w£�>ªÏ.×<ðÀÜwß}Œ7Žììl}ˆäرcyúé§+¼Iܹs'3f̨u»¹sçb·Û« QXºt)ùùù¬]»—ËÅ’%KX¾|9=ôùùù¼òÊ+¬]»–¸¸8ž{î9æÎ�Kbb"Ï>û,<ð/¿ü2þóŸ|ÎRSS9|ø0o¼ñ±±±¬\¹’… ²~ýzý~ùðóxñbî¹çÚ·o�Éd¢]»v,[¶ ‹ÅÂæÍ›Y²d W]u:tÐÛ®¼]uj;þÚÎg]jkwþüùlݺ•üãÜzë­¬ZµŠ+¯¼’o¼±^×díÚµlܸ‘Ç{Œ¨¨(’““ë«îg ®sYŸkäïsZŸkœŸŸÏÊ•+yûí·iݺ5¯¾ú*=ô_~ù%&“‰+V°oß>ž{î9¬V+«V­ªö¼œÏÿ›ÚúVÓ6•Õ÷:Övu�§ó½æB\Êrrr(,,¨0lu|³ÂV~­±‡ƒ��� :I‰þ"ÅzýÄãñðÓO?±fÍýµøøx>ûì³a|Ün7+V¬ÐŸßqǘL&æÏŸ_!úxÞûð·víÚñÛßþ–5kÖpÛm·ñí·ßÖú Z}Œ3†^½z±`Ážxâ ?õTq±)..&))IÄ 4ˆÒÒRöïßßà¶²³³)--eèС„††Ò¥KzõêÀ�!C(..æ‡~ 77—””† VëvÕ±Ûí¬_¿žû￟ÈÈHbcc¹óÎ;Ù±c‡¾Nxx8�<ò½zõ"22’9sæÞ{zûöíiß¾=7Þx#‡jðq‚÷wÅìÙ³éÛ·/­[·æÿ÷Q…­[·êëL�:•›o¾™nݺéøÏ˜1ƒ.]ºÐ¦MæÏŸOëÖ­õsRÛv 9þ†žÏú¶k2™xä‘Gxýõ×Ùµk_~ù¥>³^]ÛºÝnV¯^ÍâÅ‹éÙ³'±±±Œ?¾QŸªÖu.ës�šâœÖÕ/ßÏfïÞ½‰ŒŒdÞ¼yäää�ššŠÓéäÃ?ä‘G¡[·n´k×®ÆÙ Ïç:×çç¯6õ½Žõ9ŽóéKcû/DKäñx°Ùl¢i�·ÛMpp0qqqtèÐ�.]ºÐ¥K:tè@\\ÁÁÁ¸Ýn<�¬©)hs> ÉÊÊ:ïšœB4Ɉñ“³gϲxñbýÆÁ;ï¼Ó¨7v/¾ø¢>-µÅbá®»îâ·¿ý-?ýôS…õ¾ûî;&NœÈ|@×®]›tƤúL!�˜˜Hbbb�ËW®\Yës€/¾øBl6›yì±ÇÐK!DK”””„Õj¥}ûöz°¹OŸ>lݺ•Áƒ7¨­N�:ÏÌ™3IHH`êÔ©úP³Ṵ̀aÃøæ›oèÝ»7III 0€   Z·«ÎÉ“'ñx<ÜqÇú'|.— »Ý^a½ò÷åÎ�;Þ‚ì¾Oñ:uêDQQQƒŽÑ§cÇŽtéÒE@ß¾}9~ü¸þÚ5×\Se»üü|¾þúk:Daa!iii8Ž ëT·]yuCÏg}ÛïÏÆøñã¹÷Þ{yôÑGõ¬Ðº¶MOO§¨¨¨^¡úªë\ÖçÕ÷ØrNës�Ëÿl¶nÝ«ÕJQQiii¸Ýî Åqkzq>×¹>}«M}¯c}Žã|úÒØþ Ñ�>}šââb=Jdd$FcÕ?)�F#F£‘   "##ÉÍÍ¥  UUõ{›¿êÈ8²³³•�/Ä…&�?Ð4�ÜÜ\}Àƒ>ب›Áo¼ÁSO=¥?/))aúôé>|X-&&F¯½’––ÆÄ‰ùðÃéÓ§O…Y–„¢%Ø´i¹¹¹ 6¬Ê²Gy¤A÷5UUY¹r%ä‹/¾à� >>žçž{ðfÚ½þúëÜu×]ìܹ“±cÇÖk»ÊBBBx÷Ýw kè!ëü] <  ÖÙ¦Š‹‹™7o£F�âw¿ûqqq,X°·ÛÝ ýÔuü =Ÿõm×ÇÈ*ÿ¡G]Ûž;wð~²ë�ß•ç{.kºFþ:§çÛ/ßÏbii)��ÇSç< ½Îþøù«ïu¬ë8Χ/þúÿ#DK’““£aÜn7±±±õþ½g4‰��Ål6súôé ÿgýŒÉÍÍ•aJ¢Å�¡I~PTTÄ{ï½W!fÞ¼yçÝÞO<Áƒ>X¥àUù Ìœ9s8xð`•i£§OŸNrr²¤ç !Z”ÂÂBöìÙÃ;ï¼Ã�ô¯­[·¢ªj…Ú[ Ñ¿–,YÂêÕ«Ù¹s'§OŸ¼Ã“ÒÓÓ9~ü8ÉÉÉU‚?5mÞ?ì|®¸â ‚‚‚عsçyõÏòòòøå—_ô皦ñßÿþWϼ©Î‘#GÈÏÏgÑ¢EtîÜ™ÀÀ@Ž=JVVVƒö]ßã¯í|žo»'Ožä£�>bÑ¢E<ûì³z½‚º¶mÓ¦ �‡#GŽT»ÜjµVÉT©ü;µüÏ@}ÎeC®‘¿Îic¯q»ví*|ÈT—úþ¿©oßÊoSY]×±¾Çq>}ñ×ÿ!ZŠ¢¢"}8RCƒ0å………«Ï¬þ¦T¾|ƒ3 Äø�Óé¬P`ܸqç=¥ÚÛo¿ÍóÏ?¯?ïÒ¥K•ú/:tàÙgŸ%88˜7ß|“ßÿþ÷ú2»ÝNbb"G�õë�M!šÒ¶mÛˆ‰‰¡gÏž^§oß¾lÛ¶Mžžž®ßß*?÷)((àóÏ?çôéÓ8<ˆÕj%<<ðf#$$$°téR®½öZ‚ƒƒëµ]«V­HNN&33“ââbŒF#sçÎeùòå|÷Ýw¸Ýn²²²*Ϋ¦cô±Ùl¬[·Žï¿ÿžÜÜ\^zé%<#Gެ±ÍÈÈHÎ�;Ç?ÿùOΞ=«×*©<ÛL]ê:þºÎçÂ… yõÕWÜ®ÇãaÉ’%ÜvÛmÌ�;—=zðâ‹/ÖkÛ°°0FŽÉ3Ï<ÃÉ“')**"))IÖ§O>ûì3233IOOçÉ'Ÿ¬ðGxåŸ�úœËº®QùkÜØsê¯kÈäÉ“ùÛßþÆ?üÀ™3gx饗ª]·¡ÿoêÓ·ÊÛTV×u¬ïqœO_üõÿGˆ–¢  @¯Ú¨ а°0BCCõº1þVPPà÷6…h 24É|o’|®¾úêójçøñã,^¼X>tèPÖ­[§��öݬ^xá=Уª*�?þ8aaaúP¦‚‚æÎ�ËúõëåM�¢E(?[Re#FŒ`Íš5<øàƒÌž=›§žzŠcÇŽ±lÙ²*Ï} Ù¶m+V¬Àn·Ó¡Cžyæ™ CAÆŽËÿøÇ 5¨êÚnÒ¤I|ûí·$&&Ò¿^xán¿ývÌf3Ë–-Ãf³Ém·Ýæ·$5£OÏž=éÕ«/¼ðéééôíÛ—×^{­Ú1û>;vdÑ¢E¼öÚk¬\¹’Áƒ×¸©MmÇ_×ù,(( **ªÁí¾ûî»sË-·ðÐC‘˜˜È„ ¸îºëê¼&ùË_xî¹çX°`¥¥¥tëÖ�+¯¼’ÀÀ@þð‡?ðè£�’˜˜H›6m?~<©©©z¿ªû¨ë\Öu�*_ãÆœS^ã|�矞ûî»�ÐÐP¦L™RíûŠóùSWߪۦ²Ú®c}�£>çé|ú/Ä¥ÂápP\\¬bjºg7DTTyyyfTò祒’’óþP\ˆ Å¿ƒÒëמRÇãò¯©å^«üå[î{î{l¨ôØXé{È™3göú3[$;;›AƒqöìYÀ;MâìÙ³ÜÎ’%Køûßÿ@÷îÝÙºu+AAA|ðÁÜu×]€÷ Ã÷ß_íöýë_Y¾|¹þ|Ò¤I<ÿüó2VR\vòóóe Ñ&滇úÞ˜¹\. iÛ¶m3÷¬þN�:ÅÌ™3Ùºu«ž#.¬Q£FñôÓO׫€¯Bˆ ///�¼¼<\.¡¡¡ÄÅÅù¥]›ÍFAAF£±B_ «’%X_iii„„„`41 zm)×r  7àªô]<•kåSîyù/Ê-§ÜkZ5¯U~\¿dh’(ŠRá“Gß8õ†Ð4��>úH¾xñb‚‚‚oÁ>ŸéÓ§×ØÆ’%K˜8q¢þü«¯¾"))©Ö1ÖBq¹Ú±c×_½ašIFF¥¥¥ôíÛ·¹»"„¢š¦áp8ô‚×þü}¬·«iš_K*”””ø­-!šŠbü@UÕ c%�=Úà6Ž=Jff&à-8~üxöîÝË·ß~ x>µeÚ(ŠÂË/¿L§N�ô×zè¡:‹" !ÄåhóæÍ2œ Y­V^zé¥ZgwBѼœN§^¤×b±ø­]‹Å¢íõw]KùZ´ˆñ“ÉD�=ôçÛ·ooð ÅWè `À€˜ÍfþïÿþO’0eÊ”ZgÁo*^ùb¿¹¹¹¼öÚkØíöõG!.e©©©=z”áÇ7wW.[\{íµÍÝ !„µðe¬x<žZk�5”ÑhÔÛö7™=V´ˆñƒ   f̘¡??qâDƒ§2ýôÓOõǽzõâž{îa̘1œƒfäÈ‘Œ3†uëÖéy}ÃY, ={öäСC|ñÅ 8�àààó>ÆììlvïÞ�ÝnÇb±��� ’Ö­[G×®]IIIaÀ€tëÖ�ÌÌLvïÞMii)œ>}š9sæThSÓ4öìÙÉ'PU•6mÚ���@qq1ü1·Þz+999ìܹS/D\SÛv»�;v�——‡Ûí¦{÷î 8°Æ>úÔ¶�¦ilݺ•3gÎ`4:t(qqq5ö½.F££ÑXë>W­ZÅÂ… xóÍ7éܹ3YYYhšFBBmÛ¶åСCØl6>ýôS:vì¨O{.„B!DcY,¬V+¥¥¥ 222hß¾}£ÚÌÈÈÀ`0 ªªßƒ0‹E2bD‹ �? ä¶Ûn`éÒ¥ú<ö{÷îe̘1\wÝuÜxã� 0€N�:A›6mhÓ¦M½÷Ñ¿¶mÛx‡)}ôÑGüüóÏúòòÁ…îÝ»ë�˜_~ù¥QQl§ÓÉÆ�™4i‘‘‘œ}ø‘Çã©v›ÚÚÎÎÎfçÎ�$$$I~~¾ž™TÛM¾!Û¹\.TU­±ï•× bêÔ©„„„Ô{Ÿ5iªÂfB4·ÜÜ\úöí €Á`àöÛoo–~$%%Ñ»wo=èÜÒ´ôþ !„¸¸¨ªJtt4%%%úß?þø#mÚ´¡mÛ¶�µÿIér¹HKK#==³ÙŒÑhôûÐ$‹Å"¿÷D‹"Åz›�ÑhdøðáÜ{ï½¼öÚküéO¢OŸ>„„„Ô{~ûÜÜ\>ùäæÌ™CïÞ½ùë_ÿÊO?ýÄÂ… Ù·oK—.åþûïgõêÕ|óÍ7ôë×Oß633“èÏ'NœH``àyO\\YYYz�šÌÌL<5®o³ÙÈÎμSuûŠÊz<:DII N§“’’:wî̈#ÈÏÏÇétb±X(--Åf³Þ,˜ÂÂÂ:ÛÎËËÃl6ƒÛíÆf³Õ€2 ¸\®Z·Ó4M?îììlŠŠŠˆŽŽ®±ïå�¯6 íku,‹~^„hÉ4M»(‚Œ6›­EÀnéýBqñð}¨ª*qqq„„„€Ùl&##ƒÝ»wsüøq * Ñw¹\püøqvïÞMFFf³™€€L&S…@Lc÷[,=;_ˆ–B2b.€+®¸‚+®¸‚øøxF�­g=x< ),,$;;›ÍFjj*§N�"++‹¢¢¢ C‰²³³Y¾|9+V¬`òäÉüùÏæŽ;î¨vŸn·›ÿ÷ÿþn·ðÀ‡~ȰaÈ‹‹«qãÇ�çÅ_ä¶Ûn#""‚ÿþ÷¿lݺ•ùóçFrr2G�%11±Îã~ñŹõÖ[‰ŽŽ&%%…Ý»w3þ|œN'kÖ¬aÚ´iDGGsìØ1¶mÛÆ¼yóHKK«Wÿ«s¾í !„¸|iš†¦ix<ýÃä¼¼<ìv;.—KŸ-Ö÷þÀ—Ec0ôÀ‹ï{ù"½ç› c±X õ{M˜´´4BBBª‹.†ŒÝKY@@À@ p®Jß5ÀSé±Vî1åž—ÿ¢Ürʽ¦UóZåÇ5ñ[AÞ]53“É„ÉdÂjµVâã˰˜5k§N�â“O>á»ï¾Ó§§v¹\¼óÎ;¬[·Ž�ÒºukÒÒÒ8pà@…:#qqqÜu×]Í„±ÛíúXÐ#GŽÐ±cÇѶâ┑‘�Ýn× V;�NÜn7œ;wŽíÛ·Ó¥K=8Ý¡Cþõ¯áp8ôá:‘‘‘ †jׯïþÀûIŸï¾Ý­[7¾ùæ={§[·nU ³×Ä—ÕçÛnÓ¦Mú¾#""ôe�;wfß¾}äääÔx¼•ååå±aÃýùàÁƒQ¥Ñí !„¸¼ø¾áD¡¡¡éMë¿#}C�}Åx}™ÊÅyëÜðµe2™0›ÍX­V™¢Z´xˆ¹ˆ©ªJûöíiß¾=×_=}ûöåøñã|ñÅ|þùçzý·ÛÍ·ß~[mmÚ´áñÇçÚk¯½�]×�8q‚ÇÞ�Ü"ÚB\œÌf3­[·æ¦›nª²lþüù;vŒ~ø�]»v1{ölTU¥[·nüòË/8}Ö´°°°jׯü¦°¶ý•W¹¶Sùçu M*¯üÓꊒ;�NTU­wÿ#""¸å–[*¼vìØ±F·+„âòãû]P>�LPP�ž S>#Æ@)”)߆—3 Ä´F£‘=zУG®ºê*&NœÈG}ÄöíÛ)..®²¾Ùlfäȑ̛7�‘#G6ÛÍ®âª«®jqm !..¾éåãââ8{ö,ÇŽ£sçÎhš†ËåÂãñàr¹¸òÊ+騱#«V­¢¤¤‹ÅB¯^½Øµk‡ƒ©S§PRRRãúV«•‚‚âââjÜŸÉdªwß;uêÄÂ… |ÌW\q[¶lÁf³Gzz:š¦Uïþû³]!„BQ”*/¾Lå2 •3_$#į$Óù²dzôèÁìÙ³ùþûï9|ø0ÙÙÙDEEqõÕWÓ¯_?ºtéB×®]›»»BÑh}ûöåƒ>àÆodêÔ©ìØ±ƒ½{÷@Ÿ>}fÏž=œ;w·ÛÍÀ�õàAtt4çÎ�«0–<77·Æõû÷ïÏŽ;øÏþôiÓªÝß•W^ÙäÇlµZ¹á†غu«^ }Ê”)¨ªÚ þW.†x¾í !„P5�â{^] ¦¶çB\ΤXï% ''‡¼¼<ŠŠŠ°X,DGGKõpqY“b½M¯)Šõ6¥ 6Э[7 N !„M¤®@LK Åz›‡ë-RTTQQQÍÝ !„¸(•””�––Æøñã›»+B!Ä%K‚BÔ_ã'oB!.b?þø#�:uªRPW!„Bˆæ 1B!.i}úôiî.!„B¡“Œ!„B!„Bˆ D1B!„B!„ˆb„B!„B!. Ä!„B!„B\ ˆB!„B!„¸@$#„B!„Bq�H F!„B!„â16w„B\:rss›» B!„B\Ô$#„Âo"##›» B!„票¨¨¹» .24I!„B!„â‘@ŒB!„B!Ä"�!„B!„Bˆ DjÄ4·Û�Çãiîn ª*ƒ¡¹»!„B!„B$ãw”–:ñxÜxÜÍŒQ *ªjÀd 44´Yû"„B!„B ÄøUnn.w)fspñd¡””“›ë’ÙL„B!„Bˆf&�?q:�””8²²ú�ðÏ¿Äår5kŸŒF#3§0ÿŽßpÎ^ŒÓé$  Yû$„B!„B\ΤX¯Ÿ8�NŠŠìEÀårñÏ¿ ¨ÈŽÓélæ !„B!„—7 Äø‰Ë墠 P|¡)ðÿ™Xbf¼ù×D§ÒÒR Î\Á!!„B!„âr&C“üÄãñà,i\ÆI—®  ªvÙ9»�_~>Qã¶è˜³�ÉöíÛïЧ6mÚ0iÒ$nºé&TÕ?q½»ï¾›)S¦pà 7ø¥=!„B!„âb!�˜‹È]¿¿�kúôªvÙ¿ÿï0÷ß÷h�Ûö5U,ÜϨVÄøÓ”)SX°`‡ƒðòË/S\\Ì-·ÜÒ$ûB!„B!.ˆ¹ˆ¼òòšZ3bj“\êfB¹!Iß»šnê쀀‚‚‚ büøñœ;wŽuëÖI Fáûöíãî»ïfܸq<õÔS–Í�;—›o¾™©S§Vû\4ŒÇãá¹çžcãÆ�„‡‡³téR¶lÙBÿþý‰��oîîU1sæL&NœÈ¼yóš»+B!„çM1‘Ú†ÕåÙsNÎx4ÚT¶”¸ÙßDÙ0Õ¹úê«9{ö,ÅÅÅX­V\.«W¯fÇŽ8�N† Â�wÞ‰Õj¨syyv»�E‹1bÄæÌ™sÁŽIÑ|6nÜHïÞ½Ùµk×E7ÛÛ+¯¼BZZO>ùdswÅ/>ûì38À|€ªª„††²uëV¬Vk³bª;×#FŒ G�ÍØ+!„BˆÆ“@Ì%®Ár{i³ì;''‡¨¨(=�²bŠΞ=ËË/¿ŒËåbéÒ¥¼þúë,Z´¨^Ë}Ün7�?þ8]ºt‘ Œ—‰ÒÒR¶oßÎË/¿Ì=÷ÜÞ={>|xswë’uêÔ)zõêEtt´þÚG}ÔŒ=ªÝÝwßÝÜ]BQNII ÅÅÅ”””PZZŠÛíFÓ4EñÛ>EAUUL&f³«ÕŠÙlö[ûB4™5Iœ7·ÛÍÏ?ÿÌêÕ«™1cEEElذ�ßÿþ÷DDDüyóøöÛoëµÜGÓ4V¬XAQQ<ðÀ?6!DóسgaaaôêÕ‹„„¶mÛvÞmíÞ½›¹sç2tèPnºé&V¬XÀâÅ‹yì±Ç*¬»fÍþøÇ?ÖºÝÚµkyóÍ7Ù´i à™gž¼Á£—^z‰É“'3vìXž|òIŠŠŠô¶çÎ�Ë›o¾É‚ >|8sæÌáðáüÿþûüæ7¿aøðáüñ�$//¯ÆcY·n3fÌ`Ô¨QÜ{ï½dddÞ¡Eo½õÓ§OgäÈ‘–ùö½zõj.\ÈðáÙ={6‡à©§žâ�wÞá‹/¾`À€Ìž=[ßæË/¿ÔÛp»Ý¬X±‚É“'3iÒ$ž{î9nºé&ÒÒÒ?~<ûöíÓ×?räC† ©Ð‡Í›7³hÑ"†Îwß}Gii)Ï?ÿ<Ó¦McÈ�!LŸ>� 6èÛÔt®çÎ�ËgŸ}¦¯×˜ã¯íZ !„¨]qq1YYYdff’ŸŸOqq1¥¥ÞÉA4MÓ¿û¾CÓ4Ün7‡ƒ³gÏb³ÙÈÊÊ¢¸¸ØOG#Ä…'1MdA| ®Ëïå¾ûh¿kš††Šª(hh(šŠ¦x_W4Å»¹GCó(Þš§Ò—7näðáÃ|øá‡˜L&¿ƒââ´iÓ&ÆŒx‡¡<ú裔––6ø>PPPÀ<À}÷ÝǸqãÈÎΦ¤¤€±cÇòôÓOWøÄnçÎ�̘1£ÖíæÎ�‹Ýn¯2\féÒ¥äçç³víZ\.K–,aùòå<ôÐCäççóÊ+¯°víZâââxî¹ç˜;w.‰‰‰<ûì³<ðÀ¼üòËüùÏ®r,k×®eãÆ�<öØcDEE‘œœLDD«V­b×®]<ûì³X­V^zé%î¼óN>þøcL&ùùù¬\¹’·ß~›Ö­[óꫯòÐCñå—_òðÃD~~>ýë_k<—Ë—/gÿþý<ÿüóX­VV­Z¥aêëá‡fñâÅÜsÏ=´oß“ÉD»víX¶l‹…Í›7³dÉ®ºê*:tèPã¹®¬1Ç_\\\ãµBQ³œœ ê ¶(ŠR%;ÆÙ2‡‡ÃAHH‘‘‘�nOˆ M1MEÁ›o¤(0å—ĨJYz’ЧlEEQ@SP4Ênn šMCÑ4ïv �KMŃª*hªê}lhš„§ &p×]wPå�£ ²bï¼ò ¡¡¡U¶­k¹O¿~ýHMMeýúõÜ~ûí~ì½âbU\\LRR¯¿þ:ƒ ¢´´”ýû÷3xðൕ��Mii)C‡%44´ÂýfÈ�!óÃ?лworssIIIaذaØl¶·«ŽÝngýúõ|ùå—úÁ;3‡zHÄ„‡‡3þ|zõòΊ7gÎ6mÚÄwÜ¡osã�7òé§ŸVißív³zõj–/_NÏž=o €ÓéäÝwßeÕªUtíÚ€G}”É“'“””ÄèÑ£õ}÷îÝ€yóæñÉ'Ÿ�ššJçÎ�ë<�%%%|ôÑG¼þúëtëÖ €Gy„¯¿þºÎmË›:u*7ß|s…×|™”óçÏç³Ï>ã‡~ C‡õj³±Ç¯iZƒ®µB\î<§OŸÆápèÁ�ÇChh(AAA˜ÍfŒF.—‹’’ìv;¨ªªeü9t©°°�ÒÒRbbbPUì!Z Ä4EÕ„QªfÅhe�ï½HES ( �¦ï?Íkñ¦È€[óÆqÜªê Æ(ŠŠæñdPT ÿ�Í,Ï7cRuZµjE`` {öìÑÿXhÈrŸ¸¸8yä~øazöìÉ AƒüÖ!ÄÅ))) «ÕJûöíõtã>}ú°uëÖb:uêD||<3gÎ$!!�©S§rýõ×`6›6lß|ó ½{÷&))‰TëvÕ9yò$�‡;B–Ÿ½ÒLwåßú EEEz ¦S§NU2ÒÓÓ)**Òƒ8•—¹\® Åk­V+W_}5'Nœ¨vß­[·ÆjµV»¯ê¤§§ãv»+ìã|Þè^sÍ5U^ËÏÏç믿æÐ¡C’––†Ãá¨w›�=þ^½z5èZ !ÄåîôéÓWÀDFFêÁ—òŒF#F£‘   "##ÉÍÍ­�ÿdÆ€7;&;;›V­Zù¥=!. 6o FUPTPTÅûU VT *ªQA1ªh#Œ¨Íh@3PŒF“L0QŒFT£Å`@ 0y—�`4¢ÁdD5PM“Umš@LmŒF#‰‰‰¼þúë}šˆˆõ´öº–WnëÇäÑGeùòåR!]ˆKTaa!{öìá�wÞчà€7kbܸq}šØØX† Â’%K8~ü8ÉÉÉ<þøãõÚ¼Åy}®¸â ‚‚‚عs'7Þxãy}ÍÚ´iƒÇãáÈ‘#U²JÚµk@rr²~n<‡fÚ´i~ÙÛ¶mõ}\wÝuÕ®cµZ9~üx…ëSWàæÈ‘#äççW˜-ïèÑ£deeUX¯ü¹®Ì_Ç_ÛµBáÍà,,,Ôƒ0±±±„……5¸ß6§OŸÆ`04É0%«ÕªÏä*ÄÅL1MDñ Mò KR pðÿVYÏSpçñÏoªž@S½1 PTomƒ·.Làõ÷¢†VCïØÿ*𢠍*¨î&šôÈ#�Ô¹Ž¢(̘1£Âøÿ†,_¹re…u+ÿ�$„¸ôlÛ¶�˜˜˜ AðÖWéÛ·/Û¶mãúë¯'<<œôôtý�[åç>ìØ±ƒ�ÊÁƒ±Z­„‡‡Þ¬‰„„–.]ʵ×^Kppp½¶kÕªŸ|ò ™™™„‡‡cµZ™;w.Ë—/§U«VÄÇÇsæÌrrrªNÔPaaaŒ9’gžy†§žzŠ˜˜8@||<���L�:•§Ÿ~š'žx‚¸¸8Þxã "##8p`£÷ ÈäÉ“ùÛßþÆã�?N«V­xë­·*¬Ó§O>ûì3† †ÇãáÉ'Ÿ¬5€ɹsçøç?ÿÉØ±cÙ¿?à:äSݹ®Ü·Æ]×Z!„WAA�ž�z^AŸ°°0Àù w­MAA�bD‹ C“š’¢xϰê Ê@ñÁeä½~¹o¶%wu;Î~< 0z‡iFÕ;üȨ‚Ñ€f4x‡0 Þõ  >OþëÝÉ_Õ�ü׮ı¹wwe×£Õ`j–¡IBq>ÊÏ–TÙˆ#ؾ};�‡Ù³g³qãF}ZûÊÏ} Ù¶m·Þz+£G�fýúõ<óÌ3†¬Œ;–}ûöUØo]ÛMš4‰k®¹†ÄÄD~øan¿ývn»í6–-[ƈ#X¸p!?þø£ßÎÍ_þòºvíÊ‚ ˜8q"ï¾û.gÏž¼³- <˜û￟ßüæ7²|ùr¿}ºðàƒÏ}÷ÝÇ�wÞ©¿÷½yþÃþ@LL ‰‰‰ÜÿýŒ3¦Æ:b>;vdÑ¢E¼öÚkL›6�;v0räÈ ëTw®+kÌñ×çgD!.w‡ƒââb=Õè6£¢¢p»Ý¦¸ö‡Ã!3à‰Áߩק½šæªn’gµÜk•¿|Ë}Ï}� •+}9sæÌ^þ‡ÈÍÍå§£GéÕ«;ãF%òÛÁgY0´Ð›SÖÛˆ;Oãøþ9нXV3F-뽊Vv¨Š¢z«ô*e‡¥•¾VÖˆïkš†¯.¯¥ßÝXúßCîÊî(nïX~Å£ñþ~#/ìfó¶8|8…+»u“éÝÄe!??¿Þ3¯ˆó㻇úÞ˜¹\. õ¡,-Á©S§˜9s&[·nÕ3bDÝrrr˜0aß~û­-„â———G^^.—‹ÐÐPâââüÒ®Íf£  £ÑX¡€¯?„……�wvcZZ!!!�F ƒþ¡ƒ?û'ª nÀU黆÷¯àò�µr�)÷¼üå–CÅ9‹+¿VùqMüD�¡IMEQ~­ã› @UÁ ¢¨ šª€bðΊ¤”‹))Þ�JhJÙäJ¿b4¥lÚjMAÅ;{’RvƒP�ï4Ø.MÑ$#F!j±cÇ®¿þz Â4PJJ mÛ¶• ŒB\â4MÃápèEÛýùû288˜üü|ïÈ~žEI2bDK �˜¦â›5IToàÅùÓ?p�Þí�%IQ@õæU½)>ª/æ× ŒŠ·¯¦)(šâ]¥,¨i àÊ:€rôð½BEñxP›húj!„¸lÞ¼™›o¾¹¹»qÑ;qâ'Ož¤ÿþäää°bÅ æÌ™ÓÜÝBq8�N½H¯Åbñ[»‹·Û�Á`ðkÁ^¨½Ð» Ä4• �Í` hߟPTŠA¥lNë²âº¾QT Þ@ J¹aI€âQ»¥”åÉx4<ІûÌ!\§“Q 4EEU}µúkðÅP¬Qʾ `0¢ª4Õà�mÉ ¢(ƒÅ ¢)ÔØ~Xâ—zŒ¨ªÅ`À`�Ë+„B!„8?f³Ù›i¯(äççû­Ýüü|½]3›Í~oS“¿Ô›ˆ¢‚fðÖƒQUÅ bê0cÌ 0¨¨Õ;Ë‘A)  ¨(ªw¨’¢þpQË–©ªÁ›=£P †²3Tƒc«xŒ�&£¨FTƒÍP®ÍehÕªU~kËívóÖ[o5j›úöÇŸýnN—Êq!„B\ÎEÁjµê›Í†ËÕøŒ{—Ë…ÍfÓÛõw0Æjµúµ=!š‚bšˆ¢xÇ'*Œo±]ßå×aJ¾Y”TƒŠbð]¼Y2¾Ù•ï¶ŠŠbP¼Ù0ê¯Y1Þv½m{×7 ªF01¨—g F!„BÑx‹«ÕŠªª 222ÝfFF†² Mü„±X,’#Z Ä4_‘^¥¬NŒâ ЍŠ7 Æ`Q½xQ½{µÜð$¼�¥,†_3a´²™—TÅ ·­)FƒQ¯G£H æ’·gÏ¿¦‰ ќΞ=˺uëxûí·9yò$§N�¢´´€¿ÿýïÍÜ»¦s)›Bˆ–MQÂÂÂ0  233ÉÉÉ9ïörrrÈÌÌÔÛówFLhh¨ßÚ¢)I±Þ&â�É[¨WSÊ,@@—; èr§¾žVœ†}O"JÙŒI eÓYƒwF%ÊfW*›ÊMÁœðJ`ë*ûT ðxªªðku_q):}ú4]ºtiînáß}÷W]u}úôÁív³fÍ&L˜@ëÖUïwB!„hZ¾I`` aaaäææb2™HII¡{÷îDEE5¨½œœRRR°X,�FTUÕ³büŒ ‘aI¢Å�@LS)‚äÍpñfÆ8O¼å�^¥,R£ �* Ò”\(»iª>k’¢•eÇ(Þí\Ç?D l÷ë¾|±¥l¸šwŠkUÅ;ý’ÿäää°k×.Š‹‹±Z­Œ3†   ²³³Ù½{7v»‹ÅBBB111¼ùæ›têÔ‰Ó§OpÝu×qüøqNŸ>�ÑhdĈÄÆÆVØOqq1ü1·Þz«¾ß�;w2}útÖ¬YC§N�ÈÌÌDÓ4† B»ví¨¬¦~ÙívvìØA^^n·›îÝ»3pà@l6»wïÆét¦"�––ÆÞ½{)))!""‚#FXë6õéxg¾Úºu+gΜÁh42tèPâââÐ4�={öpâÄ TU¥M›6$$$pèÐ!l6Ÿ~ú);vdüøñ5öoݺutíÚ•”” @·nÝ*ô«¶óYS›5½îãt:ùâ‹/èß¿?;v¬ß˜¸¬åææÒ·o_ ·ß~{³ô#))‰Þ½{Ù,ûo¬Æô¿¥»BÿSU•èèhJJJp»Ýðã�?Ò¦MÚ¶m[ç”Ö.—‹´´4ÒÓÓ1›Í�F¿M²X,ò»K´(ˆi"JÙ¬HZY¡^ç//Z¤êC�¥ì‹²`Œ¢¢i*ª¢êSWkxƒ6JÙH2wÆï>P(Hr‚ IDAT›µMÓ¼³+yT4Õã]ÛÏC“\._ý5&L ::‡Ã�ÙlÆét²qãF&MšDdd$'OždÓ¦MÌš5 ƒÁ€Ëå¢ÿþ„……qäȶnÝÊìÙ³ á?ÿù»wïæ¦›njP_½zõbذadee±aÃn¹åôujë—Õj%!!�ÐÐPJJJøøã�éÔ©lÞ¼™I“&Ejj*§N�¼Á¡íÛ·3uêTBCCINNfïÞ½ :´ÆmÊ«ë<ôë×�¨¨(ÒÒÒØ¼y3³fÍÂf³‘••ŬY³PE/’Ö·o_Nž<É Aƒˆ��­±£F�¢°°�ÐÐPn¹å–²]ýΧÛí®¶ÍAƒÕ¸¯ò?+W_}µaD½išÖ$³'4”Íf«¬lIÓÿ–~ìB!üË÷{YUUýÂÂÂBÀ[ëåÔ©S´k׎¨¨(õ ŒË墨¨ˆœœRSS1�˜Íf0™L1�ýÝo±Xô6…h)$ÓTPŒ )Š7£–eÁ¨ŠwÞ@Œ†7[F£,ð‚ŠŠw˜’wꥲ”/PCY=ͻշ34@CQ54OY¬Gño ›ÍFpp0ÑÑÑ€÷¦�••EXX˜…îСßÿ=¹¹¹ÄÄÄècKºvíÊÞ½{  K—.$''7¸/Š¢èýhÕª¡¡¡dggÓ¦M}�ºúår¹8xð çÎ�£¨¨»ÝNII ááázªeëÖ­õàŽÍf£¨¨ˆ]»vPZZŠÛíÆf³Õ¸MyuõÐÛhÛ¶-ááádggŽÝng×®]tìØ‘¶mÛV{NjêŸO�=|>�Ng�Ç\Û¾6lØ@\\œüA'ê-))‰¬¬,Þ{ï=¢¢¢¸õÖ[Y»v-7Ýt“~ÿð9uêIII”””ÅØ±c $))‰_~ùƒÁ@»ví5j_~ù%;v¤wïÞ$''STTÄàÁƒ«]ÿÀ�dddðþûïÓ¥K¦L™Ríþ‚‚‚X±b]»vÅf³0xð`~þùg²²²0 Œ7ޏ¸8Ž?Ζ-[ªsBB={öÄãñ°eË222ðx<Œ=šöíÛÞûÆÎ�;õ,ºQ£FѪU+4M«wÿ«SÝ19r¤Ê¶ÙÙÙìØ±»ÝN`` “&M"((ÈŸ—^!D  ( F£‘Ö­[“��Mnn.ªªRZZJFF©©©x<3ñ}~Íf3&“ £Ñ¨÷b+$$D2aD‹$�˜&â-ïR6,Iñ_|3"¡G~½ÁE¯ ãФá ÈüúE�¡Â°&oÆLÙþ Í[÷WSðs†ÒÒR=øRž/E±òºÕÝ\+¿VÛ ¸òͼ½Êú5õ¯º¶+«é|ÖÔfzzz�ûo�éèÑ£\{íµ˜L¦Z÷-À°aÃHOOg̘1µ~ªUTTĦM›˜9s&aaaìÛ·�]»vѽ{w233™?~…̱«®ºŠC‡é�˜””Æ�ÇÉ“'«]?>>žcÇŽ1lØ0âââjÜßøñãq¹\ 0€ˆˆþûßÿ²aÃæÏŸOXXÉÉÉìܹ“ÄÄD:uêÄÂ… k=þ~ýú1vìXRRRø×¿þÅüùóq:�|þùçL›6�èèhŽ;Æ_|Á¼yóHKK«WÿrÇ�_aÛÒÒR>ÿüs¦L™¢gÝU÷;@!Ä¥­|V @ll,V«•¼¼<ìv;.— ·Û�ÇãÑßS*Š¢¿Ÿô^|ß}EzË·ÝP‹…ÐÐP© #Z,™5©©ø†|3!ýš£©e™1eY2ŠoJkT4ßP%=hóëÐ%¥l†%�rS\ã�UI){NÙÔÖ(T?§øÇÆÆb³ÙÈË˼�MÓˆ‹‹#++K¯“™™‰Çã!""¢Aí{<:DII ‹…ÒÒRý“f›Í¦§Aú=zðÖ•°ÛízF‡o8TmýÊËËÃl6£gx âââ°ÙldggpæÌœN§~üœ8qð/JKKkݦ¾ýñµç[–��MQQÑÑÑ8�NJJJèܹ3#FŒ ??_oßb±è祦þÕu®k;Ÿ5µY×¾úôéÃW\Á–-[j ¨ ÑPØív¶oßÎúõë9qâ¹¹¹DDDpîÜ9¶oßÎÉ“'õÀl‡ÈÉÉÁápPPP@ddd�ë×wà}CêûÿÛ­[7Ìf³ž½Ó­[7Ξ=[¯cò�½÷mW>å;""B_Ö¹sg‚ƒƒÉÉÉ©wÿóòòxï½÷ô¯ãÇ�×zLåeff¬×ð²Z­ÅÐ1!„žo‘/¸JÛ¶mi×®±±±„‡‡L`` V«Uÿ²X, b|mÕ÷wŠ¢( , aaaÄÅÅѪU+ ˆM2büDUUÅZ·‰cÅg6V|V~ p—}]8mÚ\€£ÄÑèô¿   † Æ–-[0™LX,†N`` £G�fçÎ�¸Ýn‚ƒƒ™0aBƒ÷çp8ø÷¿ÿMÛ¶m‰ŽŽføðálÙ²«ÕJxxx…B°à-"ûý÷ßc6›?~¼>&µwïÞ¬_¿ž &ÔØ¯N�:‘ššÊûï¿�Åb!..UUõÔÿmÛ¶¡ª*±±±`2™¸á†øöÛo9xð &“‰Þ½{Ó¹sç·©oÀ°9pàX,ý˜²²²Ø¿?v»�ÇC||D/,,¬Úõ+¿)¬måU„”^×ФòÊ¿1õx‹Å÷LPP�ž S>#Ƹñ}/_œWûâr'�?1�dçœÁårñÔÓ‹Ù¾í[Ž’º7lBV«…‘£†àr¹ÈÎ>SgEóúèܹsµØ·mÛ–3fT»Mù”|ƒÁÀüùóõç‹…¹sçÞ©ñ|�Á[O¦k×®Õ¶©(Š^¶²0`À‚ƒƒ«í—ÉdbôèÑÕnß¾}{½>CeÑÑÑL�:µAÛÔ§? ,¨öõV­Z1yòä—Ý|óÍuö¯ò°ˆÊ纶óYS›uíKQ&L˜Pm›B4”ªªzfÙÙ³g9vì�;wFÓ4\.�—ËÅ•W^IÇŽYµj•ž]׫W/víÚ…ÃáÐfKJJj\ßjµRPP@\\\�ûkÈ�»ú MªŽ/«Ìf³Gzz:š¦UïþW§¶cª|ì[¶l!77—ÈÈHJKK1�òæY!.cŠ¢èÅõ}Á_¦òP÷Ê™/„âWˆñ“ÿŸ½û�²J?þ�’d’�Þ $AB7C +¸ˆ¨¬¸ÐUq-«»Êªûê¾^«¿]ѵ7,»‚¢è/ R)Y:¡�ôƤ'¤g23Ïï�˜gÓ ™àþ\Ε§žsŸÆ<÷œboo�³s.\L 4¤?ó4�ã»)ŠBee%.\¤O—vÍc"„½ÑÈ‘#Y³f wÜq³fÍb÷îÝ}8pàeeeX,bbbÔùL¼½½)++k0–¼°°°Å룢¢Ø½{7§OŸæ®»îj¶¾ððð.o³££#·Ýv;vìP{ÑÍœ9­VÛ¡ø÷N´³³k±M�ï�2e ?üðƒš¤™2eŠLÖ+„×¹ÆÏ8uûÍ%bZÛâzfë í)OÓÆvýcÚzÇ¿êÎ×í×mëmëýtÉÏÏ?ØøƒÂRRRøùÜ9<=Ý0�6/ÿJPXx™Á‘‘„††öt86³bÅŠ+ú†Y4ïZ{?‹‹‹éß¿O‡qM«û µZ­X,Ìf3¥¥¥-®êÕÓ6oÞLDDD‹½ì„BÑ9m%b®™™™¸¸¸4YÙéjlËÕÄÞÞ>(¥vs£Ÿ `m´­ÔÛ¦Þ~ýõÎSï˜Ò̱ÆÛ-±YAzÄØPhh(EEEäææ`U4(JÏNRªÑh)*.Á? àšJÂ@Ó¡6¢säýײêêj233™6mZO‡"„B\³$Y!DûI"ÆÆn¼ñF (..ÆbéÞ‰yÓét¸»»ãååÕ£q!DO:þ<¡¡¡-®,$„B!Dw’DLðòò’ä‡Bô#FŒèé„B!„Pun=c!„B!„BÑn’ˆB!„B!„è&’ˆB!„B!„è&’ˆB!„B!„è&’ˆB!„B!„è&’ˆB!„B!„è&’ˆB!„B!„è&úž@!ĵ£°°°§CB!„¢W“DŒB›ñôôìé„B!®HEEEO‡ ®24I!„B!„¢›H"F!„B!„¢›H"F!„B!„¢›H"F!„B!„¢›H"æ: ( ‹EQz:!„B!„âº&«&]#EAQ¬V«úR“ÉDFFDGGãíí�F£éép…B!„Bˆë’$b®"u‰–ú —ºÞ.¤¦¦’’’ÂÅ‹ILL$++‹ŒŒ *++øøã�¹ýöÛ±··ïá–!„B!„×'IÄôRV«³Ù¬&[Ìf3¹¹¹$%%‘””DJJ ©©©ddd�••¥&[ZsñâE,K7D/„B!„BˆæH"¦ Y,,‹šLÑh4hµZt::�®Åûjjj8tè[¶l!%%…ôôt²²²(++ëp ööö˜L&RSS1›ÍWÜ!„B!„BtŽ$bº€ÙlæòåËìß¿ŸÝ»w“••ÅåË—quu%((ˆØØXÆ�‡››vvvÍÞ¿ÿ~V¬XÑ®úœ�� '<<œ°°0ÂÃɈˆ <<œ¤¤$ÆŽ @ZZšôˆB!„B!z�$blHQ øúë¯ùè£�ÈÍÍmöºU«VáííÍÃ?Ìüùó›L «Óéðöönp�½½=}ûöeÀ€DFF2dÈ À€ A«m~¬úÇ�F£ôˆB!„B!z�,_m#V«•ÄÄD~÷»ßñòË/·˜„©“ŸŸÏ+¯¼Âܹs9{ölƒž*:�ް°0uĈTVV’””ÄöíÛyûí·y衇˜2e  h1 àíí�‡‡¹¹¹ê0%!„è­>Ltt4Ï?ÿ|“s .dÆ -î÷&V«•åË—3yòdfÏžMrr2ü1ñññê5½9~!„BÑ5$cŠ¢�˜˜ÈÂ… Ù»w¯z<**Š·Þz‹ýû÷“˜˜È�x÷Ýw=z´zÍÉ“'Y´h (ŠÔ&bú÷ï¯[JMMm5ÙÒ–º¤NMM F£±SÓ^yå¦L™Â”)S˜>}:<ðëÖ­Ãjµª×<úè£lÙ²åŠëhɃ>È7ß|cór…½ËÖ­[:t({÷“Ç6l >>ž5kÖðÉ'ŸÌŽ;8wî\O‡&„B!z� M²�ÂÂBž{î9prrâÃ?ä¾ûîk0ähàÀ�ÄÄÄðØc�ñõ×_óÐCQVVFZZÏ<ó Ÿ}ö¾¾¾ôéÓoooŒF#—/_&77W=×Q9r¨]9iذa­NÜ–™3gòàƒRUUE||<ï¿ÿ>•••ÌŸ?ÿŠËl�±cÇ6è)$„¸öÔÔÔ°k×.Þÿ}{ì18@lllO‡uEÒÓÓ‰ŒŒl0Ôô»ï¾ëÁˆ„BÛ:{ÉDÜÅ*Nf˜H-¨¡¸ÂŠU±e Z ¸;éñ²cD?{&FhoËJ„èvÒ#¦“ª««Ùºu+qqq888°mÛ6.\Ø ÓØÜ¹sùé§ŸpttààÁƒlÚ´‰ªª* ¶WL@@€z}BBÂÇ®n'%%uzž{{{œ��ñòòbÚ´iÜÿý¬[·®Se¶Ç’%KˆŽŽîòz„=çÀ�¸¹¹É„ عsç—5mÚ4>¬îÿüóÏŒ7NÝß¿? .düøñÜyç�¼÷Þ{깚šÞ~ûmn¿ývn½õV^yå***Ôó .äÇä‰'ž 66–C‡5¨ûÕW_eÕªU|ÿý÷Ü|óÍÌ›7O½oÓ¦M-ÆÜV½­Å,„Bt—}‰U<²*ŸÅÿÊã_ûJ9–^Mayg“0JíK©{YAQ°Z ËÌK«â_{KXü¯\Y•ϾÄ*µFˆî'‰˜N*++ãÃ?T÷ÿñ�0~üøvÝ;zôhþùϪû}ô¥¥¥@m"&((H=g«DLjjªÍWN6l—/_¦²²R=vöìYþøÇ?rÇwððÃsæÌþö·¿ñúë¯7¸ÿ›o¾áÅ_àÈ‘#<úè£Ì˜1ƒ… òÙgŸ©×57äiíÚµ,Y²„»îº‹^x�ììì6ËBô^Û¶mcÊ”)Lš4‰={öPSScózJJJxæ™g¸ãŽ;ؼy3o¼ñ·Ür‹z~ùòådee±råJ¾úê+²²²x÷Ýw”ñüóÏË'Ÿ|ˆ#šœ»ï¾û˜9s&‡bõêÕ튫µzÛŠY!„èßRÌSk 8–^m£ë/€¢ (VÅRûÓúË«Þ1…ciU<õM>ßRd£„è^24©, ©©©\¼x€   –.]Ú¡2|ðA–/_Nrr2)))\¼xOOOôz=ÁÁÁêu¶JÄdddØ<SPP€———Ú»çòåËlݺ•wß}—€€þýïóòË/³zõjbccyç�wPEí1´ÿ~fÍšEii)/½ôK—.eÒ¤IP]Ýòüš5kعs'þóŸñôôäÔ©S¸»»w¸!DïPYYI\\Ÿ|ò cÆŒ¡¦¦†#GŽ0vìX›Ö•——GMM ãÇ�ÇÕÕWWWõ\yy9ëׯgÓ¦MxzzðÈ#�°lÙ2–-[¦^7kÖ,fÏžm³˜Úª·µ˜…Bˆ®VZeå™ï m˜€�Ú$ (ü·Ìí#]˜áHd€>.µÓ)ä•Z8g¬æ?+Ùt¢4ZÐhXw´œÔ|3ËïñÂÅ } ÄÕC1�`2™Ø·oŸ:Éî]wÝ…½}ÇÆ+êõzî¾ûnµ—Ⱦ}û¸ñÆÑét 0@½®3‰˜ˆˆuûÒ¥K6[ÂÚb±�’’ÂçŸÎ=÷Ü£wssãÞ{ïeðàÁüö·¿eÓ¦Mdff2zôh*++9þ<ƒ¦¨¨ˆ¤¤$ÆŒCnn.f³™›o¾\\\Z­{õêÕüýïWÛW÷Ípvvv»ËBôqqq8::¬ö°1b;vì°y"&44”èèhæÌ™Ã„ ˜5k–:‘zZZV«•x@M›ÍfÊËË”1|øp›ÆÔV½­Å,„Btµ®IÂ(µÏRŠ•ÛG¸ðð$wüÝšÎeéï¦Ãß͉[npâáXw>Þ]̦“¥(-ÇÒªxæÛ>ZècÃØ„èZ’ˆé«ÕJZZšº¥¿”׿/==‹Å‚ƒƒCƒ‰iëzÝ\ 777|||ÈËË#//¯Á¢+±víZÖ®]‹F£Áßߟٳg3kÖ¬×Ô­øàïï�Á` ²²ÆŒÃÁƒøàŽ=Ê÷ßÏ3Ï� 6°yófV­ZÅ�wÞÙêÄÄ@ƒó±±±aoGØÛÛÃ{ï½ÇðáÃqvvj¿ß¶mùùùTWWsòäI C³Rººº2~üxÞ}÷]222¨¨¨àÀ�TVVv¨!DïPµ¤Æ&MšÄ®]»°Z­Ì›7�­[·òÌ3Ï4Ù¯ïÉ'ŸÄÇLJ{ï½—?ýéOL™2¥ÁçÍÎ�;Y°`“'OfýúõüãÿPçùZ²d ÷ß?¯¿þ:“&M⡇âüùó6owãø[«·­˜…B[;{Édû!IÔÎ £X-<<ɳÓ%><ÉÅjÅÊñô*ÎdÉ"¢÷“9b:¡.¡`oo�ÉdbË–-¤§§7Xí¨-F£‘ï¿ÿ¨M¼Œ?^ޤ×ëéÛ·/GŽj1±±±WkW/aÝQ“&MâÅ_l°IYY™ºbJEEýúõ㥗^jñ!ã�ü#|ðO=õ555„……1`À¬Vk‡ÊBô¼>ø ÅsóæÍcÞ¼yÄÄİqãFõ\ãýú<==yûí·[´hP»ÊÝ[o½Õb��† °`Á‚fϯ\¹²Å{ë<ùä“mÞ×8þÖêm+f!„ÂÖâ.VÙ¶À_†$)Š•™#]›�˜·£üÝtÌéÊ÷'Ë@Ñw±Š¡A6Vˆ®#‰˜NÐh4„††Å�¨®®æÉ'ŸdݺumΙRç©§žRWÄ9r$TïÕét ’:™°×b±�––FBB ìÚµK=wþüyL&S»Ëªï…^hóšæ¨ê’Mu‚ƒƒÑëõ VB à•W^iw¹... 9õµVŽB!„¢m'3®ì™¡yÿí ƒÕ„AW6¿fs& êÃ÷Ç/ƒFËÉŒjEi÷ó˜=A1�äêêÊ¢E‹ˆ��§¦¦†õë×óôÓOóÆo¨s½4GQž{î9Ö¬YÔ&]î¿ÿþcýõz=¡¡¡ê~ã¡IŠ¢�™™©&[Μ9éS§HJJ";;»Å^/III¤¤¤àîînÓUH:bß¾}Œ5J& „B!„è]R jlWXݽ¿ôˆ‰ ´]¯•È@ÅŠFQHÍ·eòHˆ®!‰˜NÒétüêW¿bΜ9|õÕW¼õÖ[œ>}š7ß|“aÆ5¹ççŸæé§ŸfëÖ­ê±Ù³g3yòdEÁd2aµZ±X,ôë×O½æðáÃ<ýôÓœ:uŠ„„ŒF£:ñdG(ŠÂæÍ›‰ŒŒÄÉÉé ZÝy»wïfæÌ™=R·B!„¢mÅÖ¶/ê +(V|\l÷…°�‹®vÞ¬]³¶&‰ððð`éÒ¥²eË~úé'†Î�7ÞȘ1cðòò¢°°�ƒrôèÑ+|Lš4‰»îº‹“'O’œœLrr2iii¤§§“™™©^wéÒ%Þ|óÍvÅäååExx8„‡‡Nzz:Ï>û,P;<©3+'uFVVIIIMVKB!„B\ËþÛ#Ææ%ÿÒ#š$z=IÄØÈ AƒX¶l~~~¬Y³†ÊÊÚ5ì�;ƱcÇš½G§ÓáêêÊ‘#Gؽ{w‡ëtss#,,LM´ÔOºxz6œ�¼¦¦¦A£ÑØcöñã�?öHÝB!„BˆöqwÒRXn«¤‰Ò`3¯ÔŒ¿›mGóJÍjñ0°èý$c&“ ‹ÅBHHóçÏÇÃÃíÛ·“˜˜HUUË3�[,ŠŠŠZ-ÛÉÉIM®„‡‡FDDøúú6)/--�#GŽ���ÀÅ‹ÕùcÒÒÒz¬ŒB!„âêâeGay×,}îRµÍ1ç.ý7Æþ^v6)Sˆ®$‰˜NP£ÑÈŠ+8pàäçç7vÔ 0 A�–ºWß¾}›Ô™™™É™3gÔ$K]Ò%99¹]«!i4&OžŒ££c‡â`X’m IDATB!„B\?Fô³çXº­1š›{~¾Ì-ƒm³pÇžŸ/«Åïgo“2…èJ’ˆé„’’þô§?±}ûö6¯Õëõ„„„4BNppp“Õ‹rrr¸xñ"?þøcƒ„KBB‚:ì©#\\\ðññ! €˜˜æÏŸ�Á`èp9B!„BˆëÃÄÿÚWjÃ5 Ñ ÑhÙx8›¥“};Ý+&û²™�‡³ÑÚ9‚FÃăÌ#z=IÄtBEE;vìP÷µZ-ýúõk�d©Kº„††bg×°›\AA ìÝ»WF”˜˜HBB%%%ŽÇÉÉ |}}ñ÷÷ÇßߟÀÀ@ñðð OŸ>899Ðd!„B!„¨oH =7;ذW hТh´ ÑñáŽlþwvß¶ojŇ;²A£�–QÁŽ ±á²ØBtIÄt‚¢(èõzjjjèÓ§ùùù884ü‡_RRBBBk×®m2oKaaa‡ë4 x{{ããヿ¿?j²ÅÓÓSM¶8;;ãä䤾ôzù£Bôn—/_æ‡~Àd2ñ«_ý �FC@@vvv¼óÎ;<ñÄ=b—¸–Û&„âêwߘ>¶IÄh@ƒå—1­ž ‡sˆ ræÞ�+*rÍÁ"6ÎA«7 ÑhY0ÆEzÈ«‚<�w‚½½=ÞÞÞ�FÊÊÊøæ›o0� æmÉÉÉép¹�¦Á<3Z­–»ï¾›ñãÇãçç§&['\÷¸í³bÅ zè¡N_Ó•õ q=8tèC† aĈX,¾øâ ¦OŸN```O‡&„B\·Æ…¸ûFgÖ+ïdI¿$H4ZÐêÐèth=ÿomÞádÌšƒEü¿µ hìÐètÜy£+ãÂÑh4’Œ½ž$b:A¯×Ó·o_ŒF#‹-êнžžžøúúâç燿¿?žžžìÛ·O]îº.!cµZ‰‹‹céÒ¥ :­V–d»Ú|ùå—X­V4 :�ŽÁƒ3jÔ(›ÖQYYÉwß}Ço~󜜜lZ¶Ý¡°°�‘#G ÓéX²dI�ÄÇСCe§Bñ‹?ßæNj¾¹ó=c~éS›ŒÑ£ÕZ±ê¬¼ºö"ç2Xzk`›sÆd_6óáöK¬?dD«³G«µcTg–ýÚSž“ÄUC1�àääÄÔ©S‰��ov¥$­V‹‡‡¾¾¾øúú %òóóÃÕÕUíÕ¢Ó騱cÇ�Wï]¿~=Ï>û,çÏŸ'77—_|‘+V4Y¶Z\îºë.\\\(--å‡~ÀÉɉAƒÙ¬|ƒÁÀĉe5,qÕR¥W|ƒ•��MDDDO‡!„Bô*Ëïñä™ï ;™Œùo¯�V:;4(h5°áP6ëdpgL_b‡xäˆ�Kíãj^©™sY•ì9[Èúƒ™h´vhõöhtöŒ éÃ?îñA«ÕJoqÕ�DL'ØÛÛsï½÷RYYÉáÇÑh4øùù©s¶àââÒ`øPݶÁðßÙ¼­V+§N�âõ×_W:Ï?ÿ<3gÎ$$$„›o¾™ÊÊJöíÛÇgŸ}Æc�=†‹‹KO6]t‚‹‹ Ç'##æ‰�FCHHˆÍÊ¢;ÅÅÅ‘““ÃW_}…—— ,`åÊ•Üyç�¸¹¹5¸6==�¸¸8ª««ñòòâÖ[oÅÉɉ¸¸8’’’Ðétôë×�[n¹…M›6ÂСC8~ü8Œ;¶Ùëããã¹téß|ó dæÌ™ÍÖçììÌ{ï½GXXÙÙÙŒ;–ÄÄDrrrÐétL�:RRRš]]o„ <«ÕÊöíÛ¹téV«•É“' Ô® ·gÏÊËË1 ÜrË-øùù´»þ–Þ3ggÛ,*„âúàbÐòÑ}Þü}Kqç†)i~™°—_:Æ ¬-Xt¬?œÍúƒY(Šê¾ìþe^´:4z�­ÖŽYQn,ûµ7:�N0âª"‰˜N ࡇbÖ¬Yh4š GGÇv} äææòÜsÏQ\\ @tt4/¾ø"Æ cùòå<öØc¼ýöÛ 6Œ©S§booßu kA^^û÷ïW &L˜€��«W¯&,,Œ .póÍ7�ÑhdÿþýÔÔÔàááAnn.÷Ýw_ƒ2EáÀ�¤¦¦¢Õj b„ TVV²víZ,XÔ®2µgÏî¾ûn€Ë.//g÷îÝa±X4h111-ÆX§µûEaÇŽäçç£×ë?~<þþþ-ÆÞ½^¯N ¬( »wï&;;EQ˜0a}ûöåǤ_¿~ <€Ó§OSQQÁèÑ£[¬³þ|3ìÝ»—ÊÊJ™2e NNNW¯]mâĉdee1eÊõ3¥9lÛ¶�9sæàææÆáÇٻw/ƒ Âh4²xñb4 f³€!C†pâÄ 5sá¦N�JZZZ³×GGG“œœÌĉñ÷÷o±¾iÓ¦a6›¹ùæ›ñððàÌ™3lÞ¼™Å‹ãææÆñãÇÙ³g÷Þ{/¡¡¡mÎ5jÔ(n½õV.\¸ÀO?ýÄâÅ‹1™Llܸ‘»îº ooo’““ùþûïY´hz½¾Ýõ·Ö!„¢£þ|›; ¬:Pv…½c4 Qj'îÕêÐh�­U‹¢Ñ¡Xõ XP¬V@QïÑhkWZÒhuŒìïÌü1nLÔ­V+½aÄUG16àåå…——×Ý[ZZÊ'Ÿ|B||<}úô᫯¾j0ñîïÿ{öíÛÇ×_�Åbá…^ ,,ŒAƒuë‡�Édbë̘֭1OOOÒÒÒØ¶msçÎE§ÓQZZŠ««+óçÏG«Õb2™øñǹýöÛñòò"##ƒÔÔÔ&åfff’““Ãܹs<µKKe;::2aÂ\]]©®®fíÚµ„††âçç×$ÆúZ»j”¼¼¼ÈÌÌäÇdîܹdggw(vEQ0�œ>}š1cƨLJΤI“HLL$..Žyóæ1hРΜ9£&b™4iR»Þ/³ÙÌ–-[˜>}:ÞÞÞTUUáààpEﵽɥK—(//g×®]@íg�ÅbÁÃò²2víÚÅÀ�Õ%ýû÷ç§Ÿ~¢ªª “É€§§':�®ÙëÛ[üwø)@DDÿùÏÔÞ;9r¤]mÒjµx{{«÷mÛ¶M­ÛÃÃC=7`À>LAA~~~í®¿µ6!„Wb\˜�qaÎ^2w±Š“&R j(®°bm:cC34uÿ¡ C£­�7F£ÑÕö„±ZPP@©¶äæ¤%ØË�áý Lˆpbh_Gt:]ƒŒ$aÄÕD1=Èl6³ÿ~>øàõØûï¿ßìÜ~ø!‡"99™K—.ñÒK/ñþûï«¿ w‡œœÜÜÜÔ ,û÷ïϱcÇ(,,T¿Á¾á†Ôë³³³ñððP“T���Íöâqww§¼¼œ½{÷Bß¾}ÛŒ¥µ²µZ-f³™£G�RVVFEEååÿí>Y?ÆúÚº¯®®¾}ûâîîN^^^»c///gõêÕôéÓWWW¢££Õ•`4�úž8P}XêׯÿùϨªª¢¦¦ôz}›ufggÓ§Oõï‡Á`¸â÷ZˆÞÄÁÁ�ÀÀ@î¼óÎ&ç/^Lrr2gÏžeï޽̛7­VKDDIIITUU©ÿþÝÜÜš½¾ñ/q­ÕWŸN§kq¿­¡IõÕÿEÒjµ6ùÌ4™LÍNDØZýímƒBÑQCíxå½ôë¦e¨[ ÄjµªÛŠ¢¨çëþÿX—x©ß ¦î¼WIÄôEQHOOçùçŸW{%üæ7¿aáÂ…Í^ïææÆš5k7n&“‰�;wòÅ_ðÈ#�tÛ8‹ÅÒä¡ ¦¦F}(hüØÜCDs\\\˜;w.iii\¸p�Ç«Ã�¬Vk³÷´Vv^^{öìa„ xzzR\\¬&2Zû�îÈ}f³­VÛbì�¯wvvfÖ¬YmÎíSÿ!L«Õ2pà@RSS©®®&<<¼Õ÷«~�555jò¥¾öÆ+DoS—(õ÷÷çòåË$''3`ÀEÁl6cµZ1›Í„‡‡Š+¨®®Æ`0ÉÞ½{©ªªbÖ¬YTWW·x½££#%%%øûû·X_ý^‹miÏФæ°}ûv²³³ñ÷÷'++ EQ:ÜÓmB!ºBÝ*±õ“+u ˜Æ‹¡4îù"Iq5“õ½zHQQ¯¾ú*ééé@m/‹�?þ¸Õ{¢££ùûßÿ®îÿóŸÿdïÞ½j² «ùûû“““Cnn.P;G‹ÕjU»Æ7w}vv6yyyäçç«C¬V+'Nœ ºº“ÉDuu5 `Ò¤Ic2™0 ÔÔÔ¨QfggSZZÚfÙEEE888àããƒÅb!;;»É·Åõét:Ìfs«÷)Š¢¶;//�ŠŠ ¼½½[Œ½~û:cРA$''“œœLXX@‹uÖçëëKvv6EEE@mâHQ”vÝ+Do4räHÖ¬Y£&SâããY½z5k×®%55•ÂÂB¶mÛÆÊ•+ùòË/‰‰‰Q“‘ÞÞÞ”••áä䤮*ÖÚõQQQÄÇdzvíZt:]³õuGGGn»í6vìØÁ_|ÁÁƒ™9sf‡—æ´³³ë±6!„m©Ÿ`©KÈètºf_�‡"IF\­¤GL¨ªªbãÆ�lذ¨ý¦wÕªUêð”Öüá ..Žõë×c2™X¶lß~û-ááá]þAd0˜�NG||<%%% ¦M›†^¯'''§ÙØ+**ÔöÕµåJxzzR^^Ž‹‹‹ú�XTTÔâûUÇÙÙ™‰'²}ûvììì0 ÄÆÆRZZÚæ½Bô”¹sç6Ø¿ÿþûÕíñãÇ3~üx ¶gל9sšÜ_ד®9žžž †}´x}`` óæÍS÷}}}›­ï‰'žP·u:K—.U÷ C»{ÁÔ/àñÇW·ƒƒƒÕ Ë;SKmB!z‹¶že$é"®%¶þÛÜžò4ml×?¦­w¬ñ«î|Ý~ݶ®Ñ¶¾ÑO—üüüƒ�»ºu«ÕÊñãÇ™3g%%%üÏÿü/¿ür»Ë(**âÆoT¿Ñœ2e ï½÷ÞOÜ]ÊËËÙ¼y3÷ÜsÏUUvOÛ±c$44´§C¹jÓ¿ÿžãšV÷jµZ±X,˜ÍfJKK{å¼CÕÕÕ|ñÅ<ðÀ­öŽB!Äõ-33ôz½Ú$ ÔÕìííc€RÀ˜ýTk£m¥Þ6õö뿨wžzÇ”fŽ5Þn‰Í’24©›åææò—¿üEMÂÜtÓMüÏÿüO‡Êððð`Íš5ê);vì૯¾j0±loQ^^®Î�óóÏ?rU”Ý[˜L&.]ºÔâŠ.Bˆ¶�?žÐÐPIÂ!„Bˆ^A†&u£ÒÒRV¬X¡.U µCt~ýë_«û555”••5¹·ººšŠŠŠÇêgf_{í5†ÊĉÕ!:½Ajj*çÎ�ÀÏÏ�±cÇ^e÷ ôïß_ …è„#FôtB!„B¨dhR7©©©á§Ÿ~bñâÅj/[ áÛo¿%$$DºÏ‰ëš MêzWÓÐ$!„Bˆö�¡I=C†&‰.¡( F£‘^x¡Ë’0ŽŽŽäææòÞ{ï5Û£F!„B!„=¯÷Œa¹Æ {ì±I�FƒÁ`h2”¨îxãá(�''§f‡©Ô•„‹‹K´@!„B!„�%‰˜n ÑhðôôdöìÙMÎéõúf»ºétºf�ÛÙÙuIŒB!„B!„èz’ˆé&z½WWמC!„B!„=HæˆB!„B!„è&’ˆB!„B!„è&24I!„ÍötB!„Bôj’ˆBa3žžž=‚B!Ä©¨¨èéÄuB†& !„B!„BtIÄ!„B!„BtIÄ!„B!„BtIÄ!„B!„BtIÄ!„B!„BtIÄ!„B!„BtIÄ!„B!„BtIÄ!„B!„BtIÄô EQz:!„B!„Bt#}Op½Q³ÙLUU899áèèˆ^/B!„B!ĵNžþ»‰Õj¥ººš‚‚Nœ8Á™3g(--ÅÝÝ�Q£F1jÔ(\]]±³³ëéP…B!„BÑE$ÓÅÌf3$''sâÄ ’““±X,êùââbvíÚÅáÇ9r$7Þx#ØÛÛ£Ñhz0r!„è~V«•/¾ø‚¸¸8’““ $**Š¥K—âììÜê½ .döìÙÌš5«Kã{ã�7غu+îîî,_¾œíÛ·Ettt·Å!„B!®^’ˆéV«•ššJJJ8{ö,'Nœ //O=À„ ¸é¦›8rä?þø#ÅÅÅìÛ·�£G�ÉèÑ£ñööÆ`0HBFq]¨©©áÑG¥ªªŠGy„��’’’øøã�™;w.Ÿ~ú)¾¾¾|øá‡dffòÊ+¯tkŒ6l >>ž5kÖ ÕjquueÇŽ8::ª‰!„B!Z#‰«ªª"55•'NpáÂL&z½ž#FƒF£!))‰ï¿ÿž|òIÒÓÓùá‡ÈÍÍ娱cœ>}šððpn¾ùf‚‚‚pttìá– !D×úöÛo)..æË/¿ÄÁÁ€   bbbX²d ï¿ÿ>ÿû¿ÿÛ£1¦§§‰···zì»ï¾ëÁˆ„B!ÄÕF16T^^ή]»8xð º"’››·Þz+ýû÷gß¾}|úé§TWW7¸oíÚµDDD°xñbòòòغu+—.]âܹs\¸p�ÈÈH¦M›†‡‡‡z�ÕjÅd2¡×ëe¢_!Ä5áË/¿äñÇW“0uìííYºt)øÃøãÿÈúõëùì³Ïرcwß}7Ë–-àäÉ“lÞ¼™óçÏijÏ>ËÈ‘#�Ú7|ðÛ·o§ººšI“&ñÔSOáääÔ)Z°`›6mâäÉ“¼öÚkÜ|óÍj¯¾ú*ëÖ­`óæÍ 8�Õ«W³páBæÌ™Ãí·ßÞl»Úªwÿþý|ôÑG$''ãííÍ”)Sxì±ÇløÎ !„BˆÞDžàmHQŠ‹‹,K}ùòe¶lÙByy¹zÌ×ׇAƒÂñôô %%�sçÎsñâE^{í5î¹çn½õVÖ­[Gii)‹…Ó§O3lØ0\\\ÐétTTT�’’B||< `øðḺº¢Õvýj䯼ò »víj{ù1cÆ î¼óNµþ|�)S¦ðÛßþ¶ËãB\ÊÊÊÈËËcèС͞5jŠ¢�––ÆÂ… )//o24©¨¨ˆ�7ò¯ý‹   >úè#–-[ƦM›°³³cùòå³råJÌf3ýë_y÷ÝwÕ$ÀóÏ?ÏsÏ=Çc�=Fpppƒžþyœ��)..楗^jwÛZ«·¤¤„gžy†§žzŠ©S§’——×$Y/„B!®-’ˆ±¡>}ú0|øprss),,ÄÁÁ�êêj5 3bÄ0n»m*¡¡ýÜWRRÊûï¯ 55�µkת“ùj4 ¾¾¾øùù¡( éééìÛ·�sçΡ( ‰‰‰?~œØØXÂÃÃqrrêò9efΜɃ>HUUñññ¼ÿþûTVV2þ|ÆŽKXXX—Æ „¸¶�F€=ÿêsrrÂÕÕ•üüüËððð`áÂ… 6 €E‹±nÝ:222ðóócýúõlÚ´ OOOyä–-[Ö 3kÖ,fÏžm«fQ^^Þj½yyyÔÔÔ0~üx\]]quuµYÝB!„¢w’DŒ� 0wwwŠŠŠ¸é¦›¸|ù2çÏŸÇd21qâ¸&IWWœ�k»¨[,ìííñòòÂÏÏ�¾}ûˆF£a÷îÝìß¿³Ù¬öºQ…¼¼<¾ûî;ˆ��%((¨I×~[²··ÇÙÙggg¦M›FYY«W¯V1K–,鲺…×&²³³qqqirÞd2QVVFPPP«åØÛÛ«Û���8::RQQAZZV«•x@MV›Í潆ÞÙ¦4ÐV½¡¡¡DGG3gÎ&L˜À¬Y³=z´McB!„½‹$bº@Ý�Q£F�””„Édj°luceeµ¿”2xð`BBBð÷÷Çb±pôèQöïßßä�¡N]R&11‘””¢¢¢7nžžžÝ2\iذa\¾|™ÊÊJyôÑG™9s&·Ýv�>ú(Ó¦M#..Ž„„‚ƒƒyüñÇ4hP›çÿö·¿a0øÓŸþ¤Ö÷Í7ßpîÜ9^~ùå.o›¢{¸»»ãææÆñãÇ orþÌ™3hµÚ&Ã…ÚR—ü¨Kî|ùå—¸¹¹u>àvj«^­VË|ÀÑ£Gùþûïyæ™gˆŽŽæ�7Þè¶…B!D÷êú§ô댢(jbÄd2agg§&C¬Vk‹÷•••0hÐ &L˜@hh(•••lß¾�Ý»wS^^ŽF£ióe±X8qâëׯ'55³ÙÜåm.((ÀË˫Օ�Þ}÷]/^ÌçŸNdd$Ï>û¬ÚæÖÎÇÆÆrèСóîìß¿ŸØØØ.m“¢ûÍ™3‡•+W6I:[­VV¬XÁ½÷Þ‹Á`P�×ÔÔ´»ì€€œ��Ù³g�Íâµe½QQQüõ¯åóÏ?gÏž=äæævS„B!D÷ª©©á�wÞaúôéDGG7x-\¸�žQˆ.'=blÈjµréÒ%222P…½{÷2vìX5c6›¹tÉHrr*%%%X,V||¼ ¨öˆ©ëÅ¢Ñhpss#,,Œ‚‚*** ÅÑÑ“ÉDAA•••xxxàîîŽF£¡¬¬ŒÄÄDˆˆˆÀÏϯKWT²X,¤¤¤ðùçŸsÏ=÷´zíÓO?­N¹téR:Ä®]»˜9sf«ç§N�Jee%çÏŸgðàÁ‘””Ę1cº¬]Bˆžqß}÷±{÷n-ZÄO<Á 7Ü@FFŸ}ö%%%<ðÀêµ~~~¬[·£Ñˆ»»{«‰`¨�\|áÂ…¼ûî»øùùM~~>DFFÚ´îîîdee¡(J›õ–””°{÷nbbbpuuåèÑ£8::âîînÓ˜„BˆÞâ£�>båʕ͞;wîK—.åÃ?TçVâZ$‰*++#>>­V‹N§ãÂ… „……©=a¾øbu³ßàj4µÇ‡³³³š¸Ñëõ„‡‡“œœL~~>“&MÂ`0pòäI8€¢(±xñbüüü(**"--�àà`FŽÙ`®[Z»v-k×®E£ÑàïïÏìÙ³™5kV«÷ÔŸ@X£ÑIfff›ç3f dðàÁ8p€¨¨(uÙW!ĵÃÉɉ/¾ø‚�?þ˜�>úˆŒŒ BBBˆ‰‰áÁlð™6cÆ öíÛǽ÷ÞKTTo¾ùf›å/Y²^ýu²³³ñôôäþûï·y"fÞ¼y¼úê«$''óú믷Zoii);wîä½÷Þ£¼¼œþýûó�ü£Ë>¿…Bˆž¶yóf>ÿüós³²téR’’’˜:ujƒ{|||˜1c?ü0vvvݯ]A16äääD¿~ý°X,¤§§‰^¯§¢¢¨í†§×ëéÛ·/^^^(ŠBFFyyyjÙÙÙ·øí®Éd"))IMÜ”––’ŸŸ�··w×7ðÓ§OgéÒ¥ØÛÛ_ñ¡N§k0Ä µó±±±¬ZµŠÅ‹³ÿ~&MštEu !z?{{{üqüñV¯spph2�Jsß®ÅÅÅ©Û�† °`Á‚fËléÛ¹úž|òÉ6‰aãÆ�íª7((ˆ·Þz«Íz…BˆkEݳOGøÈËËãßÿþ7�†ßÿþ÷]šÝF16¤×뉊ŠbàÀ�œ>}šádznÝ:, z½žÙ³g3qâDu¸Pii)Š¢P^^Î[o½Eqq1;wîÄÛÛ›n¸�N×¤Žšš ËÌÌìÖå¢ëVLj¯ÂÂB6mÚ¤NÞ páÂæÎ�Û®ó£G�æµ×^#==�Ó§OóÜsÏÙ¨%B!„BˆžßîkOž<É<À¦M›$#® 2Y¯�9;;Htt4§OŸÆh4âààÀK/½Ä-·Ü¢&aª««yíµ×X¾|9îîî¼úê«c6›Ù»w/%%%MʶZ­���Ýàø™3gL|ÛÛ888páÂŽ?NII +W®¤¢¢‚‰'¶ë¼½½=111¼÷Þ{ >¼CI !„B!ÄÕmĈ Fq5“DL¨›óåĉÜqÇøúú6¸ÆÎÎGGG°³³C§Ó±dÉ4 ”””4X)j—9 "&&†°°0\\\6l_ŒÙÐ IDAT111xyyu[û:ÊÙÙ™I“&ñÎ;ï°`ÁÎ�;Ço¼¡&¥Ú:0iÒ$Ž;¦&g„B!„×�‘#G2jÔ¨žC›�¡I]Àl6“““CII öööŒ7®ÁùË—/sêÔ)–-[¦®�µËœ *++)++kv¹kGGG&MšÄÅ‹9xð QQQuK»^xá…6¯ùàƒš‹ŠŠâ/ùK‹÷´u>88½^ÏØ±cÛ¨B!„⪠ÔcúôÓO{8!lG1]Àl6“••@HHŽŽŽTUU±sçNBCC æìÙ³üôÓOÄÆÆŠF£á矦²²­V‹Á`PWOªc2™ÈÌÌdÇŽ$&&¢×ëùâ‹/ˆˆˆ`òäÉ×ô*ûöícÔ¨Q2,I!„B!ÄUM1]Àb±PXXÔ.µpâÄ 6lØ€ŸŸãÇ�gĈ¤¤¤OYY™: ¯··7ÞÞÞ –t®©©aÇŽœ;w;;;ÂÂÂðòò"77—ÔÔTV¬XAdd$‹¥É�¦kÁîÝ»™9sfO‡!„B!„BtŠ$bº@Ý1P›”5jìß¿ŸœœÖ®]Ûì½ŽŽŽÜtÓM¸ºº¢( •••\¾|™¬¬,²³³éÛ·/���øúúrþüy"##ñööÆh4röìY, —/_¦ªª ;;»Éœ«UVVIIIŒ3¦§CB\ƒÒÒÒ8uê”${ë±X,¬X±‚¥K—öt(B!®3uÑZ:Ö‘Õ–„è­$Ó´Z­:„&''¨]èž{îaÖ¬YìÞ½»I"ÆÎÎ///"##=z4&“ £ÑÈÁƒÉÌÌÄ××—   ‚ƒƒ9~ü8ÄÞÞž .п†Ž��œ={–ššF��ŸŸ_�YjnÎ˜Žœ âÇ´eHB¡ÊÊÊ¢oß¾=Æu¡¢¢‚/¿ü’ùóçËPS!„¸Nùøø�——ÇÉ“'ÕÕ�„¸ÞH"¦ ØÛÛ@zz:¥¥¥¸¸¸¨çbbbX·nþþþâííMPPýúõ£°°�øøxΜ9Cß¾}1bV«•3gÎpâÄ ìì숈ˆ 00�ììlÒÒÒØ²e ƒ&**ŠòòrJJJøæ›oÿüs Ĺsç?~<ƒ&''‡={öP^^ŽÁ`à–[nÁÏϯÅö:tˆ’’n½õV, _ý5·Ür ���\ºt‰={öP]]�‡‡©©©<ùä“Wô¾üñÇ„……‘••…¢(ÄÆÆÀ;ï¼ÃO<@^^»w寮¼'''f̘ÁÏ?ÿÌÞ½{8p “'OfõêÕ<øàƒê=;vì`îܹ;/yŸ[Ó\9�ã›9sf³í�¡WBÑyÝÝ#&33ôz=:�N]ÅV’D]ËÞÞ>(,€¹ÑO°6ÚVêmSo¿þ‹zç©wLiæXãí–Ø,‰ C“ºˆ½½=cÆŒ!33“ÂÂB>úè#–.]Ê 7ÜÔþcž1c£G�æÛo¿åÔ©STVVRYY‰��ñññ�FÑëõÔÔÔ0lØ0ôú¦l~~~ÜvÛm$&&rúôiRSSÙºu+ÞÞÞÄÆÆâííMNNÛ·oÇ`00pà@t:]·¾'BÑ’ŠŠ ¶mÛÆœ9spssãðáÃìÝ»—iÓ¦©×TWW³iÓ&fÏž�··7iii$%%µYö�HIIaâĉôíÛ—´´4Ìf3$33SMµV~Ý�777ªªªX½z5$ ³ÙÌÍ7ߌ‡‡gΜaóæÍ,^¼777Ž?Ξ={¸÷Þ{[lã Aƒ0�,^¼�FƒÙlÀ`00bÄ\]]())ÁÝÝ�%K– Óé0™Llܸ‘»îº ooo’““ùþûïY´hQ³ÿŸÔÿ礤¤�‘‘Á Aƒ TÛ~÷Ýw«mOII¹â÷½²²’aÆ1yòdŒF#ëׯgÉ’%888¨×ÔÔÔ°qãFfΜ‰¯¯/••• ¢££INNfâĉøûûSQQÑj]�ߗ޾Ï-iíïdýøZj‡BˆÎ“!IâZ%‰˜. ( f³ ıcǨªªâÍ7ß$&&†ûî»Oý%ÙÇLJßÿþ÷>|˜•+W’ŸŸÏ¦M›0 ôíÛÐh4hµZ©®®nR§^¯G¯×Æ€8sæ ?ÿü3ÉÉɬ[·Ž0lØ0ŒF#ÅÅŘÍfIÄ!z�K—.Q^^ή]»€Ú^…u«ÎÕ¿ÆËËKFT÷Ùšœœ¬V+Ó§OgÓ¦M̘1ƒC‡©½Y²²²˜8qb›åkµZÌf3‡¢´´”òòrÊÊÊÔsDDDðŸÿü777uÿÈ‘#­¶ÑÃò²2víÚÅÀ� @§Ó1zôèí2dHƒ÷ÃÃÃC�wÀ€>|˜‚‚‚{Åh4¦OŸÎ¿þõ/|}}Õ^%F£OOÏfÛÞÚûRTTÄæÍ›ÕòÇŽKhh(Z­___pss#77—~ýú©×�Fúôé£^çèèØâŸc[¿/yŸ[Òž¿“¶n‡B!®’ˆ±1‹ÅBnn.GŽáâÅ‹SÔÁƒIMMåw¿û]ƒ.ü£G�Æ`0ðþûïPUUEzzºÚ ÎÍÍ�²²2Ž9BQQQƒ2u:ƒ âÆoÄÁÁ­VËðáɈˆ >>ž„„’’’0�8;;ãáá!C“êY±b=ôP§¯B\9¹óÎ;[¼FQ”vùùù©I‰É“'óÃ?B`` V«•¢¢"5ÁÐZùu= 'OžŒ——………ÍÎÒ8Á]¿µ6.^¼˜äädΞ=ËÞ½{™7o^“nÐuÝ£ëX­Ö&ñšL¦&×5Vw�N§Sëh®¬:­½/ÌŸ?¿ÉñÆó‘iµÚ&ï�ÉdjwÒ¢µùÍ··³ïs{Ê©¯#íB!„™¬×¦ª««ùÿìÝytTež?þw-©-©J*ûJ�„%lY• �n#¨ õ´"‚"ݶã¯{¾ˆÓ=gN;=:nˆ6*"A�FífsadSH@ƒÙ÷¤Rûv¤s§²TÖªTï×9urëÞû<÷s ’T>õ<Ÿç»ï¾ÃÛo¿�o¿ý �H$6lnºé&Œ7Z­•••xþùçQZZÚ¦ý„ Ä%ÜZkÀ‚¹\.~{îÜ9„„„`üøñÈÌÌDff&Fމ‚‚‚÷U*¦OŸŽiÓ¦A*•bìØ±˜1cF� %’o½÷Þ{x÷Ýw±mÛ6äååá»ï¾Ð2|ÿÝwßívè=ѵ.66MMM¸rå €–Ÿ}‡.— §N�‚ÍfC\\ÊËËQUU¨®®GzžçMBBxàqLee%bbbÄŸ‡]õ_WWµZ�˜˜¸\.”——÷zT¡·{´Ùl°Z­5jî¸ã466Âf³u{Oqqq¨¨¨kÓ´Öc‰ˆˆÐ²²OgÉ¢Ï>û 999Ðh4ÈÏÏïöÞ»:Ö•~øP[[ £Ñ(Žñ|=ÊÊÊP__ eªRë‡ jµƒAÜv8(//Ð2R¥õXgzû:{{­¼õÓ>¾®îƒˆˆˆ¨3ã#‡ùùùصkœN'¢££ñ‹_ü&LhS°Ïl6cóæÍøñÇñ·¿ý ëÖ­kÓÏ=÷܃³gÏŠÅ �9‚n¸ƒAüöܹsˆŽŽÆøñã¡V«ÑÔÔ„sçÎy�-,, @K¡ßÄÄD&aäž{î�V«Ess3öìÙ�Fƒ´´4Ìœ9“Ÿ¦Òu/((óçÏÇáÇqüøq( Lœ8ñññ8sæ † †èèhdggã³Ï>ƒT*ETT”˜´¶Z­mÎ뉲²²6#Õjµ×þGމ«W¯â�wÞ�Z­FBBB¯1Þî1$$ÇŽƒÑh„Ëå”)S R©`2™º¼'µZ�yóæaÿþýp¹\ ANN¤R)AÀ™3g0mÚ´6mNž< �FƒÔÔTÄÇÇcÇŽHHH@xxx›{�‰‰�V«íöuéÊÕ«WqâÄ (•Jääät¨[‚9sæ`Ïž= ‚Z­Æœ9sÄÕ>Œüü|ÜsÏ=âyjµ]ÂííëìíµòÖϨQ£¼Æ×þ>ˆˆˆˆ:ÃU“|@”••áÝwß…ÉdÂØ±cñØc�uZ»Àh4b÷îÝ8tèâãã±aÆç<ùä“0›ÍP«Õ°X,X·nNŸ>�üü|¤§§ãÛo¿…T*Åüùó1qâD˜ÍfäååañâÅïÐ_uu5^yåq:1m ÄÔ¤÷Þ{óçÏÿ°¹páÊËË1gΜ>÷IÞqÕ$ÿóǪI½e4ñÉ'Ÿ`Ù²e}jÿÓO?!22Rü¾ôuÿ�d4ñÁàá‡öKßݽ.ž+# vþ|­ˆˆhháªI�ÁU“¨O, Μ9“É„ÈÈÈI˜Ó§O£¨¨W¯^Eqq1\.$ ²²²:íO­VÃl6Ãb± ""£G�Æ¥K—`4ñÐCÁétâôéÓ8zô(RRRzôɤ¯ÔÔÔà›o¾—J�1c¢¢¢yyy9r$ qË-· -- øæ›oàp8 ×ëQ]]�åË—·éS;v ÅÅÅ�J¥HHHÀŒ3`±X°sçNñÍ~]]Ž9‚{ï½¼öm2™pøða444Àår!==S¦Lñc«®Ú ‚€ýû÷£¶¶r¹Ó§OGll¬×Ø»ÓZ\h›äÙºu+†ŽŠŠ q¹ñÖâ–ÞŽ}þùçHJJ—GÏÏχÙlÆ-·ÜÒ·d¢AÌh4B¥RA.—£  ©©©}îkøðá~í?�ªªªÄå¢}áZy]:ãë׊ˆˆˆ¨;LÄø€ÅbAaa!à¿øE›$Luu5Þxã�6ç�1999;vl§ýY­Vq{üøñ�H$ˆˆˆ€Óé„ÉdBnn.Ξ=‹ÚÚZÔÔÔx]Ã×ìv;>ýôSüò—¿Dxx8®^½ŠÏ>û ¹¹¹�Édhnn†N§ÃÒ¥K!•Ja·ÛñùçŸã®»îBDDJJJP\\Ü¡ßÒÒRTUU!77·GKжÆâ­oµZ�3f@§ÓÁf³açÎ�>|8bbb:Äè©«v0yòdDDD ´´Ÿþ9rssQYYÙ«ØA@EEòóóqë­·v8nµZ1vìXÌœ9UUUØ»w/–.] …BáõXzz: ÄDLQQn»í¶n_C¢¡èòåËmêšÌš5kHõ?PRSS}š,¹V^—Îøúµ""""ê1>àr¹ÄeLÓÓÓÛ‹ŒŒÄ]w݇Ã�„„Œ5ªÓéC­ L&$ A§Wdff",,LB?lØ0\¹rE\rt TUU!44T¼^rr2Μ9ƒúúzqTÌèÑ£Åó+++¡×ëÅ‘ñññ�®¼“É„¯¾ú )))=šÚÐUß­…�OŸ> £Ñ³Ù “É$¶õŒÑSwíZ¯•˜˜ˆ°°0ÔÔÔô8v“É„¼¼<„„„@§Ó!33ñññΓH$â .111Ðét¨©©ABB‚×cIII8zô(¬V«XH²u)]¢kÍĉÅ¢æC±ÿ¡ª·¯ËP™–DDDDLÄøHk½„ö«.H¥Räääô¸ŸÖU&Z1­ý*•JŒ7N<¯5éÐÐЀúúz¸\.X,–NWßiMõwn£Ëåê�Hq8^çNvµª'­V‹ÜÜ\\½z………8qâ„8ýÈÛ’¥]õ]SSƒ#GŽ`ÆŒGcc£˜ èê5èM;§Ó ©Tê5ööç·©ãMûÚEžK¾z;&•J‘ššŠââbØl6Œ5ªËkQàpùjP( вf_ ‚€C‡‰Û@K}™öl6®^½ øþûïñþûª ï¾û.þçþ§Ã#//z½!!!ýJÆÄÆÆ¢ªª ÕÕÕZj´¸Ýn¯£/bccQYY‰šš-K˜¶&ªÜn7¾ÿþ{Øl6ØívØl6Œ1·Ýva·Û¡R©àp8Ä¥Y+++ÑÜÜÜmß P*•ˆŠŠ‚ËåBeee—«›Èd28�Î.Û ‚ ÞwMM Ìf3"##½Æîy½uñâE@}}½Xw¨»cééé¸rå ®\¹‚‘#GöúšDDDDDD408"Æ‚ƒƒ1räHœ9s‡†V«Åܹs{µ´©ÕjŇ~ˆŸ~ú 2™ QQQ¨ªªÂùóçñá‡â®»î‚F£Amm->øàX,!--M\"³³¢½‰‰DœNÓ*• YYY8r䈸Têܹs;ÔZñ<öìÙ8xð ¤R)"##ŵV«çÎ�Cbb"\.Nž< “É·Û�ÌÌL±ÎάY³ðÅ_@­V#,, �¦Û¾‡Ž’’¼ÿþûP©Tˆ��õ#dddà“O>AVV–×v2™ §N�‚Á`€J¥Bvv6är9ªªª:�Ýl6‹÷×ÙêY])--Å™3g T*Åëtw,<<&“ Z­*•ªW×#"""""¢�Ãå«}¤¬¬ ü1*++!ÂÃÃqóÍ7cÔ¨QˆŽŽGÌ-S|PWW‡êêjáâÅ‹b‘Þ#F`æÌ™Ø¿?JKK[^‰J¥R!•J‹ØØXŸõ)—ËÛm%""""""¢¡‡C+ˆˆˆˆˆˆˆˆ1DDDDDDDD„‰"""""""¢ÂD Ña"†ˆˆˆˆˆˆˆh€0CDDDDDDD4@¸2Q/X,Øl68�Î@‡BDDä7r¹J¥jµ:С]s˜ˆ!""ê—Ë…ææf&`ˆˆèºàt:át:a³Ù Õj!“ÉÑ5ƒS“ˆˆˆz€I""º9�N477: ¢k GÄxa±X`·Ûár¹ B Ã!ºîI$Èd2( ‘¥g±X˜„!"¢ë–Óé„Åbá{0"a"¦—Ë£ÑÈ7ÜDƒŒ âY»ÝŽ��‘¥c³ÙQ@Ùl6&bˆ|„S“Úa†hðs:�0��ƒ®#ü½@DD×;þ.$ò&bÆ�™LX½z5-Z„Ï>û çϟdž pã�7bÑ¢Exæ™g0yòdÀÅ‹±nÝ:ìÝ»Wl7}útœ:u EEEˆ‹‹Ãš5k�‘‘Ñ嵦M›†“'OâÊ•+HLLĺuëpþüyìÝ»UUU˜4i~ó›ß 44@ËÔÚ·Þz ‡†ÝnÇ´iÓðØc�A­VhY�ì�wÞÁÁƒáv»qóÍ7·¹ßÕ«W#''óæÍƒÓéÄ›o¾‰ãÇ�£¶¶QQQXºt)î¸ãÿ¾èDD4d�1ßÿ=V­Z…M›6A"‘àñÇGaa!RRR‘_0ã‚ ÀÐl t=¢$E„‰ˆz£ ¬m&ü[‘¸=m”¦C›ÖdÌŽU‰ÈH¸d̹sç0qâÄ6ûþøÇ?â‰'žÀ#�<‚ÄÄÄõc0ðÖ[oáå—_F\\Þyç<÷ÜsÈËËë}µ¿–Á`ÀÛo¿�W_}ÑÑÑØ´iV¯^� àÙgŸ… ظq#¶lÙ‚õë×^yå455áÕW_…ÓéÄóÏ?�7ß|k×®lÙ²gΜÁsÏ=•J…wß}×kÌr¹ ظq#”J%>ŒçŸ£G�FRRR¯^G""º>¼òÊ+X¹r%ŠŠŠ°jÕ*H$\ºt ñññx饗‘_0ã#M×É”Ÿ^x_}õ€–7Üqqq¸ãŽ;0oÞù/¾ø"RSSëׯÇ�¼Æ}÷Ýw‹Û¹¹¹Ø·o~üñG&bˆˆ¨SÑÑÑØ¼y³˜Œ€ØØXlÚ´ ñññŽŽÈ?˜ˆñA¸~¦üdggcÙ²e°Z­8{ö,¶lÙ«ÕŠû_ýîØ±•••xòÉ'Å}DAA^xáH$hµÚ^÷{óÍ7cĈýŠ�ˆKÒÅÌÏÖ$ÌK_ÔáÅÏëzÕÖ×®^½ ‡ÃÑ¡fËØ±cûÔŸÄ#øØØX¨T*X,–.¯åÙ&99`±XÄDKrr²ØGii)Ün7žxâ ±�Óé„Ùl”——Ãív·¹FwI÷¦¦&8p0�(//‡ÍfëÓýÑõA.—C©TŠÏ  E#"ò/&b|Dæ‡Ñ ƒUPP4 4 n¿ýv�F|ôÑGýNÄt¦¼¼©©©â}±dÉFDD�ð?Kc‘»©Ôë¨x~_m‡}a8yqa IDAT^\ëÏÐÚ8wî\›š-Ýz9]Ô3ÉÒ“kI:ÉByî lÚ´ :�®Ã¹N§³¥šË%N‡êŠÕjÅš5k0cÆ <ðÀˆŽŽÆ“O>ÉúdDDäU]]V­Z…+W®ˆ5aŠ‹‹±jÕ*lÞ¼� �Șˆñ™tpêõ§±cÇâ�wÞ�Õj…J¥‚ øøã�qèÐ!455aôèÑxä‘G  eêÐüùóqèÐ!â·¿ý-~úé'üío;v wÜq\.¾øâ À—_~‰¤¤$üå/é¶ÿöÚOUêm{" ¼ŒÞ_•„Ü×KÐ`j›ŒIZ_Øi�ZŠ÷V¾>Œ7*• ?ÿü3n¸áq_o3½¹–7111Ðh48vì²³³;ožŸŸ/î*Æ‹/¢©© +V¬÷]¾|555ýŠ“ˆˆ®]k×®“0›7o¬\¹ÅÅÅX»v-¶oßà‰|�‰ñG}”¡¢¡¡z½*UË;|ðNŸ>�§žz J¥ï¾û.ž}öY¼ôÒKâ'ªÿýßÿ�•+WbÙ²eˆ‹‹Ãĉa±X:LMÒh40 ø—ùq_OúïJÛQ`ŒKPbûÊÄE{?^; ‚ÜûòÏâ¾0�,`+&ýêW¿êѹãÆ�þ}ûpë­·Âívã…^€Ãáð˵¼‘ËåX¼x1Þ|óMDFFbÒ¤I¨¯¯GCCÒÒÒ Ñhpç�wâÅ_Ä3Ï<ƒèèhäååyíO¯×Ãd2a×®]˜5k¾ûî;- ""¢Î"==/½ô’8úeóæÍX»v- ;ÿ°…h¨»~³>&“J‡Ä×\.~úé'lß¾óçÏ8üãÿÀÊ•+1lØ0ÄÄÄ`íÚµ0›Í8yò¤Ø6++ wÞy'RRRÚÌíNOû÷W{" ¬ñ‰*ä=–ˆ0ÍÿMÇ„–G«@%aÊÊÊ`±X:ÔlñæÑGEdd$yälذ³fÍ‚FÓqõ'_\«+K–,ÁâÅ‹ñꫯbþüùX¿~=.^¼(_³f &Mš„?üáøío‹ÈÈHÄÆv>Ý+)) +V¬ÀÖ­[ñàƒâ믿ÆôéÓû#]»N�:…íÛ··™‚�íÛ·ãÔ©SŒŒÈøñ¿�\OS“vïÞ�Ý»wC"‘ ::999˜;w. ªª .—K\]”J%ÒÒÒPVV&îk]Ñ£·zÚ¿¿ÚQà�Ol;MÉs$Lët¤�NÂ-S…222:Ôlyíµ×:=_¯×ãOúS›}÷ß—ívíÚØ·o_�®„ýû÷·Ù—™™‰;vˆÏ% .\ˆ… v§R©Ä“O>Ùf´bWq.^¼‹/î´/""""b"Ægú;ÚD­ Gò„™�HeA|¸ÝnX­VØ,&Ô—Õ䣈û.++ =ô‚‚‚Ôæ˜Ãáè´°cgçöEû÷w|D40Æ%(±ã±¶5ctj)òKÂĤ�OÂ-KG/X°àš»ù1>"¸Ý�Ë{¶JFgÒnùÆÞ¶n·[|¸\.466 ±¡�� pKƒÐøã‘>_Ãéô¾ÚHo¨Õj¯Ãç[‡«ÿðÃ?~<Àívãòå˸ãŽ;z£³Ëãýí¿¿í‰hð— DÞc‰X—W xqIì€æmoÚ´i×䵈ˆˆˆÈ·X#Æ$ MVH¥Ò>?BãF´I¸Ýn4š`04Á`0 B¢’ûu�z£µÓ¥L}I­V#++ ›7oFQQñÖ[oA§Óu»ºGdd$.\¸€ššØl¶>÷¯ÓéP]]ÝéÊý‰�ˆŸŒö?•‚ýO¥4 CDDDDÔSã*• •6Â]N(ƒúö’J$Ò6I£±ƒ͆&¸Ü.(•j¸ƒ}®Ecs8Qi׊+ùÓÃ?ŒmÛ¶áÏþ3œN'&Nœˆû·ë6 4kÖ,œ9sëÖ­CFFžyæ™>õŸ““ƒÍ›7ãçŸÆÓO?í³øˆˆˆˆˆˆˆúË×yö¤?I7Ûžû¤ûÚ?Z�·>oÝ–µÛ–·ûª­­­=ÞÙh‰ººº„ß‘ øæë¯ðýÇ/ 51ñÑzõršÒ�‹žAôðñp»Ý0™Lhl¬GcC, ”*”J5,µWQùõÖ^õëpºP^݀˥µ˜tÏ“˜:m:tMñ¬°ßª±±ÉÉɈæúÑú3´u¥ÓéDss3™ÔÖÖ:""¢€‹ŒŒ t~UZZ ­V ¹\™Lé?ë€òï'ÿR(S4pp¶û*p·Û<¶áñÜó�ãðØ't²¯ý¶7=9§G8"Æ$ ÒG�Aq˜WKÊpª ¡Z ÂtÁˆÖ‡":B‡`u7K4‹…y-h64¡¤äg˜ŒFDEÇ@¡hÅâr:»cµ9PרŒêúf4Œ¨i4 J«FXx,ÒG�á""""""¢b"ÆG¤R)$ 4J9ä2)ÂÔ2ÈÜ.”WÕârI%$�B­ ‚6D ]°º 4*Š 1¹b·ÛÿY¦ 6<‰D‚_|2™ f³N§R©n·»Ã³ÕƒÑ‚&£Í&3,6;·µR…\��K¥Ð¨ä�H$bF—ˆˆzG.—w[LœˆˆèZæ¹â(õ¿›|D"‘@¤„>* u&bþ¹:O`µ;Po0¡¬ºv‡N§$ÜnBZ ó M¸ï¾ûAA X,X­VTÕ6⫯ÏB"‘@&“A$‡Z¥€Z„¸h=$�Ì «3:‰&§š£aˆˆúH©T2CDD×5¥²›þDÔcLÄøˆD"A�*!*™÷„‡P)ƒ RA¯ nsH*ÄU’d29222 “É`µZa±X`6›!—I0*9®×qÃdU1CDÔGjµ6›�É""º.Éår¨Õê@‡AtÍ`"Ƈú“è°Ym0 M€(TJ„†…ÃápÀh4Âb±Àd2Ái·$6""´Z-š››™Œ!"¢ëŠ\.‡V« tD×&b ‹© i0Tj5 ìv;Ìf³˜„1™LrX&ÑuK&“!,, ‹…£cˆˆèš'—Ë¡T*9†È˜ˆ$J¾?ˆ¢drd2drä2)d2äò–¯BóO�“ˆèº§V«ù¦”ˆˆˆˆúŒ‰˜A¢¾¬á^޹ÿùp `‰ïìÙ³9r$F� ·ÛÝ£6‹»víBNNkU !CƒÂ©S§ÐÔÔä—¾>ŒÉ“'cÑ¢E¸ñÆqøðá �üü|X­]¯Jõ‹_ü .Dvv6ŠŠŠPTTÔ§xÚß«Á`@TT@*íÙ·¤J¥Â”)S R©ú14(ÔÔÔÀáð}9b—˫Պ˜˜@\\¤R)\.—xNCCª««1räÈõ‚qãÆ¡¬¬¬O1µ¿W·ÛÝãL+‰D‚aÆA"‘ô)"""""" NM¢^©®®Æ‰'àp8 ÓéÚ$***pòäIØív„……aÚ´i8qââââ�––¸pá¬V+n¸á±]AAª««±gÏ 6 ·ß~;ðí·ßÂb±@¥RaÖ¬YÐh4p»Ýøæ›oPUUA0eÊÄÇÇãìÙ³0™L˜:u*\.öìÙƒ)S¦ ::ÉÉÉ8|ø0&Nœˆ¢¢"Œ3AAAZ’ Ç�ÇôéÓqåÊ•¿-ËŠ·|ûÔÕÕáĉ°X,P*•¸å–[ عs'†Ž¢¢"Üxã�°X,mî5$$uuuøÇ?þ�°°0Ü}÷ݨ¯¯÷ÚŸ§mÛ¶aùòåÝÆ@DDDDDDƒ1Ôcv»‡Â�wÞ ½^�òòr”––h©YrôèQÌ›7Z­ùùù8}ú4F�…üü|1såÊÌœ9³M¿())ÁM7Ý„ÈÈH8�N8p³gÏFxx8l6 …xþ˜1c0uêTüôÓO8~ü8î½÷^L˜0Ÿ~ú)JKKQQQ�áÇ#::0yòdìÞ½{öìADD²²²Ä¾Î�;‡äädhµÚ½‚  ºº?üð233áp8pðàAÌ™3z½%%%8tèî½÷^Èd2�Fèt:üêW¿G½xÞ+TUUaÚ´iÐëõÝö×™¾´!"""""¢ÀàÔ$걚š„……A¯×bbbÄIMM , ¾ýö[ìß¿¥¥¥hjjB\\ŒF#Ìf3 är9t:]·×Ñh4(•Jq ŽT*¯Ÿ’’“É eªÎôéÓqàÀTUU‰wm6>ÿüsÜ~ûíX¾|9ÒÒÒ°k×.�FÔÕÕ¡¢¢cÆŒéöÞÍf3vî܉�>úgϞŤI“‹êêjèt:1¦¤¤$£¡¡Al;räÈO=êI¾hCDDDDDD�Á1Ôcn·[œÒÓ^PP¢££1gΜÇRSSqõêUØívŒ5ªÛëØíö¡•H$mj¤´&…¤R©¸¿¢¢aaab�˜´´4ÔÔÔ ¤¤MMM0›ÍøûßÿbÝ¢¢",X° Íµ4 æÍ›‡���6û;{M‡8¥·µ_ºëÏWmˆˆˆˆˆˆ(08"†z,** ÕÕÕ¨­­Ô××Ãn·‹ÇŒF#JJJ´Láq:�ZF„üôÓO())Arr2€–äAAA�Ø^¥RÁh4Š}UUU¡±±àt:!B·ñ=z·ß~;Ôj5.^¼Ðét¨®®kʘÍfTVVB§ÓaÊ”)¸ï¾û°`Á,X°“&MÂ�7Þˆ tˆ¯§¯IUUÜn7BCC½¶ñ¼×Þö×¾Ðp_c """""¢Ààˆ‘H$pKdnõMFH¥�]ÑÆíA€ n‰¬ß+ì¨T*LŸ>_}õ¤R)"##Å"r¹³gÏÆ‰'pöìYaôèÑHNNFHH¬V+ÂÂÂÄ·6› .\@\\"""0nÜ8œ8q/^Äœ9s0uêT9rr¹*• S§N…Z­ö[~~>Ôj5† †èèhìÙ³111ÇM7Ý„cÇŽÁf³!((cÇŽEBBB—÷Ú>¾®^“™3gâ›o¾�Ûí†F£ÁìÙ³» Óþ^{ÓßèÑ£±wï^Ìž=»_1QßY,Øl61ÙLDDt-’ËåP*•]¾'¢¾ñu¦ 'ýIºÙöÜ'õØ×þÑz¼õy붬ݶ¼ÝWmmmíñÎFXÔÕÕõ üΙL&ìÚö "ÅV«p¥¤§»ÏýùB�\Šá‰q0Y,¨S¤ gù¿ 888 1ùZg‰²ÆÆFqôùGëÏP·Û —˧Ӊææf$&&82ÿq¹\hnnf†ˆˆ®+r¹Z­öº˜ö^ZZ ­V ¹\™L&~°Ùß´©k …b €f.Îv_îvÛ‚Ç6<ž{>àqû„Nöµßö¦'çôGÄøHPP"Ra: .·€„ØŸg¹úÂd±Àdv"k4Èår%$$ är94 BCCYæ:–_jÅý›J`´ºñÿæG#ÿ�#ñÝÆTüwEÁb°ls)òK—Œq»Ý8þ<&Nœ°¦N�Š‘#GìúDDDDä‡~x¡V«9í�ˆh�É/µbÉë¥h4»ðÿîŽÆŠYzñتÙá�J€?îªÁ’×K‘÷X"Æ'ª<Æ¢¢"‚€Q£F øµ[ýú׿ص‰ˆˆz#33“&MÂóÏ?½¾å÷zSS~÷»ßáôéÓ8uêT€#$ò=&bˆˆhHðLÂÀ¯nÒr7•À-¬N¯n ÅwÕ Ñì X2&??ãÇ�Gm­^½Ó¦MÃÉ“'qåÊ$&&bݺu8þ<öîÝ‹ªª*Lš4 ¿ùÍo p:�xë­·pøðaØívL›6 �=ö˜ø�ËåÂ;#ƒÂívãæ›onÃêÕ«‘““ƒyóæÁétâÍ7ßÄñãÇQ[[‹¨¨(,]ºwÜqÇ€¾.DDD�1b¾ÿþ{¬Zµ ›6m‚D"Áã�?ŽÂÂB¤¤¤:<"¿àÔ$""ô ÊÚ&a`¿!i}!¾ºdFg³H[“1½šÒ¹sçÚLK2 xûí·±jÕ*lݺ‰‰‰X½z5ÊÊÊðì³Ïâµ×^CEE¶lÙ"¶yå•WPQQ�W_}›6mBEEÞ|óMñø–-[pòäI<÷Üsø¯ÿú/X­ÞïQ.—#!!7nÄ_ÿúWdggãùçŸGII‰^""¢^xå•W�””„¢¢"¬Zµ «V­Baa!âããñÒK/:<"¿`"†ˆˆ½µïU¶IÂxúxí0¼¿* �w¼±Í±F³ Ol¯ô{|­A@~~~›DŒN§Ãúõ둞ž½^�… –.]Š„„$&&";;³ÙŒ½{÷âñLJ^¯GTTzè!|ýõ׻ݎO>ùëׯGjj*°~ýú.ãºû’’‚¸¸8äææ"66?þø£Ÿ^""¢ž‹ŽŽÆæÍ›ÅdÌ¥K—‹M›6!>>>Ðáù§&Ñ ×UÝôÌ”–é:/}Q‡?¯ëU[_»zõ*G‡ú0ž…ß“““‹Eœ Ÿœœ ‹Å(--…ÛíÆOéëòåË⧢ݩ««óÙJˆ‰‰ñI_DDþ”‘ Âû«’�ûz Lm“1Ië ;m£SKñÞÊDd$ \±Þöõaú"&&�ÇŽCvvv‡ã­Ã´óóó1yòd-S¢¼¹xñ"ššš°bÅ qßåË—QSSÓ¯8‰ˆˆ|aíÚµbfóæÍ€•+W¢¸¸k×®ÅöíÛ!‘ï±FÌ Ð›ááv»Ý�‘ ^ã”ؾ2aš¶£M>^; ­Öf_˜F†÷W%abÒÀ¯˜ÔßDŒ\.ÇâÅ‹ñæ›oâôéÓp¹\¨©©ÁÅ‹�wÞy'^|ñEüøã�¨¯¯Ço¼áµ?½^“É„]»vÁ`0àÈ‘#ÀD< ………HOOG¿DDD`óæÍHOOGaaç¶ u3´Cï �FãÇHˆˆ·ñ‰*ä=–Øf%Ahy´ ÓȲluYY,‹OF-.Y² …¯¾ú*ª««¡×ë±xñb¤¥¥Ö¬Yƒ×^{ øÃ Óépç�w"6¶ó)XIIIX±b¶nÝŠ·Þz 7Ýt¦OŸÞˆ|áÔ©SöEDDp$ ]Ó|]°'ýIºÙöÜ'õØ×þÑz¼õy붬ݶ¼ÝWmmmíñ®†q÷„¯¦&i4”””tZ3 3n·‰‰‰].UÚSœšD×ªÆÆF± *ùGëÏÐÖZ%N§ÍÍÍHLL�ëŸ/³u:MI§–"ï1ß�„©­íX¦½}ûöáèÑ£ø�ÿøŸ^›ˆˆh°ˆŒŒ t~UZZ ­V ¹\™L&ÃïéßjÔ7 …b €f.Îv_îvÛ‚Ç6<ž{>àqû„Nöµßö¦Iœš`#GŽìÕ7¶T*õY�"¢¡j\‚;K‚>øÿ¦)ù+ ÓS:� ,ȵ‰ˆˆˆhè`"&À¦L™Òë67ß|³"!"ZÆ%(‘÷X"Òã”H�SâƒÕ�KÂÀ´iÓøó™ˆˆˆˆºÅDL€Ý~ûí½n“••å‡Hˆˆ†žŒö?•‚ýO¥ èêHDDDDD}ÅDLEFFböìÙ½n7{ölDDDø!""""""""ò'&bèá‡FPPP¯Û) <üðÃ~ˆˆˆˆˆˆˆˆˆü‰‰˜‰ˆˆÀÊ•+ûÜ~åÊ•÷aD=ó§?ý sæÌÁœ9s0wî\<üðÃøè£�àv»»oüO«W¯Æ¾}ûzt¬«s‰ˆˆˆˆˆˆ†&bdÆ  ës{½^� 6ø0¢žËÉÉÁßÿþwlß¾‹-Â;#;v$"¢� —ËQ@ñw!‘ï0sçÎÅÒ¥KûÝÏòåË‘““トzG¡P 88ÈÎÎÆƒ>ˆ�>úhÀã "(J¥2Ð!ùÓšlܸqØ´i$‰Oú{õÕWQRR‚ï¿ÿÞ'ýõÅøñãÑÔԋŵZ�E‹á™gžÁäÉ“/^ĺuë°wïÞmM&Ö®]‹Ûn» Ë—/ïò:N§o¾ù&Ž?ŽÚÚZDEEaéÒ¥¸ãŽ;ÄsV¯^�éÓ§ãÔ©S(**B\\Ö¬YƒŒŒŒ·ÏÎÎÆ—_~‰K—.aذaX³f ÒÓÓ{Ôvî܉={ö ¡¡cÇŽÅš5kÛŸ—˜ˆL­VÃf³Áét:""¢'—Ë¡V«Ñ5ƒ‰˜4qâD|øá‡ õYŸ!!!øàƒ°hÑ"œ={ÖgýöF]]"""zýÃÙåráßÿýß‘ššÚmhù���€�7B©TâðáÃxþùç1zôh$%% Þzë-¼üòˈ‹‹Ã;#çž{yyy=j/¿ü2^|ñEÄÆÆâÃ?Äï~÷;lß¾!!!ݶÿàƒpðàAüë¿þ+ÂÃÃqîܹ~MA#¢ÁC«Õ¢¹¹™É""º®ÈårhµÚ@‡AtMáÔ¤’““ƒ]»v!**Êç}GEEa×®]>MÉår¡¨¨o½õ.\Ø«¶‚ à•W^�ÙlÆSO=Õãvwß}7RRR‡ÜÜ\ÄÆÆâÇ�ët:¬_¿cÆŒAXXî¿ÿ~Ô××£´´´Gí`ýúõÈÈÈ@dd$V­Z…°°0:t¨Ûö.— yyyX·nÒÒÒÄåÉU*U¯^"œd2ÂÂÂÌyòDDtÍ“ËåFXXd2Y Ã!º¦ð�¤Ÿ…‡‡ãÙgŸÅ²eËüz���lݺÛ¶mÃÆ�Q__ï·kíܹ;wî„D"All,î»ï>ÌŸ?¿W}|ú駸pá>üðÃ^-áÝÔÔ„   F£ååå°ÙlmÎñœö •J‹ÅÒ§ö‰cÇŽ9]µ¯¬¬„ÅbAZZZ¯^ "ZÔj5‡gQŸqDŒŸDDDàé§ŸÆ©S§üž„ñ´|ùrœ¢V«1a¬X±;vìÀ… ðôÓO¤>ˆ^¯ÇÓO?� .`ÇŽX±b&L˜à³Opƒƒƒìu$‹J¥ÂÏ?ÿÜf_ûäDll,~ÿûßãý÷ßDZcÇztÝ‹/¢©© +V¬@JJ 4 ._¾ŒššŸµ¯¯¯Çîݻ۴+,,Drrr·íãââàv»QXXØ£xˆˆˆˆˆˆèúéI}$‘Hðã�?Âét"88اx}%((ÙÙÙÈÎÎ÷555Ád2A£ÑÀl6ûåºãÆ�þ}ûpë­·Âívx| ” IDATã…^€Ãáèp^ff&|ðAüçþ'^{í5$$$ 44•••‰¤Ís½^“É„]»vaÖ¬Yøî»ï111=Š«'í•J% ñÝwß!55Ÿ|ò Ìf3fΜ‰ŠŠŠ.Ûët:LŸ>/¿ü2~ÿûß#""gϞŤI“8��® ‰DüÞ%"""Jø†GÄôCXXâããeÆ›ÐÐPÄÇÇûu¤Î£�>ŠÈÈH<òÈ#ذafÍš�FÓé¹K–,Á„ °qãFØl6Üwß}8pàž}öYhó<)) +V¬ÀÖ­[ñàƒâ믿ÆôéÓ{WOÚã¶ÛnÃK/½„eË–áÂ… øË_þ¹\Þ£ö¿ùÍo0|øp<ùä“ÈÍÍÅßþö7 †Þ½€DCL뛉D—ËàhˆˆˆˆzÏårµyOCäO¾þÖ“þ$Ýl{î“zìkÿh=Þú¼u[Ön[Þî«¶¶¶öxëxTWW#"" …¢_ýRyyy�G“\/V¯^�œœÌ›7/СP?466"999Ða\ÓZ†ºÝn¸Ýn8�NX,hµZ¯‰W"""¢ÁÊl6£¹¹jµr¹R©RiËŸ£LÌø—B¡˜ € €³ÝW€»Ý¶à± �çžx‡Ç>¡“}í·½ñY1PŽˆ!"¢>óüäH.—‹E«‰ˆˆˆ†£Ñ¹\ÎQ14 ˜ˆ!"¢~‘H$�J¥�Édp8�Ö„""""¬Zß¿Èd2H¥R&aÈ!"¢~‘H$b2F¡P ¾¾>Ð!õX}}= …˜„a"†ü�«&yxíµ×Ñ�Ð~…¤Ö7-r¹V«ÍÍÍÐjµŽ’ˆˆˆ¨kÍÍÍp»ÝP(âûÏd “2äCDDý&‘H “É “É P(ÐÔÔ³Ùè°ˆˆˆˆ¼2›Íhjj‚B¡ßÇ0ñB�#bˆˆ¨_Ǽ]×s b#jå9E©}2¦õ“%·Û-&dADDDDþä9Ò¥5!ãù:&a˜�!c"ÆG¬V+òóó‘ŸŸ�-[¶ ""?ü0V®\ ½^? ±Ô××ã�7ÞÀ–-[PWW7 ×¦Î½÷Þ{p»Ýâ´�1cÆ`òäÉ�‹Èg:KÆ´jMÌ‚ÀÑ0DDDžu`<0˜„¡ÇDŒŸÔÕÕáÏþ3þú׿bÆ X¶l™ß¿©AÀ¶mÛ°qãF444øõZÔ{÷Üs´Z-š››±gÏh4¤§§:,"ŸiŸŒ¡Ã”ÍÖb¾ CDDD¥}ýÏ÷'LÂP 0ãgõõõxâ‰'ðÅ_àÕW_…V«õËuš››±zõjìÙ³Ç/ý“ïhµZL˜0%%%LÄÐ5§}2@›„LëÈ0"""¢�æ-ÓÙs"b"f€ìÞ½%%%øðÃåÓ¾kjj°hÑ"œ={Ö§ýz»Ö7ß|“É•J…3fˆ÷“——‡‘#G¢°°·Ür ÒÒÒPQQ�o¾ù‡z½ÕÕÕX¾|y›>AÀ±cÇP\\ ©TŠ„„̘1‹;wîIJeË´Œ2:räî½÷^ðÚ·ÉdÂáÇÑÐЗ˅ôôtL™2ÅkŒ­ºj'öïß�ÚÚZÈårLŸ>±±±^cïŽ\.‡\.ïö[ÙívìÚµ 7Þx#RRR:í³«ø·lÙ‚#F ªª ‚ `ÆŒHLLì²ÍÖ­[1|øpTTT@L›6 III]¶©««ÃW_}‹ÅµZ�9sæ°0ôuÈ3Óþù`/jNDDD×6&`h0`"f�={÷Þ{/vïÞ�ÐÐPŸôÙÜÜ<`I»ÝŽO?ý¿üå/Ž«W¯â³Ï>Cnn.d2š››¡Óé°téRH¥RØív|þùç¸ë®»�’’wè·´´UUUÈÍÍ…D"�ÓéìQ,ÞúV«Õ˜1ct:l6vî܉áÇ#&&¦CŒžºj“'OFDDJKKñùçŸ#77•••½Š]TTT ??·Þzk�^w§Ó‰}ûöaüøñ^“0ÝÅït:1yòd„……¡¨¨_~ù%–,YÒe«ÕбcÇbæÌ™¨ªªÂÞ½{±téR¯m"""°oß>Ì�;‘‘‘°Z­P*•=ºGº6yŽŽi}NDDD4Xð½  1ìüùóXµj¶oßÞïo|Aðøã�HªªªŠððp@rr2Μ9ƒúúzqTŒçJR•••ÐëõˆˆˆÄÇÇwº’TXXL&¾úê+¤¤¤ 11±ÛXºê[*•ÂétâôéÓ0�0›Í0™Lb[Ï=u×®õZ‰‰‰ CMMM�c7™LÈËËCHHt:233‹ÅÒí½îÝ»±±±mFïô6~‰D‚°°0@jj*:Ô£6‘‘‘€˜˜èt:ÔÔÔ !!¡Ó6‡!!!b•JÕí½ÑµÏóçëÂQ 1ùBƒ1ðé§Ÿâ½÷Þë0E§·¶mۆݻwû(ªî¹\®‰‡ÃÑiµq ¥DO–ðÖjµÈÍÍÅÕ«WQXXˆ'NˆSs¼­®ÒUß5558räf̘�ððp466Âáptc_Û9�NH¥R¯±·??88óçÏï´FPw+È$''ãâÅ‹¸á†Ô§ø=y*ëªMû?š¥R)d2™×6‰„Éêßøœ¬ ý]Ù¨¡¡7nôaDÝ‹��EUUª««´Ôhq»Ý^—çŽ��Eee%jjjµµµ°ÛíZ’ßÿ=l6ìv;l6FŒ�Ûn» ���°ÛíP©Tp8¨¬¬Ð2 ¦¹¹¹Û¾ T*—Ë…ÊÊJÈd2¯÷%“Éàt:»l'‚xß5550›ÍˆŒŒô»çýu¥«{l5qâDÄÅÅá‹/¾“6­1÷4~oºksñâE-E§M&"##½¶‰ŽŽFee¥øÿÚétrQ; õõõxã�7ðôÓO÷©ý믿>àKT«T*deeáÈ‘#p¹\ Áܹs½ßT©T˜={6<©TŠÈÈHÈå-ÿå¬V+Î�;‡ÄÄD¸\.œ%%%xÿý÷¡R©Ûe�ÐŒŒ |òÉ'ÈÊÊòÚN&“áÔ©S0 P©TÈÎΆ\.GUUU§±›Ífñþºª“"‘H¼Þ£§iÓ¦á³Ï>ÃW_}…™3gŠ1Ï�;·Gñ{ÓÝkUZZŠ3gÎ@©TŠ÷ì­Mpp0fΜ‰/¾øAAAP©T˜5kV§÷CDDDDDt½òõ8ñžô'éfÛsŸÔc_ûGëñÖç­Û²vÛòv_µµµµÇûûI}UU222úÕGdd$Ο?ßåt“ÎØívŒ7uuuýº~AA�Xˆv ˜L&ìÝ» .R}_¯Þxã <úè£�£O‘œœè0ˆˆˆˆˆ¨ …b €f.Îv_îvÛ‚Ç6<ž{>àqû„NöµßöÆgÃý95)€jkkqðàÁ^·;pà@¿“0Åd2‰Sh~øá‡.WýL}ù§&ØÁƒ‘��Ýë6CEqq1.\¸ eå�©S§‰¾‰ˆˆˆˆˆˆü�‰˜ûöÛo{ÝæÄ‰~ˆÄ?Æ�‡qãÆ ¹¾ CvZÑ`Æ©IVTTÔ«•eÜn7.]ºäLjˆˆˆˆˆˆˆÈ_˜ˆ 0³Ù £ÑØãó ¬V«#""""""""a"f0™L=>×b±ø1"""""""ò'Öˆ$l6[ C """""""?c"¦�bbb°}ûvŸô•ŸŸß«ó}uݘ˜ŸôCDDDDDDD=ÃDL?Üyç���ˆˆˆþöî<>ªúÞÿøk–L2Ù²"� HPd‘MA@Üq« V¥j+¶—Û_¯om½·V½z[ÔQ¹u©¢ ˆ"¡lÊ¢"Š@A �l“d–3¿?â'û¾áûùxŒ™9Ë÷|¾gã™Ï|‘nDcĈˆˆˆˆˆˆˆt%bDDDDDDDD:ˆ1""""""""D‰‘¢DŒˆˆˆˆˆˆˆHQ"FDDDDDDD¤ƒ(#"""""""ÒAì�ÀéÂívãv» !44´³Ã©¥´´ ËÆ'"§�›nº‰½{÷`µZINN&++‹Ûo¿�„„„v9¦Ëåbúôé¬Zµ §ÓÙ.Çi-µˆi¥¥¥<øàƒ¤§§ó«_ýŠ’’’Ωš¼¼<ÒÓÓ»l|"rz7ncÆŒ¡¢¢‚wß}—Ÿÿüç¸Ýîv9VXXddd4)Ù|ÿý÷3zôhöíÛ׿±´gÙ""""Òý©EL9uê'Ož¤´´‹ÅÒÉý ¬¬Ì|~òäÉNŒDD~Lî¿ÿ~bbb(--eîܹ:tˆõë×sÁ´ù±¬V+‹/nórEDDDDÚš1mlõêÕ¬^½º³Ã¨×7ß|Ón¿H‹ˆÔ%22’éÓ§³hÑ"<@yy9Ï<ó ÿüç?)--eøðá,X°€ž={0iÒ$&OžLÏž=Y¾|9={öäÙgŸeÆ ,^¼˜o¿ý–ˆˆÒÓÓù¯ÿú/¢¢¢˜4i¡¡¡¬Zµ  Þmÿô§?±fÍn¼ñFl67nlr\^x!N§“ììlÜn7—_~9·ÝvP•|ª¯lP"æGÇçóáñxðûý]ªÕŽˆœÞ|>€9FÌoû[¶lÙÂøñ㉈ˆàƒ>`áÂ…¼øâ‹X­U½fW¬X@¿~ýÈÌÌ$77—ÿ÷'**ŠË/¿œÊÊJòó󉊊ªu¼†¶�Þ~ûmìv;gŸ}6ûöícÓ¦MœsÎ9<üðÃTTT°víZŽ=JŸ>}Ìý-ZÄðáÃزe ^¯—aÆ1þ|ìöúÿvðàÁz· ´jY³f óæÍcÀ€ÍŠëïÿ;!!!¼øâ‹,Z´ˆ;v0vìØzË P"¦•Š‹‹¹ÿþûyýõ×;;”&)**âþçèÛ·/éééJĈH»™6mšùÜjµòË_þ’¾}ûš-F>ýôSF�]mŸââbóyhh¨™„4hQQQ¬[·Ž©S§2fÌnºé&233k»9ÛºM5Wll,!!! 2øaœ0‘Æ(ÓJ6›�ÐÐPìv;^¯·³ÃiThh(ýû÷'::Úlf/"ÒÎ>ûl’’’HMMeòäÉôï߀˜˜F�ů~õ«jûôêÕË|^s êØØX^{í5^{í5²³³ùðÃY»v-ýë_}:�<òQQQäååqÎ9ç;“Ò¾}ûÈÌÌ$11‘Õ«WãõzÍ8f̘Á“O>Ùâ&÷=ô‘‘‘Ì›7ŸÏÇwß}Ç“O>Itt4úÓŸÚ²¦Æ1�x‚Ùl6ÂÂÂp¹\æ¹óÍ7Ù±c=ô�¹]xxx«¦ñ~á…ÈÉÉá·¿ým‹Ë�¶wêÔ©M~ŠˆˆˆˆHË8ŽÑ@ à¼5þú£ÆsÐs‚^?ZOÐ2Ëj>¯O›}©W‹˜6ÎM7ÝĈ#̈Õj%<<¼³CÃét’��À+¯¼@ß¾}[œ„ p8DDD0tèPæÏŸÏ}÷݇Ëåê”:ÇSSp<‡›ÍVï¶"""""""íM‰˜6`µZ6l˜9dWœ�hêÔ©íVvXXv»ÝÁëõ²xñbÖ­[‡ÛífìØ±ÜqÇ8�N¼^/Ï?ÿ<[¶l¡  €ÄÄD®¿þz.¼ðB³<ŸÏÇ‹/¾ÈÚµk1 ÃlÍÓ^ŠwÉ’%lذ�gžy›ÍFyy9·Þz+7ß|3§N�2\ëׯgæÌ™ÜsÏ=lݺ•^x�C‡Ñ£G&L˜ÀܹsÛµ""""""Ò=(ÓFBBB~t³ùý~rssùë_ÿÊ´iÓÌ™Bž|òIŠŠŠxê©§ðz½<òÈ#<ÿüóÜsÏ=Øívz÷îÍï~÷;BCCY·n�<òƒ 2ÇjùÛßþÆŽ;xðÁ cÉ’% Æáñx¨¨¨¨¶,$$›ÍÖ¤z4ïu×]Gvv6o½õW_}5K–,¡ÿþL›6 —ËU­kRII <ðwÞy''NäĉTVV6뼊ˆˆˆˆˆÈé«ë5Ý�.ïÍ7ßä‚ .`êÔ©Üwß}œyæ™ÌŸ?¨JL¬\¹’ŸÿüçÄÅÅ‘˜˜ÈÍ7ßÌÆ�Íý/¹äÒÒÒèÙ³'sæÌ!%%…o¾ù·ÛÍÛo¿Í‚ ÈÈÈ wïÞ,X° Áx–/_ÎÅ_\íñÏþ³Iui,^»Ý΂ xùå—ùä“Oøàƒ¸÷Þ{ë-ïĉx½^Î=÷\¢¢¢HKKcàÀ�MŠEDDDDDDNjÓEìß¿Ÿ§žzŠÍ›7ãñxx衇ÌV]ͬY³˜?>»wïæW¿ú&L0»%9rÃ0øÅ/~a‚ëõzq¹\æþEEE|ôÑGìÚµ‹ÒÒRrrrÌV#999†Á€Ìíëêuå•Wrç�w¶¨.M‰wÈ�!Lš4‰ßþö·,\¸�„„„zËëÛ·/ÇgîܹŒ=š3f0bĈÅ&""""""§%bº€Çœ—_~™'žx‚{ádzjÕ*3SsVŸˆˆ3ñUScöÙg¯Ãá $$„³Î:‹qãÆ±hÑ"sƤÀ@¸Ï<ó ÑÑѵö­¨¨àî»ïfüøñÜtÓM$%%qï½÷bUZ{½^ ÃÀçó™]�ÚScñÄÅÅUƒ7Äjµò§?ý‰/¾ø‚Õ«WóÀ0|øp|ðÁ¶ ZDDDDDDº-uMêd>ø ¯½öÙÙÙœþù¤¥¥ñÀðØc�™Ûøýþj�¼¼<öïßo>6lØÐiñÏ�;—�;w²yóf’““ 7_×´wï^ŠŠŠ¸í¶ÛHKK#<<œýû÷“ŸŸ`NOýå—_šû´çÔß�Å pøða–/_ÎÏ~ö3þò—¿PZZZm½×뭵ϰaÃø·û7þüç?³iÓ& ÚË}÷Ý@RR+V¬ //�˜˜<›6mbäÈ‘DEEñÅ_Ö`kùñP"¦ýú׿fÖ¬YôêÕ‹3fðÉ'ŸP\\ÌÝwßÍ<@lllg‡Ø$7Üp|ðË—/çŠ+®àºë®ÃápðÔSOqüøqâââ˜={6™™™ôéÓ‡Ûn»�—^z‰Å‹3jÔ(Æ�W­¼»ï¾›§Ÿ~šÿø�ÿ ::š©S§’’’Rïñ—/_ÎòåË«-6lXµVE i(Þ×_�ŠŠ ®ºê*î¹çæÍ›ÇäÉ“1b\pŸ|ò óæÍcذaüüç?gýúõ<ÿüó¸\.úôéÃ<Ф¤�ˆˆˆˆˆˆœþ,�oÒæåYy¼Ì´¬æ#°>ð:ðÜVã¹½Æß¨‚‚‚-íÙÝ% //�¡C‡µ»×ìÞ½›ÁƒóÊ+¯pÝu×0eÊ’““kµ9yòdƒÇ Œ_°oß>233ILLdýúõ .+r::uêýúõëì0DDDDD¤‡c4Pøo�¿~À¨ñÜôœ ×Á‚Ö´Ì_DzšÏëÓfIµˆé$�äÊ®]»Ø¹s'/½ôü1Û¶m«µmFFFƒe¶KŒ"""""""Ò¶”ˆé$çž{.·Ýv+V¬`ÿþýlݺ•Y³fqöÙg×ÚV‰‘Óƒ1�Äf³ñÜsϰmÛ6fΜÉÿüÏÿÔ¹íÃ?Ü`Y .lóøDDDDDDD¤íiúêNrìØ1¦OŸÎ¥—^Êí·ßÎêÕ«ëí‚tòäÉ""]ɪU«X¿~}�ë^yå•:»`¶¿ßOvv6Ï=÷/¿ü2'Nœ¨¶~Ù²e|õÕWKKù|>þüç?STTtìù Ö窳bo‰îpm´§š×]°¶~»ë¹®yŽºk=DD¤s¨EL'ùüóÏ1bƒ ⪫®"<<¼ÞmÿøÇ?šÏ½^/%%%¢ˆH›ëß¿?IIIMÚvË–-œ:uŠ‹.º¨EÇúꫯ8rä×_=‹…°°°•Ó•4çüu¦ºÞ»®{k¯³®¦½ëÓš÷ñt;×"""-¥DL'™>}:Ó§OoÒ¶ËIÙl6¢££«­×2"Ò]œwÞyv¬S§N‘””DDDD‡³½uäùkkÝ9vù�ÞG‘ÖS"¦舩¶ED:²eËøÉO~Â�!C8tè›7o¦°°�ˆˆ À˜1cؾ};Ÿ~ú)ÿú׿:t('N¬V–ßïgûöí|ýõ×”——Ó³gO&NœHtt4k×®e×®]ìÙ³‡øøx®»îºZñ;vŒ={öpüøq¢££™8q"½zõj´ü@]2228tèÄÆÆ2yòdŽ;Æ®]»())!55•)S¦àt:�ªî ›7ofß¾}x½^222?~ùäöïßϵ×^‹ÕjÅãñðòË/3zôh\ï{!""Ý—1� ±Áw›KƒõŠHwTYYÉŠ+?~<™™™”––âõz9r$�§Án Ÿ|ò dæÌ™Øív6lØÀ[o½Å�7ÞÈäÉ“q8”——sá…Ö¹yy9_ý5×\s 111lÞ¼™•+WrË-·`³Ù,ßf³QQQÁæÍ›™={6QQQ¬_¿žeË–1lØ0fΜ ÀŠ+Ø´iS¦L ;;›ŠŠ fÏž�a¬Y³†�7š_H7mÚÄáÇ™5kv»�O>ù¤Ñóøþûï3iÒ$ÆŽk~ékîö�ÅÌf³cž—}ûö±fÍ’““‰‹‹kÒ{—™™ÉG}„ßï7[}î߿ߜ9°9ñæ�X IDAT¬[·Ž«®ºŠèèhvìØÁ?þñn¹åBCC[kC׆×ë­÷º­iûöíìÙ³‡©S§NNNŽ™”kÉ{ÑÒsß×]@àßA}ÿŽZr®m6[“¯…†>O;oM©Gc稨¨ˆãÇ�sÕUWÉæÍ›yóÍ7ùéOjn_ßçIVVûöíãóÏ?çì³Ïæ“O>!!!AI‘Ó˜ëí� ¾Û܇ˆHwTZZŠÏç#--�ÐÐPzôèArrr“öõù|ìØ±ƒI“&Ñ£Gbbb˜:u*n·›o¿ý¶Ie8�N&NœHJJ N§“¬¬,\.§N�jRùaaaLž<™äädÂÃÃÍ$¨Q£ˆ��%66–Áƒ“““€Ûíæ«¯¾âüóÏ'<<œÈÈHF�ÍþýûÍ:íܹ“)S¦���@ll¬™ÀiÈ�!CøÉO~BBBv{㿯Ôܾ±¸êrÖYg™ç%++‹èèhòòò=v@¿~ý0 Ã<7¥¥¥’žžÞ¢x¦L™B¯^½ˆŒŒdüøñ„‡‡³wïÞÇÚеÑÔëÖ0 ¶nÝÊäÉ“IJJ"22’ÌÌÌj-9Zò^4·>íuÝþÔu®š¢¡sÝœk¡±÷¥±óÖP=šrŽ Ã`ĈôêÕ‹èèh³µ×¾}ûý<±ÙlL™2…O?ý”ƒ²{÷n&OžÜä÷@DDºµˆé�__¤kxî¹çøÙÏ~Öêm:‹ÏçcÉ’%ÜrË-�ŠH³ÄÇÇ“ššÊÒ¥KIOOgÈ�!ôéÓ§IûaFµACCBBHIIiV‚:øûèèhBBBðxfjjj #¯úrw×]wµY\5?~œòòrÆŽk.+(( ´´´Úv�}ÉMMMÅãñpäÈòóóéׯ_‹âq¹\ìÚµË< //�Q£FµY¬õÅ_ßu Uïgàš©/ VScuoI}:êºkªæœëæ^ P÷ûRTTÔ¤óVŸ¦œ£òòrNœ8QmY^^éééMú<9yò$;wîdܸq¬[·ŽÔÔTBCC›Ÿˆˆt?#¦ •––š}”ÒcÄbkͯ€Ò6"""ÈÈÈhrÿù®êøñãMî* ?>^¯—ŠŠŠj�š-***øúë¯ÍA5�=JHHˆ9˜idd$G�¥¤¤¤V7‡ÃÁ�!Cøøã�ÉËËÃår±~ýzœN§ù…¾5Ú£|«ÕÊÈ‘#Ù¸q#ß}÷†aPZZÊñãÇÍcžy晬]»–¼¼<3iÛÞ‹ ªÆñ(..ª~µw»Ý|ùå—TTT°oß>s6)hø½ °X, 0€�>úˆþýû›-šO0»ÝN^^GŽ¡¢¢‚O>ù·ÛMFFF›Å¬±ë6 ,,ŒŒŒ Ö­[ÇÉ“'Íñ@:FcuoI}ºÒu×ÜsÝœk¡¡÷¥)ç­!M9G%%%|þùç=z—Ëņ ðûýddd4úyâ÷ûY³f #GŽäì³Ï&11±Cþ틈HçQ‹˜6’——gþª±téÒYûãÿØQaÕc{ï½÷ÈÊÊjqÓúüü|6mÚDYYaaaŒ?Þì3ýꫯrÆg°gÏÎ=÷\2339vì›6mÂãñÇñãǹñÆ«•é÷ûÙ¼y3ÄjµÒ»woÆ�Oyy9o¾ù¦ÙrãĉdggsÅWÔ[vYY™yãëóù8p £G�®7Æ€†öóûý|øá‡`·Û7n)))õÆÞ�Çþ}ûèÝ»·¹ìÈ‘#lÙ²…ÊÊJsêU¿ß_o<¹¹¹lÚ´ ·ÛMLLL³úâ×§®vïÞMII‰9ýé?þñÆ�Gnn.¹¹¹üãÿ --�©S§6û<Èém×®]æôÑ5Ç1ª¬¬ä_ÿú—y-ÇÆÆ2cÆ óóiРA}úpÙe—µYÚ£üQ£Fa³ÙX¿~=%%%„‡‡3räHs숉'²~ýzÞ}÷]BCCð:ðÜVã¹½Æß¨‚‚‚-Íé³ÝÁÉŽgŸ}–Y³fQXXh.këã5dß¾}dff’˜˜Èúõëñù|fo¼ñãÆ�kQ"Æívóÿ÷Ìœ9“øøx:Ä?ÿùOæÌ™ƒÍfãÙgŸe„ dffbµZq»Ý¼öÚk\|ñÅôèуdzråJn¿ýöjå>|˜mÛ¶qÙe—a±Xðz½Øíö1 •øÅ,::šÊÊJÞ|óM¦L™Brrr­á‡�xÛ磌®¢G�9r„µk×2gÎrss댽¦gŸ}›ÍFTT>Ÿ�3Î8ƒQ£Fa±X(//ç�7ÞàÒK/%::šÏ>ûŒ“'O2qâÄ:㉋‹cÙ²eÌœ9³ÎóZ×1W\q…Ù÷<Ð5iîܹæúúb˜4iï¼ó#FŒ ''‡°°0óFñ�wÞá¼óÎ#))©Þ÷°³œ:uªMZEˆH×·lÙ2~ò“ŸTëš$"""݇Ãá ”>À[ã¯0j<÷='èuðƒ õ-ó×±¬æóú´Ù—zµˆin·›ÒÒRÊÊÊ:;ÊÊʪu•jMB(//�˜˜sV€~ýú±cÇ ÍV1ƒ 2·ÏÍÍ%..ΜI¤W¯^u@k6óMKKkÒ¯? •mµZñz½lß¾�ÒÒR\.Wµ÷"8Æ`�í8Vjj*±±±äçç79öˆˆ.½ôRBCCù¿ÿû?ÒÓÓÍÿrssÍfÌPÕbÆçóÕOee%±±± ž×ºÆˆiì|ÖƒÅbaòäɼöÚk$$$˜­‘jjÉ{("""""òc¤DL;¸ûî»k-댙òóóÉÊʪ¶ìرcø|¾µˆñù|µ¾ðúŸCí:†Ñ¤‘ÿ£¢¢˜3g‡bÏž=|úé§æþúÆ´i¨ìüü|²³³?~<ñññœ:uÊìºÓÐûМý¼^/V«µÞØë;ŽÃá ++‹ 6pùå—›ËRRR˜1cF“â±Z­m>£B}1ÖAÕ õÕ«¹çADDDDDäÇJƒõþÈTTT˜Ó(6WJJ yyyæ yÇŽÃ0Œzg�JII!77—üü| j†‚ÀஆaðùçŸSYY‰Ûí¦²²’þýû3qâDN�:…Ûí&,, �ÇCnn.PÕj£¤¤¤Ñ²OžrssL<Ùl6¼^oƒûf7€ª‰Ëå"!!¡Þ؃ëWÓ Aƒ0 ƒ½{÷UýÊ‹‹‹9xð y,�ÇSo< Õ½¥ê‹`íÚµL›6 §ÓÉ×_mîf¾õ�©N-bÚ@ee%.—Ë|½eËÎ=÷ÜNŒ¨¶@Ë„]»vñî»ï2lØ0Î8ãŒfµŒ cÊ”)dggãóùˆŒŒä¢‹.ª6IÍí'OžÌÚµk±Z­$$$˜ã†TTT°sçNRSSñù|lݺ•²²2 à ++Ëœ²q„ ¬Y³§ÓIll¬9ÎICe§§§søða–-[FXX)))õÆ0tèPÞ~ûm¦L™Rï~6›�mÛ¶Q\\LXXÓ¦M3gê¨+v—ËeÖ¯æô“‹…1cÆðᇒžžNHHÓ§OgãÆ�lß¾���†Zo=jÖ=))©Ú”©P5~Kp�GŒÁ™gžYï9¨/†¢¢"ÂÃÃIKK#%%…·Þz‹ž={ÇðáÃÙ°a»wï&++‹mÛ¶ÕùŠˆ´§k¯½¶³Ci ÖÛJÅÅÅÜwß}lݺ•£G�];°`Á~ñ‹_˜‰�ŽPVVÆÊ•+¹úê«»UÙÒýh°^‘îáÇ8X¯º&µ’ÏçãàÁƒf¦«‹ŽŽ6[�tÄøeeex½^vïÞMZZZ·([DDDDDD¤=¨kR+EFFrÓM71zôh-ZÀUW]EXXX'GV·[o½•1cÆ0pà@œNg»ïàÁƒæ¸"ÉÉÉŒ3¦[”-""""""ÒÔ5© säÈ&L˜Ðfe¶—Ç{Œk¯½¶ÍgÝéJÔ5IDDDD¤{ø1vMR‹˜6M�=Ì×·Ür  hÑÑí¡´´”ßÿþ÷@Õì8 \+"""""""íG‰˜v0jÔ(¦N�JHHHg‡À‰'ÌnSqqq26ŒˆˆˆˆˆˆˆÔ¦DLILLdÑ¢Eøý~&NœHLLLg‡d çÙgŸଳÎê2-uDDDDDDD~l”ˆi#V«•K.¹»½ë�ÖñãÇwv"ò#×–cs‰ˆˆˆ´„zHWÐõ2ÝXWéŠ$"ÒUÔL¾(#"""�Åb±T»QRF:‹1""Ò.‚otü~¿ù¨¹NDDD¤=.‹Å|@Õýˆ’1Ò”ˆ‘6U_Æçóáñx0 Ã0(ADDD¤íX­V¬V+!!!Øl¶j ™À}‹2Ò‘”ˆ‘6Üâ%ððz½¸Ýn¬V+N§“��¬V«nxDDD¤Ýùý~ ÃÀãñP^^Nee%‡»Ý^+!£{é(JĈˆH›¨™„1 ƒÊÊJbbbºä@æ"""rz³X,Øl6l6aaax½^JJJðz½„††bµZÍ플‘ŽbíìDD¤û N†�ÏçÃårJ\\œ’0"""Ò%Øívâââ Ååráóù0 CãØI‡Ò�±ˆˆ´J]I˜ŠŠ "## ëäèDDDDj ÇjµRZZjÞ¯ºN«eŒ´7µˆ‘6HĸÝnœN§’0"""Ò¥………át:q»ÝÕZň´7%bDD¤Å7,�›¯× @DDDg†%"""Ò$�{¯×kþ¨ê¢$íK‰i‘š7(>Ÿ·ÛMTTT'E$"""Ò|QQQ¸Ýn|>_µåJÆH{Q"FDDZ%ÐÆçóaµZ éì�DDDDš,$$«ÕŠÏç«Ö*F¤½(#""­f�‡ðððÎEDDD¤ÙÂÃÃñx»ÁýÊÊÊxûí·yï½÷ˆ��àŽ;î`áÂ…,\¸�üü|<ãÆ�#::šèèèv«ƒˆˆˆˆHC”ˆiEEEÜsÏ=¬\¹²ÍÊüì³Ïø÷ÿwV¯^Ý&å%&&’��Mbbb“÷Ù»w/G�eÑ¢EØl6âââ0`@½ûÜzë­­ŽUD~<®»î:,XÐìý:„aÌ�;לBÛëõRVV@zz:YYY\sÍ5Œ?žK/½”sÎ9§Mci %bÚIqqqg‡Ð –´ªñù|¸ÝnòòòèÕ«W“ö™?>³fÍbúôéf/¾ø"k×®Å0ŒZ_„¼^/‹/fݺu¸ÝnÆŽËwÜ�Óé4Ë»æškX½z5_}õ<ð#GŽäšk®á7¿ù #FŒª’F¿üå/ëM†5vé^¢¢¢Xºt)111µÖ[­Vž~úi¶oßλï¾Ë¯ýk²²²xì±Ç::Tù‘S"¦�Íœ9“‹.º¨Õ夦¦2þ|.¾øâV•³ÿ~žxâ‰í;hÐ ÒÓÓ¹÷Þ{¹üòË™2eJ³ZÔüíocÇŽ<øàƒ„……±dÉ’jëŸ|òIŠŠŠxê©§ðz½<òÈ#<ÿüóÜsÏ=æ6øÃøÅ/~Á¼yóHMMmQ]šré>zöìIDDÙÙÙ\rÉ%õn7räHFŽÉ�7ÞÈìÙ³9~ü8III©ˆˆÈ�›Çãá™gžaåÊ•T[7xð`žxâ ³›±ÈéJ‰˜vArrr«Ë±ÛíÄÅÅQYYÙªr [¼¯Ãáàÿ÷y÷ÝwyóÍ7Y¼x1&LàÚk¯%##£ÑýÝn7o¿ý6O<ñ„¹ý‚ øè£�€ªA‰W®\É«¯¾J\\7ß|3¿ûÝïª%H¦OŸÎ¬Y³Z\�¦GDº¶ØØXŽ=ŠßïÇn·sÓM7ñ—¿ü…ääd²²²(((àĉ <˜ââbÖ­[ÇèÑ£‰ŽŽfûöí8�Nbcc;»"""?*‹-ªõclÀ×_Í�wÞÉ3Ï<£dŒœÖ”ˆ‘f göìÙ\yå•lÙ²…7Þxƒ»îº‹'Ÿ|²ÑdLNN†aTSÆjýaâ®#GŽ`¿øÅ/ª�ñ<ý,TeÊ[£©Ç‘®íºë®ã¿þë¿8pà�>ú(·Þz+¡¡¡<úè£äææÏOúSLII k×®åÉ'Ÿ¤¬¬Œ~ýúñðÃãp8:»"""?*�¡/^ÌYg�e./,,äÎ;ïdÿþýL�:µÚ>‰‰‰Ìœ9“Ûo¿�����W¤=(#-b·Û7nç�wsçÎeýúõ�&b¼^/†aàóù°Ûk_z<óÌ3-šÑÄï÷7i»ÖGDÚÇC=Ôàúš¿ž�=šåË—›¯- 7Üp7ÜpC­}{÷îÝân™"""Òvòóó�æMꑟŸÏ‹/¾ˆÅbáç?ÿy{…&Òa”ˆ‘V±ÙlôèÑ£I¿*øýòË/ÍAuƒ“'ÉÉÉ„‡‡³yóf¦M›Ö¬8ÂÂÂøî»ïªMq[_b¦5Ç‘ÖÛ¶m[“·ýâ‹/˜;w.ï½÷ž1rZ°6¾‰´ŸÏÇŠ+X±bE³Æ~)))aÅŠ¬ZµªÎõ[·neÅŠ·X,\}õÕ\}õÕu–_³¼€¸¸¸ZãK—[3®ÆŽ#"""""�+++ ¨êÆô׿þµ“£i;JÄ´³¼¼<¾üòË:×w�Ù½{7‘‘‘õ–3~üx¾ýö[þõ¯qüøq è³ì’’Ž;Vkýwß}×ì:ˆˆˆˆˆˆˆHÛP"¦�egg“��Ýèv�?þxƒë¯¸â ^}õUV¯^m.óz½üþ÷¿¯wŸU«VÕ;ŽŒˆˆˆˆˆˆˆt<%bZ¡´´´ÎååååDEEß&ÇñûýØl6¢¢¢ˆ‹‹kußH‹ÅBll,6›­Mâé®þüç?sÏ=÷´[ù>Ÿ�çž{Ž;ï¼³Ùû¶Ul­‰ADD¤£º#Õ·¬9³-‰tUJÄ´P^^Æ ÃçóuÈñ|>%%%œ_|ñ…9’È��1­P×Í]IHHç�w111�ŠˆH—°~ýz†Ú­ÑN§“)S¦ÞÙ¡ˆˆˆ4ÛÌ™3yñÅ™;wnµåÇç¯ýkµ/ÁƒõŠœN”ˆi÷ß?IIIu®Û¸q#Ë–-càÀ�Üu×]M.sùòå¬Y³†1cÆ0gÎRSS™?>_|1.—‹… ððÃ׺_¹r%ï¿ÿ~Ë+$"ršÊÍÍíöÓÔ[,222:; ‘¹ýöÛX±bùùùærMM-?&JÄ´�„„’““ë\ Tuªo›º’+N§“äädìv;qqqTVVRVVfn—””T«izC³/‰ˆtUß}÷ëׯ§²²’=zpá…Öú|;zô(ÙÙÙ¸ÝnzôèAnn.·Ýv[“Êß¶m999,[¶ŒŒŒ fÍš…a¬Y³†œœ Ã`Ê”)ôíÛ—ËÅ«¯¾Ê¼yóÈÏÏçÃ?dΜ9<ùä“ 0€ÜÜÜjûäää���Mee%qqq¸ÝîFë¸xñbÈ×_͸qã8óÌ31 ƒ•+W’ŸŸ�ÝngÒ¤IôêÕ ¨>~L]û6ƒˆˆHg á®»îjÖ�Ô"§%bDD¤Ó¹\.V¯^Í5×\CLL Ÿ~ú)6l`Ú´iæ6•••¼÷Þ{\yå•$$$pèÐ!öïßßäcdeeqàÀÎ?ÿ|RRRÌå#FŒà /dÏž=|ôÑGÜrË-�–åõz9çœsˆ‹‹«¶_ Æ+®¸ÂŒñÛo¿m´ŽÅÅÅÄÆÆrë­·VH}Ô¨Q$&&rèÐ!Þ{ï=n¾ùfGµXjîÛP """݉º$ÉéJ‰˜vvÖYgqï½÷Û¬ýÆ�OÿþýëlEƽ÷Þk>éîrrr(++ãã�?Àív× =''‡=z���@jj*¡¡¡­:®Õj5ËËÌÌdõêÕMÞ/..®Ö~ÇŽ#>>¾Î«ã�!CªÃb±�˜˜@¿~ýˆ‹‹#//�>}úÔŠ'x߆b‘ΧDL;KJJªwü˜†ôíÛ×læ^“Ífã¼óÎkmhò½çž{ŽŸýìg­Þ¦=�ïóùX²dI“~©oëc‹t„ÐÐPzõêÅe—]Vï6~¿¿Vk�¶d±XªõO7 £Ùû†QoŒ ÕÑjµÖYn0¯×[­µL}û6ƒˆˆˆˆt¾Úw~"Òæ8Ào¼Á’%Kxýõ×Ù¸qc­mÊËËY²d .—«"é\)))qàÀ *éâñxðù|lÛ¶�ÊÊJzöìINNyyy?~œÊÊJ€jÛ«¹ÜétR\\Üh-‹½ IDAT�——GYYY“û Å """"�O-bDÚYAAŸ~ú)Ó¦M3\.))©µ]XXçŸ>N§³¢é\!!!\z饬[·Ž-[¶àp86l½zõbÇŽôíÛ—¤¤$¦M›ÆêÕ«±Z­$&&@EEEµíj.9r$ëÖ­ãË/¿äòË/¯7‹ÅÂ\ÀŠ+p:�ôèÑ£ÖÀÁuq:�ÕbLNN&**ªÁ:0 Î²l6[¶l¡¨¨ˆ°°0.¹äìöÆÿ·ÝP """"Òù”ˆigùùù$$$˜ãI„††Ö9^ƒÅb!--­ƒ£é:’’’¸æškj-î>—žžNzz:¥¥¥æ´—uv³«¹¼W¯^\wÝuæëÀÌCwß}·ù|àÀ� 8°ÎXÚ/8Æšê«cÍòj–ÙÐöuíÛP """"Ò¹”ˆi‡¦¼¼¼]�áv»9vìX“f¾(,,l·8òóóÙ´ieee„……1~üxs0ÉW_}•3Î8ƒ={öpî¹ç’™™É±cÇØ´i�‡¸¸8Ž?Î�7ÞX­L¿ßÏæÍ›9xð V«•Þ½{3~üxÊËËyóÍ7¹á†8qâÙÙÙ\qÅõ–]VVƺuë8yò$>Ÿ��2zôèzc hh?¿ßχ~HAAv»�qãÆ‘’’RoìÁ’““Ù¼y3_|ñ™™™ ¶x ³%77—M›6áv»‰‰‰©Ö…áÈ‘#lٲŜšvâĉ„‡‡×ª_Ÿ>}<‡Áê+S¤+)--%,, »Ýή]»ÈÈÈèì�DDDDDšE‰˜6ðè£�¶û1¦M›ÆâÅ‹›<£G{p»Ý¬ZµŠ™3gÏ¡C‡X½z5sæÌÁf³QRRBtt4×_=V«·ÛÍ|ÀÅ_L�=8|ø0¬Uî‘#GÈËËcΜ9X,¼^o“b©¯l§ÓÉøñã‰ŽŽ¦²²’7ß|“ôôt’““kŬ¡ý jŠÛ=zpäÈ>øàæÌ™Cnnn£±ÇÇÇsÉ%—ðÙgŸ±uëVÒÒÒ̲«ßÌ™3Íú}÷Ýw@ÕX2ü1—^z)ÑÑÑ|öÙglÙ²…É“'ת_S„ •)Ò•ìß¿Ÿ/¿ü¨ e„ �‘ˆˆˆˆHó(ÓB‹…ðððZÓ«¶çñG³Æq:�µfÝh�¼¼\›³Ÿ×ëÅjµÖ{}Çq:�Œ5ŠÃ‡SXXXo"¦¡ú9RRR˜1cF­uu·)Sð6T¦Hc×�ÅbÁçó5i@Y‘®ÄçóU»§iOº[n…I“&uÈqNœ8�Íf£_¿~ 6¬Î�^;BJJ ÙÙÙ?~œ¤¤$Ž;†aæ ´um¿nÝ:òóóILL¤  ·Û T%vîÜÉ™gživééß¿?}ûö套^Âív†Çã!77—””rssÍÙ†*ûäÉ“„††’˜˜ˆÛí&77—!C†Ô[/›Í†×ëmp?¿ßoÖ;??—ËEBBn·»ÎØCBBÌú¹\.¼^/ @ÕØ6eeefË¢Àñƒ¿¼6T¿¤¤$Š‹‹9xð iiiøý~¼^o� º†Îað±›S¦H], 6› ·Û­DŒˆˆˆt;n·›Í¦$ŒtÝ-wááá|ûí·„††vꜰ°0¦L™Bvv6>Ÿ�ÈÈH.ºè¢Zc­o?yòdÖ®]‹Õj%!!ÁŒ¿¢¢‚�;w’ššŠÏçcëÖ­”••aYYYf²i„ ¬Y³§ÓIll¬Ù‚¤¡²ÓÓÓ9|ø0Ë–-#,,Œ”””zc:t(o¿ý6S¦L©w?›ÍƶmÛ(..&,,ŒiÓ¦a·ÛÉËË«3v—ËeÖÏãñ°cÇNž<‰aDEE1eʳ.�ã_tÑEõž»¤¤$"##�ª)p§OŸÎÆ�Ù¾};!!! :”þýûת›Åb©÷ÖCý~?†a`�‡²²2’’’ÔšJDDDº �ÇÃñãljˆˆ $$«ÕŠÕjUR¦ƒ8ŽÑ@ à¼5þú£ÆsÐs‚^?ZOÐ2Ëj>¯O›%êo& ]JïÞ½»e¦¬¬ÌœIh÷îݤ¥¥u‹²E¤é, ‹«ÕŠÃá °°°³Ci²ÂÂB‡™|QâEÚ›º&I»:xð _ý5ÉÉÉŒ3¦[”-" «9CRà¦Ån·SQQAII QQQ�¥ˆˆˆHÃJJJ̉2÷3ÁÉ%e¤=¨k’ˆœvÔ5©cwO tQòz½x<ÊËˉ��×x1"""Òe¹\. q:�„„„`·ÛkµŠQ"¦ýý»&©EŒˆˆ´Jð�ŠÕjÅn·ãt:),,ÄëõÝÉŠˆˆˆTW\\Lqq1N§³VFÉioJĈˆH‹º'¿¶Z­øý~l6N§“ÒÒR\.ñññ8ŽNŒVDDD¤jšêÂÂB ÃÀétb³Ùj Π„Œ´%bDD¤Åê+Æf³™¯CCCñz½äææâp8ˆŽŽÆápTÛFDDD¤½øý~|>n·›ââbÜn7¡¡¡„††b³Ùêm £ûiOJĈˆH›´ˆ1 ›Í`þÂd·Ûñz½æ/P†a4RšˆˆˆHÛÜ�„„„�Õj5[Âß³(ù"E‰i•à.J5“1�_– Ã02�Á}5hºˆˆˆ´·à–.�„Lðj'a”�‘ö¦DŒˆˆ´Z]ɘ€@b&0³’ZȈˆHG &8( #N‰i5“1~¿¿ZB0óUké(5Ç ¾?QF:ƒ1""Òfj&c€j Ã0t“#"""�¢¾L]¯EÚ“1""Ò¦‚05_×l!#"""Ò‘”€‘®@‰iÁ­c¯EDDDº Ý›HgQ"FDDÚMð ŽÆ…‘Φä‹tJĈˆH‡Ð��ˆˆˆˆ¨³¾ˆˆˆˆˆˆˆHQ"FDDDDDDD¤ƒ¨kRá÷û1 Ã0ðûýÕf±X,X­V¬V«šö‹ˆˆˆˆˆˆtcJÄt"Ã0ðxS•„©£k€ß�%(S•”1Àoiì%¢üNò�ÌæD�;éÑ#±j)"""""""�Q"¦ùý~Žç&¾øAbØ6Xª«°VkóC"¦Ž&1~ÿý¿,~ë‹ß Éÿ§ Ž�繟¤äTͰ$""""""ÒÅhP‘vR•„ùŽÄ¢_Ã&°ØÁjÃbµc±~Ÿ�±Ú[÷°Ø°|_&VXìIJ�Ä¢_s<÷;s l锈i'ùÇs‰/þO"-»ª’$V–ï“1?$Sj$cl!` ùþù÷«½j™-¤F"¦z9?”m#’�ô(ºŸ‚üÜÎ> """""""D‰˜vpêÔ)"‹þL ŸuE²%On c±Ù±XCª¶FZÅ•i¶´±Øˆ¶l#üÔSµiÝ yüñǹᆘ1c×_=üã)))iq™óæÍcÙ²eæëùóçóþûï·E¸"""""""]ŠÆˆic•••x ×ÐËx¬Öê ’j­ß'M¬X¾¸·ö€½U,5Ƈñ?H/~ø-`øªRjFU1~ÃO¢ñ‡ FPv1¡¡¡­®›ÇãaáÂ… 0€?üáÄÄÄPPPÀÎ�;‰ŒŒlq¹cÆŒáŒ3Îhu|"""""""]�1mÈï÷sòD½*ÿ6KUK˜@Â%�„±9 r"DŽ{"øÊñ»¿ÂRö1ø‹¬× “Á1lNðæCéF(ù ~HÆXüø-6°úI®|œœ‚$÷Joõà½{÷îåèÑ£,Z´›Í@\\ hU¹·Þzk«öé.”ˆiC¥¥¥D”,!ÌZð}òÅZ½õKX:ôz5öœq·Àɧ¡ücª1ÁÓWûÁ9Ü�` ¯¾kÔÅ¿Žý*¾‹¿ê˜øÁ°f+$¼t)ee ZÕjÀçóáv»ÉËË£W¯^un3þ|ÆŽËÖ­[9pà©©©üò—¿ä«¯¾båÊ•äåå1|øpî»ï>bbbÌ}fÍšÅôéÓë,Óëõ²xñbÖ­[‡ÛífìØ±ÜqÇ8�ÎVÕGDDDDDD¤£iŒ˜6â÷û)+É#Þ÷Ž™x1»Ymàè }ž«# óýþ–püñ¿‚ˆ kÖ1 ü}µ“0¡¾/»—™ø±u}êá{‡’¢ÜVÏ¢4hÐ ÒÓÓ¹÷Þ{Y¶lùùùµ¶)..æ…ÿßÞ�GGuvÿÞ™Ñh—��@¬‚¶Á,Ƭ qí8õ‚W’Ø~�¦Mº¤¯O—œ¶Î›öd?9o㞸vÈk×µi^ÇÆ)® .1 à@°�ÌËŒ%6�ö™¹÷¾Œf˜Í*��Fü>çÜÞ;wyîsïÕ™ÏóÜû7¾þõ¯óïÿþïTVVò�o|ƒ3gÎð�ï|‡ý×åìÙ³<ÿüóIŸ÷g?ûgÏžå™gžáÙgŸåìÙ³üâ¿èÕµˆˆˆˆˆˆˆô1iÒÞÞNnË’åìˆ÷¥kþ-p–&,Ç.úº¿ËR`0^WVñ×WÀY Ãÿ&ìœ�:d9ÛÉk{“ööö^]£Ûíæé§ŸæÞ{ïeݺu¬^½šï}ï{=z4¸OQQO>ù$“'O¦¤¤„ûï¿€Õ«W3jÔ(*++ùüç?Ïþýû“:g[[6làOÿôO)))aذa<öØcìØ±£W×"""""""ÒÔ5)MZ[[)õ¾ Y]ƒíÆÕPÄ] ùó£·³î}Ž:ÆÄêñÌ»u8²!o)Fû›Ø¹·a9þ}kwsäðq&MžÀ-ófw/,¸GCçÉ®s[ÁºäulärÛ—ÉˋѪ&Iyyy<øàƒÜwß}ìܹ“×^{�?û³?ãg?û&ø[û„ŽESUUøƒª’’’àºdC¡Ó§OcYßüæ7ƒåú|>ÚÚÚzu"""""""ýAAL˜¦‰Õ~‚Bç)ÀÞÆp@n”Ðø??‰_½úëàçû¸›¯þñW0³fãêÜè/;k`Ís/òú¯Ö÷}àÁ{xâk_îV¦�7Ãs*üü8(Îú„KŸ`š%Á�v{Ãår±páBn½õVžxâ ¶mÛ bBE 8•AƒóóóxöÙg)**êy…EDDDDDDuMJ�ǃ³mw°õ‰l×?ù²º¿U¨££“u¯¿¶nÝëoÒÑщe vM²JG{o¼þ_aû¾þÚz:::»•kºªÃÎmpµ…Ž£u'�']— €ÓédèС¸Ýî´–0|øpòòò¨««ë“òE$ý¾ò•¯0oÞ¼¨So»H‚¿Ëâ’%KX²dIZʹ–Ô"& ¼^/®Î '´[ÒÕîI¦ÕýFû|>,Ë [gY>ŸËĦmâõùº ´kY¦é²ÃÖ›¦�Ëpt¯®Îñz½=~ÛÐ�ؼy3óæÍcÔ¨Q˜¦ÉæÍ›9tèù—Ù£2£)..æ³Ïüƒ »\.|ðA~ñ‹_PVVÆŒ3¸xñ"—.]¢ºº:mç‘ô[¸pa·�6-òrrr‚-ð²³³ì�Ùžzê)6mÚÄË/¿Ì¤IÝC}É< bÒÀçó‘gœêzãtxk Ú÷cÛ„uÉ)(Ègþ‚[ر}gpÝü·PP�O[óqÿ“³³‘¢iÌ›?‡º»¯î»pn°ÛN€mYÐQ ^Âë9œ¢ÍçëñuðÌ3ÏÐØØHNNÕÕÕüä'?aôèÑ=.7Ò}÷ÝÇOúSNœ8Á?þã?òÈ#�àv»ƒç-))áÁT#2À=õÔSÁ×Ô§“Ãáà…^H{¹"""""×Bòƒu¤¯<#Árè:GȺÈ)°=ð9°ìŒXvEÌ ÏŸ?¿³·¯rÕØØHÅù»Èvµ‚Ã…áp�3ëj÷"g)-e¿¤¨hHØq���¼þ«õ999lÙ²Ó4¹ÿþûYºt)ÿüÏÿÌþýû>|8ý×ÍŒ3ÿ åÏ>û,ï½÷---̘1ƒ'Ÿ|’ŠŠŠ¤Îh àt:õÆ8tÜn÷< 0_Äܬˆe;d™�Ï¡!Û YgGY¹KÚBµˆIÛ¶Értt} t"øÙa7c]~•¶¬/‘—{õ­EÙÙÙ<ò¥ûƒŸ-ÓäâùC”Õ»&å»ëi¸p„¡eÕaûFjkoþü*-„eYÆÕÜ*ËèèÖJD¤¯üà? +++øù¦›nbÕªUÁÏ�À¤²²’½{÷òüóÏ3uêT,XÀÊ•+©¯¯§®®.ÄìØ±ƒ’’æÌ™õ|o½õà3[ ÅÜO~òÖ­[Çĉ™7oÛ¶mãÉ'Ÿä¹çž &‰ê¹ÏèÑ£ùýïÏsÏ=ÇsÏ=Ç�7ÞHYYG�åþáxã�7ÈÊÊâïÿþïÙ¹s'‹-"??ŸÿþïÿæoÿöoyñÅq8 Ï»lÙ²`³dÉ&OžœŽÇ"""""ýLALš˜q·1_¥¡aíE‹(Rüá--Í\¾ô C^Á0,0ü�Æ0| Íû¿œ=ûC†Œ!¿  ì8˲¸té"¾æ÷ίâÖÁáèy·$‘TmÙ²%ì³Óé b^}õU²²²xñÅyî¹çØ»w/ ,`ùòå<ýôÓìܹ“o|ã9r„††V­ZÕíÿ† Xøõ¯ÍøñãyñÅq¹\¬_¿žïÿû¬]»6,ˆ‰W—hû¬Y³†^x�Å‹óãÿ€‡zˆ'NpêÔ)LÓ¤¶¶–¹sçò£ý€ŽŽ6oÞÌ™3gºsÆ:o Å̦M›øêW¿ª1bDDDD 1ib8œ\m-e»m2Âù,M—ë9~n FÖÈ®6^O ŹûU´‡Ã ¶ ¬®`Ƕp9.0²ð4^šË§g§‘å*ÃÀ²,lï§”eo¡Ìñ˜fŒ³Öö~�L‘dÅëš0dÈ�`‹™iÓ¦þneeeeÌœ9“½{÷rá¶oßÀÊ•+c–—��®=z˲¸å–[p¹üÿ¹[±bßÿþ÷9qâDÒu‰·OYYYpû´iÓ8qâ—/_æüùóìÞ½›yóæ…•såÊ•”Î+""""ƒ‹‚˜4±.Œ`xÙÕÌ®’µƒ!Ù»ðØCñš%8³LrŠ®`8`8¯†0Fà l §ÑBEá&Fä¿MGg¦×IVÖ%Ü9ºÆ‚±»Ÿ/¢.†ój‘�$”„Z±b{öìa×®]ìØ±ƒ#Fpà 7Ä,#ò�p�W[›æÕ‹���†ANNNJu‰ííO¡ëÔœ9sø«¿ú«°ýFŽÙã󊈈ˆHæ‹Ý¾[Rbdåº'ÿ ÿÔµÎíh"?û¹®F Û¶é],Ûòa[Þ®Éçfl lÃö‘ëj$?ûnGSÈ9’8·«g¯­éË–-Ãår±aÃêëëY±bEØÛç7nà[ÆãñP[[‹mÛ}ÞÍgܸq8]]gq.ÿ‹tæÿ ¥¥¥i»v‘�¨©©‰ªªªþ®†ˆˆˆˆˆ$àv»çÍøß~㋘ۀ±l‡,C·.!ÁASÛ Y9 k´åXÒ"¨EL¸\.š;Ê(Ë.Åö4Ñý;`uu+²È-/`Ôüs\:”KsýÁ^Ÿ{ÔÂNr‡cwµ¸ ÿ^^�ŒÜZ=eäë‘‹ˆˆˆˆˆˆôõSIƒ¬¬,Z=#0òG» ƒÛ+dÙÅãl GïÃ4‡Ã¦p þ§å\¡u0òGÒâ‘R—é�5kÖôwDDDDDDd€Q“n·›Nk<ägöÕP¤ë-HW?›`™�ÏcÄìŽ^Ÿ·â–ŠÆåw�ÃŒqN Ù¹ÃðØã{5Èc{{;/½ômmm½®{´2ÛÚÚx饗‚¯œÍ4}qDDDDDDdpQ“N§“Â!ã8¹ Æ^m‘Ú¦+„Á6É)Éaâ�Ξ·Š1œ6ãïè$»$;¬ì¨ç.˹¦" ‹«‚ƒ÷DNN‹/&7×ÿ캺:šššz\^d™¹¹¹,^¼˜œœœ^•Ù_"ï�ˆˆˆˆˆˆH$1iRRR©óUyÃ!«°«‹�Ù-„ ´V)žTÀ¤»b·œp9 \ÎØ�gÒÝíOÊ÷Ÿ'¬ìÐsZþºä–súüJJJzu�†a0vìØàÛ>ñx³fÍ¢¸¸˜ðÛдvÍsIDATßþ–Gy„ÂÂB>úè#jkk¹ûî»c–ïñxظq#wÞy'¥¥¥œ°|�Íæ¦¯y)\q³³³©kº25u`zÚq-mdÚ£ ÇdG)+䶉•; ;»”–ö\Zì…^Ó{aÅÅÅLœ8·Û¬Ã„ ¸råJÜã(..¦´´€ªª*òóó¹xñbpŸ)S¦àp$þ 2„ÖÖV¶oßΩS§¢Ž“oŸÞ^ËgŸ}F[[Û·ogÆ |òÉ'½[GDDDDDä:6 ²€T©EL†Áç¦ÞÄž÷?bÉçv`çT`[>žF°À6lp81, §¿eŒa‘_éÀî£mò9¸l`ÎÁÙÒÕ5©ÐÄžÔ ÅùÕ†ÓÑÀØÁ–0vØ›’L,w9äŒÀ¶áý#3¸qÎMý:nIdX’Lxbšf·7Ÿ�òòr®\¹Â‰'ÿx4^¯·We‹ˆˆˆˆˆHfR‹˜>PUUÅÞ wpò\3cJOa¹J±l7NÏi˜bØØ† ‡¿Å…á 0 ¢´\±»þ�mwÍ-ì`‹˜®×UãÀÌY…À©óÃiqÞÁ¤1cúì:g̘ÁöíÛ9pà555|øá‡TVV’��Ýë²srrX¾|9[·nÅ4M ¸ýöÛc¶@1 ƒ%K–°iÓ&rss2dHp0ÜK—.ñþûïÓÚÚŠeYÌž=›ììlÚÚÚ‚u6M3ê>½1}út~ýë_sûí·óðìØ±ƒ={ö�••ÅôéÓ?~|¯Ê‘Ì“îþ*É”g$X]çˆXוX„íëˆ2LNüaSè¼ðüùó;m»o»”Y–EÝŽ­|®ô F}ŠmúÀôâðžÇÁ•«ŒÑUe#Ä„^n€Ý•ÅÂ+Ø5ɶm,£ËUÎ, §‹ÏšGqàâÝÜ:IR]g Ó4yùå—yì±Çú»*’áššš¨ªªêïjˆˆˆˆˆHn·{Ð ˜€/bn…Lv”9]óÀ:BÖ‡Ž]aGÌã-Ç’¶¡?ZÄØ¤?póæ/¦vtxÖSUrÓQ‚ÏÌÃe]Æa´û l¢1á­b,l L;Ó(ÆpdCW[šãçª8Öòæ/XœQ! ÀÉ“'©¬¬ìïjˆˆˆˆˆˆÈõãšü›Y¿Ô3ŒÓédÁÂ%œö>Ì®ãs1­Àívⵊèð”ÒÙ‘‡·ÓÀöú[ÌøÇ~ñ†ŒÓµlz±|&ÞNƒÎŽ<:<¥ø¬"ü�|À² ~jg|°`á’¨oÈl󾯱c,\¸°¿«""½´qãF¶mÛuÛüÇð»ßýîšÔöm¶nÝÊš5kxùå—¹páBŸŸ3Õë{å•W¨¯¯ïñv gš&ÿò/ÿÂåË—¯Éù2éùDÖµ¯ÿ¯åߺˆˆH¦Ñ1}Ìáp0wî\NžΦú n*߯ˆüS][ L3 Ÿé Óô�鼆å_.lÛ¸‚]� §ÃyµÕLCópö5.¦jÒ¦Oœx­/1- Ãà¶ÛnëïjˆH?~<åååIí»sçNššš¸ýöÛ{t®úúzNŸ>ÍêÕ«1 ƒœœœ•“ŠT®OÂõöy÷uù}]¿k-�ßÕh÷F """± ¤ &™.KÛ­©ªªŠ²²øàƒjŽ^ÜIõ�] Íþ4l°MÛ´±Mw$Ãec8 ÿQæù¶r6ÍÃÊŸË-‹fPPPpÍ®GD¤'n½õÖkv®¦¦&ÊËËÉÏÏ¿fç¼–×'Ò}ý]Õß‚ˆˆ\c×tŒ—ÞHAL_‰6(O¿ÈÏÏgþü46NâÀáyx/Ô32{åî#¹Î%UÆåÎR:'ðiç ²‡LgÒÌI 6¬�k."’¯¼ò 7ÜpÓ¦MücCÕÕÕqñâEòóó™4ióçÏgÏž=ìÞ½€#GŽ0}útjjjÂʲm›={öðñÇÓÞÞNEE555±yóföïßÀÁƒ)--å‘G »qãF\.WXK¼ßýîw444pûí·S[[ËñãÇiii¡  €¹sç2eÊ”°ë˜5kü1gÏžåŽ;î`̘1a×gšfÂrŽ?Ξ={hkkcøðá,]º”!C†D½¦iRWWÇáÇñù|L˜0�E‹‘••÷~¦Rή]»8zô(=ô‡¯×ËË/¿Ì¼yó˜:u*¯¼ò S§NåðáÜ;wŽ’’jjj>|xÂçëÞ�;w.êóNt½–e±sçN<ˆmÛŒ;6ê}‹õ}JT×DÇœ={–ƒÒØØHQQ555Œ92©çú<’ùÎŻGŠü[Ø·oû÷ï§­­�#FPSSC~~~ܺź7‘å'ó½˜0aŸ|ò çÎ�ëv/EDäº0`~»÷µL bⵌð­¼¼œòòr®\¹�³g—ðQc#žKgÈã49ög¸íK8¬v,G.£„£‚6Fá.Eye9³Gޤ°°°Ÿ¯DD¤ç:;;yë­·X´hÕÕÕ´´´àóù»eΚ5 ¯×·+È®]»8qâwÞy'.—‹íÛ·³nÝ:¾üå/³lÙ2Ün7ííí¬X±¢Û±ÕÕÕ¼óÎ;ضí‹pôèQn¾ùfœN'ÅÅÅÁr>̦M›>|8%%%Á2~ó›ß°téR,X58I¦œË—/ÓØØÈªU«((( ®®Ž×_�G}—«û¢·nÝJGG>ø –e±iÓ&vìØAMMMÜû™J9³gÏæðáÃìÛ·�›o¾™]»vQVVÆÔ©SƒÇoÙ²…U«VQTTÄÞ½{yã�7xüñÇÉÎÎŽû\ã—EÞ»1cÆD}Þñê P[[Ë©S§¸ë®»p¹\ìÚµ+êõÆú>%S×xÇ···óñÇóÀP\\L]]6làñÇÇét&¬*ß•D÷=™íñìÙ³‡ƒ²råJòòòøôÓOÉÍÍMX·dþV“¹×ÔÕÕż—""r]‹÷Àÿþ�f ÖÛӛ𣍍ˆÉ“'³hÑ".»‡Iscèô¿À]ý-˜øL| wõ·:ý/˜4çQ.»‡E‹1yòd…0"’ñZZZ0M“±cÇ’��ÍСCcþë}$Ó4Ù»w/K—.eèС³råJ<Ç�Ox|UU–eñé§ŸërñâEÆ�À�7Þ,wöìÙÑÐÐVÆ´iÓ¸á†(++‹š$SŽeYÌœ9“‘#GRTTl¡søðáney<êëëY¼x1yyy0oÞ<Ž=¼†dîg¢rœN'Ë—/g÷îÝœ8q‚°lÙ²°2–/_ÎÈ‘#)((`Ñ¢EäååqèС¤ŸK2÷.Q=MÓäÃ?dùò唕•1dÈ–/_µ¬hzûÈÍÍ¥¦¦†#F�››ËìÙ³ikk£©©)aý#%ó�‹uߓ݋eY¼ÿþû,[¶Œòòr ¨®®¶ÜI¦nñ$s¯srrX¶lYÔ{)""×µA™ dj‹˜X2v ™ììì¤þÅJDd°(--¥²²’µk×2nÜ8¦M›ÆèÑ£“:öòåËX–6hVV#FŒàÒ¥K �w:�L˜0�cÇŽ1jÔ(Ž=ʸqã‚¡@{{;äÓO?¥³³“Ë—/wk]2bĈ„çITNII ¥¥¥aõ9r$/^ìVVSS¶mó«_ý*؊Dz,<�üýLT@EEÕÕÕ¬_¿ž+VăÌ0 ***hjjJú¹$sïÕ³©© ˲ºçöKFo¿C¡­5ŠŠŠÈÊÊ ¶ItŸC%ó� zß{²=Ô•+Wðz½1×Mµn‘’½×¡Ï/ô^Šˆˆ0Àƒ•T † &¾dl#"r=2 ƒ{ӧOsàÀÞzë-*++ù¾�ðXÓ4±m˲Â~;�Τ»1Lž<™Í›7³hÑ"Ž;ÆM7Ý€×ëåÕW_eâĉÜrË-òÚk¯aYVJ××Órb]ƒÛíàᇎú¨dïg¢ròòòÂö�Ç0 \.WZžK²õ´, ۶ú—¥"�u�&Ùû =ÿ®î{O·tvvþq\ÒU·P}}¯EDäº1hÆ�è]“zkÐ<(‘Áª²²’+Vpÿý÷sìØ1ZZZ‚ÛbýØ+..v-ÿ�ÈÆÆF†šôy½^/§OŸæÜ¹sTUUÐØØH{{; ,`èС¸ÝnΟ?V¯d$SN{{;.\;®¡¡!ê5áv»9vìXÂëŠu?“-çÒ¥K|øá‡,\¸�-[¶¨´µµBެsoŸKèóNTÏhçJ¥üžÔ5•ð!ÙçÉ}WâÝ÷d¶ÇS\\¼öžÔ âß›tü½ŠˆÈuãºø Ÿ‰AL´’Ìà=v‚ýDD$M|>aSä¿¶wttðñÇ•=sæ YYYäææPPPÀ™3ghnnîÖ=Áív3mÚ4Þ}÷]hkkcÛ¶mäææ•D Ã`Ò¤I¼óÎ;Œ?>ø/óyyyx<>úè#:::‚ãµD¾I'‘dÊinnfß¾}œ9s†¶¶6¶oߎmÛL˜0ð�AråʳfÍbÇŽ|òÉ'X–EKKKðÇs¢û�¨Û¶Ù´i³fÍâæ›ofذalß¾=x¼Ë墡¡�Ó§OÓÑÑÁ®]»ðxF“¨þ¡’ù®Ä»ïÉlý.EÊÉÉa„ lÙ²…K—.Çnñz½IÕ-ѽIÇß«ˆˆ N†a˜]‹¡¿×Sœ7ã~ç§»kR:º¥ZF¬®IWƒ¦°j†eÛv&†P""aÿþýÝþuþñÇûÜÙÙÉ‘#G¨­­Åãñ0dÈî¸ãŽ` 2eÊNœ8ÁÚµk©¬¬ä®»î ;~É’%ìØ±ƒ·Þz ˲=z4wß}wJõœòÊ+¯pà 70mÚ´þ®Êu%Ñ}×s‘LäóùÞËËË{hLÀ×5,[]“eNÈçÀr´1ÑœX˱¤5ˆé¯V!±."r}o_UùlÀôx<õ=ØODDDDDDDÒ£±±ñwøC—ÐßìD™§*Ùl¡_º5eB÷œdR«hË�‡hE¬÷¾óÎ;¯¤µ†"""""""’’^xá= 0ÀXà7{ ÅK*-YRmáÒ¯2!ˆIE¬Ô+¬EÌêÕ«w†qZ­bDDDDDDD®½öööÿü§ú§ÓÄoCŒÏ­û~½—lº9LèúÈqc"ÇŠ±c¬�œàê¸1¡cÈpÓM7�ž8qâIÖUD2HGGC†h(‘¾0}úônƒÍJßKtßõ\DD$“†aþð‡?üû­[·žÃÄXQ&ˆ=îK@䀾¡¿ë ݯ'A t°×À,Ÿc Ú›{òäÉoççç1ò•ª"’Ù4X¯ˆˆˆˆÈÀU__ÿ�™3gþÐNìAz#[Ê„~†èC‘D¶¬!ÊçÈý“1(ë�'ÖMKÔ?,Ö¾‘S ]먪ªúžÇã©U%‘¾wæÌ™ŸÎœ9ó7@áoEŠœˆò™�õ‘ËɆ0ý®/‚˜T¥tÝ”X'4|‰|õUûÈ‘#Ÿlmm]o dDDDDDDDÒÏ0 ³¾¾þ;ãÆ�{K˜Ðßæ‘¿×cý¶O‡~m ³EL²Bû‚E»‘¡0rÙ ™·VUU}wÆ ß à«@FDDDDDD$=Z[[×ûÛß~hæÌ™€V“Çûíë7Fê«Ä¡¯Æ‰‰\vD¬‹”7t:^LèçÀ< È~饗æÞvÛmæääLµm»È¶íL«D®KW®\¡²²²¿«!""""rÝ1 ÃÎ{½ÞC {Ö¬Y³ã?øÁi ÿ«ª#GX„� ÚR&2œ m“Ì€¾n|¸AL`]*ƒö†®wFlw„¬L¡!Œ#äs`@_WÈ1É^—šÒˆˆˆˆˆˆÈ`”(�ÝX×Gø@¼¡]�BÃ3ä˜È·&™tZz:Hoä1ÉH{ãJw�) ¼†:0OGYà(�ðÅùlÅ9Oèõ»N, aDDDDDDd0K&Œ‰ŽDŽ×Ù"&²õ „.Éœ;é«¶Gú*ˆIG°«ÌháMärèœ�ýiZd¹Nº‡6ÑZßãs¬u"""""""ƒE¼&‘Ÿ#Ç} ÌÍ�yäkªC�‹ÕÊ%ÚybÕ­·ú$°éï1ñ.؈Xx‚“Ðýíˆ}C[Ä8¸ÆB;¤ ƒ«-gâ…1¡’ÙGDDDDDD$S%xÄ SB[¾˜óа†ˆ2"—£ ÒÛ—oYJ»¾ R)»§ƒö†®‹Ö•(tÀ^è>ˆ¯3âsä2Ç&s """""""ƒQ¢p#ÖØ-ÑÞŒ+„‰6@/tv¢�‡Ÿ#÷MVƵˆIW÷¤hÝŽ"Ë�Õ] »…¶ˆ +¡-a"[Ö„2fÈúhuˆµNDDDDDD$Ó¥2ðm´À$2Œ ”7V“è<ÄÙ··ú¬EÍ@îšñÜÈð%V¥Ðm¡ËVD9¡Ç†¾›�åd‚…1""""""2˜$JÄ Db…,±B˜Ðc£uIJ¥‹Ô€ÔסAºº'E®O¥‹„·~‰ö&$Gœã“¦§ÛEDDDDDD¢DaF¢ $V—"+Æ>Ñ‚™hÇGÛY§Û- ~‹ˆÞ*&Ù.J‘-bBá%b;\¸b‡0½ WΈˆˆˆˆˆÈ@ÒÛÐ!™.Cf”õ‘K¬V/É”¯.ʵ®u«èÞµ(ÚúXG[­N"""""""rU´à$Z‹–Èõ;„‰Îd\kÈœ &Ö¶ž„1±Þ®ë<ÉŽ y¼ˆˆˆˆˆˆÈ`�jˆ¯EK´nF±öïm“h[,ĤzžDaL´Ö2‰Â˜T¶E–¯×V‹ˆˆˆˆˆˆ\•(¨°">G [B÷Ke[´.I‰º) ˜ví¸X!M¼À%^P«5L¼²bÕUDDDDDDäz‘¨ P¬í�åXû'jQ-äIæ|ɺ.ƒ˜Ðý“í¢ɇ1Él�uîdê'""""""2Øõä5ÒÉv[е=Ù&ÙúE3h‚˜Tϯ•Jèºd˜Àr¢Ö-‘]�bÕ7™ëP@#""""""ƒA2ÁD¬}"×' Rb�ý’̱±Î; ZÃÀÀ b"÷�×Z¥7aL¢ýâÕIDDDDDDDüâ…1ñ‚‘Þ„0ñÊ‹W§X]Ó“ó¥#Œ‰¶oªå*€I,V—£hû–ãí;¨Bçµ:Q—t1ñ¶ÛQöOe{è~�ù5{("""""""&Ö›‘"÷ /dI´=c£÷GK�kÆ>' \b½ž:•±`ÔbFDDDDDD®© ‚kŸDL¬WTÇ+7#ZÃ@ÿ×2Œ�èaK²¯ÆNt\2ÔˆˆˆˆˆˆH&èI(‘è˜d^1ÒDî—Ñ! dNyL¢0&ÖçdáMt.‰.Ùq\"×'Ú7Ý!LO�é•k=FL¨þcìëãÓ qDDDDDD$õ& H6| lK°Ä*#ãBèÿ  7]”âŸÌ~©Žï¢V2"""""""áz†Äg&•4Éì—¨×\ éo%�ëz{OúûžŠˆˆˆˆˆˆ¤SoC‹T[·¤c]"×m=¯CO[Ǥºo¼õ"""""""rU²-Xâ­ï«V0½=.-JÀ�®0&•u‰¶ ”{#""""""’‰R ebmKW+˜Þ—6)lèë0&Ùs\«�|EDDDDDD‹TÕd÷T! ôï[“"õ&ä]�ÒˆˆˆˆˆˆÈ`ÖÛ°%•ãzÒš&# ´ð ¯ÊU+‘�¡'�Nº î71„èë·)”¹¶zÓšfЄ00pƒ‡tÔ«·ãÁ¤«"""""""×›t„+éPT;hHWÝR)'á�ˆˆˆˆˆˆÈõ$Ý¡JºÂ“ÂÀÀÒY¿¾îò”î󉈈ˆˆˆˆô§TƒŒ�Ô…h@†0�9aÁ@ dDDDDDDD$}®‹& “B ½rZDDDDDDdpè‹ÀdÀ‡0�yAD_Ö7Óî…ˆˆˆˆˆˆH&éË $#BÈÌðáZÕ9ï�ˆˆˆˆˆˆÈ@q­Â‘Œ a ³Ã†þª{&ß3‘të¯ $£˜€Á* ôkèõ 5ÐŽ�^¿¸KH0X®CDDDDDDDbËè_€1Ø®GDDDDDDDA0Xƒ‹Áz]"""""""דAÀ\�Åõp�"""""""ƒÅ  _B]O!Åõt­"""""""™fP0×k8q½^·ˆˆˆˆˆˆÈ@r]„/¡Høé>ˆˆˆˆˆˆˆô½ë.x‰¤"6Ý‘ž»îC—h6ôœî�ˆˆˆˆˆˆ\Ï´ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆ ÿ¢ šÇ|ÐQ^IEND®B`‚Flatseal-2.4.1/screenshots/en/3.png000066400000000000000000003570661520337174300171110ustar00rootroot00000000000000‰PNG  IHDRb6½‹%ðsBIT|dˆtEXtSoftwaregnome-screenshotï¿>-tEXtCreation TimeSat 13 Apr 2024 09:30:49 AM -04=ødw IDATxœìÝyx[å�6üûí¶oñÇΞØ�}s)HiÂR ¥LiaJÛ¡ ý ÃË´¥/”™ôšv†~�¶“¦ ˜�² �’„��8‰³'v'ñnÇ»e[²$k;ïAB²%Y²%[’ïßuùŠuÎÑsÉŽÏsn= @DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDkÂDW Áñý#"""""¢ÉHšè $* ¡ñý!""""""Šƒš 4|ŽïQì0œÇÉþú‰ˆˆˆˆˆˆ&¤ e&c1_3Q¼šT¡Ìd %&Ók%""""""J4“"�Iöp"Ù_Q2JÚP&™ƒŠd~mDDDDDDDÉ.)Ød +’ñ5MVIÈ$Sh¯%ê@DDDDDDmñ†ÄCÆ,Y‚ƒñxÉò^ÅÂx% Æ$z¸«ú'úûBDDDDDDbœ$l “È�C´ëžÈïQ¼‹vx’�aL¢†Ѫw¢¾~""""""¢D­%á˜D "¢QçpËHÄ÷‡ˆˆˆˆˆˆh¢…�D#HI¨0&Ñ‚†±Ö7ÔóÇRv¢½�DDDDDDD£1–Ð#ÔsǦ$L“HB,‚’HÊL¤÷Šˆˆˆˆˆˆh¼E†;6VAOÜH”pa´õK“(ï Q< '‰v ÷aL"„ Ñ aF*kèþDxˆˆˆˆˆˆˆâÍÐ@d¤€$Ðþ¤ câ=hˆVîÜ0ñþ~%")È÷¡ŽéØpÏWâ=xMý a„öGR—x‰ˆˆˆˆˆˆ¢!îJCþ©œÑ„* bF!V!L8L4&÷%""""""š,F3×K¨@&iØx bÂD²DÚk†ˆˆˆˆˆˆh2‹$\ñÝ>i˜x "­×hC˜@ljc8/ÑdIÀáãù± cÄ„!Ú!L°^-C‹¶ÇãûCDDDDDDïMÎ;4� ²Œ¾$t�AC$u '„‰$€ñýzüXêEDDDDDD”ˆ" 1)Ò�/ ¼@&ša ƒ˜Æ3„ñ `DŸmžÇáQb""""""Jvá.?íËýÙ—„ÏÃÏcÀ?�™4aL<Ña†n ^d>ßû9¡&ò%""""""šŒBÍéâ R3kÖ¬7ñyãDð0f¤ùbFÆLø�< »‰F4Rãy,àóF@e4ÿȆˆˆˆˆˆˆ(v$I’M›6íÅŽŽŽG¨àoî;ºÅ÷C¾�f~0aâ!ˆ W8sà Ý7´GŒg.>ë #—Ë¿À†ˆˆˆˆˆˆ(öÒÒÒžª©©¹WÂÏý¹'Œ„sßìqÜJ¤ &˜`? ¡óÅøNЫصk×õì CDDDDDD4¾ Ÿå•WfáóiC†®Z<ô~ˆn¯˜ 5Ñ/`´sÃøn 6,iè2ՊϾ”Tf³ù·Û=-âQÜ wŽ·Û ·ÛÍɹ“€ E¢˜ Ÿ/ÑH&{;.Ú>ƒƒƒÕétOâÊ|1v\™+Æ�Ï牑|’Þ@sÆ =f$öË“¨?µPI˜oãáI×dd»víºÎ³:M>’$ÁétÂårMÚ‹w²‘$ .— N§“?S""¢$ÆvÜÉÐöQ©T_yå•WfâóáIÁzÅ„Ó1#¡$j3T°7ß·WŒ7ˆY¾|ù7Æ©^D‡&û…;™y%DDD”œØŽó—èmŸÍ›7¯Çð &Xø‚ÛJ"1‘¾Ñ¾?4ß½KXËåòüÏK49Mæ.¬“…$Ip»Ý#HDDD …í¸À¹í£×ëKás¯ŽÀ÷ò£ÉâÚD1c}sBuOò5ô‡*`㹉(A%êEŠ"ß3Qòáõ=¸D}od2Ù|\¹G÷ë<àÐpïÿ#1a��|¢N#á Q öƒ%¢I€Ÿ¢Lü9%^߃‹æ{㙇gè„ȾËårBTrŒ,øß«‡º§Oš_€xbÂI½Â;6šîLDDDDDDD“‚$Ip8p:�A÷»\.¸\.8Èår(Š12’$É|½o¾ Ý踸nâ=ˆ &’Ÿt 9cˆˆˆˆˆˆˆ€Óé„Ýn�ø9N§J¥rù˜£…ÑÎ ×�K05D'�H °…=aˆˆˆˆˆˆˆ‚p8‡0¾ìv;Gk°g Ûa\%j�˜@b1yOHííí¨ªªB{{;¡R©�››‹ââbdggÇòÔDDDDDDDcât:£¢8‚�ž1Áîï®÷K ÉÄŒ·Û�#GŽàüùó~Û- jkkQ[[‹ââb¬\¹¢Èy�‰ˆˆˆˆˆ(¾H’4¦ž0CÙívÈd²hMâ›Ôâ9ˆ gÞ‘Ž� O#—˱páBÌœ9©©©@mm-Μ9ƒªª*@iiéxVmœ={ÇŽ¬_¿Ó¦M‹Éy¶mÛ¹\Ž{g¯¿þ:àÞ{ï…B¡ˆúùÆãÉnË–-£zÞC=åšD—ÛíFgg'úúú`·Û!Š"Ôj5²³³¡ÕjQQQQQRR2au¼xñ"¬V«÷±B¡€J¥BFFÒÒÒb~~·Û�sçÎJJJ Šb\¼/D“ÑéÓ§qôèQÀM7Ý„ÂÂB¿ý[·n…\.Çý÷ßðñhÊŒߺ8¼úê«€ûï¿?f×þXŸƒˆ&ÖÐ6’L&ƒF£ANNRSS'°fã+Êɼe*•ʨ—ë#’‰yã¶M2w×wu¥ˆ´··{C˜�7bÑ¢EÐétE:�‹-ÂÆ�!—ËQUU…ŽŽŽhœ6îÕÕÕy¿ohh—sÊår¤¥¥!---*]àöíÛ‡-[¶ §§'fç äQ__�ööv8�N¤¦¦B&“a`` .—Uôý@cccÄÿOqæÌØl¶°Ÿã §Ôj5{M°ÚÚZï÷õõõq[æHär9ÒÓÓ‘žž•ëòÞ½{ñûßÿ~ص?šç ¢øe0`0 Š"Ìf3êêê"jëŒÖhÚUÑæY¢:ÚœNçXÚÃ1¹‡�G“ñê2¦¦g8ÒÂ… 1eÊ”€ÇL™2 ,ÀÉ“'QUU•ôóÅô÷÷£»»óçÏGmm-áv»c~ã%6mÚ”ðçHvñÞ³e4¬V+Ìf3´Z-fΜéÝ>¿÷£1uêTÈdWV´Z­¨¯¯G__ŒF#ÒÓÓczîÙ³gÇ´|"™ç:]\\Œšš444ŒùïU,Ê ‡ ¸í¶ÛþD ¼m¤ÚÚZ˜Ífô÷÷C­VOpÍbo¤fÛ¶mÈÎÎÆu×]•JÄþýûÑÞÞŽx dÙö&LÚÀ%˜d bͰmmmàwóÈÌ™3qòäIïñÉÌÓ¦¨¨6›ÍÛS //Ï{̶mÛP\\ ›Í†¦¦&(•J\}õÕ˜;wnDÇ µmÛ6Èd2|õ«_p%Ù={ö,jjj000€ôôt,^¼™™™8uêZZZ`±X V«1}út,]º2™ ûöíó~²÷Î;ï@E<øàƒAÏqæÌÔÖÖb``ƒK–,AAA�_½f̘¹\ŽÆÆF¸\.Ì›7K–,ñÓÔÔ„S§N¡¯¯ …iii¸á†bÝ•�¢À3–ÖívC’$ï8Ø¡7 ’$áòåËèëëƒ$IÈÌÌDNNŽß10�p8P«ÕÈÉÉ�N§\ºt ‹³fÍBjj*Ün7ªªª IæÎ� ¥R —Ë…ÊÊÊa¡P0�¹¹¹hjjBww·7ˆq»ÝhkkC?\.RSS‘ŸŸ¥R‰ÆÆFôöö.\¸A°`Á8�N´··Ãl6Ãáp@.—Ã`0 77×ûžŒ4©¿¿°Ùl�ÉdP©T(**ò6Šˆhì<×·éÓ§Ãf³¡®®mmmÈÏÏ�i™[·nEII l6¡T*±`ÁÌŸ??¢c†Úºu+d2™÷&@’$œ>}5550›ÍÈÈÈÀÒ¥K‘™™‰'N ¹¹Ù{íŸ9s&–-[™L†½{÷¢¦¦°cLj¢ˆ¿û»¿ yŽK—.a``iiiXºt©ßPì­[·bæÌ™P(¨¯¯‡ËåÂüùó±lÙ2ï1���8yò$z{{¡P(�žžŽuëÖyorˆhâhµZ˜ÍfooŽPm# tf4íªñæv»CîOKKCGGvíÚ… 6öìÙƒžž †1•†¡÷óñ×å|Œâï£Û8788#Žôì÷ŸÌêëë¡T*‘››ëm�öpæÌttt ''f³DSSSÄÇ„røða?~n·Ó¦Mó¦±2™ MMMÐëõ˜>}:$IBEENŸ> àJˆäQTT„Å‹‡<lj' Š"¦N�ŠžžìÚµ ííí~Ç]¸p���Ðét°Ùl8uêš››f³ü1Ìf3æÍ›‡ÂÂBÈår†0 "%%¢(Âb± ºº­­­ÿ¯»\.ô÷÷C¥RÁår¡½½&“É»¿¥¥mmm:�V«uuuèõzð>€Ëå‚Ûíö–c6›ÀÞ„Ãsñô­scc#º»»¡Ñh ×ëa2™¼ÿ�}/¶ƒÁ&‰¢“É¥R ƒÁI’ÐÙÙ9ìÿB0v» °ÛíÈÌÌ„^¯‡(Š aˆ¢¬¶¶J¥yyyÞy\Æ:”(Ü2OŸ>�ööväææÂl6ãÀ�hllŒø˜PÊÊÊpìØ1¸ÝnÂápx¯ý���Ðëõ˜1c†÷ƒ”S§N¸"yù}Xì¢(¢  ÝÝÝøÛßþ6ì·êêj444@¯×Ãf³áäÉ“ÞvŒÙlÆîÝ»a2™0þ|LŸ>r¹œ! Q°ÙlÞpÄsªm4Rf4íªñ6RX²nÝ:èt:ôööb×®]ؽ{7zzz Õjqà 7Œ©lJÞ11£R©`±X000òÆÇsã”ì×¾¾>ôôô`ÆŒÞÆ‰ hhh8Qñm·ÝQQ[[‹}ûö¡ªªjØÄ¾áÈÀÀª««¡×ëqûí·»™»ë®»¼ß›L&¼õÖ[hiiÁÒ¥K1}útÌœ9µµµX¼x1222Bž#==›6m‚(Џpá<ˆ³gÏûCzÇw@&“áôéÓ8qâZ[[QPP€¾¾>¸Ýnäää`Ù²eq9œ%Z’q²^…B�éÓ§£µµV«���èêê‚Á`@~~¾ßœsçÎ…(Šhoo÷öÑétp8èéé�Z­Æœ9s zzzÐÜÜŒÎÎN¤¦¦B¯×£­­Íû÷Äl6{?e1™LÈÌÌÚ„CEˆ¢èíÑ388ˆþþ~èt:o(év»½ ¤¥¥¡··999Þ(ú}jm·Ûqþüy˜L&äææŽX�ÁÁAH’„ÔÔT¿^4D=½½½èééÁÌ™3!Š"¦M›AP__�5kÖŒK™wÜqDQDMM öîÝ‹sçÎ ›Ø7œcÀùóça0¼×\_÷Þ{¯÷{“É„7ÞxMMMX¶lf̘�Y³f¡¦¦Ë–- yí?þ<ÒÓÓqûí·CETWWãÓO?Å™3g†ý½Û¼y3d2N�:…cÇŽ¡µµÓ¦MCoo/Ün7rss±bÅŠ¤¾ö%ŠÊÊJ¿ÇYYYÐjµ°Ùl!ÛF¡Ú0#=7X»j¼�4�KJJ 6lØ€]»vù…Tëׯ‡V«SÙ41AÌXZÚ¾bRnn®w‰êE‹=ÎÓew¢Îñâ–TWWçý'I, :::üæÇñ$ÅÀç=PúúúüÊ ç˜`ŒF#$Iòëé««« çÎ�C{{;ìv;$IŠx‚,Ï9òóó½õœ1c<8¬žjµÚ[Ïûàé��™™ •J…††¼öÚk(((ÀÂ… ƒ6)þhµZÌ™3&“ F£ýýýÞ‹”çæA.—{ORRR\é%\¹HK’�Nç½x§¥¥¡¹¹Ùû{©V«¡R©¼a‹ÉdBZZ½]gÍf3”JeD¡¯Ûí†Ûí†J¥‚ Þó™L&œ9sÆïX§Ó²§–'ˆ²X,ޱƞ×8�F™L†¾¾>TVVB¯×#;;{RŒË&/žëtmmíˆ×éX”èºîù[É1Áôôô„¼öwvv¢²²íííÞkp¤½•}Ïá©çÌ™3ñé§Ÿ«g k¿çolVVT*êëëñç?ÿÓ¦MâE‹�™™Q}ˆ(z ƒ· /Š¢wxåHm£Pm˜±´«âÍОÊ2™,^z.G²rÒhË‹©dí³p¦¸¸Ø»Du~~~À {;::pöìY‚€âââXU%.ø®–4´KrCCCОg©´Pÿ‘Ã9&Ðñ�X“É„>øZ­×^{-ÒÒÒ¼ËRGÂs£é{—ËAB®¬0ô“~µZ�Ûo¿•••hllD]]êëëñå/YYY×+žÅsÏ–hÐétÐét0›ÍÞyƒú;àé²éû»äÙæû)©^¯Ggg'L&l6rss¡V«a6›Ñ××›ÍñïŒg8“'ððüîjµZL�:ÕïØP�»ÝŽšš( @­V{—«‡\.ÇܹsÑÕÕ…¾¾>ôöö¢¯¯³gφF£‰è5Q`¾+ù^³�+×íÑ1£-s"®ýï¿ÿ>´Z-Ö®]‹ôôtï²Ô‘ð\û}»Ú{çH¯ýwÞy'***P__�ÚÚZÔÕÕáÖ[o ºÅVAA qá Âd2A§Ó�Ø6!hf´íªñ&BÈž+V«»wïF__Ÿw8U__vïÞ�õëׇl«E¹—sRΓ¬ALÌdgg£¤¤çÎ�Ç~ˆ `Ö¬YHIIÁÀÀjkkqöìY8�N¨Õꈆ $šÞÞ^ôöö"77_üâý¶ÿõ¯ECCV¬XáÝÞß߻ݥR‰––¶bK8Çãy¯›››ár¹üqp:�(((@^^ž·1åÛ¨òÜüz&b ÄóG¨©© Ë—/‡L&Css3$IЏ7KJJ V¬X�+VàØ±c8{ö,Z[[“.ˆIFžÞT¾ Ï…,Ü¥N==Xúûû‘——A¼ó¾ø–ë büðClܸ1)o*<Ÿ‚ �¿%-- :�&“ ===~�©wÞyÙÙÙhnn† ¸ú꫇•ê•J³ÙŒ'N ›]<33¹¹¹hkkÃ{güü|�F,Y²Ä;éÖ… àv»½“‰úþ‘ð>GŽAaa!.\8ìgzz: ÐÜÜŒwß}™™™hll„L& 9Tm(£Ñˆ}ûö!//J¥Ò;yW¬—¦è0™L¨¯¯‡B¡ðNÄëÛõ<jµÚûÿäâÅ‹P«Õèïï‡ ~Ÿ&§¦¦B.—ÃjµB«Õzçwñü�EqÄÉÃ[ZZ , $IB^^ž·GŒB¡@FFº»»qéÒ%¤¥¥Áápx'¾ôÔ._¾ìí~ëùTÇÓmßÓ(Ô§ r¹v»mmmÐëõhnn†V«…L&óvñçÐ$¢èðô\:×Jzzú°ë´Z­†ÉdÂñãDZpáÂa�=Ë�FR¦ÇŽ;�““ã /­꘡uñå{íûí·QPP€žž,]ºÔû·±ººÚ»‚ àí÷ÔóðáÃ(,,ÄâÅ‹^û§M›†¦¦&¼ýöÛÈÌÌDCCd2YÈÉý‡2�Ø»w/òóó¡P(¼í(^û‰&^ZZ:;;aµZ½ÃBµ�<+½jÃŒ¶]5Þså�ÄxÞ‡n¸Á{/»~ýzìÝ»===#–Gâ²GM¼1qME”––bæÌ™¨ªªB{{;l6T*rssQ\\ ½^�?üF£1iÃO"ÐdzÓ¦MùsçÐÐÐàmä¨T*dee¡¥¥Z­K—.ö ÐHǬX±‡Fuuõ°®~pà 7àØ±chiiñNÜër¹�——‡E‹¡ºº555(,,„N§CWW—÷¹ÅÅÅèééASS.\¸€Â€Ÿt]ýõ8vìšššÐÜÜŒ)S¦`ùòåõJp»ÝÐh4¨­­…Ãá@jj*V­Zå·v²HÆÉz=¿§f³‹Å¾N™2eÄåü|¡µµýýý0™LHIIA^^Þ°ù^t:ŒF£ßáz½V«ÕoŽ™`z{{!”J%ôz=¦L™2ìï‘çÆÀh4¢³³J¥Ò;¯ p%`òL>×ÓÓ½^�ÔÔTdgg£§§F£ƒJ¥V«5h]òòòÐÒÒ‚žž(•JÈårôööÂårA©T"???¢ ˆ(¸`¡‰g[ee%êêê�‘‘�•+W¢¬¬ UUU˜:uê°Çž i#)¸ò÷rÊ”)ÞÐuùòåÆ.�tÌк µ~ýz”——£¥¥UUUÞk~~>/^ŒóçÏãÒ¥K(**‚^¯÷»ö—”” »»���¨®®FQQQÀ@}ݺu(//Gcc#ššš����•+WFô7ßårA£ÑàÒ¥Kp8ÐjµX½zuX Qìåææ¢®®mmmHKK Ù6’$)df4íªñ¾W”ËåÞá��<ðÀöi4š�=a|˦Ð&¢çI8ç vŒ`Ÿè³Ïó¯è³OþÙ— €€Úd2U�ÇLÎ6›ÍÆdffâÖ[o�ù9ãÕ¶mÛ Ñhpç�wŽéJ<ÄxºÍê‚CÉÅó >MŒ­[·B£Ñàî»ïÓ1DDlÇ…iÛÇn·{çÁй\ñ\8J¥²€ €À çg_ž±¤n|Þ«EòÙæKBðž/áÜüs²Þd¡V«±qãFìÚµkÄ¡DÉ*ž{¶MV …"êA ? ƒ˜S«ÕØ´iÓDWƒˆˆˆˆˆˆÈË3t=Ôb%‘ð¬(E#‹«Ytˆˆˆˆˆˆˆh|Èåò¨ôbQ(œ&œ#†ˆ’çˆ!€]c‰ˆˆ’ Ûq¡�¥íãt:GÝ3ƳÃhqŽ"""""""šTär9d2GØóÆxzÓp8RäÄMrž9c<“øºÝn¸ÝnxF“‚Q!Š"är9˜1`CD“Š àÐÄädžQòa;.¸h¶}Aàïãd½D4©ˆ"ÿìMü9%^߃ã{“XøÓ"¢IEEö–Hržn³DDD”\ØŽ ŒmŸÄßM:2™Œñ$%d2ÙDWƒˆˆˆb„í8lû$&ÎCD“Ž �ËåÃ& £Äå;y%/¶ã®`Û'±1ˆ!¢I‹/"""¢ÄÄv%2þæ�1DDDDDDDDã$ƒÎÜDDDDDDD”’î?ƒ"""""""¢¸Ä †ˆˆˆˆˆˆˆhœ0ˆ!"""""""' bˆˆˆˆˆˆˆˆÆ ƒ"""""""¢q †ˆˆˆˆˆˆˆhœ0ˆ!"""""""' bˆˆˆˆˆˆˆˆÆ‰|¢+¯¬V+ìv;œNçDW…ˆ>#—Ë¡T*¡Ñh&º*DDDDDD£Â f—˳Ù̆(Ö{ÑÞ IDAT9�N8�NØívhµZÈd²‰®QD84i†0DñÏétÂl6Ot5ˆˆˆˆˆˆ"Æ Æ‡ÕjeC” œN'¬VëDWƒˆˆˆˆˆ(" b|Øíö‰®$I‚Ûí†Ëå‚Ëå‚Ûí†$I]-¢¸ÿg‰ˆˆˆˆˆ"Á9b|LDoOàâr¹àp8Ñi–ÐcqÃj¿¾h”2SEd¥ P(ä�ÉdÞ/¢ÉŽ=؈ˆˆˆˆ(Ñ0ˆ™’$Ááp ßlAyƒ '[€ª.Z°»wRRÊÜÈKu 8Ë‚eVŠÐiS P( Â8¿""""""" 1ãH’$X­V\jÀ;çd(kVÃì¯g‹Ý%¢¡_…†~>¬´ Ö˜qûU.ÌÊM…F£a CDDDDDDçÄŒ“ÁÁAÔ¶öáO'8Ô¢‡kŒÓ¾˜2|T—Š=õÀš \jÆô\T*UTêKDDDDDDDÑÇ &Æ$I‚ÑØ‹¿žqâõs:ØœÑ�Ù%Ÿ6¥àØew,RÀ`0°w QbCn·õ-�øÕ!Ž·écz.«K†-§õ¨ì´á{¥�(ÌÏ‚(rQ,""""""¢xÂ;õq¹\8_ߎg÷¤àx›fÜÎ[~Y�§?JAEM\.׸�—ˆˆˆˆˆˆˆFÆ &®„0ø?{thìWŽûù[Ì ütŸÕ  cˆˆˆˆˆˆˆâƒ˜(“$ uÍø¿ûµè´*&¬9žß¯Eãå.HÒgàÔ©S¸õÖ[ñ‹_übؾ'žx»ví ú8ÒòÆjèù¿ûÝïbûöíQ?Ïx•ODDDDDD‰‹AL”uwwã?ŽhÐlÿž0C5ö+ñëÃ*twwG½ìýû÷cîܹ8zô(ìv{Ü•ʪU«0kÖ¬¨”µmÛ¶aáQ4Ë'"""""¢ä &Š, Þ©�Æ4'L^šÿrw.NütNütþåî\ä¥�~N壭¼[é†ÅbuC9�N:t�<òär9Nž<Wå�äk_û–,Y’°åQââªIQâv»QßÖ‡×+ £z¾Z!àïÖ¦ã{2¡U}ž�ÝWjÀW–ê°å@/~µ«ƒîˆË~­B‹U}(ž¡ŽÊJJÇ�‡N§Ãœ9s°bÅ ”••aÕªU1+ï‰'žÀ�7Þˆƒ¢¦¦xôÑG1gΜ°öõÄOà‹_ü"6lØàÝöî»ïâÃ?Doo/æÏŸ�G}غu+ÊËËÑÝÝ�¬¬,ÜsÏ=¸á†o½õÞ|óMÀÁƒ±qãF<úè£ÃÊ—$ Û·oÇž={Ð×ׇââb<úè£ÈÎÎöÖgõêÕ8qâjkk‘››‹Gy%%%€'N`Û¶mhjjBzz:®½öZ|ýë_õûMDDDDDD‡=b¢Äd2áO'U°¹d?wÓb>yz~ôå)~!Ìáš+½X4JßY—�=ÿßtlZ¬‹¸üA— ¯žVÂd2EüÜ@öïß�k¯½PZZŠ#GŽÀétÆ´¼ßþö·xà�ðÊ+¯`þüùxöÙg100öþPÞzë-ìÙ³O<ñ~ýë_ãú믇^¯‡\.G^^þéŸþ ÿñÿ�o¼ÿþïÿŽ––À�wÞ‰»ï¾k×®ÅÛo¿�G}4`ù¯½öÊÊÊð£ý¿üå/¡P(ðÌ3Ïx_c?þüç?㡇Âý×aÞ¼yxñÅát:a6›ñüóÏcÆ زe žyæ¬^½:â÷˜ˆˆˆˆˆˆâƒ˜(p¹\¨m·âPKJDÏ»zª Û+Ä+_ÏÇÔôáûÞõŸM¸ïÿoÂ…¶AÀÔt^ùz>Þ{¼K‹"þt°%uí–1¯¢d³ÙP^^Žk®¹°téR8�Nœ>}:¦å}÷»ßEII 233ñðÃÃ`0`ÿþýaïÆåráþçð�ï|³gÏFff&¾ð…/@­Vn¹å!77wÝu²³³qáÂ…°_ŸÃáÀÛo¿�ï|ç;Þr~ðƒÀb±àÈ‘#½^�Ç{ sçÎ…Á`ÀæÍ›ÑÛÛ‹Ë—/£»»N§Ë—/‡V«EQQQО>DDDDDDÿ84) , Þ©’à !¬ãÓSexü¦L?Å1Q`2[p¨95¬co]¢Ã‹wåB§¿3’Ó%áû�xçD?~xËÜ»ÊQî\®ÇMWkñÔ›mxïÔÈÃŽÊZ4xØ<0¦ fÿþýèëëÃÝwß=lßc�=™,²¡Y£-OE¨Tª åŽ´ßÃ3|)Ðß6› O>ù$Ö¬Yƒûî»S¦LÁÓO? ·;üyzÜn7\.äòÏÿ») (•ÁWÖòK¢(âg?ûΞ=‹={öà…^ÀÂ… ñÌ3Ï„]""""""Šš4Fv»Ç[X\Ç µ¨P�_ÝŸQã«ËìÂSo¶áK/×ãH� S‹øÕyXP ñùNN¶`ÔËC àĉxùå—ñî»ïz¿¶mÛQQQQ“òŒF#>üðC¿ç^¼x………aí%77’$áâÅ‹Ãö]ºt ýýýøÆ7¾�ÂÂBh4ÔÕÕ¡««Ëï¸Pýòòò *++½ÛÜn7.]º„¢¢¢ëç±`Á<þøãø×ýW9r$&K’Qì1ˆ#»ÝŽ£ áMT{ÏJd" I€Ã5¼F¸*Z±ù?ñƒ¿´Á-rQÀ½«Â[­éX“{ÔALYY233‡ ãÑëõ())AYY™÷q{{»·—ÉÐÇ‘–§R©pñâEœ9s&“ ùË_`µZ±fÍš°ö;?èt:”––â·¿ý-ZZZ`µZQ^^›Í†´´4X,|ðÁ0™L8xð xW;€)S¦ ¢¢Þ¡U¾4 Ö¯_�ßüæ7¸xñ"z{{ñ»ßýƒ!¬%®M&vïÞ�îîn ¢¢¢*•jL½šˆˆˆˆˆˆhâ0ˆ#»ÝŽêž‘‡À@®áÊДº.;®y¾oëG€l ,®Ò≛3!~65J^Zx£ÌÎw+GÄìß¿ß;©îP¥¥¥8tè$IÂm·Ý†}ûöáç?ÿ9 {iy)))X»v-~ó›ßàá‡ÆùóçñóŸÿÜ;Ôg¤ýÁÎïñýïEEExê©§ðÐCáí·ßF? ðàƒâÕW_Å#�<‚Ç£´´Ôï¹7ÜpŠ‹‹ñÝï~¿øÅ/–ÿíoË–-à /¼€ï}ï{0›ÍøéOê7¯M0(++Ãã�?Žûî»}ô~ô£…ÖDDDDDDDñ+¼ÙeÇÿœÁŽì}öyû~/ÿìK@@m2™ªõŽÍp�öö|õ´p¸GžeËÃS±¾D‹KvÜðb tV ~r{6®š:<Ì™öDõ°m³s”øÉmÙ¸n¾ÿœ4»Ï™ñÐï[F¬ƒBpá/w›‘““=â±ñâ‰'žÀ¿øElذaTû)¹effÛf4‘——7µ!""""¢H(•Êb6ƒœŸ}y&甆|ŸÇðÙ¬›C8ÝF?de8Yï¸\.t ¬&˜Ã5Üòr=îX¦Ç3›¦ KøG’–"Ãno¥¥P’ Ý`ŠÛí·RŃ˜1�$ Ýæðæ‡ Å-Û�õンfaïxQNdëd bˆˆˆˆˆˆˆ&ïÆÇH«ME†b ¬c=ÓɈ1îT5rRR4ѯ�ˆAÌ)•J¥ô…ul[ß•ž3E™J|e™>ªõ¸l ¯WÎL� J¥2ªç&""""""¢ð0ˆ#¥R‰ÙްŽ}ýHœn 2øÕýyØþX!®ž:ö¥©]n o”‡-ÌqÆ,ˆÙ²eKT�ësˆˆˆˆˆˆˆâ ƒ˜1R*•X5]�88â±gšløþ¶V˜lWVZZ5Kƒ÷Ÿ˜Ž¹;YZÙ¨Îo²¹ñ½m­8ÛlñØqË åìCDDDDDD4AÄDÁÔü\”hÛÃ:ö½S&\ó|-þûS#\î+óÅÜWjÀÁÿ3OÜœ¥<¼ dÜðÖ±~|áçuxï”)¬ç”hÛ�Ÿ—Ö±DDDDDDD} b¢ 557Ïè‡(„7c®qÀ…ÿµ_þe=ŽÔX)J?¸9»8_^¤ ùü“ 6|åW�xüµVt™Â›F$Ü4ÃŒÔÔÔ°Ž'""""""¢è“Ot’�L&Ãò’B_jAå@AØÏ«hÄæÿlĦÅ:<³i ¦¦+0cŠ¿y0ÖX†ßbtàù÷:Ãîã«$¥ ËŠ “�n”G{{;> ‡Ã�ôôttvvâÞ{ïv\WWŽ9‹Å•J…5kÖ ++ IöîÝ‹žžÈd2¬^½999°X,Ø¿?úúúàr¹0gάX±bLõ%""""""Š' b¢$33w̮å³9t+"zî{§LØUiÆß­MÇ÷6dB«Q:+Å»ßjwcË�^üjW7Ý×M):qûì^deÍŠø¹¾ìv;öìÙƒ�7"##---hhhvœÃáÀîÝ»qóÍ7#==���سg6oÞì ‚-Zä-ãã�?ÆæÍ›¡V«qÍ5×@§Óappï¾û.ŠŠŠ���=¦zÅ MŠQ±jñ<¬M»0ªçÛ^ù¸ëþ¥¯îC§É‰N“¯îÃu/ÖáçÿÛ9ª®O¯Féâ¹űý¸;::�––†ŒŒ @nnnÀ‰ÛÛÛ¡×둞ž(,,DJJ ŒF#@oS§N…Á`@WWDQ„ÓéÄ©S§pôèQX,X,Ã{%*öˆ‰"ƒÁ€{–§ éÀeT[òGUFk¯O½Ù†§¢T§¹šVܵ,ƒaÌe¹Ýî°V\ tœÃá9�Nˆ¢ˆ®®.8pkÖ¬Azz:úúúàp„·48Q"`�˜(›7oî›ÛŽ) ²}¸~æÍ›�ò²³ÑÞÞŽ®®.@ww7ìv»w¿L&ƒËåBvv6:::ÐÙÙ hkkƒ$IHKKpeŽϾ®®.X,dffÂh4B¥R!++ .— íííÞðÆS6Q"c�˜(×–.E¿åþP»½Î”‘Ÿiò|}FÖ–®� „·$öHÔj5®»î:ìß¿¢("## Åçóá”””à½÷ÞÆ pÝu×áàÁƒp¹\HMMÅúõëýB•“'OÂd2A¥Raýúõ�Ëå˜>}:ZZZ°}ûv¨Õjäääxç”ñ-›+?Q¢ŠÎzôÏì!À>ÑgŸç±ï÷òϾTÔ&“©J’†/5ÝÝÝFÕÂc³ÙðÁLJ°­á*t8Æ>,(YŠ~úè#Ü~ûí1;ÑH233‡m3�ÈËË›€ÚQ$”Je1€AÎϾ<“¤JC¾‡Ïcøl~“ïÿœPÂ9&j84)FÔj5n¹q ¾5ç<æhZÇí¼s5—ñí9çb x‡UWW£°°0êç """"""JVšC*• ë¯_ƒ¬´Søßª.|Ú;viäÉnGC)Øñ…´j|¹DÀâÅ×z‡ôD[cc#ª««!I²³³QZZ“ó%#11&—˱|ùrää4áêÓåØÝ^„*KÜRtF…‰‚„’”&ܘӈÒÅóPPP•rƒ)..FqqqLÏADDDDDD”¬ÄŒ“iÓ¦!''Å/âôŃ8Ò“�*ËTXݪQ•§l(N½ŒU™—±hv.æÌYÖÒÒDDDDDDD4qÄŒ#¥R‰«®º ³fÍÂòÆF46Çù .™ h²¦ÁèÒÃ!þ‘('Òeý˜¦6b¶®ÅYƒ˜65……×ÄtB^"""""""Š1@­Vcîܹ˜3g–ôôÀh4Âhl†Éd‚Ñ&ƒÙ!Ç K€ PŠnhdh$hµZ¤§§##cÒÓÓ£¶,5�1>är9œNç¸�Odffú-¿;88»Ýî]™H&“A©TB¥Ý&¢d&—óO%ÞÅøP*•ãÄ¢R©º…‰ó"Q¢'ºñD£Ñðv¢!—Ë¡Ñh&ºDDDDDDa3„V«eCçär9´ZíDWƒÈK’$¿/""""¢`˜8 !“É`0`µZa·Û'|¨}N.—C©T²' �›Ñ†*á>�“®M> b‚Ðh4¼Ù#"šdÆ»7ËÐó1˜¡dW]]�?ýéOhooGII ¾ùÍoÂ`0LtµF%™^ �¯‰hñ…sÎ`Çö‰>û<�}¿—ö¥  6™LUì:N”¼ŒF#òòò&º”Ær-�^/ fÆÇÅ‹ñµ¯}Ío[qq1¶lÙ2ªã&›pß—¶¶6|õ«_…Õjõn»êª«ð»ßý¢˜X£å“éµM4¥RY ÀÀ`€ó³/÷g‡HC¾‡ÏcølÖ8 §Ñ6®{ÄѤIø�Ð>T#-¾Ïe(Zss36oÞpßõ×_�_|qœkžD­÷hìÝ»×/¸€ÊÊJ455¡¨¨h‚j5:ÉôZˆˆhü1ˆ!"¢¤N nè2Úp&P�¨¬`� C™ÐvíÚtß¡C‡`µZãrÈq¢Ö{4ìv{À탃ƒã\“±K¦×BDDã�}'‰ˆ(i�´ŠQ¨•ކ®„4Ö‘Â-/œsqu¦á>ú裠ûqðàÁq¬MøµÞ£±zõêaÃvòòò0cÆŒ ª‘¿^x¥¥¥~_;wî xl¼¿""Šo bˆˆ(é„ *‚Á’@á‰Ûí†Ëå‚Óé„Ãáøåt:ár¹àv»C0¡‚™‘B2WÔÔÔ ®®.ä1{öì§Ú„/Që=ZsçÎÅsÏ=‡¢¢"h4,Y²/½ô ÅDW-bÉôZˆˆhüqh%�‘z‘D²Í¸x¾<¡Ê Ý‰‹Ý&Œ.˜Ýtú—£’ ЪD¤§Ê�©S #U„Z©€(ŠÃ¾<ÃŒ<ÿ‚äÙjˆÓd²jx�GYYYÜ óIÔz�Åúõë±~ýú‰®FT$Ók!"¢ñÅ &J< öxæÛà'"J&¡zŒŒ´Í÷±Ûíöör1š¬¨h±£ºÍŽK�n4õ�º­"ÜÒHK=“û; B.HÈѺ1ÕàFQºˆ¢ fLQ $_ Cª …r¹2™Ì[‚ C™PsÅLÖ@fh ±nÝ:466âÒ¥KÞmƒƒƒ(++Ã�7Þ8ÞÕ *QëMDDDcà & Ün7ÚÚÚPSS·“´©T*Ìš5 ¹¹¹\V‘ˆ’Æhß^/žàÅl±â|«e5ƒ8Öè¹N9œnWFñŽíï¦SÐb’¡Å$Cy³g«2Á�¢´~,�*¡t¦ +f¨¡OUC©TB.—ûõ– ² ^&S sîÜ9´´´øm[½z5 ý øøã�ã&ЈF½‡.ýÌ3Ï`Ó¦M8pàÞxã ÔÖÖÂb±`êÔ©X¿~=î¿ÿþaCg¢QF¸-s����wß}7ès8€]»v¡²²===p¹\ÈÌÌD^^JKK±qãFL™2`2™ðÉ'Ÿ ¼¼íííèèè@OO²³³1mÚ4Ìœ9_ýêW‘••åwŽgŸ}6hï¤çž{Ï=÷àÚk¯Å¿ýÛ¿�úµ:t~ø!***ÐÓÓI’�‘‘� à¶ÛnÃÒ¥KÃzßn¼ñF<ÿüó0™Lxã�7°wï^\¾|ƒóçÏÇ=÷܃%K–­‡ÙlÆ{g²²2tvv¢££.— ƒééé˜3g,X€[o½uRü !"š bÆÈår¡¢¢Ï>û,L&ÓDW'$�N‡Ÿýìg¸úê«ý>u%"JD‘övñ}ìr¹088ˆö3>:gîóNœï’ÁîŠNð.—Ôe¨5Û+\PÊÌ(žÒ�õsEÜ|•SÒS¡R© —_¹\�ÔK&P “ì7R�&»]½z5:::ðÇ?þÑoûÁƒa³Ù V«Ç©vÁÅ¢Þ;vì@ee%Þ~ûm¿í—.]Â¥K—°oß><ÿüóÈÏÏ�iÑÐÒÒ‚—^z eeeÃö]¾|—/_ÆñãDZpáBL™2¿üå/±cÇ8ŽaÇ777£¹¹‡ÂŽ;ððÃãþûï�iý}uttàå—_Æ'Ÿ|2lŸçµüíoÃ-·Ü‚ïÿûHKK YÞ¾}ûpàÀ¼øâ‹èêêòn·Z­hkkÃþýûñÿð¸çž{†=wïÞ½xî¹ç†-½í©gGGª««QQQ�Ûn»-òKDDaa׈1²Ùl(++‹û¸òIQYYl6ÛDW…ˆhÔB­6ìÏðQ»ÝŽ®îüïÑVüà/m¸õ¿¬xip¦]þY3±ì.§Ûdxi¿€/ýÖŠoomÇë[ÑÞÑ»Ýî�ø×#Ðë*™'ôu»Ýؽ{·ß¶¹sç"++ ÅÅÅÈÌÌôÛg³ÙpèСñ¬b@±ªwUUÕ°eèþï|ç;!{ïF£Œ±:wîî»ï¾€!Œ/�Fƒ«®º  ×ë†0CY­Vüú׿ÆÞ½{£RבÔÔÔà¾ûî  µsçN|ï{߃Óé yœÓéÄ“O>éÂør»Ýøõ¯�¶¶6¿íçÏŸÇO~ò“€!ÌP+W®ñ""=1c$Iz{{'ºa3�IÛ '¢äNÐ(€±Ùl¨®oÃóï´à–WLøá{nì­•c0—`nG[äxî# ›~;€ÞiÁ…ú6X,–€�Œï÷áNLœèNŸ>=ìftÍš5®ôºæšk†='V!šÈz·µµáµ×^›ð2‚±Ûíxúé§Ã z/^ìí-餹/½ôr¹J¥2è±J¥Ò;\0N§O?ý4ÌfsØÏ¹xñ"¶nÝÑy‚�ûÏþ³ß¶�;w{_EQÄÔ©SQPP�NçݾbÅŠ1×�ˆˆ‚ãФ(:Iï¢E‹�žžî}lµZqæÌX­VÈd2,[¶ )))Ër8¨®®ö6Юºê*ïØç@çmllD}}= °°Ó§O÷›Æh4âôéÓÞÇÉØ'¢É!Üy_<ßK’«ÕŠú¶>¼yÜŠ¿Vˆ°:sXf¯MÀk§dxë¬7ÏmÇ×W©0+߀””‚p™@Ã’’mî˜@Ã{<�peN�¡svìgTUUå÷øÜ¹sÃÊxóÍ7QPPà}Ü×ׇ .àꫯñõÑè1ˆ‰�ââba``»wïFuuµß¼ååå˜>}:n¾ùfï8`·Û�ýû÷ãĉ~ …ÊÊJdeeáÆoÄôéÓ½ÛÏœ9ƒO?ýÔïS–ÆÆFtwwcÍš5Þ ßü‚"¢Di\Êq®¾ *w`×Ewr\î]Þ­’áƒjnšÛޝ¯Ta~a†wiã¡�L2Ïãr¹† /Ñét~7�+W®„R©„Ýn÷n³Z­8t访þúñªªŸñ¨÷ã�?îý~þüùøÖ·¾å·ßjµ¢©© 3gÎŒi£hϺuëð /ŒøÜŸýìgö¥§§cæÌ™°Ûíøýïï·¯¡¡«V­u]G¨ÓW¾ò<ùä“ÞÇ‹/Æ<à÷wÌétâØ±c#N,½eËo6þ|üð‡?ôÛùòe¿Ç�B¼'Ÿ|k×®Åüùó1oÞ<°7 Ñ8HŽ–i’$ ;vìvô¨¯¯Çë¯¿Ž‡~r¹Ÿ|ò Ž=ðØ®®.l߾߸W@à IDATÆ7�••…êêj|ðÁ�À®]» T*ùi%¼HV?®ÜävvõàÕ#fl=.– =`Fâp xÿ¼»/9±yA¾¹&¹Ù™Ã&õ©wL"‡1G�64Ød2ùõ, æã�?ž° &ÖõÞ°aƒßã `úôéÞÞ³õõõAC”h”1ZÕÕÕöÝqÇa?ßáp ¬¬ §N�ÂÅ‹ÑÑÑ£Ñp.¿†††1Õu$C{¤ÀM7Ýä÷xÖ¬Y())Aee¥ßö`íG�ììl¿ÞHž¹r|õööÂápx�[°`Ž?îwL}}½ßÏuÚ´iؼy3îºë.®²IDCü #F£qÄ‹h__Ÿ·ËêÐ ðP.—Ë{AéX8{öl˜5�cÇŽá _ø~ò“Ÿ Û÷íoï¿ÿ~LÏODÉ/ЊG¾ÁËÐïûúúð~yîß:€ß‘ÁæLÜ�!\ƒN¯ž”áþ?YñÎáfôõõ�ø>ùJäáª�†÷„ëÓO?õëm2ž&¢Þ999öþë2Fât:Χ2tòâ`vî܉M›6á©§žÂ_þò;v ���ATˆåâN§3ày322†mËË˶-ÒÉ�=½âByðÁýzWÒÔÔ„_þò—xúé§#:?E†ALŒh4š°–ˆÖjµ~ÿ†â™D-’cceÏž=())ÁáÇ'¬1KDÉ+T`0ô{‡Ã�ŠK-xr»Oþ¯ˆ¦¾Éwik5‰øÑ"žüŸT^j�ÃáqøV°Ç‰Àn·cß¾}£~¾g˜Ïx›¨zZT@¯×�{#‘ÉdÛN---#>wçÎ�xî¹çüê)Š"®ºê*|éK_BVVVTë:’`¯¥³³sض¡s»ð›k0Z4 þøÇ?â›ßü¦ß¼0�ìß¿L¿«DDÚäk­Ž�Fƒµk׆|ø°ßãÆÆF\¼xqØq³gÏŽi£ù�ÙÙÙö¿ñÆ#>÷¿ÿû¿‡m{ùå—ñ‡?üÏ>û,þñÿqÄ2µÃFÛkF„€=]vîÜé÷¸»»gΜv\qqñ¨Î;µZ�o}ë[ؾ};vî܉_ýêWøû¿ÿ{äææ;¶¢¢"&u ""ÎS«V­B~~>ÊËËQ[[ ·Û APXXˆeË–aΜ9Þc‹ŠŠðÐC¡¼¼UUUÞ^&YYYX²d -ZäýdE§Óᡇ±cÇpúôio7Þ””,Z´Ë–-CjjjÌ^Wyy9ôz=æÏŸ�5kÖ`ß¾}Ÿƒâµ×^Cww7Š‹ÿ{÷E�þü3Û7½÷M£„ $†jè9zAŽ"žÜ) ‚x¢p¶CäDEA�û¡ MA:H ôÐA:é•ôdK¶þþ;f“ÝÍ&ÙÝ$ð¼_¯¼’��ùÎ3³IvæÙï÷ùFbÁ‚�H$P©Tøþûïqúôi>>xñÅ1tèPƒí·oߎ={ö ¸¸Ï<ó æÏŸ???Œ?K–,A×®]T�%Ÿ;w.Ž98wîÖ¯_�´´4xzzbàÀ�˜={¶ÍÎ!ĺ’„)xTˆ §ªkÁhuOþ0$K•Uq°ø p9»sú+àïW}c[_ݘÖT3Fÿ?¿¶‰']¾}ûö:ËNž<ÉÖÏ06óOzz:är¹Á�K׳WÜÆTTT`ÅŠèÙ³'ÊË˱nݺ:³;˜M¢4´�¦ž—šºwï^gæ¢ .à�7ÞÀôéÓ¸ÿ>Äb1¢££¡Õj�öšÑ�R«Õضm[½û–H$u–1¸(ÌÎÎÆíÛ·ñõ×_ÃÛÛ?üð^{í5lÙ²"‘AAAøøã�! qìØ1,_¾‘‘‘lÞ¼ X¼x1<==qåÊvv)s***°dÉÌ™3ƒFaaaƒÇXBš�¥IµZ�?æâã#\Îy2‹ñ6•Àöë\Ü~$Ç¿ã3Ñ©mx<Þ‘Œ‘ËåHNN®³ü‡~0Y¤~Ô¨Q˜1c†Á2™L†³gÏ"..���àp8ɹ\Ž1cÆ M›6øî»ïÀâõì·);vìÀŽ;L>?wîÜz ±6¤�¦œ—ÚfÍš…„„Èd2ƒågÏž­ÓS'66_}õ8|}}‘——gðü²e˰aÔ——×iÏc…‡¯]»†±cÇÂÛÛÑÑÑFgf2åoû>\§VÌï¿ÿ^'Ù¤Ç0 /^l“B¹gϞŖ-[Ø„‹‹‹ ÜÝÝ‘ŸŸo´çMú@!¶Cý¸Iƒ( œ>}š�µ¡{÷îP©T¸t黎F£Á¤I“,Z´ ðSRŽ7aaaÀ´iÓàççÇ"Öh4øé§Ÿðæ›o"""^^^2dD"Q½±B¥R¡W¯^pvvFXX˜M>Q"„XŸ©$Lí¡5r¹G/eàï[µ¸œCoaõ¹žÇÁ?vèpür&är¹ÉóZSK¦tâĉ:IvtìØÑä6ìPàšôÓ óù|vøoM¸rå ¢¢¢Øi"ËÊʰcǼ÷Þ{˜?>²³³Ù‹ÓÜÜ\Èd²F%PBBBƒ3fàÃ?¬3E#!¤e2—„Ñ×ét�J¥8x1ÿÚÏE©¢e÷ÚhIJä ÞÜËÁ¾”\TVVM´¦dŒ±á=½zõª·�±Úiúa>ðöÛo›LúŸ}ºÁ²øøøÕ1±F„BHS‚H *UÔ�¿ôãAuµ~F�Ǩ±ÜÔ•¢%W�v½Ê¤16àïï_g–€œœ( p¹\¶â¿)EEEì˜çàà`³ÓZK¥Räçç|||ê$Xär9rsssu$%%ÁËËË Tw§íܹ3’’’еkWäççcûöíèׯ‚ƒƒ±eËhµZÄÅÅ!''•••صk ÄÒwvqqA¿~ý°råJ¼÷Þ{ðòò•+W±XŒÎ�;cß¾}èÓ§´Z->ûì3¶{vyy9’““ '''\¹rb±ØìTß„�æQßP˜šI˜�'‹ðÍz»²­ŽÁ7gxPk‹ñ÷þ \]]ëí Ó{ÆB!„´ftekýû÷¯“lÑÏš$‹MNS©—˜˜ÈΚ4bij]Uïß¿ÏΚÖ¤ôôtüòË/�9Œ:Ž=ÊΖT[\\6oÞŒ7ÞxèС¾þúkäää ** «V­�ÇCpp0þùÏbÆ øá‡УGôë×Ï ­·ß~_}õæÎ� µZ�¶mÛ"<<b±¯¼ò –/_Ž™3gÂßßC† a§¬¬¬¬DRR¾ÿþ{Èd2H$|ôÑGV9~BˆuX2;Pý7ý{JÖœ¥™‘¬mí9.<Š0±'—Mà·öÙ”!„BZ JÄ‹}ñÅ&Ÿ›8q"›`Z»v­Ùv¦L™‚)S¦˜|ÞÙÙ‹/6úœ»»;þûßÿ,›:u*  Îs„�–ÍÔÕr¹‡¯à“D.´:JX› >MäÂI��‘Ý8ppp¨wjkB!„bT‰ËNZò „b/¦þÖLÂ(•Jœ¾™‡�8PSa^›Ñèüç('o䡪ªÊä Jzô>F!„b”ˆ±±û÷ïãçŸfë´TVVbãÆ�¸qãF�‹Ú‚‚ìÞ½.\`—ýüóÏ8sæ ”J¥Áº•••8vìöîÝË.;|ø0Ž9ÂÖ—!„�–Ä’â¼Z­7äbÑ~2½EÙšBÍÁ¿qp+5Z­¶UOkM!„ÒZÐU® �8q;wîDVV–ÁÅk~~>öíÛ‡}ûö±Ëîß¿�ÿýï¸}û6;•3P=åå‰'ðóÏ?³É˜ÒÒRlܸ.\0˜êZ©TâÒ¥Kظq# íp„„Ò8¦nøsóò±,Aƒ²*z{²—RÖ"'·ºð{}ÉB!„Ò4T#ÆF¤R)Ξ=kv�›7o¢{÷îðõõEbb¢A¦¶‚‚\¿~]»vÅÙ³g!•JM®«P(pêÔ)Œ;¶ÑñBˆ5Yr3_ZZŠï“帚GoMöv#Ÿ‹ gxmH);­µ)T;¦åh×®]½×öhƒB! CW»6¢T*-ºñP(ª§™®�~ý6–¬K!ÍÍ’!I …ÇocÛµÖ5C—Ć; Kˆ~®Õo©yej\LSàBª ÓùõççËtô-ÁÈnBˆÅbƒâ½4‹!„BˆõP"ÆFÜÝÝ‚ôôt“ëxzz"((ƒS§N™\W  S§N€¨¨(ܽ{×l¢§K—.�ŒœBlÇT]˜;iùøø§ÕÌ�Äã2˜ÞÛ ¯ò`0µå–ª±æx16�.…ZÓò‡÷TϤĠ�Ï#tn‡c6C!„B‡áÛÐøñã Ïð"�atèГ'O—[ýéoŸ>}пˆÅâ:íbòäÉlwñððpŒ7îîîuÖuuuÅèѣѾ}{!„4Œ¹„±þ¹ââb¬:¡Fy+© ×Þ‡Þ ÁGã}L&aÀß�‡�ÆûàØ¿B1*ÚÙŽ6^©‚ƒoNªQRRÀ²×�B!„4 õˆ±!¡PˆaÆ¡C‡Ø»w/¤R)ø|>FމöíÛ|²È0 zöì‰víÚaß¾}ì,K½{÷F¯^½ê$sÚ·o‰D‚„„üñǪÇy:ŽŽŽö;HB±�±â¯UUU8u·§ÒùÍ–żxo¬7†ttjðvkf`Ê]>ØU€»yUõoÔŒSyHºUŽ‘Ý�  €zÅB!„X%bl¨¬¬ ûöíCff&»L¥Ra×®]ðññÁÈ‘#áããÃ.?ränÞ¼iP´÷ôéÓ¸ví† ‚ˆˆvù¹sçpúôiƒi­ïÝ»‡´´4ôèѽ{÷¦‹eBH³ª™p1V'F§Ó!¯ _žÐ¡%÷­ps0g°'þÞÏ^ãÿ¯ê{Òl=_†O÷¢Xª±b”Öµ:Y‡n!…�€Éú0”˜!„Bi¸ÖѼÒétرc‡A¦¦‚‚lÛ¶�M¤;v ׯ_7:sRee%~ÿýwäåånܸ�ÄÄDƒ$ŒžJ¥Brr2._¾lÅ£y²­Y³Æ*ëØ:Bž52ø¿s äT´ÌÏ8 ð|7$- ëƒ<š”„ÑãqLí冤wÂðR?wp[è»pv?_¨Bee%»Œ†"B!„XG ½lýŠ‹‹QXXhv©TЬ¬,À�;wÌ®«Õjq÷î]‹Ö€Û·o[)±�N‡ 6`÷îÝÍŠQM�O&“áÇ„L&³rd¤52Ö¦æw�Fƒ;™%ØÚBgIêÙÆû„âË)þðr¶~¢ÈÍ�‹ÆùàÈ[aèß¡e'Ý|…‹;ÅÐh4F_C=JÐB!„4 %blÄÑѱN]—Ú†a 𺺺ÖÛ¦¾8¯±"½¦Ö%-Gff&P\\Ü"§oL|§OŸf‹zŠÅb 0ÀhÁiBj«¨¨Àÿ�WA©iYoCA|¬™€ís$x&PØàí§­ÍÂÁë•õ¯øX;_~š„53äѲêäTiü”¢FEEEs‡bÔÅ‹1oÞ< 6 ñññ˜3gòòò����ž={bÿþýÍbƒµ†Ø[JŒµã0—J¥BÏž=ë|}ûí·v?žæ8µ÷™••…Q£FáСCVißÚíBÈÓ e]?AD"âããÍŽ�ïÝ»7<<<C‡…H$2¹nxx8žyæ@¯^½àååer]777ÄÅÅ52rb+÷îÝCûö팇6w8u4&¾üü|vˆÃ0 £zÄ¢Þ0iye8ö°å I 8X0Ô ÇßkÒ GI·¥xùÇlLú6äX^”wT´3N¼†ÇûÀIØrÞšßãâanÔju‹ê³gÏÌ�;�3fÌÀ”)SàááOOO»ÆÑTÿùϰcÇŽÓŽ-µ„ûöí‹?ü�ý2dHƒ¶o Ç` �ÞÞÞ�žÜ¡öyhj{„ò4j9WÁO ¨¨(àÂ… ¸uëT*8"""еkW²ëúùùáå—_FJJ ®]»©T �H$èÚµ«Á,Kb±3fÌÀõë×qéÒ%v”»»;bbb �@`“c*((@rr2d2D"úõëÇÞ´iÚµk‡Û·o£W¯^ˆˆˆ@nn.Nž< •JäççcæÌ™mêt:œ:u ©©©àp8 Bÿþý!“ɰ}ûv̘1PXXˆãÇ�câĉ`²m©TŠ£G�¢¤¤�‘‘‘èÕ«—ÉõÌm§Óépøðaqqqð÷÷7{mjµ™™™èß¿?†Áõë×ÙÄš¹öÍÅTXXˆ“'OB&“A,cèС`Æä93k}ñÛ×�;w�››‹�;w",, ÇÇš5kðÊ+¯4þŒ<***°é¼*mÃ{œXÃ#£œ±xŒ7‚Ü­×#åÌ}†ž†çºº`ñx9Õ?‹Ïe0+Î#£�ñå¡"l9[ m3�úQë8øå¢m¤õÜ´‡òòr¬Zµ ýû÷ÇòåË›;œ&9{ö,¸Ü¦ϳV;¶Ôb ÇСC –egg[¼}K8kðññÁ�?þØèíkŸ‡¦¶G!O#JÄØ˜J¥‚J¥2øQ¿¬6�FµZmP°·æö5{hµZ¨T*¨Õj³Û[“R©Äþýû1zôhxzz"-- À´iÓÀårQQQWWWLŸ>\.UUU8pàÆŽ OOOddd 55µN»™™™ÈÏÏÇ´iÓÀ0ŒÁ1™b®mý( lß¾aaaðóó«cMæ¶€.]ºÀËË ™™™8xð ¦M›†ÜÜ\‹bOKKC`` x<;í¸\.7Æc¬}S1yzzbÿþý1b¼¼¼ P(  Í)2wžÍŧR©Œî«K—.HOOGïÞ½áëë[ïkFžæzFè{Ãd”ãðýæ†Ó9H„Çû {˜m†ÓiuÀŽ”r¾YÙ Y—|]xX>ÑSzºâýß �’Ö¼CÜåcz~::9�Ëåšìõf¯”nÞ¼‰ÊÊJL˜0Áìz»wïÆúõë!•JñÒK/aâĉxøð!V¬X�»wï‚Ãá W¯^xç�wPTT„ &à…^À©S§PQQ�Y³fá…^$&&âÛo¿EEEž}öY?~»v킟Ÿ’’’°víZäää 22ï¼óüüü°bÅ $%%A­V£}ûöøæ›o ÎÏüùóQTT„ßÿ¿ÿþ»Á°Ž†Ä®�¿f;5“fæŽyâĉ˜:u*Ž9˜={6FŒ�ììl“ÏÕ6kÖ,”——³=$–-[†óçÏã·ß~c�ר±ºººâÊ•+X½z5>|ˆ€€¼úê«èÓ§�Aû¦âoŒÔÔT$$$°�kïËÜþŒ�çÊÊJ“çÉ’¸år9fΜ .—‹õë׳×¶~Ͳ³³1a¼ûî»3f ®^½ŠÕ«WãÁƒ�H$øðáÓétj¶gêuÕïרߙJ¥ª÷o†Bž$-§ÿóèâŋشinݺÅÞôêt:Ü¿[·nEbb"»nVV~øá\¸pÁàf://ûöíÃÖ­[Ù6¤R)~üñG?~¥¥¥ìºååå8qâ6lØ€²²2«O^^ÜÜÜØ®ß¡¡¡prrBQQ»Ndd$›àÈËË3è*h´§Ž››*++qâÄ dddXôi“¹¶9Ôj5RRRpæÌÈd2¶‡Qíkªo;ýp0‰D777X{BBîÝ»‡M›6aË–-P©Tu†ÿkßTLùùùpttd·‰Dõ^¬˜‹Õ\|�Ù!€ñ!,R©[/)QÕŒµa|':öαY¦¦r¹Ÿì}„øÏÒ�ð‡åõc¢$"ü:/kf Њ½uªJÃ`Û%¥A!nc¯­½è‹Ü×W íêÕ«˜2e ¼¼¼°råJ”––ÂÃÃ}úôÁâÅ‹1eÊ>|Û·og·Ùºu+¦L™???¬Zµ ÅÅÅÈÎÎÆ¿ÿýo¸¹¹áÕW_ÅñãÇÙõïÞ½‹wÞy±±±øôÓOQ^^ŽeË–!!!»wïÆ+¯¼‚åË—cÒ¤IuþoΛ7‚µk×ÂÉÉ©Q±›k€ÙcÖjµØ´i^zé%¸¹¹aéÒ¥HOO¯÷¹š†ެ¬,¤§§C«Õ"99Æ 38^c1`þüùàr¹˜7o†Á;#œœ‹ão¨“'ObÉ’%ìWqqq�uzžM�§úâÖétXºt)Š‹‹ñé§Ÿ|0cë׬¦ÂÂBÌŸ?Z­óçÏG||<üýýýûfÉëjìïÌ’¿By’P"ÆF Í^¤ž;wŽV”��`t:j½ŒŒ ܼy@u�Ôš ˜Ú***�œœÜÈÈMÓh4u)J¥Nõ¯Qí7L­VkÑ)L›6 AAA¸uë¶oßΞ7S½{̵]PP€#GŽ@"‘ oß¾ðöö6¨cbJC¶S«Õàp8fc׫ªª‚@ À?þñLŸ>Ó§OÇàÁƒñàÁvS훊I©Tš,Škêœ™Šµ¾øÌí‹Kéÿ.JË+pàNótíçq¼ÔÏI‹Â0µ—8v¾ÆøH‰¿ý��)ßeânžeõc¦º~̱·C±`¨„V˜B»1ößᢴ¼ºhosÏ’¤›™™iv½%K–`„ ˜:u*4 rrràææ///:t'Ož„N§3hçÝwßÅsÏ=‡iÓ¦A«Õ";;çÎ�ƒJ¥Â[o½…Ñ£GôjHII�V«Å–-[ðïÿ™™™ÈÊÊ‚··7à·ß~Ã¥K—о}û:ñ…‡‡ÃÓÓÑÑÑˆŠŠ2HŽ7$v:—R IDATsí¨÷˜—.]ŠÑ£GãÍ7ß„V«EJJŠEÏéÅÇǃÇãáôéÓ¸yó&Š‹‹ë ÿ1ã™3g —˱páB<÷Üs˜?>”Je�}ÔC¼øâ‹8{ö,ûUsˆx}û3wž��§úâÞ¶mŽ=Š… "((¨AÇÜÔ׬¦Ó§OC&“áÍ7ßĘ1c0}útˆD¢Fÿ¾Yòºû;³äo†Bž$”ˆ±©TjÑ›òòrƒïÖ^ךüüü�——‡üü|@NN´Z-[pØÔúª?uÑ'64 ._¾Œªª*(•JTUU¡M›64hJKKQUUÅ‹ÉÍÍPÝ F?{‡¹¶‹‹‹!‰àíí �Fƒ¼¼<³½l¸\.ÔjµÙít:{Ü�ÉdlRÄXì5�ïÁƒ6ˆ!44¹¹¹P(fÛ7“��rssÙOóôÃ×Ì�3S±ÖŸ©}Õ½cLͨ¢ÿ„T/??ß ùTXXhÑTì¤õ0W¤¨NPŸ~ B¹Òþ‰˜øgœ�¸( Œó�“¨yßúNÞ•aèçéø`W*– %up0¨'N¼Žç»¹Ø8º*”\œ¾¯`ÿgÍW´·cÇŽøé§ŸŒóÕÓH / ªÓépôèQ¼ÿþû:t(V¯^mr[vý>ôïé|þŸ½“ô3®_¿DRRöìÙƒnݺáçŸF÷îÝqìØ1¼ð ªEÒ”Øk«o;}/\ýqÕü�ÃÜsznnnèÙ³'NŸ>�'N ""aaaõÆUUU�ŒÔŸWý„µ÷ÑØãn¬ÆìÏØyª¯�öíÛƒÃáô°²4†¦¾f5é{ºi4šÅ`Š¥¯+`øwÖÔ¿Bim¨FŒ�xxxÀ××—½¹6ÆÙÙ‰@õ…åÅ‹M®ËçóÑ¡CvÝû÷ï›ÝÇŽµyb±ñññHLL„F£�““FŒÁ^0[ðàÁ8zô(8¼¼¼Ø ƒªª*\½zAAAÐjµ8wî¤R)4 bccÙ7î�âСC‹Åpwwg/J͵ݦMdffâ矆X,†¿¿¿ÙDLçÎ�ñ믿">>Þäv\..\@yy9„B!FŒ�‡üü|£±Ëd2öøîÝ»‡¨¨(ƒ} …BøûûãáÃ‡èØ±£ÉöM‹““ €C‡�ÏçC,càÀ�ppp0yÎJJJŒÆjI|¦öƒ“'Oâ�?þÀ¨Q£ ÚHMMEUUBBBT÷ê*((@›6mT'òîß¿oP0™<™ô7ç2™ ûnT°_+‰ÿ�䋸ö-k6µF‡õ'J°ûR9Þá�É=\-ê¡àÆÃ—Süñ\7¼½-™Å¦Ö¶ÿ¦ ñ�« µÛ«Œ1ÞÞÞ˜5k¾ûî;Ìœ9Æ ŸÏÇÇñöÛo›ÝV?<¢°°Ð`x°9]»vÃ0X±bžþy|ôÑGìs={ö„““>ûì3¼þúë�Édppp€››RRRлwop¹\lܸÅÅÅuz`¸ººâúõë¸zõj½ïÛæb¯ÝNÍdQ}ÇüñǃËåb÷îÝèÞ½;{Snì9‘H‡ƒ;wî ..ÎÎÎ>|8Þÿ}¤¦¦bêÔ©Fã¯cll,¸\.V¬X�qãÆaïÞ½prrBll¬EÇíèèhGíÇÎΖÍ~V{»†œgsçP_§ÅÔy�‰‰�§§'6n܈_ýÏ=÷\½Çln yÍjêÚµ+8V®\‰©S§B.—cÈ�!�:̾®æêØ¥¦¦Zô7C!O JÄØÃ0xþùçqàÀ¤¦¦Öù”000Çg/–  z\xíž4nnn:t(Ûm322r¹ÉÉÉuÞÔD"zöì‰èèh›—D"a‹Öfl¶œ��öF\*•²C± fO3fŒÑ6Ûµk‡víÚ}ÎTÛ|>ñññÇØ«W/v&"SÛýãÿ0ºÜ×××hì5�oìØ±F·­¹�©öÍK›6mؤFM¦Î™©X-‰ÏÔ¾üüüØY¬Ãó[ûb¯{÷î�£¢¢ê$€È“K«ÕâQ‰—òì7SRÏ6X?+.â–Ûù³°Rƒ··åaÓ©|0Î=ÚX–¤Škïˆo†`ÖúlœhŸb¾)¹B”Háææf2o/3gÎD@@¶nÝŠüB¡Ï<óŒÉzz#GŽÄÍ›7ñÝwß¡M›6³Ã™Ò¶m[¼õÖ[ذaÖ¯_�˜˜\¾|@õ‡.Ÿþ9V¯^� ÀÇÇ£G�FÛ¶m‘˜˜ˆuëÖ�ÏçãÅ_DçÎ�ë´=gÎ|öÙgxóÍ7±jÕ*¶‡MCc¯ÝNÍçê;æ°°0|ýõ×pvvƲeËàççÇöD0öLš4 ûöíCPP&Nœˆ¸¸8ðx<š|Ï2ãÒ¥Kñý÷ßãË/¿DÛ¶mñå—_Öéek*~77·:qÔ~l‰Úí4ä<ë_/cçÉ’ßµ—_~çÏŸÇÊ•+…¶mÛÚå5ëÝ»7ÛV»víðÞ{ïaÆ øøã�Ñ¡CtîܹQç¨îQkêu5×Ã%??ߢ¿ByR4ÇÇY–ìÓÔ:Œ‘ç85žÓ?®ù3ïñ—€¨¢¢â–µºOWVVbÕªUUø£££ ŠJ¥Rܸqr¹<ÑÑÑ&?©Q*•¸sç[722ÒäŒ4�éééÈÈÈ!,,Ì ÷GII ®^½Ê>2d^ýõ:ÅÕl¥²²"‘<.\€N§«óiWKl›´n%%%ð÷÷oî0ž*æ†%ét:H¥RlHÌÇêÓöÉÿGñë¼`8 í›0�,hÚp»ÑÏ:ãÝÑ–O¥]©ÐbÜW¸caÍ™¦z£� 3øÃÁÁ�íSû{ퟟ4+W®Ä¶mÛ�””dÐó¤µÑÏ`³téR 2ÄâçL™:u*<<<ì2|¨¥hÌy²Õþì !„X“@ ˆ  P@ýøK?†[WëgÔxŒËMÝä[róo×"xÔ#Æj&>jS«Õf‡ ÕvëÖ-ܺuË¢u³²²ØÙ$ZŠ´´4ܼy:�~~~èÛ·o«h›búdŒB¡ÀÑ;*Øãm‡Ça°jŠ¿Ý“0Ö°çJŽÜ¬Ä?z`Î ˆæ�ÁIÄÁWÓü1ò‹t¨µ¶¿~H¸«Æ =äppphÖáIö¶k×.p8Èd2SŠ}W+0¨'^ìã§e'8 ð\W,ã¯z’GNfŽÝšRËÄ(­TÀÃãéªC!„b-tE!Ījö T©T¸™«†FgŸ„‡¹½èÃ*•iðþoˆÿ4 ÇoIíWcôn뀃o†âË)þõ&aû}ÓèÜÊU Åm©½A !„BZ"JÄBi´š7àÆnÆÕj5þÈVØ3$‹Ý/PâÅuY˜µ>éE-§¾W€+§øcë«’;ûÓ­Ôju�åõý>B!„šD!Äô7á*•  kµoYŽÜ¬ÄñÛRÌèㆅüì6ħ6ÿè�W{@ÈkÙC¦êØD Õ‰!„BiJÄB±�Fƒìò–ßùR­Ñaý‰ì¹R�C=ñמn°Wù†FF9cÉoºóí³Ó&Ê)‡Ñ1„B!¤~-ÿê˜BH«¤ÓU÷š(R´Žä”«±h{>F}™Ž ©r›ï/J"¯ó‚±fF@«IÂÀ#9�††B!„4õˆ!„b:�J•åªÖ“`лž¥À„¯302Ê‹Çx#ÈÊI_æÛ¹ç�5•*¨RQ�B!„�Æ D !„«©ÙCB«Õ¢°R­�fL²6�Ø{µGoIñÊ@¼2È"~ÓŽ…Ïeðb7,î'aë픪Õ1(‘j Õ‚Ë­žÑ‰jÅB!„X†1„BlB«ÕâQ¹@ëëS“\©Å‡ ±å\)Þá�纺 1ù†øgœðáxHŽBºQR9 ™z1¶JÔ?~<¨³<,, ƒÆ®]»‰ˆˆæ*fI „P(ÄÀ�ëùäìÞ½Û`=üöÛo&Û©¨¨À7ß|ƒË—/£  ÁÁÁ˜5kú÷ïo�"„B£DŒ�¥¦g`ÞŽ*¤I�.S�„L'^˜O××K¦f²†ÃÁ¡\ÜÞú+ÆV!,$ØfÇD!@õM¶¹:!nb**þ¤òpä6kÑøÈÈHtïÞÝ`Ycã¹xñ"ÊËË�&Dl)<<gΜ�F£1^¬Ñh�™™‰#FØlß!!!ðòò²YûMqûöm¬Zµ 999ÈÏÏoÔzr¹3gÎÄŒ3Øeæƒeee˜5kºwïŽ÷ßŽŽŽ¸qã<<<š~@„BH-”ˆ±�N‡i˜½]ƒGUN`8†Éc‰—/>b$bx9óàçRýÒä•«Q$Uãr¦%ªz“5ZoÌÞQˆ5ãÓÐ&,„º�Bš Ã0ðt¦bâOªæNÄp¹\‚fÛ¿5„„„ 99999�H$ìòììlˆD"x{{Ûlßݺu³YÛMµgÏ 4ãÆ� µžL&ƒ««+Äb±Eûܼy3:vìˆE‹±ËBBBw„BH=(c#Yxm—…*1Löjñqæcfo7ÄG:"ÜÛüåÃGJ$Ü‘âçJQ$Õ8¢A¶\X݆pg8 8®b.Þê�co†àýÜëMÂ@¸·³ûº#a^ ö„‹˜S«í?.xãÃC(((°É1¦¤¤ _¿~øàƒ¬ÒÞìÙ³±oß>«´ÕöKÈÓÂÉA w�¼¹Ã VæÎ—ÃÉѲž¶¢Õj¡V« ¾Œ •ãp8pqqA||<&L˜€öíÛ#)) eee€¨¨(ÄÄÄ M›6˜5kz÷îÍn{úôitíÚ&L€¯¯/8¥RYo›µã>>8zô(û|K#—ËñÙgŸ¡ÿþ7n–/_Ž’’£ë* A(bÑ¢Eì9زe‹�£&„ò´ DŒ•I¥Rì¼$ÅåB¡Aâ…yüÅa€.!"ì�Œös‡˜ßð—@,à`vwüö²1‘á~˜?÷uKå‰_/•B*•Zý8�=ŠŽ;âìÙ³P*•VoŸÒ:Õî Áçóá%ªj¦hˆ­ø:(ÙÞzöî óÇ`ãÆ�_yyyF×íØ±#ÜÝÝáììŒèèh8;;ãÑ£Gõî#..~~~pttD�= ‰Ø"Á–¶yæÌ(•Jôë×Ïè>BBB T*Ù'¹¹¹lý•J…;wî gÏž‹ÅpttD·nÝ�––fÐNDD"##ááá�™L­V ‰D¡Pwww“C�4 ®_¿Ž>}úÀÃÃÎÎÎ0`”J%ÒÓÓT÷ÞéÛ·/||| ‹ ¹\n4ùÔÌŸ?[·nÅž={°dÉܼyo½õ–ÑÄQaa!૯¾Âøñã±k×.¼ñÆX»v-Ž?nïÐ !„<hh’ét:dæ>ÂÆkB0�«òÖž~zHG|9ÑB^Ós`�n|løkÞú½‰÷¥FêÏ0Øt_Œ~m Ù6ÔjÉ*• 'NœÀ矎… âüùóèÛ·¯UÚ&„>>�ÝÜÜàïï��;w"880CEE´Z­Añ^�”––œ=gggðx¼:q´�;wfîÖ­–/_Ž &àÞ½{uf²rqqa×ëÑ£°=iŽ=j÷"΄Bž|”ˆ±¢’’¬<Í�Šá€12ýtŸ6X5É|®õ>5ñ9øbœ/æìÌÅÙŒêîÿ³* Eøêl9–y–X­òÿùóçáââÂŽ£OJJ2HÄÌž=}ûöÅùóçqÿþ}H$,\¸7nÜÀÞ½{‘››‹.]ºà_ÿúÜÜÜØíN�:…Í›7£¨¨‘‘‘X°`;f^¥Raݺu8~ü8ªªª‡¹sç²EøfÏž�É“'ãÀ�¸qãþóŸÿ [·nÐjµØ¼y38€ÒÒRtêÔ óçϷɘvBˆ!†aÀãñ q�ÝÜÑk’¸Wߨ·´z0ƨÕjüþûï E—.]àää„={ö4jH�þwÚÒ6QVV†›7oš-ކ””ôèÑiii6lûœ¾ ñøñã! ëˆ#�››‹»wï"!!þþþˆ��¯³®F£�N§ƒN§3xM¹\®Ù„[kxýõáììŒüü|£‰>Ÿ�gŸ}Ö`yhh(îܹcÏ0 !„<%hh’•hµZdVâb!¿ºV ógM†Ã À��/&øZ5 £Çç2X1Æ�nüZà0à¦ÜÙ…VÇ���À~:‡S§N|"VVV†~øsçÎÅ–-[ ‘HðòË/#++ ÿùϰnÝ:äää`íÚµì6ÙÙÙHNNÆÛo¿�üxíµ× P(TwÎÍÍÅÚµk±~ýzäääà»ï¾3ˆëƒ>@ß¾}±zõjtêÔ ðã�?"11‘ݯ@ À믿Þb?Á#äIÃårêE9ÿ'M¨'¯Ù{ÄXêÑ£GP(ˆ��…»»;ø|>Š‹‹ë Û­ý)—Ëqûöí:m¹»»[ܦ““ „«W¯²C|Œ �\.Çü>ŸOOOƒ6ø|¾ÙíÍñ÷÷Gÿþý1zôh¤§§®¬ïRsh—N§Caa!ÜÝݵߖ¦  &gBêÓ§Ž;f°,-- ÁÁÁö�BÈS†1VR^^Ž�—9Ð�c� ÑÐýp„'ÜlwÑê"âbÑ÷êäS«€/Ÿ‹¯jQ^Þô± …§OŸÆ€Ý»w‡J¥Â¥K—Øu\]]ñÖ[o¡C‡pwwÇäÉ“/¾ø"‚‚‚ ‘H0|øp\¿~�ÝF£Ñ`Ò¤IˆŠŠ‚¿¿?-Z†a�˜˜©TŠ={öàõ×_gǸÿýïÇÉ“' b5jÆŽ‹¶mÛB$A¥RaëÖ­X¸p!ÂÃÀŋC&“áÔ©SM>„ÓôŸ”óù|< ö)èY·Tk͘ìB³1wìÖÄ…ül"¦%öЉD¨¨¨ˆÅb(•Jܺu UUUHMMv6 pttDnn.*++ÙáE<�=BNNªªªpéÒ%¨T*„……YÔ¦^`` ºv튤¤$“ïÃ|>‰gΜ1–TŽŠŠÂùóç‘�� ­V ©TÊÖ51¥ªª wïÞ…T*…Z­Fnn.x<žÑ™„ø|>"""pêÔ)ÁåË—QXXˆëׯã�wÞA\\›ˆ©ÝΔ)S°wï^lÛ¶ HLLÄÞ½{1qâD›!„�§Sëø8«�Éd¸˜Ïe!Ø!IÝ‚Eè×¾îř޵´2,ÜxÅ*ŒzÖ Ç·‡Ÿ»åS.êõo댘Àr\É­ªÀµ2d2™ÁP ÆHNN†H$‚D"a{«têÔ ‰‰‰ì¸jSšêgi�Édì'k¡¡¡�ËÿœI%88Ø`ªN>Ÿ�¨¨(¤§§#,, Z­¯¾ú*{Á¯V«!“É b{æ™g çää@­V£}ûöì2‘H„Ž;"##£)§�òXÍi«�MaÍ0 ü}< .@¦ÜÕæñH¦>ü-ÖÑUš9vk —#ÀÇ×h¦æ²æLÐtîÜÉÉÉ())A||‹‚‚$$$`̘1F{…‡‡×©£�‡3gΠ²²’-–[³¦KmJ¥©©©¸pá”J%\]]1dÈ“µjzõê…óçÏ#!!Z­���>|¸Éö›ƒV«Ennn�z8µét:|üñÇ(((€��ˆY³f™l'** Ÿ~ú)Ö­[‡ï¾û¡¡¡X¶lÚ´icÓc"„òt¢DŒ(•Jü‘§† Bp8`‹Ãè¯A_‹3Ÿüx{ëä9ú@àÄà`¾>NÁÌÞ>xuD8E {‰^�uÅ?÷<ªƒV(ÄíG2x{«êÌtÑÇŽCII †Zç¹… ½À«ïbÝ>Ÿ>Ÿ'''À?üÀvŸ¶„R©„V«…F£1H vÌ=!Äúj'dÄb1"<äÈ̶}"&³XµFž‘a ÝÃĘ3ØkŽë~w› IDATCk¯î#v¢Òè�YlŸ!—<ppp0Xfï¤K}ÅSñ /°�£¢¢er}�g´vJ``  dt›úÚ7nœÁã¿üå/fc7š„Ñëܹ³AZsûª{ç{¯6µ —ËE¯^½Ð«W/‹÷1cÆ “í[ËêÕ«ÙŸ9þ÷¿ÿÕ»ž»»;Þ|óM“mšj§gÏž€&„Bš‚†&Y�\.ÇчºÃ�þœ²:È��n¡Nf·ÏaÁp«·á …à`ãM%~x[NdBÓ€;†n!Npá±C¢ØáIàÐM�^$ QYY‰sçÎaݺu8qâûµgÏp¹\\¹r¥Ñm—––âáÇìc�N‡[·n!,, ¾¾¾ppp@rrrƒÚ Ã0¸ví»L«ÕâöíÛf/v !ÖÃ0 „B!ºÙçí¦J­CJšÜäó‹FzcÏ!è*¶K<örþ¡Jµ}²K]%‚9$‰B!¤5 DŒ(•JÜ.áüY$WŸa€~aõ÷¼`ø|¶°®þKèâµ_–&!þÃÓ8zµÀâxzò bÐÇu¿¢iÓL&%%ÁËË«Îl®®®èܹ3’’’Ýv~~>¶oߎ«W¯¢¤¤kÖ¬�V«E\\x<¦L™‚ï¾û)))Ðh4(((¨w&Œ1_|ñnß¾�’’|õÕWpwwG÷îÝÙØsssë § „4]Í:1ÝBÅà1»ì÷—sefŸ�’ˆðë¼`¬žæ·'£cèÖóæ�ÙZø º†9²=+)C!„Òp”ˆ±­V‹ M�^(ÌŸ •^!õ×z©™€1èÉÂÄ®(óòÜí阱*÷r*ëm¯G  ÃÔI I4šÆß=zÔdwð¸¸8œ<í�Šì¶ï ©r û<'ïJ-Þ¦G1ö-Å'ùÁËÉôÿÙævò®Ã?OÇ…TÓ…‰­­ƒsÚ…íC!„B,G‰+árk%T˜êJqeýÅqkÖ5žD1LÖt3=�sQ…Ò°î ógB‡BlÁذ”Ú7ê...èbŸÞzYÅ*Lù. ³Ög#½È²bå˜ÒÓɋñ`¨¼–ó¿3§T�ù›s1å»,d•Øgºj½þ!J¸¸¾÷а$B!„�†£DŒ•ð8œê¤ Ssˆð¨Ü|ÁHF ë›~šá<.ð|GgÌëãm²½‚re�dP�„ uˆ!„4ý4Öƒ;¹Â‘kßd ¹Y‰ËSñÁ®T*,+*î(ä`þPO$¼ŠQÑÎ6ŽÐ<™R‹/¡ß²‡Ø‘bŸÂ¼59p•ðŒ+„B!%Z!„Bšˆ1V‡ñ™�RÕßmÜ\âåÏ^- z;àÿÆ`AOOˆø¦_º´B¹Ñ!M:eãf4"„�¦¨yã" B¬WA³Ä¡Öè°þD ú/OÅÏgJ¡±ð_b˜·kf`Ë+DøÙ·~ŒNì½Z�AÿMÇ Q¥nžŒz¯|„H‚ØÇ”Œ!„BiÜSˆµÃýq`’o÷ôlT~I΂Ôݹºg óç�$¨Ì—¡½·Aý5f¬mÍš5vß§-Øã8ž”sEH}<==1áø- WLMYÅ*¼ò¿ŒY•ŽËé ‹·ÖÙ ?ͪÅZîå+1mmVõ𨖄p4x¾³žžžÍŠQ‘‘‘xñÅ1yòdtîÜ/^ÄÕ«W›ÜîÅ‹qüøq+D„‡‡###�áï¹F£Aff&¬²cBBBàååe³öm)!!)))˜3g6oÞŒ)S¦`åÊ•8vìXs‡öÿìÝwxœÕ™øýïôõÞe«X’›$l¹Ê½‚ 6eé&Æ %„¡Ȇ¼NB( $¡˜„5�ͲÓ±ÙÆ’6î–dIVïÒôöþ!4H²Ê¨X’Íý¹®¹4óÔsÎ<šrÏ9÷B!„b€V«el´K½ÿŽÃ“” ÒªøûžZ *Œç­ ùåF^>X‹Z¯:gö%n*Î41i¤¦_�“ÉÄ믿ŽÉdÀ’÷_Oår»Ý¼öÚk¼÷Þ{ƒ\2!~˜º¢P´äÂR©TÌÊJcND×Aê¡´ÿŒ…+ž?Ã/ß.£ºÉ1àǯ79y|c%‹þTÀÖcç。?æE3cb*•Êó¼ÁðIÒ«R©Ðjµøøø�ššJVV‡ôrtgäÈ‘8�NJKKÛ-?{ö,z½žðððóvîI“&{ÞŽ>-\¸�§Ÿ~š¬¬,¢££¹êª«X°`Û·oê¢ !„BÆ© •JEJ\Áû07¡ ÔàlíšÿÝgSML·¾v„ÿ¹+ƒð€��þ´¶ÉÆ]oÁgTTË�(χdP+Ôž¨$BÛLÚÈxTª¾Ïôa0˜;w.ƒa€J>0z*Wqq1111”••a6›‡]ù…ø!R(„††²jŠŽýŸ©± Lž•�ärÃÿå5òñ¡fî˜Â] BЪûpp8Ýü÷Îzžù¤šF³—óg�0­‘›¦ ¹`òÀDEEa±X°Ûíh4Ün7ß|ó 'NœÀl6Ivv6þþ-ÃÎ6nÜHFF'Nœ ²²’ PSSÃþýû(((`ôèÑL›6�={öPTT„ÉdÂ××— &0jÔ¨ˤÓéˆ��¥°°�øøxÏò‚‚‚v½a\.yyyäççãp8HHH`êÔ©h4š.ËKII yyyÔ××ãããCbb"“'OöìÓv¸”7í‘��@II 555øûû“��MTTÔ<;½Ó:®­ÐÐPª««½,B!Äù =bHpp0cëi¨´ t·›©u¨’cD«þ~�ÒÚ�›£¢ÞÂê—âLŠ@©jõ}o�ÍJÁ·L‰µÔ¯s) ‡Ý‡òžÊuòäIRSS1bùùùƒ\:!~˜zêÓú÷’Œñ\“x–áõªÒžÑÚ’?f០ùà`SŸ�³ý„‰KŸ9Ãoß­ÖApUâY23ÆwûÜy¶&ï &“ Oðbß¾}°`Á®¼òJT*}ô.×÷mÿÅ_0räH–/_Ndd$L˜0�ääd~üã“���R©$ €E‹qõÕW“ššÊÖ­[ihhðª\­Ã“Zs'¹\.ŠŠŠHJJòl³sçNšššX¹r%W^y%���äææ¶;NDzZ­V>ÿüsÒÒÒ¸á†X´h ]–£§ö°Z­äåå1eÊ®½öZ"""زeK»öJd̘1C] !„b@H�˜b0˜“ª%§ÜFÝ™f‚Rh´»[¾\|÷U­RaÁ5=Àÿ#…™cû7v{Û·Õ<²ñ>ã£Q«Ußgçý.Q¯¿ZÁ·[Nࣴ³$3p@z‚¼øâ‹Üyç�TVV²cÇL&z½žÙ³gqÎ>n·›Ï>ûŒªª*4 ³fÍ"::£ÑÈ–-[¨««Ãét2f̦OŸŽÛí&''‡‚‚”J%qqqÌ™3§ËåËÕ–Ãá ¸¸˜9sæ P(8tèãÆ�ó¬å•WHJJ¢¢¢€©S§rúôiªªªP©TÌŸ?ŸÈÈÈnëPRRBNNV«•��æÏŸ���ëׯ'%%…cÇŽ1}útÒÒÒ¼n7!.Fm“ù* +g$²£¬’Ã�Ãûÿ  ÊÆ�o”òvª¿]AZ´w½ó«l¬}¯ŠÍGšÏs Fz@9WÎHD¯×Ë€KG.—‹ºº:rssIOOZr°:tˆeË–Àܹsùç?ÿÉ™3g<½QÒÒÒ¼úr?vìXÏýÌÌLŽ?NUU���=î;räHvìØAEEQQQ”••¡Õj=ù[ìv;Ç�çúë¯÷¼OOš4‰Í›7“��í9NDz655ár¹ˆ��G§Ó¡Óu}=zÓ:�ŽÌÌLÏûQff&ÇŽ£¡¡�àààëy>mÛ¶�ââbV¬X1¤åB!ŠbˆB¡`Lj™ßbGE$úòfübü1Ù]ßÏ`¤P ÒªÐ�‹åî÷ ýq>ÿyíhÆÄôê\§ÊšyfãIòLnÂ.‰E©l�¢éû?>%e{OQWÖÀÒ±JƦMÐÑ6›��>úˆË/¿œÐÐP ùøã�YµjU§ÃŸ&NœHXXÅÅÅ|òÉ'¬ZµÊ3¤( ‹ÅÂ;ï¼Cbb"6›�ŠŠ V­Z…B¡ÀáhÉÏP\\Üéòî‹Z­&>>žÍ›7·žäp8˜4iAAA9r„Ï>ûŒU«VÀÁƒÉÉÉ᪫®ê¶v»�Í›7sÕUWÀÞ½{Ù¹s' .¤©©‰ÀÀ@n¾ùfT*U¯ÛMˆ YÇ KÛÙ”Ú>NHHàG™%ü»l4;?¡xom?aâ²gϰjzwÎ!&¨ó·ÒÒz/~QË›»êq8‡Á\Ô^ðSY¹9ÓÜ®gEÇ÷Žáœ9|ø°''Œ¿¿?éééž@Ek�¢m²ZµZMDDõõßÏnåmÜb±pêÔ)***°Z­466zõ-yäâââ(,,$**ŠÂÂÂv½ap»ÝlÚ´ÉÓž.— »½}òæŽe "::š 60bÄÒÒÒˆ‰‰é´ Þ¶GÛçÓßßµZ}N9[uu5O=õwÝu—g•Bq¡“@Ìò÷÷gy†�Ã_™)/°2B¯Ä'Ô‹³}¾% ÂGGRa¶sÃG™¢áÒ ‘ÌK'دó/!µM6¾6‚Ÿ–î×í?ƒ^¥ ùtÇw#:Ä�ëgDл`OOÊËË ò̦‘��ÀÞ½{©©©éôƒm뇿øøx‚‚‚¨¬¬$66‡ÃA^^MMM˜L&ŒF#ááá477³mÛ6=ãꃂ‚:]Þ�Í›7ãr¹(//Z~yÌÏÏ÷ôŠQ(ž![)))ìܹÓÓV)))ž\ÝÕÃjµb2™Ø¶m›çmgÈhû foÛMˆ‹Ikð¥c€F©T2?{ÇKsx=,.÷ðìyÑ–Ãéæ;êøïœ:&%ÈJ0Øò–ZVï`o¡™½…f\Fün®M,`^ö4”Je·ÃˆƒÔÔT¦M›†J¥:'�ít:q»Ýžë­•J¥B­îÝG‡ÃÁûï¿OBB'NÄÏÏ�M›6õjÈNbb"yyyL�:•ÂÂB.»ì2ϺÖ$úW^ye·½Z:R(,]º”²²2Nœ8ÁæÍ›‰ŽŽfÑ¢EçlÛ×öêçÛf³ñÐC1qâD®¼òÊ!-‹B1�$3€ ãDzèävÞ>ÍéƒU¤LPàî‹Ñîún›Ö�Aë«!*3–Ó̫ᷩvì£&*P@y�•Z‹�*—Ÿ(cC‰¥ñÃóé»û¾%æ‚bòÞÏA£óçšK 3cü€×Õétž3“Ífë4Á^Çr‡¥RIee%_~ù%sçÎ%$$„ºº:l6¬ZµŠÂÂBŽ=ÊîÝ»¹æškº\ÞÕE«ÕŠV«eõêÕžéÇ�çøñãí†'µêXöŽ�»ª‡V«%**ŠåË—÷X÷Þ´›ƒŽ=a:[§P(ð÷÷çúc9ÕPÄÖꑃ\ʾs¹aO¾™=ù—ûk¨Ì‹8ÃõóRñ÷÷÷*ð2Ô_ÒµZm—3¶ÔËËË=½DÜn7ÕÕÕŒ=ºÇc· ²TUUa±X˜2eŠgYmm-F£÷³]�9’íÛ·säÈ4M»)ÁýüüÐh4œ9s†ÔÔT¯�Ù*::šèèhêêêØ°aF£_ßöɯûÛCÁétòÈ#� R©xä‘G†º8B!Ä€’oL¯×sù¬1L ¯·›#»‹0×ê£B¥Ä“Ä·5�¯B 5¡É!Äg�D;%ã¸Xއr<"SF †é‰Œ˜‘@بP´>šï§¦V|?MµJ ¡MÇ Øó[q»\,L…«Nì×”Õ]‰ŠŠ¢¼¼Ü“[¥´´—ËEHHN§“ýû÷cµZ�–{­ÛUVVb2™§¶¶Ö3}§Ó餼¼Ü3|Çjµ’œœÌüù󩯯Çjµv¹¼­¶ç>}ú4#FŒh÷KiBBeeeX,–^×¹«zDFFÒØØHAA�g»®ºrw×nÐò뤷ÝÝ…¸u—ôuĈÜ:CO¢OÝ�”í‡,Á§ž5Ó}9òû XwÏÕp§ÑhHKK#''‡ªª*Ìf3»víB¯××í¾¾¾¾”••ÑÜÜŒÃáÀ`0`³Ù8zô(V«ÕóZßv˜Œ^¯§©©ëDÎ�†øøxvíÚÕnX´ý322سggÏžÅåra4{œ!ÈjµrâÄ ŒF#‡ƒ²²2Ôj5z½~@Ûc(¸\.üq ùýï�ÛíÆl6c6›» ì !„ésÄÅÅqSv µ›ëØWaàèž"¢kLŒ™K½ lN÷9‰uÛÝW(ѪµízÏ@›Þ4´ïY£W)TÁ±­ßpfßqܸ™¯ã¶eãˆ��=/u4 ,Z´ˆ¯¾ú §Ó‰ŸŸK—.E©Tb2™8xð qqq„‡‡£R©ÈÍÍ¥±±�NÇÒ¥KQ«Õ$''S\\Ì[o½…Á` ::•JE]]_ý5F£§ÓÉ”)SÐëõTTTtº¼-«Õê9÷É“'ÉÈÈh·^§ÓM~~~»ä‹ÞèªË–-cÇŽäææ¢ÕjIOO'99¹Wí�žžÎ¿ÿýo–.]ŠŸŸ_¯Ê'ÄpÕU~˜¶¡%ˆ™5q·V|Åy¾D¾˜‹�¿ÚÊOÆ—“5q>Ðòüô„¹‚2Ó§OgÏž=ž!ª±±±,Y²¤ÇýF�Eqq16l ::šÅ‹3eÊöîÝK^^qqqçÌN”žžÎŽ;¨««ëth´ÌžÔ1?L« & V«ÙµkÍÍÍ 233ÛåtéÈf³QPP@nn.6›�ÀÀ@.\Øe¾±¾¶ÇPرcŸþ9À9 z7nÜ8$Sj !„i(>Iysή¶Qt²NÙf]ëã¶÷ÕßÝt€Ð755Œ_Trvîâ¯_™ø¦B %†ÆM�%0ʇz» ›³uV¥ÖºßפílK�kh• ‚µJšÏÖqlûšªk±Z̤…9¹ge³gÍ<ïub8ª««óÌh%†�¶¯»­÷;ûÛÜÜÌ·ñʉ1X\ò{Áù¤U:¸=åk®œ…ŸŸß5]µB!.Z­v `ì€p|wk+ìîpŸ6�i³¼«/ùÞ|ùÔ.—ò ÷<Êž> ØÅ«ÛÙSî�ÕhgÿÖ³Gû3j\a‘zLv&§§»“^2m'CúZ©ÀW­ÀW­Ä\ÕLþ¡2êJ*±Y,€‚)#UÜzYÓ§Mìê !„×:ëÓú×ÏÏ�ë.›‚ÑžÇùcp¸eíù ÂÅ #Opýe“¼Â!„Bˆþ“@Ìy¤P(Èž>_ŸƒlØYÌÇáØ€úJ {k*ÑûêˆMö'2Z‡o€· l®– Ìw}eP*@£T V‚.“›¦R3µXŒX-&´*7—ŽssÅì 222䃳bØñfˆRëú°°0V]š�éƒCü«h ®!éÀyñR*Ü\w‚]:ŽððpÏò‹aH’B!Äp'�˜óL¡PpÉ%—NêÎý¼ÒŸM-³%Ø,nÎ3QtÒŽR­Æ?PI`  _%juKï\.¬N‹¥Å�ËaÇf5ã²|ŸÐ59ÈÊÜ$7ógÎò̆ „ÃQW³(u–/&&&†[Ûhüà$–÷~6ѵŧY³(Ù“¨µ³¼0IF!„b`H f�ÄÆÆrÍ塌9|˜�Gΰ½,”|Ó÷¿Bº]`ntá4A“ʉZ •�4jШ•´�áX¡PçÓDf|=“FÇ0~üxt:ÝÔL!z§m0¦³ûmƒ1 üt± ÕçÇù ,UzÆô“Ráæ²ÈSܾ Ú“4¶« Œä…B!„8?$3ˆôz=“&M"%¥�§Nq´ð«ü9m ¡ÜJO³‰«.‚”µ„ùV‘ÕĨ‘$'g88Bˆó §ÀLjj*w(•6aÃYÉÓW*…‹+c�³z~©©-=Œ$ð"„B1ødÖ¤!dµZ)++£ªªŠÊê:*Œjj¬:L%.Ô( S9ñÕ8 Õ;ÖÙ "<<œèèhé#DdÖ¤ CÇ×áîfR(**âíÏ¿åí3£±ÊlJ½¢U:¹aä1n\0Ú3õ²·Éy%(#„Bˆóé‡8k’b† —Ë…ÑhÄd2a³Ùp8( T*Z­|}}Q*å—`!z"�˜ Goƒ1üÏ'yüwÁhšÚA,é…Ë_måG‰Ç¸öÒIDEE„B!ÄðñC ÄÈOŠÃ„R©Äßßÿ¡.ŠB ogRjýÉ�Vdº9‡·NÅ“o ÂÒ >õ¬J)âòE3 $#„B1Ô$#„bHyŒiåv» æš‹ˆÛµ›ÿý¦�/«p¹%hЖRáffènÈt’=}z½hŸ˜·õqÛ¿— !„Bˆ�'�!„C®»` pN@F§Ó1wî¢¢Ž¿ãÿWœF³Sòføªl\‚•Óâ7n\§³"u—˜W‚0B!„ç—b„B ]cÚÞïøwôèÑÜÊÈíyüûT8‡#w€ï0¢Æ”seR% gM"22²e¹a„B!† Ä!„6úŒ çêeóIùæ¶<Ä¥ITÙ|‡ª C"DcbYL>—^FFÆBϬz„B!„~TCpÎ�ž5IÑÉß¶÷•|?{’ P?òÈ#?÷º´Bˆ ŽÅb‘Ä×°îm mï«T*bcc32„QÊ㸭 ›prqÏ4§Q:™VÌíU¬œŸEJJ k&o IDATjµÚÓ>� Kêx¿³ÇŠ‚‚öìÙCnn.ûöí£°°€°°06n܈B¡ ,,lh ÙO_~ù%[¶laß¾}8p€üü|\.áááýzÞ.”öùå/IUU™™™ƒvž5kÖ T*IKK;¯çì‹þ´Gêe·Ûyùå—ùÃþÀË/¿ÌŽ;ˆ��%&&¦ÓíÍf37Üp¥¥¥L›6­WõÌöïê\Þ¶óP_+mËér¹xî¹çxüñÇùàƒÈÊÊâ¾ûîC«Õ’’’2$åïÚh°þÏÅðµvíÚ¿ñý,IÎïþºh?“QÇNÏt'hé#„bØñ¦gLÛû­CCCY¼h)£ ÈÚ{”ÏŠB8Ð…Ã=¿;œ?j…“ Aå,НajF2))ÓQ©ZêØSàåb ÂlÛ¶�²²2²²²˜:u*.—‹êêj´Ú‹oZó1cÆ0yòd%%%ìÚµ ‡ÃÁ%—\âÕþ{÷±‘yóæ�ç’,—ËÅÁƒ¹í¶Û.ŠóôWÇr¾üòË”””°víÚó~îuëÖ‘““Ãã�?Npp0ï½÷÷ß?ï¼óN§Á¼¿üå/”––vz¬áÞÞý|­:–sÓ¦MìÝ»—·Þz ¥RI@@@¯�9˜×T« ¥½…hˆB1,uŒ:MâÛv™R©$99™˜˜&ž:Å�£‡ØVÄ×µqX]öÛžVéä’ÀrÄU‘56�Q£21 @×=‡:.këB œ>}šÒÒR®¾új4�gyHÈÅ9�¹J¥B«Õ¢ÕjIMMÅf³qàÀ¯1ª'Nàv»Ï{oƒÁ:O e9srr¸æšk<×Ü/~ñ ¾úê+Ž=ʬY³Úm»sçNöïßÏòåË;=Öpoïá^¾VËYTTÄèÑ£‡}/·Ž.”öb ]ØŸH…B\Ô:c:.ënv%ƒÁ@zz:©©©L.(`ÿ·Gø¢8�½uÑ�V¯ _••I!åÌ‹«'=-�Q£.i7%u+o{ÁtµìB±oß>²²²Úa:SQQÁ©S§¨©©ÁÏÏ�ììl¢¢¢p¹\ìÙ³‡¢¢"L&¾¾¾L˜0�Q£Fyöݸq# ”””PSSƒ¿¿¿ghùwïÞ½œ>}·ÛMbb"EEE\vÙeàr¹ÈËË#??‡ÃABBS§Nõ”¹¤¤„¼¼<êëëñññ!11‘É“'{Uÿ¨¨(, v»•JÕm]¾ùæöïß´ å=z4ÙÙÙݶÏp±ÿ~.¹äT*�=öz½žÇ{̳þ�7ÞàèÑ£¬]»–¿ÿýïlß¾�ªª*"##Y³f K–,ñl»fÍnºé&>üðC¾ùæžxâ ¦L™rÎyZ:tˆO>ù„ãÇ�Ãý÷ßï6ár¹X¿~=~ø!uuudddpÿý÷í9×ìٳٽ{7'OždĈ<ôÐC:tˆ÷Þ{�²²2&MšÄ#�_—½½ž|òI6nÜÀ'Ÿ|BRRëׯoW¯žÊÓÕ5µfÍ–-[Æ–-[8qâ#GŽäþûïgìØ±^Õ±­ææfn»í6.\ÈO~ò“NÛ»»ç»»×�'Ÿ|²ÛçUˆáF1B!†µ¶A–ΖõÔSF§Ó1zôh’’’È*,$¿à4‡Ë\äUómS$6×ð¶¤ÆÉ(ßj²Âë˜ëbTr" SÚ ½éí0¤®–]H DDDt»�Åbáĉ¬X±öîÝË–-[¸á†<Ýö-Z„Z­&??Ÿ­[·N`` V«•¼¼¼.÷ÏÍÍ¥´´”Å‹£V«Ù·o���žóïܹ«ÕÊÊ•+q¹\lݺ•ÜÜ\²³³±Z­|þùçL›6�¤¤$L&‡Ãë60™Løøøx‚:ÝÕ%##»Ý~ÎФžÚg88pà'N`ñâÅü×ý.—ËS¾­[·rÓM7¡Ñhˆ‹‹ã©§žB§Ó±yófÖ®]ËØ±c9r¤çx�=ö>ø ?ûÙψ��ïô<uuulÚ´‰W_}•ØØX^yåyä6n܈F£áÕW_%''‡'žx½^Ï /¼À]wÝÅ¿þõ/4 õõõ¼üò˼öÚkDEEñç?ÿ™5kÖpíµ×òä“Oâv»ùõ¯Íßÿþwyäž}öYêëëyíµ×p8¬]»–¿þõ¯žàJÇrÞ|ó͘L¦s†‘¬_¿žÏ>ûŒÇœÐÐPöïßï ötW¯Õ«W³eËþõ¯qã�7²nÝ:F�åéÕrÛm·qï½÷b6›ÉÌÌäƒ>8§ž|òIÒÓÓ™6mZ—�˜ŽíÝ“žÚ»«:{{]tW¾¦¦&|ðAî½÷^-ZDUU‹Åëk¥¯×eo¯‡‡~___êëëùÍo~Ói½z*OW×ÀÓO?ÍË/¿LLL o¾ù&¿øÅ/x÷Ýwñ÷÷÷º��N'�>ú(©©©ž LÇzôô|w÷: Ä…fx¼ÓŠvìv;V«‹Å‚Óéêâ!İÐSP¡cbÚŽ·Öa—.^Ä�WLá‘K üç„o¹"ö$‰>µh”Cÿz«Q:Iò©áʸ“ü6ë0ÿ¹XÁ—gpÙ¥‹HMMõaºJÆ{±aO°£µGPWôz=ÙÙÙDDD`0ÈÌÌÄl6ÓÐÐÀرc ÆßߟÌÌLüýý©ªªòì¯Óé˜9sf§û;Ž9¬Y³ ! €™3gzöµÛí?~œiÓ¦a0ðõõeÒ¤IždÂ&“ —ËE||<:�Žàà`ÂÃÃ{¬»Ë墦¦†ÜÜ\ÒÓÓ=Ë{ªK_Úg¨¹Ýn8@VVÓ§OÇétrðàA*++)((`ÆŒ\}õÕ$%%ËêÕ«‰‰‰áÈ‘#펹bÅ ®ºê*RRR<×OÇóóÀ0~üx‚ƒƒùÑ�~DMM ÅÅÅØívÞ~ûmzè!’““‰��å·¿ý-F£Ñx â׿þ5cÇŽ%$$Äó%ñ–[n!>>ž#F°|ùrO]ŒF#ï½÷÷Ýw!!!DDDpûí·³uëÖ.Û£3N§“7Þxƒ‡zˆÑ£GÎâÅ‹=½(º«—F£á׿þµçKðG}įýkϱ322X½z5ü1O>ù$þþþ,X° Ýù?þøcvîÜɽ÷ÞëõóÚ“žÚ»§:{s]tW¾ªª*ÙÙÙøûû“””ÄØ±c=Ûwצޞ¿ãu9P×CgzÛ­yä233 çž{î!((ˆÏ?ÿ¼WÇ|æ™g0™Líz³t¬GOÏwO¯B\H¤GÌ0c4Ù¶uõ 4441}údÆŒ}Q&BˆÞêj¨pÎp¥ŽëÚ!BBB a̘1L+/§¬¬ŒŠª#Ö)9VçË©FŠ-Á8Ýç÷÷ %nµM$ûÕ“lbt¨�˜¨pbbR‰ŒŒl7ôÆÛ„»][.† €��Ð�é)xÑv胿¿?jµ»Ý´ô9uêX­VÏé•Ò¶ÍÚîßÔÔäIÝÙ¶ ¸Ýn6mÚäYîr¹<ç "::š 60bÄÒÒÒºœ}àðáÃ>|ØSŽôôtÆŒãYïM]zÛ>C­  ›ÍæÉ¡Ñh˜;w.Û¶mc„ lݺ•Y³fy*õõõ|úé§üðC>üðCOðqíÚµ<øàƒ¼öÚküþ÷¿gݺu477óòË/óꫯxzu¿óÎ;<ðÀ\qÅÞÞÝÕ¹/×EÇò)•J^xáöíÛLJ~ÈÃ?LVVO=õT�eïëu9P×Ã@•§3J¥�Nçõ1'MšÄ™3gxç�wøéOÚe=¼ùÿêêu@ˆ �b†¡¶¿Fõ6J-„?�õŽé¸¼í ®òÉ´>V*•Drr2‡ƒÆÆFšššhjjÂh4b6×ÓØl¤Éª Ù¦¢É¦ÀêTbu¶–h•.t*~'þ:7�zþ¾øúúâëН¯/~~~ž^�Õ¡«Ç½ ¶ §/Ö)==�ýû÷3jÔ(Ï—–ÞhÍóК¬ ¶¶¶Ý/ÎÝi�¶¼¼¼Óž,~~~h4Μ9Cjjj—Ç‰ŽŽ&::šºº:6lØ€ÑhÄ××÷œíZgLêO]úòek(íß¿ÿœ<"YYY˜ÍföíÛÇÉ“'™6mÇŽ£¾¾ž»îºË³íÉ“'©¨¨èÓyº´äµhíár¹8vìW\q…×Çi+** ¶oßÞåLC]•³mÏ§ØØXOYÚ]óÖ™3gذa?ÿùÏyúé§ÉÊÊÂßßß3°ãëIjjªgˆÈc�=ÖnÈ ÀSO=…V«m7Ti Û»»:÷åºèª|'NdâĉÜtÓMÜxã�TUUõîëuÙŸëa ÊÓ±7]uu57ndÅŠžeG�eõêÕ^3::šµk×òË_þ’qãÆyfÚêXoþ¿ºzâB#9b„B\°:æEényW9d:>n]¦V« aäÈ‘Œ?ž©S§2wî\–/]ÂÕËæsòé¬YžÅmË3¸sùXÏí§ËÆpÛò Ö,Ïâ¦Ëgrõ²ù,]r)³gÏ&++‹Ñ£GOpp°'Ó]Η®rÀô¶þ“ñãÇÆ»ï¾Ë‘#G¨««£¡¡�Ó§OSTTÔãþƒ›ÍÆÑ£G±Z­xÔÑh4¤¤¤�““CUU&“‰={öxÖ·vÝß³ggÏžÅåra4©®®Zz¿ž8q£ÑˆÃá ¬¬ µZݧîõÞÔÅ××—²²2š››{•x(u–ÿB©T²páBþð‡?0kÖ,χ��š››ù÷¿ÿMCC[¶lh7«NoÎÓ.¿üržzê)Ž9Bmm-Ï=÷ÁÁÁL�:µ5üžZ­ææ›oæoû{öìÁétRQQÁÑ£G»-gdd$ ¼¼³ÙL`` sçÎåé§ŸæÌ™3˜L&vìØÑnHTW\.k×®eÕªU¬ZµŠ´´4^xáRRRˆ��çÑGåÈ‘#TWWóé§Ÿ²qãÆsòÄô¤³z<üðÃífø ¢´´·ÛÝc{wWgo®‹¶çê¬|���|ðÁž€ç¾}û0 ]öTi«¯×e_¯‡Î„††RPP€Ëåòª<¯)hé…xäÈòòòhhhàÕW_Åh42oÞ¼^ÕqêÔ©Ü~ûíüîw¿£¤¤¤ÓzxóÿÕÕë´Ì`uÛm·µ{ؾ};wÜqG»üWï¿ÿ>wß}÷óz(.NÒ#fòf¬¿Bˆïõ4\©íº®zÉt·¬íþJ¥½^ßç1é½é½ÒÛ¡F?”÷ ¥RÉÒ¥KùöÛoÉÏÏ'//…BAppp»Ü] bÊ”)ìÝ»—¼¼<âââΙ†·'ÙÙÙìÞ½›Ï>û �NGRRðýs0aÂÔj5»ví¢¹¹Ù“7,, ›ÍFAA¹¹¹Øl6Y¸paŸ†“xS—Q£FQ\\̆ ˆŽŽfñâŽ>Ï`*))Ád2ušÿbñâÅüïÿþo»ÙcFŽÉ]wÝźuëx饗˜>}:sçÎí×yºó«_ýŠ¿þõ¯<ôÐC8¦L™ÂŸÿüç~ýÿÝrË-èt:ž}öY*** aÕªUŒ3¦Ër.Y²„�;wrà 7�••ÅÓO?Í£�>ʳÏ>ËOúSìv;)))Œ5ªÝ´Ç�yë­·0›ÍÜxã�<ðÀÜpà ,^¼˜I“&ñ /ðâ‹/òàƒÒÜÜL\\·Þzk¯zuV—ËEYYY»YЮ¿þzþøÇ?RPPÀÿøÇÛ»«:{s]´=×Ýwß}NùšššøòË/ùÛßþ†ÑhdäÈ‘<ñÄ^¥ èëu }»:sÝu×ñÄOpæÌžzê©ËÓÙ5åççÇÂ… ùÓŸþDuu5ééé¼øâ‹h4š^×qõêÕ>|˜‡~˜ßýîw�ÖÛÿ¯Î^ åùjÍÔª¾¾žÒÒRl6›gYmm-eee8ŽN{¥ 1†â›7çìjE'ë”mÖµ>n{_ýÝMh}SSÓÑκ³6›�O?ù”ƒ¿¥©©‰©Ó&±|ù2É#D/ÔÕÕyõK¨¸xu÷ßÕºÞ.ï¯Þ'’Ìðf6›yë­·X³fMŸósˆï¿ÿ>_~ù%Ï=÷ÜEqžþºPÊÙ“á^�á^¾Vƒ]Î5kÖpå•W¶š4.”öƒC«ÕŽ,€°Žïn­ãjÝîÓæ1m–wõ¡Í›sƒ �à0âv»±X,ètz, n·?_?, �F>h !„—ºê!Óv]Çõ�õŒélù@ëO€EÞ†�êêj$3¹öÚk/šóô×…RΞ ÷z ÷òµºPÊÙ“‹¥Bô•ôˆ&\.………ü{Ãû´ßž˜8’«®^ABb‚|è Ò#FtäÍk¾·ï }}ÿðöõÛ›íä½`èÕ××ÓÐÐ@tt4f³™-[¶0vìX¯†F !Ä…â|õˆ¢-é#úÅívãp8úô!½¶¶– ÿ÷%Eg™4%“Qɉ€›S§ Ù¿÷6¼Ïª›¯óL+Ø …µZ= Üóòò¸ï¾û˜?>�?þø€·£ßýîw„„„p÷ÝwŸ·stuÞÖ„cjµš¸¸8V¬XÁUW]Õn:½�¶zõj/^ÌM7ÝtÞÎ!ÄQW½`ºÚ¦»mòµ´7Ç’àËðb³Ù8pà_~ù%¾¾¾Œ3F‚0B!„ðŠbHë4§jµÜî^Mév»);[Æ™Âb&MÎ$=} ÍßM˜‘1€¼Üƒ|úñ焆…ôúƒ»��IÉIÄÄDXBªÖ_þvïÞ�Íf»(sØ\qÅÜqǘÍfrssùË_þ‚Ùlææ›o>oçœ9sf·S� !úÏ› LgÛvämн? ¾ _¬\¹r¨‹!„çÕ믿>ÔEâ¢$�˜àp8¨®®&:*ªÏcÃ8 À¨Q‰XÌfš�FÔj )) äåäøñSøžõéÓñss÷±`á\ÒÓÇ·›æ­/ìv;Û¶mã™gžáþûïgÏž=Ìœ9³_ÇŽ4 ¾¾¾øúú²dÉšššxóÍ7Ïk æ¶Ûn;oÇBœ««¼0}Ùw HàE!„ââwþÆXü€466`‚>7jµ???üüüPk5x¾(ú>lÍf³±{w.�ßõ´é�={öÀèÑ£ÉÎÎfëÖ­íÖß~ûí¼ûî»üâ¿`É’%ÜqÇ;vÌëõ=yç�wøÑ�~ÄòåËy衇(//Zòì¼ùæ›ÜtÓM,[¶¬ÝºÖó®_¿ž»ï¾›Ë.»ŒÿøÇ|óÍ7^Ÿ733“úúzÌf³çx_|ñ<ðK–,!//h Týýïçšk®aÅŠüéOòìóøã�óä“O¶;î›o¾Éc�=æ9æ‡~èY×ݱ֮]ÛnX˜ÍfcöìÙ¼ð žef³™ùóçSZZêu=…ø!S(ínÛù„B!ÄГ@̰Ûíø ý:FKN8uª�Fƒ¿¿?þþþhÔjN�,@«éßðŸúºzìv{¿Ž°yófæÍ›À¬Y³ÈÉÉ9ç¸Ï=÷·Þz+ëׯgüøñÜwß}477{½¾+o¿ý6ü1�>ú(ÿøÇ?X´hAAA@K×ɯ¾úеkײnÝ:´Z-÷Üs�§l ¬[·Ž;3þóŸŒ7Žßþö·^·IMM ¡¡¡Ú<×�?þ83gÎä…^`üøñ<ÿüó”••ñÊ+¯ðÿþßÿ£´´”—^z €… ²sçÎvC×¶oß΂ :=gwÇš1cûöíóü‚¿ÿ~vìØáÙÿÀ�ÄÆÆãU…íu ”tu¨ý„B!ÄÅO1Àív÷;÷JbR‰‰#Ù¿÷ß|s“ÉŒÉdæ›o޲ß!bb£Ðhû7¤h fвX,ìܹ“¹sç0yòdìv;ûöík·Ýƒ>HFFaaaÜu×]y’ßz³¾3N§“7ß|“_ýêW¤¥¥ÆÂ… ÑëõØívþõ¯qÿý÷“””DLL �>ú(&“‰œœ eš¼x€±cÇÌM7ÝDMM %%%=ž÷äÉ“¼òÊ+\ýõíÖ-_¾œ•+W2jÔ(ôz=F£‘M›6qÏ=÷Lxx8·Þz+Û·o`êÔ©8�N:@UUgΜaúôéçœ×›c577“ŸŸÀ×_Íí·ßNCC@KRåÎŽ-„X`B!„Þ’1ÃÈ¢E³ùäÓ¯ÈË=H^îAÏòää‘\vÙ|þýîGCXº;vì@¯×�Åb`üøñ|õÕWL�:Õ³]Û/"J¥’ñãÇS\\ìõúΔ••a2™:�•¢´´‡ÃÑ.Ñ­^¯gìØ±}?xÛ�¢¢¢0 ž¡>½óÎ;¼óÎ;( ¢££¹öÚk¹âŠ+Úm3nܸv�KJJp¹\üìg?óÔÑáp`2™€–¼3³gÏfÇŽdff²}ûv²³³Ñëõ眿§cùúúrÉ%—°wï^’““Ù½{7O=õ'Ožd×®]$&&’››Ë½÷ÞÛu£ !„B!„Tˆ&0øø0Á JŠJp£b×Î=ÌŸ?ƒ„ÄFeeõ�–ó‹/¾ ®®ŽK/½ôœu÷ß—yr”Je§Áoמ¡K.—ëœóØl6\.N§³]°E«Õv;£Sw¿\/[¶ŒŸÿüçhµZ¯ûùùðꫯÐé6 ,àé§Ÿæ®»îbûöíüÇüGŸ�5cÆ öìÙCvv6*•Џ¸8f͚Żï¾ËâÅ‹©¬¬$##ë² !„B!„8ÿdhÒ0QV^†ÛíÆjµàèÏÊ•ËñðÃbµ`µZHIMÒ2677óõ×_³nÝ:¶mÛæ¹mÚ´ •JÅ�€–\*ï¿ÿ~»}�;FBB‚W뻃Ëåâøñã笋��E¡P´K¾ër¹8vìIII}¨-øøøàëëÛ«Y¦"##ñññi—§¥£‰'b±XØ¿?§N�bÊ”)}>ÖŒ38xð 999ž!HÓ§OçĉlÙ²…É“'Ø”åB!„B!úO1ÄÍjÃn·ãt:1èõhµZ”J%gÏ–ât:±ÛlÄÆFi·nÝJXXiiií–’žžî™=I¯×sôèQöíÛGcc#ÿøÇ?0™LÌ™3Ç«õ] `öìÙüùϦ¨¨“ÉÄÎ�;1›Íøøø°téRž}öYŽ;F]]Ï?ÿ<ÁÁÁLž<ùü4H'Ôj57Þx#/½ôyyy8�N*++Û�”J%óæÍã�ü#3fÌè2Ðãͱ¢¢¢ˆŽŽæÿø3fÌZ†,effò·¿ýMòÃ!„B!Ä0#?•ÍÍ�¨ÕjÏÔÒÑѱžu•Uu¸Ý`¶Z ð÷',4„êšÚ!)ç–-[<³%u4kÖ,Þ~ûmî½÷^|}}™?>Ï>û,555Œ7ŽçŸÞpèi}wzè!žþy~þóŸãp85jIII î¹ç^zé%}ôQ“'Oæé§ŸôÄ™7ß|3:�ŽçŸžŠŠ ‚ƒƒ¹ñÆÛ°.\Ȇ ¸ï¾ûú}¬™3gòÆo�žžîY6kÖ,öìÙÓeo!„B!„Cc(¦vðæœ]m£èd�²ÍºÖÇmï«¿»é  ojj::3µ*//'f0•F IDAT.6¶ç »pâäqœ'UUX­6f̘…��¿ûÝát:™<9“è˜("ÂÃ9vì»vííó¹~rëj¢¢¢ú¼¿7n¿ývV®\ɲeËú´^ˆþª««#:zh{� !„B!z¦ÕjÇÀXÇw7×w›¸;ܧÍcÚ,ïêK¾7_þ.@àš4 X-ìv;§µF‹N§£²²_jµš’⳸œNì;qq1C]\!„B!„Bô‘ Mb&“µZCSs˰¤ˆˆrss9qü¡Ô×7RñÝLI‹?‚C©«mÊb !„B!„¢¤GÌ;[zh ²¸\.FŒ‰ÕjÅli¹9]N õ X,-³'¥ŽêÛ,@B!„B!„ZÒ#f�Õ××Rt¦�V‹V«ÅØlB¥Râp8°X¬ìÊÙJC£§Ó @BB<áá˜Ì&�8’’;6�S§OBEe5_½ˆkö½W^y¥_ë…B!„Bˆ‹•b™Íf'8$‹Å‚B©B§ÓÒÜÜ@@@ J%œ)ãLa1F“‘ˆˆpJJJˆŽŽÆb±àçëÇþƒ±˜­TTÖÐXoÊ* !„B!„ÂKˆdáá´ÎØ”Ÿ‹Õ‚ÛífÜØqc4šq9ì4�äŸ.Ân³2nœµF�ŸŸj¥š#G P(}Šf!„B!„BôžbÈ_¶[z½O¶Ÿ ½F‰Ýn§ ÆÉá#¾€ »9?¿&Êkšù²,’³–`üNY˜iÀét›È[ùöúœ?éõB!„B!„(’¬wˆè±â§×`±˜¨wxÖ©GP2�ÿ>ÄYó÷Ëóδô’±X­D…ø$q4!„B!„âB"�˜!¯©ZfKr¸ÜØ}ã=ë”*5¾�a(õ� Py–®Rc¶9±˜-(°2S?èåB!„B!DßI fˆ„éÌ8�.ìve N a=îãRùr° »ÝŽËé$;ÅgJ*:ãt:yõÕW‡ºB!„B!.0ˆ:… ?�«µe¶£Z»¯—ÉväÚ€–áI±aÂýU=ì#†“ÉÄ믿ŽÉ4°³]¹Ýn^{í5Þ{ï½;æo¼ASSÓ€O!„B!~è$3âT( , .·‹>Öë}÷—ªp8ÝX-(¸\†']p sçÎÅ`0 èq‹‹‹‰‰‰¡¶¶³Ù< ÇB!„B10$3ÂuF\.V›�ª&'úÀ¯÷µàÃѳMXív\n³RexÒ…F¡P�˜˜8àSŽŸ>.ÏÐñß»6ßHgl6}ô—_~9¡¡¡òñdzjÕ*T*MMMróÍ7£R©°Z­|üñǬ\¹’ÐÐPŠŠŠ(((8ç¸=mçp8ÈÊÊ"((ˆ“'O²uëVV­ZÕcy“&M"((ˆ#GŽðÙgŸ±jÕ*8xð 999\uÕU˜L&6oÞÌUW]E@@{÷îeçÎ�,\¸°]Ý?ùäV¬Xá)ã™3gºÜ?55•ŠŠ V­Z…B¡Àáp XÝ;*,,$66µZM||<›7oÆl6{†?Y,Æ�Çœ9s¨¨¨`Ó¦MÜ|óÍètºn×µ²Ûí|ôÑG,]º”°°0, :�®Çç@!„B!D{24i�é ˜Ì&,3µF'š ïóôª±ùp¦ÊŒÅlÆh222Ä}Jz®òòr‚‚‚  !!???jjj<ÛŒ3Æó¼¼¼œ��Ïö±±±hµÚN�ÛÝv …‚   F�Ess³Wåi»_JJ Z­–€€ÏãÆÆFÏqL&Û¶mãƒ> ¨¨ˆúúúsÊÜi»Ú?((ˆææf¶mÛFQQQ§�‰¾Ö½£Í›7sòäIÖ¯_Ï?ÿùOìv{»áI …‚°°–™¹"##  ªªªÇu­***ðõõõl§×ëQ(^]B!„B!¾'=b™Ûí¦¾¾�f“…‚zÚÀs=Q(Õ¼—[ͪA-yF'ƒÓé<'�b³ÙP*[âysž¸\®N/y»]ë9ZÏÓSyÚ긬íc­VKTTË—/ïò¼��Ë›ýW­ZEaa!G�e÷îÝ\sÍ5íÚ©¯uoËjµ¢ÕjY½zµ'ØsüøqŽ?îžäv·¿HT*•gÛîÖµ²Ùl�&îÍs „B!„BzÄ oc! ' ØQlÀšÞçóí.õåWo•ð¯mE”ÔXû|œÞˆŠŠ¢¼¼Ü“s¥´´—ËEHHH·ÛWVV-9Fl¶–é·�N'û÷ïÇjµv»Ý@–§+‘‘‘466z†¹Ýnìv»×eìj›Í†Õj%99™ùóçS__�ÕÚþ¹êkÝÛ–íôéÓŒ1¢]ð$!!�²²2,‹gÙñãǨ©©¡¹¹™ððp¯ÖDDDPVVFmm-Ð2TÉív÷ø”””x†pAKÏšÓ§O{WWW{Î-„B!„?Ò#f€¸\ ò"¬uÒ‰*"–¸À°~�O¡1`Ó$°ñ¸Ž5¢ÔxQÈþ%ô5 ,Z´ˆ¯¾ú §Ó‰ŸŸK—.í²÷ƒÁ``Á‚lÙ²¥RIXX�héÅqðàAâââïr»�,OW4 Ë–-cÇŽäææ¢ÕjIOO'::ºË2FDDàçç×íþ~~~|ýõ×�FœN'S¦LA¯oŸ¨»6êNÛö;yò$íÖët:¢££ÉÏÏgìØ±@ËôÖyyyèõz–,Y‚Zýý¿wëüüü˜;w.Ÿ~ú)�ƒÁÀ¼yóðññéö9(((Àjµ2räHŠŠŠ¨¬¬$99h Üœ:uŠ´´´Þàºë®�í.Fç«îmgiêͺ U]]ÑÑÑC] !„B!D´ZíÀØ+àøîæúnw‡û´yL›å]}É÷æËÿ %üh!C“€F£ÁeªE�‚NRx =¥Ô:b Í^õ¶HÍÍÍžÙ‚Ž9Bbbb¿¶»ý�ë.„B!„?424i0J½‡W�޳õj�t½g+?Øïc¨âP…¥¡ÇµéϬAƒ¥°°�o¿ýÖ“OdæÌ™ýÚîbôC®»B!„BüÐÈФRWWÇö]y•!T[´­ýÄ=¸§ßÇP‚  â’(;—Í�Fppp¿�)Äp'C“„B!„¸0ü‡&I fY­V*++1™L~ìþðññ!""�N7ÔEbPH F!„Bˆ Ã1#C“�N§#>>~¨‹!„B!„BˆaJ’õ !„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B  Ä!„B!„B õPàbôÿ³wçáQÕgãÿß³Ïdß÷IHØ‘]�%,.5@©Š ÕǪ_[k«µ-}úüÚ>Z[½ZK­ âVÑjEËã""aAYaɾM2“ÙÏÌï��cBV`’€Þ¯ëš‹Ìœóùœûœ9s8sÏgQ¿ß�V«E§Óµz]Q”^�E§ÓµŠA!zšÃáà�7Þ`Æ ”––BVV·ß~;ãÇ�gÆŒ„„„ðá‡öu¨B!„Bô:IÄYCCÊ‘ÍXœ§p†¥Cf.444@ €F£Áï÷z<­öLƒ'�†ˆˆˆßžBøý~~ñ‹_°k×.¢££¹ì²Ë(//çóÏ?ç–[néëð„B!„ès’ˆ ¢ššoü”ÄÚBbCq54R_Oû’““ˆl6jkk‰‰‰é“í !¾;:Ä®]»;v,O?ý4�§Ó‰Édêãè„B!„è{’ˆ ·ÛMýî�±úBÕ×C�­§aÈ""r²;,ëUÀã jÒtºŽÛ ¬“u:Ž£Ñ�Ûí–/BBˆUUU4%^|>ƒ‹ÅÒj=¯×ËSO=ÅÆ�ñù|Ì›7�»îº «ÕÊŠ+ضmUUUDGG3kÖ,~ô£a4˜1c3gÎ$99™÷Þ{�äädžþyœN'Ï>û,Ÿ}öv»�Q£Fñ³ŸýŒäää^< B!„BtLë ŸÏ‡ýÈîv—……†¶ûz³G€£5�Îv—;�Ô8«9ÿøtZ-n·ûü+Bˆn:t(f³™°páBþñ�püøñ6ë544°yófRSS©««cÅŠlÙ²“ÉDAAéééÌœ9“@ À믿ÎË/¿ÜªŽ?ü�+V`±XÈÉÉ`éÒ¥¬ZµŠœœ¦N�Jaa!�<ò~¿¿çw^!„Bˆn�1Að8Û_¦íz°ÜŠ’žúåŸxùŸO·YöÌ?^$">…‰×Ì;ïø|Š­^Þn!DÏŠ��çÉ'ŸdÙ²e>|˜×^{�×_�Y³fñóŸÿœ¨¨(uÝ7ß|“ÉÄŠ+X±b{öìaòäÉX,V¯^­®WRR‚ (,,äG?úQ«í=÷ÜsŒ5 €#GްuëV&L˜ÀŸþô'\.Ÿ~ú)%%%¤§§÷ÂB!„¢sòÍ<ˆ:€×YWÞeÙWŸ~ІªZî¼ý'm–y½^Š¿Ç°‰3!%ª�Ò]³76ÒyËœîøÝï~dž ÐëõÄÇÇ“››Ë]wÝ¥v¸ýöÛ¹úê«Õ�9ï¾ûn®»î:fÏžÝn�g/?»¼âÒ2nÜ8^}õU¶oßÎÚµkÙ¸q#ëׯG£Ñðûßÿ€ØØXµ«äðáÃ�¦V2Í8À[o½Å¾}ûhhh P__ßj;&“IM°cÇ&NœØjÝ–u !„BÑ—$Ó š«ìÌÿó¿¼óìŸùÓÿÓfÙ²¿.çÎ~LxdäyÇ bk˜yóæqï½÷âñx8tèüãQ…ÿøÇL™2Eí&p>εü‹/¾ÈéÓ§ùŸÿi{ì„}C£Ñ0qâD&NœÈܹs¹ÿþûÙ³gO»ëêt­[ –––rß}÷‘””ÄÒ¥KÉÈÈh7‘{ö¸3‘g®‘ãÇ�硇jµ,%%åBvG!„Bˆ ‘DL9pÊÎê�TZÝüráLfS»I€Ÿ ©LwìÛ·—ËÅW\Á¸qãP¥U=ÉÈÈ@«ÕRTTDLL á}4S�B!„�‘DLØu´ž[žúÅ@§ÕðË…Cº.tÆö#V¶¶òF~)¿œŸÅ]Wöý˜UUUdffªÏÛ늴eËÞxã jjj2d?ûÙÏ:¯áìò~¿Ÿ7Þxƒµk×bµZ>|8>ø III¼ñƼúê«lÞ¼™¹sçòàƒâõzyá…ظq#n·›©S§rÿý÷·úýí·ßæý÷ß§¶¶–aÆñàƒËóÏ?ÏÖ­[©ªª"!!�Ûn»�k®¹¦'�ß:Û·o硇"..Ž~ýúáp88|ø0 ,èV ¼÷Þ{ø|>öîÝ tݲ/>>žë¯¿žwß}—;3«¯¾šªª*ùßÿýß Ø+!„B!‚G1}à­‚R€“ŽïOH<§²W_ÏÉ*eu.^Ï/í“DÌŽ;(,,DQòóóÉÏÏgùòå®_RR¡C‡xú駉��gÅŠüä'?á_ÿúf³¹Ëí½üòËò‡?ü³Ù̳Ï>Ë<ÀÊ•+¹ùæ›q:�mº&-[¶ «ÕÊòåËñù|<öØc<÷Üs<øàƒ¼ñÆ|òÉ',]º”ØØX¾øâ ¢¢¢0 ¤¥¥ñè£�b2™øôÓOyüñÇ2dýúõ»ðƒ'Ä·\zz:?øÁعs'EEEhµZ† Æ~ðfÍšÕ­:ÆŒÃwÜÁêÕ«Y»v-¹¹¹¤¥¥qàÀ�.Ëþìg?#!!��>úˆ•+W’––ÆÐ¡C Ýê&*„B!DO“DL(µ6M#}Ó”~uCGªý«�J[ÇÓ«z”¦GJJ2÷ßǑҦšÖµ.ã°Û0[,huz2ã4dÅÿ‹Ç‰'xä‘GÔçZ­–÷Þ{�ûï¿¿ÝõEáÆodäÈ‘üò—¿dÑ¢ElÚ´‰ï}ï{�nËëõòÖ[o±lÙ2µÕÍÒ¥KY¸p![¶laúôémÊ466òþûï³jÕ*¢££¸ë®»øïÿþo|ðAEaåÊ•<ñÄ 4€+¯¼R-ýõ׫/^¼˜?ü�ƒJ"Fˆnèß¿??ýéO;]gãÆ�­ž�?žmÛ¶µzíž{îáž{îévÍôz=wÜqwÜqG÷B!„¢—I"¦DöÖê¹ßß4»RxHÓ•á& åu–}R‡ÒA.憱aÜty$#S4l?âdéš}üæ™éê:‡‹ŽrßÏABBϽð$‘Áß`áÂ…êÀ¼‡ƒ5kÖ°lÙ2F�Å”)Sڬ߯_?222Ôçƒ�‘#Grâĉ.·UZZŠÏçk5x¯ÙlfèСœeee8ÜnùúúzÖ¯_Ͼ}û°Ùl”””àv»»ŒU!„B!„èŠ$bzAGÓZ·4(ÉÈ=¹x}í¯;z@×]xê¬ \›7“ôþ©ÔÕ5ôX"¦¥��,XÀ¦M›Ø³gO»‰˜ö  C—ëy<ü~?Š¢ ÕjÕ×�F£:]öÙÂÂÂX±bm��ÝnšÆž9{¶—ËÅ=÷ÜCnn.K–,!11‘ûï¿¿¿ãÖJB!„B!DwI"¦—ù”Õ6Fý7‰…Ø0Ìê8qÒ|x«e‡¢¾¾¾U—ˆ£G�RYYÙe¬B!„B!DW´]¯"‚eÇ‘zÆ[zŒ»'À¾R¨q›˜>º?ûJ¿YôÕ‹øtóçd Š6q8å¶Iá}ÑèI!„B!„í‘DLjž9:DÃð-ÃSL�8£ªÎËñ2+ ­&*ÒòÄ?žPŸ…µ?»³B!„B!úˆ$bú@ThS†äã/ª¹bP4ãFv»åÊ‘rïo?͉òz¢Ã ÒâE!„B!„¸„ÈôÕ}`ÚÐ(•عå©/Ωìÿ÷æa>ØU Àô¡1A�M!„B!„=GZÄô�ESR¨¶yù϶ ʬîs.idúÐX~yCVD'„B!„Bˆž"‰˜> ÕhøqÞ~œ7àœË¾þÓQÁH!„B!„½B1½,ðåWû±5ØÎ©\xD8#†C£‘1a„·�>úˆ��¦M›ÖfÙ믿ΠAƒ7n\�ÇÈÏϧ¨¨‹ÅB^^±±±A©ûÍ7ßdĈ 6,(õ}Û\,ÇGQþñ�pûí·yÞõtç¼½Ð}æ1»XŽ¿B!Ú'‰˜^öåWûùÏ»ïŸgi #GÈM•âÒ•™™IBBB·ÖݶmV«•ï}ï{çµ­ýû÷súôin¹å4 f³ù¼ê¹X\èñçïìóöBß‹Kù½ì‹Ø/åã%„B´Gë%EQX±bE_‡À³Ï>{^Ë„mMš4‰~ýúõʶ¬V+ „††‚V+ÿå‰óÓ›ç­B!¾ý¤EL/1| ¡²¢êœÊ%&Å3|ØÐž ê;èÕW_Uÿdee1yòd´Z-‡ƒ·Þz‹E‹Ò­úΧŒßEgw™8qâ………ÔÖÖJvv6W\q»wïfÇŽ=z”áÇ3}úôVuvïÞÍ�p:�$''3}út"""øôÓOùꫯ(**"&&†›o¾¹Uù޶ °bÅ ®¹æÒÓÓ¨¬¬dÕªUÜwß}jùãÇ�³{÷n‰‰‰Ì˜1ƒ¨¨¨Në^»v-ƒ�+¯¼R­g÷îÝ”••1gΜs>Š¢PXXÈ‘#Gðù|dee1uêT ƒz¼³²²8qâÕÕÕDEE1sæLÊÊÊøê«¯°Ùl¤¥¥1kÖ,,K—Ç¥»Ç ¬¬Œ¢¢"*++‰ˆˆ`úô餤¤ ( [·nåøñãØív˜0aƒnužŒ;–PVVF^^ýúõërý~?Û¶m£¨¨ˆ@ À€Ú=×­[G P[X4wa5j”Ú¥ÎëõòüóÏsë­·²víZõ¼íìÜìhŸ[:ßò]íûÙ:««³ÏNgïmw>——ò¹/„BôIÄô2�æL÷¢}‰˜?>áááØívV¯^MLL Æ Ãb±0}úôsº1;—2[·neÈ�!DGG_HøB\òÜn7~ø!S§N%''»ÝŽÏç`ìØ±x½ÞN»#lß¾�ââbfÏž�^¯§  €wß}—[o½•™3gb4q:�\uÕUç´í¯§²²’ Faa!ï¼ó·ß~;Š¢tXwvv6›6mjU×±cÇ9räy�Í›7ãr¹X´h~¿Ÿõë׳eËõ˱Ë墰°�E‹N~~>o¾ù&—]v³gÏàÃ?dëÖ­Ìš5«ÛÇ¥«õœN'àÆo$22’ÂÂBÖ¬YÃ’%KÐétDFFªïÛ‘#GX¿~=‰‰‰­®‹k×®eÆŒLž€ËuîÓVwÅl6‘“3³Ùôº¿ÍÂÂÂHKKSoú4 çTǹ”©¨¨ +K¦Ân·£(  Àd2a2uÿÚ¥( Ÿþ97Üpƒ:ïÕW_ÍË/¿ÌñãÇ8p`�mšZ^Œ=Zmapå•WòÊ+¯päÈ:¬{À€x½^ÊËËIJJÂápPUUEFF6›íœbòx<ìß¿Ÿ%K–¨-ñ&NœÈš5kÔ/£f³™qãÆ‘˜˜À˜1c8|ø0ãÇ�WË :Tm=ÔÝãÒÕz‹…±cÇ’””À¸qãøê«¯°Z­ÄÆÆ2räHuÝqãÆ±ÿ~***Z%b† ƈßüjÑÕþ*ŠÂ¾}ûX°`qqqÌš5‹¢¢¢6ñ÷ïß·ÛMuu5qqqœ8q‚+®¸‚�;wRSSCll,'Ož<§ÿ ºÚç )Þå{Ýݺ¢¢¢:ýìDGGŸ÷g£³óâb?÷…BˆÞ$‰˜^fµÖöHš’<ÖºZ’’“{¤þÆÆF6lØ@]]Š¢0dÈ&MšÀK/½DVV¥¥¥¦L™¢ö§ïlYKeeeàñxˆŠŠÂëõªË^{í5²³³9tè“&MbРAœ>}š-[¶àv»‰‰‰aæÌ™äççÓ¯_?†mêÆµwï^œN''Nlµ-·ÛMII áááœ:uŠ’’&L˜ .öÙg¹÷Þ{�¦&Üü1UUU ¦N�Jr;Ǹe™ÊÊJ p8˜Íf¦M›FBBŸþ9eee¼óÎ;dddpíµ×¶»!!!TWWóÙgŸáp8°X,\sÍ5¾B\jbbbHKKcåÊ•ddd0lØ0µ+PWêëëñûý­P5 $%%QWW×£ÛˆŽŽ&&&F}®ÓéHII¡¶¶–ÁƒwX·^¯'##ƒââb’’’8~ü8ýúõÃh4žsLV«•@ ÀÛo¿­Î¨ç÷ûñx<­Ök9Û^óï–×ט˜õywcèÎz-[�DDD`0Ôí8�NŠŠŠ(--ÅívS__ߦåMs¡»ûkµZñûýÄÇÇ·»ï-�FRSS9uêqqqóýª*Š‹‹ÕDL{IŽÎt¶ÏR¾»ïuwêê곓••uÞŸ�Î΋‹ýÜB!z“$bzYTT ••å=Ô"ÆLTtL»Ë�À×ßÜý&""—ËÅÛo¿MFFIII¸\.† Fnn.¼ÿþûÜzë­˜L¦N—5óx<|ôÑG|ÿûßWo€Oœ8¡.·ÙlDFFrë­·¢Óép8|òÉ'ÌŸ?ŸˆˆvïÞÍÖ­[Ÿ�Í›7ŽÏçÃétR\\¬–;Û˜1cˆ‹‹ãÔ©S|ôÑG,^¼¸Ã~ù�‡5kÖ0wî\bcc)..fíÚµ,^¼˜1cƨ¿¼&&&v¸¹¹¹¬Y³†¼¼<âââp¹\˜L&�@‡ï�—�Füyó8}ú4äÃ?$--�9sætYVQ�~¿¿ÕN�N×êyOl»#ÍÛîªîììl¶oßÎĉ9vìÙÙÙç“Ñhছn ÚŒPÝ�áBŽŸ×ëåßÿþ7äòË/'<<œU«Vá÷û;-×Õþúý~��@ ÃLK™™™œ8q‚ŒŒ 4 QQQdff²oß>ŒÝno3¾K_ æ{ÝÕgçBÞÛKùÜB!z“$bz�9ò›_çÌf#GŽîõ¢"#;ýå¬;´Z->Ÿ�]»va³Ùp8466M7QÍMÁ‰ˆˆ ªªŠ´´´N—5+//'::ZýÅ*55U½Ñj6dÈ�Vë;òóó�¦{EQèׯŸÚoÜëõZýjÝ,44T#àðáÃlܸ‘Aƒµû%®9þôôt¢¢¢¨¬¬$55µÝãT^^NTT”º/ `÷îÝÔÔÔ´™¶·£ý¨¨¨ 44TÝnó�¦F£éð=âR•––FZZcÆŒáõ×_Wp:ürÞ>^Mîœ]wË_¥;[ÖLQ”6‰—VñŸõë¦Ñh$))‰9sæ0gÎæÍ›Ç‚ ÐjµdggsüøqŽ=Ê AƒºµoÙÙÙêŒI]mÛçóuzsÞÞ¾x<žvËt´�§Ý�;{„¸˜ø|>\.W«ÇÙ×—ËÅ�Ô�9KJJ0 ê¹FII 6›­M÷£ÑȰaÃØ¸q#jBÓb±Ð¿ÿ.ãëjÛ)))ìß¿›ÍF}}=Ÿ~ú)Š¢¨åm6_|ñ%%%8 Ôغª[§Ó‘‘‘ÁæÍ›[%�ÏõxhµZÆŽË–-[8yò$~¿»ÝNeeåy¾k]Çp®ëµ'$$�Ç×_~‰ËåâÈ‘#êŒ=éj�F#C† áÓO?¥¢¢‚ÆÆF :¬/<<œˆˆvìØ¡&bŒF#)))t:>Lgçfwœkù`¾×]}v.äsy)ŸûB!Do’1½ÀYS‚9*®Oc8Urš´ô¶ã²œ‹ÚÚZÌf³ú忼¼¼Õ¯gEEE 4ˆššìv{«~úí-kXqèС$%%±qãF*++IHH ºººÓCbb" ?~œŒŒ �>ŸƒÁÀ Aƒ(,,Äív«3#´ÜV{ƒ–••a2™Ô2-***HLL¤²²‡Ã¡î›N§Ãçó¡×óQjÞ—æ2¥¥¥øý~µeŽÙlÆf³‘˜˜Øá~$$$°qãFjkkÕ>ìz½¾Ë÷@ˆ‹ÅW_}ÕfÌ%K–´zîv»9zô([·nUdžÊËËSµƒ¦¸¸˜•+W’––ÆÜ¹s[•ÏÍÍeË–-|øá‡øý~ÒÓÓ¹þúë»_WÛž!!�ÄÄD>ûì3êëëIIIaþüùhµÚ.놦äï|ÀÕW_}AÇcüøñèt:òóó±Ùl„„„0vìØ6­ïº«;±ŸËz퉎ŽfòäÉlÛ¶�ÂÂBú÷ïßíÌ»ÚßéÓ§“ŸŸÏûï¿�ÉdbèС�&x233Ù±cG«.HYYYœ;ò¹¼”Ï}!„¢7u݉ºo¶ÙÑ:šv–i[,k~Þòoý™‡ 0f›Ív0c¦´d·Û9øìC¤ÿ± ¡Ä&†âjhÄik¤âšeôÏ]Ôí� k½•}{÷1ò²Q]6ïŒ×ëeÓ¦M”——c±XÐétŒ9’¬¬,žyærrr¨¨¨Àl63uêTõf¨£e‡ƒÿûßÌž=›øøxNœ8ÁÖ­[Ñjµ$$$pêÔ)n»í6 õ@¸Íªªª(((Àëõb41b„z3ÿæ›oA^^@›m½úê«h4t:Z­–ÐÐP®¸â µ+PËí=ÿü󤦦ÒÐЀÉdbÚ´ij"¦°°�S§N‘——Çk¯½¦–9uê[·nEQ˜:uª:Hyy9Ÿ}ö&“‰9sæPSSÓî~|ýõ×ìØ±CýUpÆŒ †ßñ�ºººvTâbaµZY¹r%wß}w§­…ø¶‘s_!ÄÙŒFãÀx7à;óhî—8ëoZ<§Åë}ÉïΗÿà&º ‰˜ i™ˆ±{À«ø 5kI�kîïIºæGÔ××ãp: Å¶Ýöz”slÖÐhh 4�÷,S|>BÃà åà¡C >’ÐÐÐóÚ¿®´—(éβžòñÇ3pà@233{u»ââ ‰q±Û½{7§OŸæºë®ëëP„èUrî !„8Ûw1#]“‚(à÷sªÌA¥#€Í ‰ð5jHtVóõ×G©©©îõ˜“Ðh´­ºÏ|›¹ÝnJKK™5kV_‡"„í:räˆt+ßIrî !„2Xoи\.܇·Qí pÚ¾¸Ði¸Š÷ôI¦YiiqqñíŽ�òmtäÈú÷ïß­± „¢·Y­Vªªª¤ÅžøÎ‘s_!„h"]“‚¤ªªŠýL º¦›bMM�„PÉŒsÖÃí–sžØ�âh8Ï­j)ÏšÙîl<��FƒAo$4,ŒqãÆ�ç6„¸ôH×$!„B!. Ò5Iœ7£ÑH })¾|Ê­ihz¸=à.:Ew¶[Nü Éýˆ·�¨¨¨vët:¢¢¢Ôh…B!„BÑ·$$‘‘‘h¾÷s2Wo'3Î�ǚʩétnàðÐÙŒ9‹ÅÒ3B!„B!DPI"&ˆ¦Ï˜Ájër²¾z�øÆÃhµ|z3Mp{€ÙÌIH›Mö´ë% #„B!„B\B$d×ϛǗr¸®�FÓ#3…††2aÀ"""‚^·B!„B!zŽ$bzÀˆ#ú:!„B!„B\„dúj!„B!„Bˆ^"‰!„B!„Bˆ^"]“„BôŠ@ ‡¦’B!„è¦`O¤"Äù�DŒBˆsvòE’1B!„è+�¦Õ½ˆ$eD_‘DŒBˆÑòF'¨�³— !„Bô¤æ„‹F£QÐt?"ÉÑ$#„"¨:JÀ(Š‚×ëÅï÷ã÷ûû0B!„B|—hµZ´Z-ƒ�N×*!Ó|ß" Ñ›$#„"hZ¶xi~ø|><Z­‹Å‚Á`@«ÕÊ �B!z\ Àï÷ãõzq:�¸ÝnŒF#z½¾MBFîMDo‘DŒBˆ 8; ã÷ûq»ÝDFF¢×Ë9B!„è]��N‡N§Ãl6ãóù°Ùlø|>L&Z­V]O’1¢·ÈôÕB!.XË$ŒßïGQ&“‰èèhIÂ!„⢠×ë‰ŽŽÆd2áp8P¿ß/ãØ‰^%wÆB!.H{I—ËEXXf³¹�£B!„h+$$­V‹ÝnWïWš»NKËÑÓ$dŠ¢àóùðûýhµZôz=:�î;ƒâ»§9ãñx°X,’„B!ÄEÍl6£( n·“ÉÔjF%!z’tM "›ÍFCC�Fý 744`³Ù¾S1!¾;š[Ã47éõù|„††öeXB!„ÝÒ|ÏâóùÔ•@º(‰ž%-b‚¤¦¦³ÙLzZí7ù­˜èh*«ª¨©©!66¶Ïb¨¨¬ì•„ßgß (Š‚Çã!**ª�"B!„8wáááX­Vt:]«qí¤‹’è)Ò"&qq±pöU£!66§ÓÙg1ÄÅÅðû{4!ÄwSskEQÐjµ †¾I!„¢Û Z­EQZµŠ¢§H‹˜ °ÛíÄDE5ý:´N„œ™Æ5"<œ’ÒRâââz$†ªª*ÒÓÒ:�!**’Ú:+‹¥GbB|wùý~¼^¯tIB!Ä%)$$„ÆÆF_Sô IÄ�ßïÇd6ððküMÍŒ48“M ø˜Í&feöX Q‘�Nc0™L’ÝBEË™’šŠ¢`4û82!„Bˆsg4ihhhuo#3(‰ž"‰˜`8“ìðûü¿ú¡ øøýMsÓ÷tfµ;1!D0µ¼Yiž©M!„âR£ÕjÕîÖ-1BôIăFƒÍÞ@Td4ŠâCã×67F!hJ~8œ�Øm =FXx$áaáÆÐÐP/!D�h¾q‘kŒB!.EÍ?b÷ÆèBH"&BBB8rø0cÆŒE§Óøi9™ˆ¢(TWÕðYÁ¢££{$†ºº:¦LžDˆ%¤Ã>BΠÁ´�ßýîwlذ½^O||<¹¹¹Üu×]Ò%Aˆï¨–Ý”.ÄÒ¥K)((à�wÞi3žÖòåË9qâ�>úèm£§ÝvÛmÜpà \wÝu}ŠB!ÎQ°îi„èŠ$b‚ <<§ËÃÑ£‡é×ó7ƒáº\N @FF1±±46:HHHêö«ªª°˜MDEEát6‚FÛ*§ËÉÉâãø| aaa¼½yóæqï½÷âñx8tèüãQ…ÿøÇ\·âÒŒ›–ÆÆFž|òIüñ ªçÙgŸåôéÓ}âF!„IÀˆÞ"‰˜ Ðh4L˜0�Í›7S^^ANö@ ©KP£ÓIb|"fs‘TVV¯6ã?צü-û,VWW«IŸ×GeU9s(MÓX1GŽ|�׫0uÚ´ tÐëõ˜ÍfÌf3&Là†n`Ó¦M\¯BÌŸ?ŸuëÖ±eË&OžÜ×á!„¢n·§Ó‰ÛíÆëõªÓ?³«²F£A«Õb00™LX,L&SÐê¢/ȨŠA¢×ë™>}:­žä”4’SÒÐhµäço¥ªº’†z+‘„„X(--ÅårÑÐЀÇãéöv< ¸\.JKK[%al õTVU²qÓRR›bÐjµèôF¦åæ¢×÷LÞ­ªªŠÌÌof„òûý¬\¹’[n¹…Ù³góÈ#�P^^À+¯¼Â’%KP”¦A…�N' ,`Íš5x½^žyæ.\È÷¿ÿ}žxâ œN§Z÷öíÛ¹ûú꫹馛X¾|y�ì“¢o$%%qß}÷ñ§?ý —ËÕáz^¯—¿ýíoÌ™3‡«®ºŠG}‡ÃÀ?ÿùO^|ñEÖ­[Çå—_Οþô'~ó›ßðë_ÿZ-ïñx7nùË_Ô×'N¤¤¤¿ßÏË/¿Ìüùó™1c?ýéO)--U×½í¶Ûøøã�ùÉO~Bnn.Û·oo£ÝnçÆoä…^Æ¡B!.N§“ŠŠ ÊÊʰZ­8�N¼^¯:fÜÙƒÞ^ˆæ™].õõõ”——SQQÑê;‚—IÄ‘N§k•�¸úê«ùjQ«dLLt4999$&&’ššJcc#v»½Ëúív;���¤¦¦’˜˜HNN111À7I˜}_àšk®iU.###¨NíØ±ƒÂÂB xì±ÇX·n‹/V—¿üòËlÚ´‰?üá¼ð �Fxà¼^/·Ür Š¢°jÕ*uݬ¬,òòòX¶leee,_¾œ_|‘ÒÒRž{}´ÙøÍo~C^^ï¼ó�=öÓ¦M Ú~ !. .$::ºÓDëOú—ËÅ{ï½4ýJýÖ[oñÐC‘™™IJJ K—.Åáp°eË ?ü0/¿ü2………|ôÑG<üðÃ@ÓØï¿ÿ><ðÑÑÑÄÇÇs×]wñÙgŸP]]�×ëeÒ¤I„‡‡“‘‘ÁàÁ6ø°ââ£ÕjYºt)o½õG�m³¼±±‘Õ«WóÐCCBB÷ÜsO§]$¯¸â l6›ZßÖ­[ùÿïÿaµZ9vìÐÔânÊ”)x<V®\ɯýkHjj*¿ûÝïhll$??_­óºë®ã†n ''³Ù¬¾øóŸÿŒÃáà·¿ým�ŽŠBÑ·ü~?åååØl¶V ˜°°0’’’èß¿?YYYdeeÑ¿’’’ k•��àŽÃb³Ù¨¨¨Àï÷­N!zƒŒÓ š“1|ðÓ¢¢ñš²ÄÍsÕû~ÒR“1:Ÿu(""¬Ý².·“½ûö3wîÜ^™:váÂ…êÀ¼‡ƒ5kÖ°lÙ2F�Ezz:>Ÿ�œœu}³ÙÌСC9yò$#FŒàÊ+¯ä‘GaéÒ¥êì(§OŸÆï÷sß}÷©ûáóùÔîýû÷gôèÑÜ~ûíLš4‰9sæ0vìØß_!DïËÉÉaÑ¢E<ú裼ôÒK­–�8q¿ßÏ�wÞÙêZÑØØØa}aaaŒ3†�;w’��Í–-[øÛßþFQQŸ}ö™™™lß¾�‡~˜’’|>_«D¯ÅbaĈ«¯�9²Ým½÷Þ{ìÛ·�uëÖÉlrB!¾5*++[µ‚‰ˆˆ &&¦Ýáôz=z½žÐÐPbbb¨­­¥¡¡­V«þ߬ï-.—‹ªª*ƒRŸ½A1½D£Ñ0eÊ**ʉ��‡@�FK ДIöú¼]&b|>/ŠÏצlyES§Ní•$ÌÙBBBX°`›6mbÏž=$&&ªÙñæV?F£±Õ’æi¼-–ofwjžÑiÅŠDœظ%­VË_ÿúWöìÙÃG}Äo~óF�Íc�=ÖS»'„èCwß}77Þx#ï¾ûn«×ÃÃÃX¹r%‘‘‘Ý®/77—ÂÂB¦L™‚N§£_¿~LŸ>�·ß~›¼¼<***=z4_ýu·®c?~<ÅÅżõÖ[Üwß}ÝŽO!„¸XÕÔÔ¨IEQHHHèöÿÁz½ž„„L&•••­†Lf2¦¶¶V¶Aˆ‹�tMêE!!!X­õx½EiJ¬( ^¯km-ee§;}XkkÛ-[om $$¤O÷-**ŠððpRSSÑh4ìÛ·O]æ÷û9tè�:~ÎÉ“'Y½z5÷Þ{/ýë_Õñq ¡   Óm�=š_ýêW<óÌ3P]]Ýs;&„è3f³™_ýêW<ýôÓ­>çÉÉÉ„††²yóæNË·Ï`Ú´iìÙ³‡üü|¦N� À”)S8tè�:°¯^¯'==€={ö¨eý~?`àÀ�]Æ�’’Âc�=Æ+¯¼Òª+“Bq)r8jw¤sM´IBB‚:³¿›’ à+.’ˆéE&“‰˜Ø8öîÝ‹ÕZ‹ÃшÕZËÞ½{É/(d×î½�>ò Û-׫S¸5%€¼x½^ؼy3{öì!77—��òòòøË_þ¡C‡¨««cÙ²eDGG3~üxü~?üã¹é¦›¸é¦›ÈÉÉá™gžš²å7ß|3Ï=÷»víBQ*++)** ¡¡�5kÖP]]�Ëåâ‹/¾Àb±´ÛzFñí0iÒ$®¸âŠV­bôz=·ÝvÿûßÙ¾};Š¢PQQÁ�ÔuÙ³geeeêMYrr2)))¼ð j"&,,ŒÑ£GóÔSO1eÊ )i~Ýu×ñøã�sàÀjkkyòÉ'‰‰‰aâĉ݊{âĉÜsÏ=üö·¿åÔ©SÁ:B!D¯khhP[ŠFDDœW¦Ydd$ê¸1ÁÖÐÐô:…è Ò5©— 8� 60ÌdÆãöÐh·S]SÇ‚ ºU¾½²£F÷î8)ï¾û®ú¥(22’�òØc�‘‘‘À<ÀsÏ=ÇÒ¥Kñù|Œ?ž'Ÿ|�Fÿþõ/\.‹-àÁäŽ;îàÊ+¯d̘1Üzë­˜L&–-[FEEÑÑÑÜ|óÍ 4»ÝÎæÍ›yþùçq8¤§§óûßÿ^Æ`â[îç?ÿ9………­^ûáˆÉdâÉ'Ÿ¤¼¼œ˜˜n¿ýv† Àìٳٲe ‹-bìØ±üõ¯šZżøâ‹Œ5J­kÆŒlÛ¶�I“&©¯=üðÃ,[¶Œ‡zŸÏÇå—_Îßÿþ÷sjB½dɾúê+~ñ‹_ðòË/·ÐW!„¸¸\.œN§šˆ‰��½à:ccc©««C£ÑôÈx1n·»W¤â|ôþ "ÝÛfGëhÚY¦m±¬ùyË¿õg&À˜m6ÛÁ`6ƒk©¼¼œ´ÔÊÊN£øµ$%%�ó:}U¿ßuuu$''÷ußjÍ×Ðæ3ŸÏ‡Íf#--­�#B!D°ÔÕÕQWW‡Ïç#"""hß)ÊËËihh@¯×·À7"##‰ŠŠ:¯²§OŸ&<<½^�N§k5Ó­è9F£qༀð�y47› œõ7-žÓâõ޾äwçËÏ$: ]“„B!„B´p¹\M3µúýêÄÁ¦Ö‚:VŒÛíZ]BôIÄ!„B!„hÃãñ¨ƒô³‹­ÙlVí vO…³ëâb$‰!„B!„m4·XñûýèõÁ^T¯×«u[O ,D°I"F!„B!D+Í­Uz¢ÕÊÙõ ñ]#‰!„B!„mhµZ5Yâóù‚V¯Ïçë±$Ló»B\ÌP®×V IDATä,B!„BцÁ`Pÿv:�A«7˜u�­eÌB\¬$Ó¼^/h4h4´Zí9 (u!e…B!„¢»L&š3ß=¬VkÐêµZ­j½Áf2™‚^§Á&‰˜^f·Û Ãl¶`¶„ÐÀ@°Ûí=ZV!„B!ºK£Ñ`±XÔ„IyyyPº'ù|>ÊËËÕzƒ�Œ±X,A­Oˆž ‰˜^äóù°Ûí¤$'«�FCJr2uuuX­Vìv{»«ÕŠÕjm·¬ÝnjŸM!„B!„0›ÍX,´Z-:�ŽÒÒÒ ®³´´�N‡V« zÆl6K‹qI�DL/r8ètü¿:­šßïÇð“–šL\l Q‘í>âbcHIIj·¬^§Åápôå® !D�Y¶lY_‡pQ’ã"„¢§i4"##Ñétèt:ÊÊʨ©©9ïújjj(++Së v‹˜ˆˆˆ Õ%DO Þdð¢K~¿ŸÆF;ŠÏ��–@À�¢(x}^ c§å}>o»eíè»(+.Ü«¯¾ªþÈÊÊbòäÉ22»B!„øÖiN�„„„Imm-ƒ�¢¢" Dllì9ÕWSSCQQf³½^�V«U[Å#.Ý’Ä%C1½Èívc4šZ °«àõz¨¯­¥AÛùX¿C‚0¶(ëÅ`4âr¹z.p¡š?>áááØívV¯^MLL Æ ëë°„‘üü|†NLLL_‡"„B\0­VK\\n·EQ0�:tˆÔÔTÒÒÒÐë;ÿJéóù8}ú4%%%˜L&ôz}л&™ÍfùW\R$ÓKªªª ±•Œ×륾¾ƒÁˆÇãæèѯ9úõqBCC;­£±±‘�Y ˜u&¡ã!$$Œ~éý¨oh ²²’„„„^ڣﶰ°0ÒÒÒdl!DåååäääôuB!ÄkN”hµZ’’’Øl6 i¬—“'O’žžNll,!!!jRÆçóáp8¨©©áÔ©SèõzL&F£ƒÁÐ*s¡É³ÙL||ü…í¨½L1A¦(J›çUUUXÌ&¢¢¢ðxÜÔTWsâäI¼^…°ð,XЭúwîÜÉöí;1ôôï×�ظQQ1DžéYYYÙn ÁRYYIAA‡³ÙÌ´iÓÔäÏk¯½Fvv6‡bÒ¤I 4ˆ²²2>ûì3¼^/111TTTpÇw´©·³õ–/_NVVååårssIOOï2žåË—“™™IEE—_~9_ý5UUUèt:fΜIbb"§OŸfË–-¸Ýnbbb˜9s&!!!­bt»Ý”””ΩS§())a„ ]›�;wb³Ù˜9s&Š¢°jÕ*¦M›Frrr»ÛµX,lÙ²…ãÇ�£ÕjIKK#777hï¡£@ @~~>_ý5:�ŽôôtfΜ 4uë\¿~=¥¥¥øý~fÍšE¿~ýhlldݺuÔÖÖ¢( Æ cÊ”)¼ôÒK 4ˆ0eʆ ÂÉ“'ÉÏÏÇívËUW]Eee%ëׯoÏÔ©S2dO?ý4ÙÙÙ”——·Ú6Ðn}¤´´”7ß|“¬¬,4 ééé\vÙe@Ó¸.&L`âĉ¬ZµŠÉ“'“œœLEE›7o¦±±³ÙÜêÕÞþ4s»Ý¼óÎ;\~ùådeeõÜ›$„â;K£Ñ ×ëIII¡ªªŠÚÚZ´Z-^¯—ÒÒRN�:¥ŽcÙ¬y€_“É„Á`@¯×«ÿ6'b.Txx¸´„—$IÄ‘ÍfC§Ó¡7Ñj4ÄÅ%râä)ÂÃBÕ$Lc£�ŠŠ2¾Ø÷Æ '22’¸¸¸nocüøñTWWc³Ùørÿ~F oºoNÆ4�CÓØ*†ŠÊ*l6ááá´�‡5kÖ0wî\bcc)..fíÚµ,^¼�N‡Íf#22’[o½�N‡ÛífíÚµ\wÝuÄÆÆròäIŽ?Þ¦Þ®Öóù|Œ;–¨¨(Ž9ÂæÍ›Y¼xq—ñø|>Æ�GTTàã�?fñâÅDDD°wï^¶lÙÂüùóq8|òÉ'ÌŸ?ŸˆˆvïÞÍÖ­[¹òÊ+[Åéóùؼy3áááø|>œN'ÅÅÅ :´ÓXÆ�ÇþóŠ‹‹)))aàÀ�$''w¸Ýœœ***X¼x1�FZ݈ï„'NPVVÆ’%KÚ=ïG�ÍUW]EQQ6l`É’%X,fÍšEdd$.—‹7Þxƒ¬¬,’““ihh **Šþð‡èt:ëÖ­ãÆo$22’;vPPPÀ5×\ÃÝwßÝa\>Ÿ� &ÝjÛ�ÕwìØ1¦M›FRR‡æÀ�\vÙeTUUÏáÇ™8q"n·›úúz’““ñx<¼÷Þ{Ì›7�¸¸8Ž;Æûï¿ÏwÜ�^¯o³?-ãû¿ÿû?F�-I!„=¢e«€„„, uuu466âóùP¿ßO PË4'bš/Íÿ6ÒÛ²îse6›‰ˆˆ�1aÄ%K1ARSSƒÙlf`Vš3©ˆÈ(†‹Àãq«õVT”±wß~òòfwÙŸ²#qqqÄÅÅ1`ÀÖ®]˰¡ƒ€¦dLLL ÉIÉ­b� ¢²’šššsT«¥òòr¢¢¢Ô: ÀîÝ»©©©Q[¡´ü•¶¼¼œ˜˜uýÔÔTŒÆ¶ƒ wµžF£QYdÆ ÝŠ§e¹ììl¶nÝªŽ¤ž��Íž={Ôzùùù@Ó¸;íµ" ULj8|ø07ndРA]Ærå•W²råJâããÕÖOm7** »ÝN~~>jë!¾Í¢££±Ûílܸ‘¬¬,µÕ |Ó7 ''‡uëÖ©¯û|>¶oߎÍf£±±»Ý®–k9~Sii)���lܸhJ,w§µ V«%::ºÍ¶»[_ff&Ÿ~ú)>Ÿ�£G�2~üxõÚPSSCff¦Z_tt´ºŸ™™™ìرƒššµUÌÙãQV¯^MJJJ«k¯Bl-“1�†ˆˆBCCq8466ât:Õÿ �€šˆi~4·€iÙ©»I˜æº &“ ‹Å"ST‹Kž$b‚ yê踸X8û‚¢Ñ ÓëqÚÔ$Ìµ×æ�w¦uÕ®½öZ5c4šˆŒŠn7†¸¸XN�<…Óé<ïÌqóà\-y<5;~öÅÔï÷·›x9[w×kÞFóvºŠ§¥³_kùÜh4’””Äœ9sºC³ììl6oÞŒÃáè2–æe-%ël»‹/¦¸¸˜ƒ²mÛ6.\Ô©ý„¸ØDFF²dÉŽ;Æþýû)((àæ›onsÞ·¼TTT°~ýzfÍšEll,µµµx< ígÞd2‘’’Âõ×_ßêõãÇ�wÚ5©£mwTßÙôz=ýúõãôéÓœ8q‚ñãÇc·Û9räõõõ :hÿ:ØòÒÞuM£Ñ�‘‘ÁÁƒ™0aB·¯£B!ÄùhÙŠ¥ùFhh¨Ú¦e‹˜æJˤ̅¶„âÛBæÝ »ÝNdDDÓ…çÌÅGu悤Ñh)ܶ“©S§ár¹°ÛíAy4662uêTvìü½ÞÐi QQ‘êàZç#))‰òòruÌ•æñ:ê—Ù¼~ee%ÕÕÕê—$EQسgn·»Óõ‚OGihhP»CµuJsŒí)++Ãd2Þe,Ÿ|ò ×^{-!!!ìß¿¿Óíz<Ün7YYYÌœ9«ÕÚa B|[¸Ýn\.ÙÙÙ\uÕUÝ:ïkjj°X,$&&¢( ¥¥¥­ºí´”””D}}=ÇŽ¾ù¼eddp÷Ýw·ytÕ¤£ú, êº999ìÙ³‡ÈÈHôz=9999r„òòrÒÒÒHNN¦¬¬ŒòòrJJJ]¶b;v,©©©¬Y³¦Mß|!„"ØZ&R´Z-z½^ûÅ`0`4Õy›ÇƒižªZ’0B|CZÄ�ßïÇd2ððküMÙ-��¦ì°?€Á`à–›oî±núÁ¢¦,t'1˜L¦ ºQ·X,\uÕUlÚ´ EQ #//¯Ã�¶šÇoذaƒÚµÀ`0M_ºöîÝKZZñññ®Ìx:b0˜={6ìܹ£ÑȈ#HNNn#Àþóµiehh(yyy]ÆòùçŸBFFIII¬ZµŠ””¢££ÛÝnXXÛ·o§±±EQ˜0af³ùœöIˆKMmm-………ØívEaâĉ]ž÷äĉ¼òÊ+X,RSS;LÄ ®»î:6mÚĶmÛ0�\vÙedggŸW¼�Õ7vìX6mÚÄ—_~ɼyó0`|ð�Úú-$$�FC\\œz3j±X¸öÚkùä“OÔkÈܹs»u=›>}:ï¿ÿ>7ndÖ¬Yçµ?B!Dwµ×ZP[ÃtµžúâÓÐ�mv´Ž¦�eÚËšŸ·ü[æa €Ùf³<ûBq!ÊËËIIND§Ó£ÕêÐh›šâ©‰¿‚Ïçëð B°(Šr&ãÜq eå$%%õhilläƒ>`Ñ¢EAYOˆŽÔÕÕ‘œœÜ×a|«5_Cý~?ŠÒt}±Ùlj �ÿŸ½;��ª¾÷?þš%³d_ kÂ.ˆe‰l7¤¨€P©­þ¬^«^[µ÷j+¸{[j]h]êÖV-R7dU¡VY-BÈFöÌd¶3ç÷GœiÙ€Iú~>ó03çœï|Ï$fÞóù~¿"""òýÒRs28pàIIIG¬ìt2žËÉÄáp |@ð¡oo‘*ó°Ÿ©wŸz�7õ!¿5þc´‚*bbÀb±PYYIZZ:†Â¶FŠQ0ͺ¿¯×CMMU -ŸÄ¤d’“›ìCUUe»_Djjjp¹\Øív¶mÛFïÞ½�k?9ñ(¬i=11àv»ù׿vñƒœ�ÍfÃ4à ¦i1 ƒ/¿ÜÊþùm¶ÄZmm-={œÂðág6Ù‡]»¾¢_ÿmòüMÙ»w/[·nÅ4M²³³=zôqí'""""""r2SIIIøýA¾új'={õÆíúwØRë«å›½{‡M¦M›ÖfI±išlüøãfû ÕÍ;ОN=õTN=õÔ˜í'""""""r2S‹…ágžÉšÕ«)..!;+“„ÄD<55„3vl›–ë�}‘æ)ˆ‰»ÝNÞ¹ç²gÏöççãóùp¹\tëÖ�Þ½{·ùD½'JDDDDDDD¤i bbÈf³‘››Knnî÷º"""""""Ò8kË»ˆˆˆˆˆˆˆˆH,(ˆi' bDDDDDDDDÚ‰‚‘v¢ÉzED$fÊÊÊ:º """""'41""3éééÝ‘câõz;º ò=¡¡I""""""""íDAŒˆˆˆˆˆˆˆH;Q#"""""""ÒNĈˆˆˆˆˆˆˆ´MÖ{1 Ã0‡Ã˜¦ €ÅbÁjµb³Ù°ÙlÜC9 bN¦iâñxذa«W¯æË/¿Œ.›‘‘ÁàÁƒ7n#GŽ$!!‹ÅÒÁ=‘c¡ ¦ƒ¶nÝÊoû[¾üòK‚Á`ƒŠ˜ŠŠ öìÙÃ{ï½Ç�!C¸ù曟Ã0¢! ÔUˆ�ßïgóæÍüìg?cÕªUø|¾칈ˆˆˆˆˆˆ 1$ÂüêW¿¢¤¤„p8Üâ1áp˜’’î½÷^–-[Fmmm;ôTDDDDDDDbEC“:@$„ùõ¯MUUÕQ_UUÅý÷ßÀ¤I“p»Ý±î¢ˆˆˆˆˆˆˆ´UÄ´³£ ašš˜·ººšx@ÔDDDDDDDN" bÚÑÑ„0‹…�2nܸ&تª*î»ï>V®\©0FDNzwÝu�=öXGwC¾#f̘ÁóÏ?Ò¶/"""ß] bÚÉÑV˜¦É®]»øøã�LÞ{8…1"ò}õä“Or×]wut7äuî¹ç2`À€˜´ÕØßZ,Û‘ïÍÓZÂX,–#Ã0ðz½-¶_UUůýkB¡�æŒn¸á†“º}‘“�ßï§¶¶¿ßO0Œ®ÛTEÿ±°X,X­Vâââp:�¸ÝnœNgÌÚ骈ic­ aœN''NÄf³óóDæŒiëʘ{ï½—±cÇ2vìXÆ�ÏÌ™3yâ‰'­ncΜ9¼üòËÑû×]wï¼óN“ûƒAÆŽK~~þqõ]DN.³gÏæÙgŸåºë®#//�Y³fñ�ü€^x�gžy†÷ߟ#Fðàƒu׋ßþö·\tÑELš4‰ùóç7´gϞͲe˸馛ÈËËcãÆ�-öáÕW_�öaΜ9lÛ¶­ÅöÂá0Ï=÷—\r ãÆ�ã¿þë¿8xð`ƒ¶_yå¦OŸÎøñãloé6lØÀìÙ³=z4?üáyüñÇ[µípM=K}Ÿ={6Ï<ó óæÍ#//�«®ºŠmÛ¶ñ—¿ü…Ë/¿œ¼¼•••RTT¤d夦 ¦ µ6„¹úê«ùÑ�~ÄСC›L�- ‹…””âââݧªªŠùóç³bÅŠ6 c¦M›Æ²eËX²d ·Þz+Ë—/çé§Ÿnõñ£G�¦_¿~mÖ?ùn¨¨¨à‰'žà¦›nâ�7ÞàÔSOåŽ;î  2{öl®½öZ&OžÌÆ�¹ãŽ;xøá‡ÉÏÏç…^àå—_&??Ÿßýîw Ú½óÎ;ÉËËãø§�vZ‹ýx衇¸á†xíµ×:t(7ÜpÕÕÕͶ·hÑ"V¬XÁC=ÄK/½„Ãáà'?ù Á`¨ûpÿöÛoó«_ýŠ¿üå/œþù¤¥¥µxUUUÜ~ûí\|ñżûî»<ú裌?¾Åm‡kîù[ê{EEO>ù$?ûÙÏxã�7èÑ£³gÏfÿþý<ôÐC¼øâ‹8p€ßÿþ÷ ~—G{LKšûû8šsŽ‹‹£{÷î<òÈ#¼úê«L™2…{}ûö4ù·v¸Ö¼nMõ÷h~w""­´´4„DBÃ0‡Ã n‘Çê2ÇÊDø|>Š‹‹)++‹I{"íMAL9šæòË/'77—¼¼¼Fƒ˜¤¤$òòò¸å–[xðÁ™7o^“åxíÆØív\.ÉÉÉœuÖY\zé¥|þùç­>þG?úgžyf›ôMD¾;RSS¹ë®»8õÔSIOOgîܹ”––²ÿþF÷÷x<,Y²„Ûn»�ôôt233ùÉO~‡~Ø`¿©S§r饗ү_?\.W‹ý¸ûî»6l™™™ÜrË-¤¥¥±lÙ²&Û ¼ôÒKÜyç�äææÒ­[7î½÷^<kÖ¬Á0 ž}öY~ñ‹_0pà@233™}:999tëÖ�«¯¾š®]»²uëÖV÷åh^·ÆúÛÚß�ˆHG ‡ÃR]]Ý €ILL$;;›ž={’““CNN={ö$;;›ÄÄÄ� ³0êF‡cÖ¦H{Ð1màhC˜N�:‡9ýôÓ�ØÏb±0hÐ n¸áºwïNRRýû÷àÙgŸÅï÷qL$Œ˜0aB«>h�’’úôé½?mÚ4î¾ûnÎ8ã vîÜÉ�7ÞÈòåË�º¡HS§Nå /l´=Ã0xæ™gøàƒ‡ÃŒ9²Áö`0ÈþðV­Z…ßïg̘1Üxã�Ñ7Ô×]w—_~9K—.åË/¿ä׿þ5Ço‹S‘6fµþûû‚®]»âv»›œ;kß¾}„Ãa®½öÚh¨ …ðx< ö:tèQõ¡~@nµZ:th´Z¢±öòóó …B &ru»Ý 2„½{÷’ŸŸ�×ëmôƒvKçлwo†ÎŒ33f S§N嬳ÎjqÛáýkêù[ê{ý×!"rý÷z½¤§§GûrøïéXŽiIkÿ>š;g¨«VYºt)ÿøÇ?¨®®æÀ�GõeƱ¼nõû;hРVýîDD:Rqqqƒ*˜äädÒÓÓ±Û�üHi·Û±Ûí$$$�žžNYYUUUX­Öè¿o±šGÆçóQRRBVVVLÚi bbìXB¨{s–™™Ùd»‘ sçÎ̘1€çž{®Ñ7‹mÆ|òÉ'|ôÑG†Áš5kX³f ‹-ŠYûO?ý4›7ofÁ‚¸Ýnž{î¹Û.\HEE‹-" ±`Ážzê)n¹å–è>÷Üs·Þz+?þñ�9å”SbÖ7éXͽi‹\#_zé%RRRZÝf `̘1 [´hQ“Öl6[³×Ô@ ý–°þo‡Ã�Ãá ¦¦¨ûfñð¹ÁZ:«ÕÊO<ÁgŸ}Æ[o½Åí·ßÎðáÃyôÑG›ÝV_sÏßRß[ëXÞ\Çâ ySm4wεµµÌ�;—ñãÇóãÿ˜ììlæÍ›‡a­~Þc}Ý"ýmíïND¤£”––FCÃ0ÈÌÌlõ¿µv»�ÌÌLœN'ÅÅÅ ®Ã± cÊÊÊ¢á¾È‰NC“b¨µ!Ì5×\Ó „�º7‡õç¨Ïáp …”ÜuîÜ™™3g2oÞ¼&WIŠ,m½lÙ²˜Nfµoß>î¸ãî¼óNÞ{ï=|>o¾ùfLÚ¼ñÆÜ~ûíÑòîÛn»-ºÝãñðÖ[oqóÍ7“––FçÎ�™7ok×®mÐÎE]ÄÔ©SÉÍÍmóŠ é8õçéÒ¥ ¬^½ú¨Úp8lܸ±Á-Â:tˆÅ‹7ØëÖ­äää4Ù^÷îÝزeKô±p8̶mÛ¢×µp8ÌöíÛ�8¶µçpÆgpÏ=÷ðì³Ï²zõjŠ‹‹[µ höù[ê{{r»ÝìÙ³§ÁcÇZzÞÜ9oß¾�ŠŠ nºé&úôéC||<»ví¢¨¨¨Á~MÍ=±{ÝZú݉ˆt¯×Žt´!L})))dffFWV‚ØSÒ¾r²P#GS 3sæÌ! Ô•žïرãˆcLÓdëÖ­üþ÷¿gÆ Ñoõ:uêÄôéÓ™;wn“sÆ´ÅjJÓ§O�V¼÷Þ{Üxã�¼úꫬ[·î¸ÛÎÏÏÇ0 úöí}¬~j~àÀÂá07Üp3gÎdæÌ™üÏÿüÏ¥èƒ>ȉ-++‹-[¶PPP@mm-v»�Ù³gó»ßýŽ�7bEEE V9:Z.—‹­[·òé§ŸRYYÉ¢E‹ðz½ÍN¤ÏÔ©Syà�ضmeee<òÈ#¤§§3räHRRR7n>ø ûöíÃëõ²fͼ^o‹çPUUÅ›o¾Iqq1>Ÿ�Ï>û ·ÛMjjj³Ûêkîù[ê{{:í´ÓøûßÿNAAùùùÌŸ?¿Ù0¤9Í�szz:555¼þúëTVVòÁuC‡"ÿ[;Üñ¾n­ý݉ˆt„ªªªhÕ_rrò1…0)))$''Gç�‰µ¦>‡‰œh44)Žu8R}µµµ¬X±¢ÑT¸¼¼œ×_�%K–pÚi§ñØc�E/€ÑaJÍÍsß}÷aš&'NŒi…H||<—]v~ø![¶laôèÑÀ±§Û‘ÊŸp8Ü ¼;"11€?þñ�$''{ÇEä¤wá…²~ýzfΜÉgœÁÿýßÿqÍ5×àt:yä‘G(,,$==�9sæóħ‰‰‰üÇü<ð‡bèС<ýôÓM®^qûí·³páBn»í6B¡#FŒàw¿û]´û—¿ü%�>ú(óæÍ# Ò¯_?úöíK|||³çP]]ÍÊ•+yüñÇñx<ôìÙ“|‡ÃAIII“Û×Üó·Ô÷öróÍ7sï½÷2sæLºuëÆäÉ“›œ¨¹5š:ç^½zqÓM7ñôÓOóÄOpÎ9ç0nܸÇ6ö·v¸ãyÝšû½Šˆt$ŸÏGmmm4ˆÉÈÈ8î6322(//�® ±¢ä÷û›ü’ZäDѾïªZÿœMícid›µÞ¶Èýú?Û¿½9�8ÀU]]½=Vep�@€•+Wò«_ýê˜C˜`0ÈG}Ä-·ÜÒh�a±X˜Ê~ð î5ž8q"þóŸÉÊÊ⢋.⦛nâ‚ .h´�-M,ß}åååtéÒ¥£»ñ�¹†FÞ˜…B!ª««¿ss2Íž=›K/½”©S§vtWDDDÚ]yy9ååå„B!’““ÉÎÎŽI»………TUUa·ÛLà )))Ç\QxàÀ’’’°ÛíØl¶èÃíýeÄ÷�Ãáø€ àBßÞ"eSæÍe\ IDATa?Sï>õoêC~k>üÇnœ\+hhÒq0 ƒ/¿ü’|ð˜C˜P(Ä×_Í<Ðlu€sÎ9§Ñ„72�oä›ÔÆTUUñàƒòÅ_Õ$„‡3 ƒ`0H0¤ªªŠÕ«W³eËòòò2dï¼ó………ùdt_»ÝάY³xê©§Ø´i†aP\\ÌÎ�;�ù|DDDDD¤!Ó4ñù|ÑjõHez,$&&FÛ5M3¦sÅ´ô™JäD ¡IÇ¡²²’ßüæ7:t¨Ñí‹…ñãÇ3eÊÒÒÒ0M‹Å]òÍï÷³iÓ&zè¡FË­- qqqÑ#55•áÇ7ºD4\M©©Ê˜ÒÒR~ó›ßðÛßþö˜g_¼xqtòÊ””rssY°`½{÷àúë¯ç�`îܹtéÒ…‰'’ŸŸßd{3fÌà‘GaÏž=ÌŸ?Ÿ›o¾™ÇœŸÿüç$''sþùç7¨n¸êª«p:�,\¸�¢¢"ÒÒÒ˜5kVtYo9~�@ :Io,§7p¹\†�Íf‹~FŠ•c�OL¤=ihÒ1 ƒ¬X±‚Ÿÿüç„B¡&÷s:�Œ5Š &0dÈRSS)//gëÖ­¬\¹’ 6D—‚kp¢ ÇçÒK/eçÎ�|ñÅdeeñ¿ÿû¿ÄÇÇG÷«?Imäñ–†)Ùívî¿ÿ~&NœØâ<"'# Mj{š$""òÝfš&{÷î% â÷û2dHLÛÿâ‹/p:�1žd±XèÑ£Ç1«¡Iãû84I1ÇÈï÷³råʇøøý~V¯^ͺu뢘HEŒaMŸ‘‘ÁÕW_Í9çœÃÙgŸMii)‡£A5Lii)]t¡P»ÝÎÛo¿MFF�;wfÚ´i„Ãaž{î9�@ƒ¶ Ã`åÊ•Œ3FAŒˆH3^xᅎˆH‡ˆ ŠõСÆÚù¾Ñ1Ç( òÏþ³UÃ0ÑYÇ}>�@ ÉÆjµ2uêÔè0¤ŒŒ zöìIyy9÷ß?%%%Ñ}=µµµx<žèc%%%üá`À€Lž<ùˆ×4M¾øâ •퉈ˆˆˆH“¬Vk4,inÀÑ …BmÂ4¶òªÈ‰F¥ÇÈ4MÊËËÛ¤íp8ÌG}�Øï÷óÆopÓM7±dÉþð‡?PYYyİ#¿ßOee%Ï<ó K–,áž{îÁår5ZJWVVF8|x5—ˆˆˆˆˆH�úÕóµµµ1k7–mNÿr2ÐФÔÎ�;yþùç¹é¦›°Z­”””PYYI8æõ×_Çf³ñÍ7ßDSdÓ4™?>={öäµ×^# R]]ÝäEN%€"""""Ò§ÓIMM ‹…ŠŠ ’’’bÒnEE‹¥Mæ^ijY‘‰*bŽ‘ÕjmöB”��ÍÀ�±ÛíM^`"«" 4ˆìììû…Ãa6lØ@MM N§“É“'3pà@, �@€¿üå/¬[·®A³nÝ:þüç?ã÷û±X,äææâv» ]’““U¶'"""""�²X,¸Ýîh`RXX“áI¡PˆÂÂÂh»±cÜnwLÛi ªˆ9Fv»�¾}ûRTTÔèŠGyyy\xá…ñå—_òÒK/5˜Æn·sÅW0dȺwïΗ_~ÉÃ?ŒÏçÃjµ2|øpfÍš…ÍfÃï÷Ó³gO¦L™ÂöíÛ1M“`0xÄ…+2pD�=Xºti£ýëÛ·¯ÊöDDDDD¤I.— ·ÛM0Äf³qðàÁc^‘(âàÁƒÑ‰b¸\.UÄÈIAAÌ1Š,K½~ýú#‚Ó4yç�wøÁ~@^^¹¹¹¼òÊ+ B«ÕÊ´iÓèÕ«v»�®]»²k×.Þyç~øÃrÁpèÐ!.½ôR†Ê™gžÉ»ï¾}.§Óɸqã9r$ééé”––òñdzjÕ*�¦i²zõêF'äµX,Œ5J)9),\¸�›nº©£»!""ò½c±XHIIÁãñ`³Ù((( !!�ŒŒŒcj¯´´”‚‚\.6›-æ1ÉÉÉ1kK¤-)ˆ9Fqqqäååñú믳{÷î#˜ššæÏŸÀé§Ÿ~Äñ‹…´´´èrÔiiiÌ›7�#F0lØ0øÛßþFiiitùëÈìâ.—‹ë¯¿ž &����ÓéÄï÷3|øpúõëÇÓO?M h2„éÓ§yyyªˆi†×ë套^âŠ+® !!¡£»#""Ò®"I||<)))”••ÇÎ�;éß¿ÿQ‡1¥¥¥ìܹ—Ë…ÝnÇjµF«bbÆ$%%iX’œ44IÈqèÚµ+sæÌiò zUUóçÏgÍš5 ÆA6v±éÒ¥ çž{.™™™†Á7ß|ƒÅb!‡ÃX,&L˜ÀÅ_L¯^½¢«"¹\.ºtéÒâ1>>ž9sæÐ­[·ãDD¾ÃÜn7&L >>¾£»"""Òa¬V+�:u"!!»ÝŽÃá`ÇŽìÝ»·UsÆ„B!öîÝËŽ;p8Øíö˜Mr¹\¤§§Ç¤-‘ö Š˜ã`³Ù˜0a………üñ� V<Š„0÷ÝwUUU�¶ a¦OŸ³eçbiÓ¦M 0€!C†‡;º;GøÓŸþýÙ4Mrrr5jT‹+Oy½^þú׿2sæL}«.Ò Ó4Y³f »wïÆf³Ñ½{wÆ�ÔMD¾|ùrKÿþýÙ¶m£G�fàÀ�|óÍ7¬Y³¿ßOFF“&M¢¸¸˜åË—ÑŸ1cÆ0pàÀóÓ<ýôÓäææ’ŸŸ�išäååÑ«W/JJJøðÃñx<ÄÇÇsá…j8“ˆˆ|gX,–è¼–%%%”••aµZ ƒZ.—‹ääd½Ç–“–‚˜éܹsLتª*î¼óN6nܽ¸AÝ·Æ|ðýû÷Çn·³jÕª“>„¢óß­¢¢¢v:�˜˜È)§œÒª1±‹…Þ½{·C¯DNniiiÔÔÔ°jÕ*rrr,�›Я_?Þÿýèã¡Pˆ�7R]]�Ç㡦¦&z\ý ôàÁƒx<V­Z@ h°’]kX­V233�º9½RRR(..Æ4M£Ûô¦PDD¾kê‡1‹…äädðz½x<jkk£ÿ¶š¦ b"·HLýáH­}ïi+..§Ó‰ÛíÖê¯rÒSC± c"e|>Ÿ/z13MÓ4Y¼x1Æ # ²`Á‚v aŠ‹‹Y·n^¯—ËÅØ±c£>^|ñEúöíËŽ;8ûì³éß¿?¬]»–`0Hzz:EEEÌ�;·A›ëׯ§¤¤„W_}•ôôtfΜÙ`»ÇãaÅŠ”——cäì³ÏfóæÍð·¿ý�Þ½{sþùçóì³Ï’““ÃÁƒ1M“Ñ£GG‡04ÖF}~¿Ÿ7ß|“áÇžøý~òóóIJJbÿþýäççsÖYgu•K¯½ösæÌàСC¬ZµŠéÓ§MÏ SPPÀºu뤦¦6XåêÀ�¬_¿¿ßOzz:ãÇ�'>>¾Ñ×Xä» %%…«¯¾š¯¿þš­[·²nÝ:fÍšuÄ›´úoÜŠŠŠX¾|9&L ##ƒ²²²èY‡WÖ9�NºvíÊøÃ�ïÙ³§Ù¡Iõ5Uríõz¾ˆˆÈw^ý*–È-11‘„„„h5LýŠ˜H€R?”9ÞJ‘ï 11«0ÆétröÙg³víZrss4hü1ûöíÃãñð¿ÿû¿ ¾ý=üøX‡0�@€wß}—)S¦�‘‘ÁÞ½{Yºt)W^y%6›�êêjRRR¸êª«°Ùløý~–.]ÊÔ©SÉÈÈà›o¾aÏž=G´;jÔ(<ȸqã¢ßz×Þ“œœŒÏçãµ×^£wïÞüà?`ß¾}œsÎ9deeuóå <˜¼¼<ŠŠŠxë­·¸êª«šl#;;¨›PìÝwßeèС�V°„B!V¯^MRR¡PˆÚÚZöîÝË AƒŽùµ|ï½÷¸øâ‹£¯Í¾}û€º`çƒ>à’K.!99™Ï>ûŒ 60qâÄ#^c‘ï ¿ßO(¢oß¾ôêÕ‹E‹á÷û›­,--Åív“••…ßïçàÁƒÑ!އËÎΦ²²’¯¿þš>}ú`š&¡PˆÞ½{·zhÀöíÛ8p ‡¢¦¦†ÌÌL|>Ë—/§¬¬Œôôt‚Á v»]o2EDä;'òåpýp%ÀDB˜úûÖÿE!ŒÈ¿)ˆi±cìv;'N$33“ÌÌLRSSéÞ½;�>ú(¦i6À@Û G*,,$555ºÚS¯^½øì³Ï(--�VÅÔÿ¹°°�ôôôèþݺu‹® u4"Ã6mÚDuuu´²1‹%ædee‘œœLIIIt(QSm¼ýöÛdgg7Ya’���#`×®]¬Zµê˜+R IKKkôµ),,ÄëõF—=ƒ †Pþ-½ÈwAYY}ô555†Ñª‰ÍsssÙ·oÏ?ÿüðC>þøc§�v}ûö=ª~îÛ·�O>ù§ÓÉ”)S°Ûí$&&2qâDÞyçâââp»ÝLœ8Q“õŠˆÈwRcÕª@£ALs÷E¾ÏÄ´‘Ö†1÷Ýw†a0iÒ¤#JÛSRR=z4V«5ú!åð ÜáW]u3gÎŒùœ0†a¤�è€Ã/®ápø˜‚—ójÕ*Î=÷\ÒÓÓ)//or‰îÃ_ŸÈ„`-µÑ«W/vîÜÉðáÉ‹‹k±O}ûöeõêÕx½^l6ÛQ¯ôÔØkáp8ÈÎÎæ¢‹.:b›þ“YýoÉŽV—.]¸ä’KÝYµ(â§?ý)P÷ÿÊùçŸßªc nrÁÈu¹µê·cµZ9ï¼óݯoß¾GꈈˆœÌZú÷þd{ßz¬ïaDŽÅñ¯&MŠ„1×\sM“JUWW³`Á–/_Nmmmƒm‘’?ŸÏÇo¼ÁÇÜlãp8˜3gÿùŸÿ­P‰¥ììl )**ˆ.%ÛÔ’q‘ý‹‹‹�º¹S"á‡alÙ²¥Ñ€ ê”Èd¸eee¸\.:wîŒaF¿õv¹\TWW78vçÎ�@ݰ…šš:wîÜlÆ £k×®¼ÿþû„ÃáûWPP€Óé$)) ·ÛM0¤  ¨«h9¼O‡ŸWs¯MVVUUUÑa\¦i6˜?FäDS¿Ôøh'À‘ï†úC‘NÆ@Ã0 Ÿ’v£Š˜6֚ʘššxàl6[£Ã”�;vìhöNd8ÒÌ™3Û$„�º¹Z&MšÄ‡~ˆa$&&rÁ4¹ÜtdiÙ+VDW=‰T›øý~>ÿüsN9å”F+wÌòåË9÷ÜsÉÉÉaÿþý¼üò˸Ýnºté QN?ýtÖ®]˶mÛ¢$û÷ïgÓ¦M¸\.Î?ÿ|ìv{³mDŒ=š¥K—²víZÎ<óÌ#ú÷ÆoDg|OHHà‚ .ê.ÔãÆ�ãý÷ßÇív“––Öä�„!C†°xñb.¸à‚¯Mff&‰‰‰@ÝŠ /¼�uëÖñé§Ÿâp82dH»¯%r4, 6›�@ €Ý®ZDDDää,­-Ò–:⯬5ÏÙÔ>–F¶Yëm‹Ü¯ÿ³ýÛ›ˆ\ÕÕÕÛ[âk‘U�š c’’’øÅ/~Áĉ£Ã”|>«V­âž{îÁëõ6z\[WÂÄŠÇãáí·ß>bU¤Xjj…"ù~)//§K—.Ý�ï´È5Ô4M ÃÀ0Œè²•'òuHDDD¤1ÅÅÅØl6GtzUÈ´‡Ã1ðAÀ„¾½Eæ0û™z÷©÷xSò[óá¿]}mÙNZSS]]Íý÷ßO~~~´ºã­·Þ⥗^j2„i�J˜ãQSSƒËåÂn·³mÛ¶FW$‘“[d¥ÍfÃçó [5×’ˆˆˆÈ‰   q8 –Ùi+ bÚQkØE‹ñì³Ïb±X¢…Æ´ÕêH±´wï^¶nÝŠišdgg3zôèŽî’ˆÄXd,¸ÕjÅápPVV]R^DDDäDWVVÖ „Q#mMC“:@k†)µädŽ$Ò44©}Ôž‡ …B„B!|>‰‰‰ÑåÞEDDDNTÕÕÕ ªøív{ƒª…2mïû84I«&u€Ö¬¦ÔœHsùå—+„‘Bd²ÞÈØêÊÊÊ&‡TŠˆˆˆœ¼^/•••�Î #Ò–44©ƒD‹Š/¼€ÇãiviêˆÄÄDfÏžÍe—]¦FDNõ¿1²Z­ØívÜn7eee„B!’““;¸‡"""" UUUQUU…ÛínP£¡IÒÄt Î�;sùå—Ó©S'^yåvïÞÝdc±XÈÉÉaÖ¬YLœ8‘ôôôvî­ˆHC‹¥Á5+ʦ‰ÍfÃívSSSƒ×ë%==‡ÃÑ�½©[¦º¬¬Œp8ŒÛíÆf³aµZ�¤W�Œ´1,==�)S¦Ð¯_?>þøc6oÞÌîÝ»©ªª 99™œœÎ8ã FŒÁ€p¹\Ük‘:‘0¦~ULý²^§ÓI(¢°°‡ÃArrr´üWonDDD¤­™¦‰aªªª8�NœN'6›­Éj½O‘¶¤ÉzO •••:t(z�¢\:uêDJJJ÷Pää ÉzÛWýëidâ^Ã0‡ÃÑÿ†B!‚Á áp8º�ˆˆˆH[‹T¼ÄÅÅEƒ—H%ŒÍf‹îS?|QÓ~¾�“õª"æ’’’¢°EDN:õ‡(E†'…ÃáhÕ‹Åb!Gç�1M3ziKõ+]"�Lý(„‘ö§ FDDŽ[caLD$˜‰T˨FDDDÚ[ýy`ê0€Biw bDD$&cLÓlÈÑÉ|U #"""íåðù_ê¿?Q#AAŒˆˆÄÌáa Ð � ‡Ãz“#"""¢©¦±û"mIAŒˆˆÄTýæðû‡WȈˆˆˆ´'0r"P#""m¢~uL侈ˆˆÈ‰BïM¤£(ˆ‘6Sÿ Žæ…‘ަðEN bDD¤]è��ˆˆˆˆh°¾ˆˆˆˆˆˆˆH;Q#"""""""ÒNĈˆˆˆˆˆˆˆ´1""""""""íDAŒˆˆˆˆˆˆˆH;Q#"""""""ÒN´|õ Ì4M ÃÀ4M¬V+6›­£»$"""""""ÇAAÌ È0 ¼^/¡@%ÖðWXÍBt…¸>¸Ýn\.WGwQDDDDDDDŽ�‚˜LMM žêÏÉJþGj-‹%ºÍðú¨(îBaÜdewm°MDDDDDDDN|š#æRQQ�á{‡îYoãtûŽZlñ.2N)'+îöïÛN8î žŠˆˆˆˆˆˆÈ±Ps‚¨­­%ä]Gfú,@qI�Gþ¯€Ëf}Åä‹wðã¿æ½å¸Òéžø4íÞÏ{ï½—±cÇ2vìXÆ�ÏÌ™3yâ‰'­ncΜ9¼üòËÑû×]wï¼óN“ûƒAÆŽK~~þqõ]DDDDDD¤£ihÒ ¢¬¬Œ^�Ö6öpó­{)«bš&¦i²mG€­Û«Ù¹ËÃÍÿ¯®ôxâ >À㹌„„„víë´iÓ¸þúë ìØ±ƒûï¿Ã0øéOÚªãG�M¿~ýÚ¸—"""""""'UÄœ|>NóXãêVEzøÑ””ú‚”*£¤ø�—P(Ä+)`ó–jÒ>Åãñ´{ív;.—‹äädÎ:ë,.½ôR>ÿüóVÿ£ýˆ3Ï<³ {(""""""rbRsðz½Ä[7uC’6ý£ŠP(DEe%¡��Õj%   …B¼³´g‚ó„˜'¦¤¤„>}úDïO›6�Ï>û,zçÎ�Lš4)z¿¥¡H†a°hÑ"f̘Áe—]ÆoûÛÛƒÁ O<ñÓ§Oçâ‹/æá‡¦¶¶¶Aû+W®äöÛoçüóÏgÓ¦M±8M‘㦡I'€`0H’½H¦°0@(Â4MvV§›Í†ÍfÅAøê´v̯ï“O>á£�>Â0 Ö¬YÚ5kX´hQÌÚúé§Ù¼y3 ,ÀívóÜsÏ5ؾpáB***X´h¡Pˆ ðÔSOqË-·D÷¹çž{¸õÖ[ùñ�Ì)§œ³¾‰ˆˆˆˆˆˆUÄt0¿ßO(°�„ø YYq„B!B¡NW ññÄÇ»‰�w2BC!²:}ÀÁéó¾}û¸ãŽ;¸óÎ;yï½÷ðù|¼ùæ›1i;ðÆopûí·“››K·nݸí¶Û¢Û=o½õ7ß|3iiitîÜ™yóæ±víÚí\tÑEL�:•ÜÜ\\.WLú&""""""r¼TÓ�ü~?¥%ÿ¤gößÁ_÷XV¦ƒa§&ðéæ Œ �=ÙŽÕf¡²¢¯×‡iš\xaa_E‡ô{úôéщy½^/ï¾û. .dذaŒ=ú¸ÚÎÏÏÇ0 úöí}Ìf³E>pàáp˜n¸!º¼w(Âëõ6hgðàÁÇÕ‘¶  ¦ƒDB˜YK°ÙÂàL Õb±»ùŸ»s¸bîfJK:TŠiš„M3lrõ쌞 @Uq)f‚Ù¡çÏe—]Ƈ~È–-[¢AŒi[¿B¡áp˜p8ŒÕzdÁVbb"üãINN>öŽ‹ˆˆˆˆˆˆt Mjc¦iâóùðx<ÔÔÔPSSCEEEÃ0-`zòèÕ3ž¿ýe8Ó.Î"5͆ÕfЀy`0wÿbÁCXúÉ™”—— vÌ¥úRSSIJJÀår±oß¾Û[;©p·nݰX,üóŸÿŒ>V?ÔÉÊÊ">>žuëÖÅ ×"""""""íK1mÈçóQQv€×2’]û±9ÂX¬`&–$+|;´Æ (ß½•½eý8}x-››ì,÷ß×øðš`ñ~Ö­wSìʧŸnÄjµÒ£GO, ‹…¸¸¸ÃybÍ0ŒhøS[[Ë–-[زe ×^{-C† á�wÞaÔ¨Q„Ãa~øáfâ”” 0M“øøxÎ;ï<}ôQî¾ûn233y饗¢ûÚívfÍšÅSO=Eff&§Ÿ~:¥¥¥”——Ó¿ÿ6;gi=¯×Ë+¯¼ÂŠ+8xð ñññäää0gΜ˜,]?nÜ8âãã›]}MDDDDäD¥ ¦�:tˆ8ËJzfmKäѺ$KýWÝ4ðíaŶYtÎêCAÑ»tÉ bša,v;Ë¿‹–ŒÚjj¿ÞÎ{ë’ø²|0ÉÉ’’øôÓõ$97�‘PJذR>“¸Äa¤¤¤´É¹-^¼˜Å‹u!Jnn. , wïÞ\ýõ<ðÀÌ�;—.]º0qâDòóó›loÆŒ<òÈ#ìÙ³‡ùóçsóÍ7óøã�óóŸÿœäädÎ?ÿ|ºtéÝÿª«®Âét²páBŠŠŠHKKcÖ¬Y bDNáp˜ÿþïÿfÓ¦M¤¥¥qÚi§QXXÈæÍ›¹âŠ+:º{üò—¿dùòå¼øâ‹ æ£i––wé�çljK#Û¬õ¶Eî×ÿÙþíÍ Ä®êêêíÇ:‡Ik:tˆû¤&ݺL“’ýiø§’êþ;=N© ôcÔTöUc|„ª*U•R]Ç›ÿº�=ãéÓËÉÔ *HI6h¯ªÀä�åFºuëÞ6')r+//oÞIûÙ¶m×\s gœq�?þxtRíÚÚZœNg£s?­ãÚó8À IDAT­ˆQ#"""râp8¤n›Ð··Èüæa?Sï>õoêC~k>ü·ë䫪ˆ‰1¯×‹5¸šÔô‡0¥¥!^y­” USV"5ÕÆ9#¹bfg:eØÁb¡s÷2\Õ¯‘”\·ú�5Î vŇx=©ø|�9T;‘ZÇ™ŒšØ“à‡«);”Ï´‹ª BüêþB6}æ!%Õ•3;3yR*fÉs”•ÝHzzzG½"ò=SRRÔ/¡Pˆ¸¸8ÜnwtŸp8Ì /¼À{ï½GQQ½{÷fÞ¼yœsÎ9GìóþûïSTTDnn.×^{-#FŒhð|Á`�k®¹†¯¾úŠ|�¼¼(ãáû{3 CbBÿ﮽üó‹jj<ØÚ¸ç¾jR’s1bΜ9ôë×�5kÖàp8¸úê«èׯ§Ÿ~:[¶láꫯ欳Îb÷îÝüèG?bÈ�!ÑçÊÌÌäÆo䡇bÁ‚üùϦsçÎüð‡?dñâÅ\{íµüÇü%%%x<î»ï>úöíËÒ¥KùÍo~ÃèÑ£™;wn“C DDDDDbÍÖÏÙšå{šÚÇÒÈ6K#ÿ­ÿ³õÛ›�ºóµßyç�7¶º·GÁëõâ .%.! €äÄ8^£€`0Dbbª$ßyååå-ñ‘Žçp8> ø© e"Á Ô….õ¦Þ}ê=ÞÔ‡üÖ|øo×`GsÄÄP||<ûˆcú+¢�ÝuG.ó®éŽÅbR[ë£ôP~Ÿ‹Åäúëzò?¿Ý×(ÙÃ�Ê‘�VÃ@]ELye %åuÏát%’Úy2Û‹¯`ÅÞŸòiÍÝÔfßFv�ºòý@È ª›óë=û›œoAÚÏ“O>Ùèã†aðÇ?þ±�{#""""""íI¥1ät:‰ït.5“˜™„ÅjÇf³ð³›r¸êòSX½þ‡Jütêì$ot':wþ÷Ü0FU)ŠIÈ×ä\¦iba\ññœ>ü\|^/YYY úï9b<;v g¯þÑÇ++«i‹J ï‹?ýéOÑŸMÓ$''‡Q£Faµ6Ÿgz½^þú׿2sæLÍÓ#"""""ò=§ &ÆúôÉáãµç01ísp¦Dïœéä²iÝ=&TVHí®�l®ø çœÖü²Õ­ÕXà¢æø]rÉ%$%%QSSÃ’%KHOOgðàÁÍãv»9÷Üsq»ÝíÔK9QihRŒ9rNaý–~`„ ü`>|­ŽðáÙ±‰ŠO–³©äBú�>=º¼ªœØ9å”S¢Ëò6Çb±Ð»wïfWÑïUÄ´�®]»âó]̲µËùjW£N/£Ï*âlaÂá0¦ßKmy5;þegãžaäô8‡œásZœ\Ôb±›Ý§)áp˜¸8[‹ÃhZR\\̺uëêVˆr¹;v,™™™¼øâ‹ôíÛ—;vpöÙgGW&Y»v-Á`�ôôtŠŠŠ˜;wîí6·ß¢E‹ÈÉÉ¡°°Ó4ÉËË£{÷î-ögÑ¢EôéÓ‡¢¢"FŒÁîÝ»)))Áf³1~üx²²²8pàëׯÇï÷“žžÎøñã�Fä÷ûÉÏÏ'))‰ýû÷“ŸŸÏYg�Ô ?zíµ×˜3g‡bÕªULŸ>¨›æúë¯oô¼×­[G  55•`½ßoS}jìu‘“ƒ‚˜6Ò»woÊˇSX²Œ¿-ËÂfÍ$5чÓ¤6`£Ê�®«�83g2½{÷n±Íøøx\ÖÕå$¥¥¶º/¦¦hß>Æ�5§ÓÙòM¼ûî»L™2…ŒŒ öîÝËÒ¥K¹òÊ+±ÙlTWW“’’ÂUW]…ÍfÃï÷³téR¦N�JFFß|ó {öì9¢Ý–ö …BœqƤ¦¦òÕW_±zõj®¼òÊû …>|8©©©lÛ¶�eË–qå•W’œœÌçŸÎúõë¹ä’Kðz½|ðÁ\rÉ%$''óÙgŸ±aÃ&NœØ Ÿ¡PˆÕ«W“””D(¢¶¶–½{÷2hРc~=ß{ï=.¾øâèyïÛ· Ù>þ:‹ˆˆˆˆˆÈÉCALñz½T”WFïÛìqxƒ.|†…pØÄf70uÃZ*++ñz½M®–‘˜˜ÈE�ËâÅË(/aw:°„CGT¹X­V¬6 Õ•UT•â¬ôæ´Ó†WELaa!©©©dddЫW/>ûì3JKK£U(l°zzztÿnݺ5:qKûY,RSë‚§ÜÜ\V¬XѪþÔ?®oß¾lذ�äääèý-[¶DÛñz½¬Y³€`0ˆaGô3!!!:G À®]»XµjÕ1W¤’––Öèy·Ô§ú¯³ˆˆˆˆˆˆœ<ÄÄ�ßï' øê«ñÙæºú‡§Ó�ÃaÇf³a�oC˜@ ĦM›ILL¤oß\v»½ÉÊ•ÈêHË—¯£ººš´´”#‡ÃAN¯nükçnF�ìÏL>î{ Ã8"H Ñpçð9PÂáp“+@Ë~‘çˆDôíÛ—Õ«Wãõz±Ùl„Ã�ÏÔ”Æúßš>i®‘“—‚˜©¬¬äÍ7ßæ«¯vÆ¿?”×ú,uU* «3l6MÂá0á°‰Çëå�7ÞÄf³bµÚèÛ7‡‹/¾ˆ”””FŸkèС¤§§ãñxˆ��?"`±ýöî<¼©2}üÿ;KÓ¤M[šBéF¡”}E�µlâ°º|D·3®ã(ÎwœñÒqTtTÑQFÅe@ÅÅAʾ/¢´”¥@÷…îKöä÷GMLÚ¦MišÞ/¯\$ç<ç9÷99�'wžE¥â¿LttCë�äää€ÌØÇæÍ›)..¦{÷îàp80 -–/))!66–sçÎa±X€†$Ä‘#G4hP‹å�/Ý»w§ººšÓ§O“’’‚ÓéÄfkhi䊱¹ÄXaa!¡¡¡DDDàt:±Z­OQQ555ÍîÏÕmª¥ãö“ æ,„B!„7IĈÝn§  “ÑØt�¿uü8OAAa³]c<%%%µ¸>,,,àƒ¸êt:¦M›Fzz:v»½^ÏŒ3|vwÒétL™2…o¿ý¥RI×®]݉³ÙÌwß}GRRݺuóY.�ñøÂÌ™3Ù¾};ûöíC£Ñ0tèPâãã½bX³f *UàÇááá̘1hh¥2iÒ$Ö¯_�N§#::ÚgW³¡C‡òÙgŸ1cÆ ¯ãŽ��E¯×·Sjj`¦7B!„BÑ9:£�ƒ?ûôUFÑÌ:¥Ç:×kÏçê¡@ ­©©Ét:�~ì�sçÎñÚkË©«­mw]áz=¿ûÝoéÚµk"»pÔÕÕñå—_rÓM7¤œ¾TTT´: ™B!„¢ói4š�€ °fÀöãÃÕÍÄÙè9¯ñXîëK¾?_þ› h…´ˆ ���ì6+ee•í®K« ½dº ÔÖÖ¢ÕjQ«ÕdddøœÊßrB!„B!ÄÅL1¢R©Ðju”�+kw]©©½.™i‰Ïœ9ÃÑ£Gq:�ÄÅÅ1nܸv•B!„B!.f�ñm?Ð]“Íüëù\ÉO]”T€úñÇ¿ÏïhÛ ºº›ÝF·n1ÄÆv=¯G\\,—_þ  èI$cbcc2dC† ¡W¯^>Çoñ·œþ0™LîiÆEðýïÿ£  €ž={6Y÷Á`±XHHHèð8œN'[·nå›o¾!##ƒ¤¤¤vÏçËÇŒB¡ 66¶Ù×þn÷sv)ž‹Æ×{[�±µòí9g�þ[¼Xß?»ÝÎÒ¥K0`Z­ö¢=!„¸˜=õÔS¯ñSW$û�ÿ:ðî.Ô¸ëPP»š´ˆ �Føñc4x`»ë2 ~Oç,„“Þ½{ûýg÷îÝTVVrÍ5ל׾Ž=J^^·Ür …­V{^õˆ _{¯•ŽÒ–ë=ØÚÛ…z¾…Bˆ‹…$bÈ`0´yêd!„ø9¹êª«‚¶¯ÊÊJbcc}Î`&DG æõÞVrlB!Ä¥N1B!‚æã�?fèС <€³gϲk×.ÊËË §oß¾Œ3†°wï^Nž<É�!CHKKóªËétràÀ2220�ÄÇÇ“––Fdd$›6mâ‡~ ++ ƒÁÀüùóÝÛ®_¿§ÓéþEßn·óÚk¯qùå—3a¬V+Ë—/ç¶ÛnC¯×³k×.Nœ8�Íf#55•ñãÇt`u‹ÅªU«èׯ#GŽäã�?&55•œœJKK‰ŒŒ$--ÍÝ•¤¥ãoëñ}ýõ×-îË“¯÷¬µ˜\>Ì?ü@}}=qqqMÖ7w.ìv»ÏóïëZi)N»ÝÎÎ�;9}ú4µµµèõzFŽÉ€€†nvjµš©S§º·Ù¿?ÅÅÅ\sÍ5-n M¯÷¶ìÛåôéÓ8p€úúzºwïΤI“èÒ¥K³×PK穱Ʊµv½¹´ô·YXXHVV%%%M¶oKl¾Þ;ÎYkÇáp8ؽ{7YYY8�NzõêÕdÿ-�ó–®ñ={öpêÔ)n¾ùf”J%V«•÷ߟѣG3hРfß3!„?O’ˆBÑ)Ìf3_}õãÇ�§_¿~ÔÖÖb³Ù>|8V«µÅî{öìáÌ™3Ìœ9µZÍöíÛùì³Ï¸í¶Û˜}ü>¾Ööå©¥÷¬µ˜ª««±Z­-Ûܹ8Ÿóß–kËh4’••EAAf³™ªª*¯©©©dgg“˜˜È©S§HIIq·Fii[´¶}tt´×Øs*•Š„„Ê˲ԈëÔŸk %ž×¯çöm‰­µ÷Οsîë8*++q8tëÖ­Ù²Ðò9÷çs'>>ž~ýúñÅ_0mÚ4ôz½ßçO!Äχ$b„Bt …BÁu×]G^^™™™|õÕW$%%1kÖ¬V·µÛí8�N‡×—?•JÕ$™áKïÞ½9{ö,)))( ºtéBïÞ½9rä  ¶¶–„„ª««øÕ¯~u^3/Ùív–-[æµì†n >>€=zPQQÁwß}ç÷ªþ¿¿Ç×-½g­Åd6›�†16|iî\¸flËù÷÷Ú²Z­¬ZµŠ>}ú0jÔ("""øä“Op8î2ýû÷gÓ¦MŒ?žììl.»ì2¿·mÉùnïë?Ÿó,m‰­¥÷®½çÜápàt:½ºšùÃuÎýýÜ ó:n!„¢1éš$„¢S%%%1mÚ4n¼ñF²³³©­­u¯óõ+** ÀÝe¾à—””ã×~{÷îMAAÙÙÙî®&)))”––’••E�=P*•DFF¢ÑhÈÎÎ>¯ãS©TÜwß}^W ""‚k®¹†ýû÷û½Žßßã;ͽg­Åå~íKsçÂßóßܵÒÒµPRR‚ÑhdìØ±ÄÄÄ Ñh8wîœW¹¤¤$¬V+yyy”––Ò³gO¿·m‰?Û{v%s)..nöoïuÚVþ&?àübkî½kï9oîm¬¥sîÏß]EEGŽaܸq¤§§»�B!„'IÄ!„8›Í†Édòz4n a2™ÈÈÈpÆ™ŸŸOHHˆ{ðV½^O~~>555MºGh4ÌæÍ›)..¦¾¾ž­[·¢ÓéÜ_”[Add${÷îu'*4 l߾ݽL©T2|øpvìØANN‡Ãý¥ÐE§Ó¹[Î4÷º5ÉÉÉŒ=šo¾ùƯ19ü9~�¯-ZzÏZ‹I«Õ’ššJzz:îq5¿·�Ï…?ç¿ñµÒÚµå†Åbáûï¿Çd2¹Ç^ñœÅI¡Pзo_¾ýö[z÷îínùà϶�y^þl_SSÃáÇÉÏϧ¾¾žíÛ·ãt:IMMmRŸ?ç)PZúÛlN[bké½;ŸsîI£Ñ0pà@6mÚDqq1uuul߾ݫLKç¼µkÜét²aÆÎW\A·nÝšÔ/„B€tMBÑ~øá÷ôÑ.wÞy§×k³ÙÌÉ“'Ù¹s'‹….]º0cÆ ÷ÝpæÌV®\IRR³gÏöÚ~âÄ‰ìØ±ƒ¯¾ú ‡ÃA�=¸öÚkÛgïÞ½Ù»w¯W×Ô·ž �+¯¼•JÅÖ­[©©©!,,ŒáǻNJ6l›6m¢¼¼œ™3g6yí�+¯¼’¢¢"Ö­[ǼyóZ-ïÏñû{|þjí=k-¦©S§²eË>ùäìv;ݺu£k×®Mìm|.Z;ÿ�¯• &´§Ktt4cÇŽe÷îÝìÚµ‹ž={º“žú÷ïÏwß}ç5¦Ž¿Ûzj|]´¶}ll,Ý»wgÛ¶mTUU‘��Àõ×_ïnÉÔ¸¾ÖÎS ´ö·Ùcké;ŸsÞXZZ[·neíÚµ„††2hÐ ¯DNkç¼¥küàÁƒX­V† À¤I“X¹r%ýû÷'))©Mq !„¸´ùßA6¸ûôUFÑÌ:¥Ç:×kÏçê¡@ ­©©Él©�ºââVQQáÕõC!„BqaÒh4`Ì€íLJ«¬³Ñs<^ã±Ü×—|¾ü5A ]“„B!„B!‚D1B!„B!„A"‰!„B!„Bˆ ‘DŒB!„B!D�H"F!„B!„"Hdúê 0›ÍØl6:z¦&…BAHH�¦C÷#„B!„Bˆó#‰˜ät:)//ÇdªG­R¡Rul$»Í�Ýé 4T‡Á`@¡èŒÙÉ…B!„Bá‹tMê@µµµ�u„jB:<  R+Ñ„¨1™ê©­­íðý !„B!„¢m$Ó�ŒF#*eðO±RáÄh4}¿B!„B!„h™tMê@‡ƒ�ïSl2Y(+/G€v¢„˜ÚÐP÷¢� 6{ v „B!„Bˆ@‘DL™L>\·c¨- õjÍjn™y­W2F!„B!„IÄQÞ¹Bjú:A¡ h½µN9%ôë‘Ðz…"�:zæ8!„BˆÖÈ„&âB ‰˜ ªs¡#þî ê즨طôôt¾þúkNž€¬¬,î»ï>6lØÐæ}øá‡¼ûî»lÙ²…Ù³góÀàp8øðÃùú믩¬¬dÈ�!îýCC÷§›o¾™¯¿þš~ø�§žzŠ#Fœ÷9âRæÙâÅõ°ÙlX,”J%:�Ž��”J¥Üð!„¢Ã9�NV«£ÑˆÙlF£Ñ V«›$däÞD‹$b‚(RÎ )“9[WˆÓ˜dŒB© 9<ލ�Žïd2™ÈËËcРA>Ë„„„�””ÄÓO?Mhh(›6mâÙgŸeàÀ�$''7»Í‡~ÈÆ�Y¼x1111>|˜.]º´9¾Öö=þ|ŒFc“®I+V¬`×®]<õÔShµZ–-[ÆþðV®\IHHO>ù$=ô¿ýíoIJJjslBü4NÂ8Ìf3QQQ¨Õò¿!„B—B¡@¥R¡R©ÐjµØl6jjj°Ùl„††¢T*Ýå$#‚E,1¼‰áÝ:;ŒóRPP€Óél5Iríµ×ºŸßzë­|õÕWdff6›ˆ±Ûí¬\¹’矞þýû0uêÔóޱ-û††V4ÿùÏxå•WèÝ»7‹/æÆodÇŽ¤¥¥0kÖ,æÎ�{Þq q©óL¸º�F ëäè„B!¨Õj¢££©¯¯§¾¾�Nçîº$É,’ˆ~‹‰‰2‘‘‘>ËUUU±aÃŽ9BMM ùùùî_Å+,,¤¾¾ž$ƶìŽÅf³Ñ¯_?÷2­VË AƒÈÉÉq/§sçΑ“s–êšêf×[¬VòóóÉÏÏÇjµ5[¦¦¦šœœ³œ;w®#Cõ…Á``ïÞ½>˘L&.\ȹsç¸óÎ;yúé§éÓ§�Ï�9kkkZ¸ÓßÙUÚºo‹ÅâþâèI£Ñ ÑhüÚ¯¢�+c±XÐét’„B!ÄM«Õ¢ÓéÜß dVG,’ˆ ²ŒŒ >Ìñã'Ø·w………^ëÍf3{wï&33“ÌÌLvïÞ�Åbñ*SPXÈÞ½û8~ü‡&33#hñÏ›7�?ü�‚‚‚f×;vŒªª*.\HJJ aaaœòó 0™Œµ·yóæÑ¿~ó›ß°fÍNŸ>Mnn.7ndçÎ� jkkùüóÏ©®®fóæÍ¡eMaa!N§“ÈÈH&L˜À?ÿùOrrr¨¯¯gçÎ�� Ç3tèP¾úê+ŠŠŠ(((àùçŸÇjµ6[—?ûŽ��å»ï¾£¨¨“ÉDXX3fÌàÅ_䨱cTTTðÊ+¯Í•W^ŒS*ÄE«ñ ŠÝnÇb±œYÜ„B!!""‹ÅÒ¤•¼$cDGQuÂ>ýél竌¢™uŠfþõ|®üñ¡¦áxÕ�?þø}~GÛµµµ(=R]¹9yTT–{•1™,ôé“ê~}`ÿaPxÿÁ——W‘ššâ~�™™éÝÛE¥Ò`0D»_;œ ×~&%¥RÉôéÓÑjµ¤§§³råJÖ­[GQQ)))\qÅ„††òþûïóÉ'Ÿàp8HJJ"11Ñ=ott4+W®äðáÃL™2…+¯¼’ãÇ�óÖ[oññÇSPPÀÈ‘#Ñëõ 2„C‡±|ùröîÝË”)S8vì·Þzk“º®¿þúV÷Ý«W/233Y¶lÇŽcêÔ©\yå•ñÎ;ïðÙgŸÑ­[7þüç?»»U¬]»–x�##.l&“I’AäÙÆétvÈg�B!DGQ©T˜L&÷ K€{Œ+¦ã=õÔS¯6ÀØü×x~1nœ»¨³d�qU:£ôXçzíù\ýã#´555™ÁÈn¡öHuUVV‘¾y úˆŸf9w®’›oþ?÷ëôÍÛ°ÚLî?x§Ó‰Z­eÒ¤ñî2ÿùx51]JºÔÔÔ“–6�èèŸf3²Ù½[‚ñsRQQA|||g‡qÉóì–d·Û1�„‡‡£Óé:92!„Bˆ¶1�ÔÕÕ¡ÓéP©T^ÓZ‹Ž¥Ñh&À ˜iHʸ3Ð�tñ|ŽÇk<–ûú’ïÏ—ÿ &v¤kRué…R¥!/¯˜ò²*²Oå1p ÷lA#®¼‚ì“ù”–”SZRΩ“y\yå^e ÄéÓy”—U‘—WŒJ¥ñJÂ!DGóœ)Éõ°Ûí2ȵB!.J�»ÝîuoÒ=It ™¾:ÈfÏžÎÉÙ”••3nB2 ñݽÖëõá,¸ýf22¯4°?º0ï™G.»l0Ýb»’s&‡˜}úÊ ²BˆÎáy³âp8št›B!„¸(•Jwwk×CZÈŽ"‰˜ S(ôí—J_R}–Ñ…i>ü²ëIˆïÞ$‰#„�Åuã"7,B!„¸) ÷K®qb„è(òÓe'¨7)(,Æjµ5»Þétrî\9ee>›Â)l&4eGQšª:2T!„hU šî~ûí·Œ3†ÜÜ\¯åŸ}öÓ§O§¶¶Ö½,==�ë®»ŽU«Vy•õµü|Ì›7�ÿûßç½½ÅbaĈäååµ^¸�Ú›B!š'Ý‘D°H‹˜ ;xà_}µ»ÝNDD8¿š ? ªk·ÛùèÃ5œ<Ù0­uß¾½¹ùW×yeeCKŽÐ}ý¨êKqª4”�ý 5ýo ú±!„§öÜ´L™2…µk×òüóÏóÊ+¯PYYÉÒ¥KY¼x1z½žÌÌL^zé%òóó)..voëky{¤¥¥1`À€Ö v‚ 9¶æ,[¶Œ¼¼<ž~úéÎE!„h‘$`D°H"&ˆê�Fw ¦¦Ž/¿ü†{îYà.s`ÿwî$ À‰Ù8p„‘#‡¹—ÅìxU}) »…˜¥®çÕ8´QA:!„¼G}”o¼‘-[¶0qâD^~ùe.»ì2¦L™À_|Á”)S¸îºë¸ÿþûÝÛùZÞ‹- H=áBŽM!ÄÏ‹ÙlÆh4b6›±Z­îÁnÙUY¡P T* !44�NGhhhÀê¢3H"&ˆN�<ëN¸–x½þþûÌ&Û9’ᕈєy—QØ-h*ObŠÀh…"¸âãã¹çž{xá… eÓ¦M^ÝŒ}ôÑf·óµÜÓO<�Ãáà™gžº�3†ùóçóàƒP__ÏäÉ“ùôÓOyì±Ç¸á†˜;w. , --�Ý»w“••Ebb"üã¹üòË�†ÖŒo¼ñÿûßÿ°ÛíŒ7Îkÿ‡ƒwß}—µk×RQQÁe—]ÆÿøG‚Û²eËøßÿþ‡ÓédòäÉlÛ¶�¥K—’””äçÎ�;yã�7ÈÎΦk×®L�:•ûî»�Ç{ �NÇÿûÿÏ]öÝwßåÈ‘#,Y²Äçvï½÷o¿ý67näúë¯çÑGÅjµòú믳aÃÌf3iii<ðÀ„……¹�iâĉìÚµ‹'N�œœÌc�=Æ‘#GøüóÏ),,dĈ<ñÄDGG·úþ !„,£ÑHuu5F£Ñ½Ì³5IãdL{3®™ív;&“‰ªª*´Z-‘‘‘ètºó®WˆÎ$cÄQdD8v›w"ÆXoòzíp6žœvïe §½IœÍ�7#„“[n¹½^Ï}÷Ýǽ÷ÞK÷î�”|„ ìÛ·Ï}“¸ÿ~ a\—ƒ’””Dbbb“í+++yýõ×ùýïÏš5k2dˆ;¡°téRvîÜÉ’%KX¾|¹×�)À›o¾É·ß~ËsÏ=ÇÊ•+Ñh4,\¸«ÕÚá±½úê«ìÚµ‹_|‘7ÞxƒÊÊÊfÇ®©®®æ‘GaΜ9¬[·Ž%K–0yòd¦M›ÆöíÛ½n²·lÙÂÔ©S[ÜnÁ‚Ü}÷ÝLŸ>�={ö¸“fÏ?ÿ<ùùù¼÷Þ{|ðÁäççóꫯzÓ²eËxðÁY³f ÉÉÉ,X°€ÜÜ\ž{î9Þÿ}òòòxíµ×š‡BˆŽUVVFqq1F£Ñ=¸­ÝnÇápx=\Ë$&&ò׿þ•ºº:¶nÝÚ¡±™ÍfV¯^í36O¥¥¥X­VÆ�Gdd$©©© 4€±cÇb49zô(ååådee1a„·kN]]Ÿþ9?ü0ƒ�ØØX.\è•xrÓ Aƒ0 ÜvÛmÜ}÷Ý$''“œœÌœ9s8|ø°Ïý!„,‡ÃAQQ555^ ½^O\\={ö$55•ÔÔTzöìI\\z½Þ+!�‡¥¦¦†ââbަ?f q!“DL)•J~ô>.»l0†.]˜6u"óo¹Á«LÏž=¸ï¾»IŒ�'1>žûþ¿_Ó«W�NŠX²eË:u{!.&¤§§3tèPžy晀ÝXéõz®¸â öíÛÀŽ;˜2e cÆŒaÛ¶m@C²cìØ±>ëP*ú_fBB:�Žúúzòòò°Ûí^èz–ÍÏÏÇf³y­×ét :”3gÎthlùùù-Ææ)%%…#F0oÞ</^ÌÞ½{ÝëBCC™0a‚;ž­[·2jÔ(ÂÃÃ[Ü®9gÏžÅápp÷Ýw3gÎæÌ™ÃŸþô'êêê|SïÞ½�†.Zžñz¾BѱJJJ0�^ ˜^½zKxx8jõO£^¨ÕjÂÃÉ��¥W¯^M2�LƘL&JKKVŸÁ cÄ™^ÆÍ¿º®Å2}ûõ¦o¿ÞAŠH´Å¹sçØ³gåååX­V¢££™4i]ºtéìЄ¸$<óÌ3Ìœ9“E‹qà 7ðÉ'Ÿ0oÞ¼€Ôísdܸq¨T*’““IKKcõêÕ̘1ƒââb† ÖzE?rõw·Z­îfØÍ%9,‹û¦Õs½F£A£Ñthl6›­ÅØ<)•J^ýu8ÀÚµkyä‘G1bK–,`êÔ©¼õÖ[Ü{ï½lÙ²…iÓ¦ùµ]c¬\¹’¨¨ód>�A !„hYYY™»+’Ýn'66ÖïÏpµZMll,¡¡¡”””xͨÏr“ÉDyy9ƒ! õ ÑѤEŒ~ÊÉÉaÆ 6Œ[n¹…Ûo¿�±cÇ¢×ë;;4vîÜIEEEg‡!D»|ýõ×?~œE‹¡×ëy衇XºtiÀ¦¤ž0a‡bëÖ­Œ?€qãÆqìØ1Ö¯_ϨQ£¼~ÍóW� ­:ä÷z‡ÃAFF}úôéÐØ\ƒñúŠ­9ÇçÉ'Ÿä�wÞaË–-””4 *?vìXòóó9}ú4‡b„ ~m¸Ç«�†A™ÃÃÃÙ²eK›�G!DðÕ××»»#µ5 ã)**ŠØØX÷ÌJønJ�ÇhâB%‰˜ ËÏ+dùò÷xæéòŸ�ÖP[[פÌöm»YòÂk,yá5¶ïØã_Å2ç}‡r8lÛ¶�éÓ§“��€R©D¥R{^_Ž­¸¸‹ÅÒÙaqÞª««yñŹÿþûÝÉÍ«¯¾šË/¿Ü=›P{ÅÇÇ“��À[o½åNvèõz† Æ?ÿùOŸc°´&,,ŒY³fñ÷¿ÿ�£G�rîÜ9^~ùe¯õsçÎåÙgŸ%##ƒòòr^xá £G�îÔØZCmm-™ÇNp“GW¥ÌÌlܸÕýzã7[èc`À€¾-Öm/ˇ„º‘’’¶oßN}}=Z­– & Àûï¿Oß¾}9vìW]uýû÷§°°�mÛ¶aµZ1 sÇw4©·¥ro¾ù&©©©át:™8q¢ûæ–âyóÍ7éÝ»·û×ôQ£FqêÔ)JKKQ©TLž<Ù=#K^^;vìÀl6c0˜}: …‚Õ«Wsûí·»ËlÞ¼™o¼Ñ¯}ýôSRRRøå/Ùæ÷IˆÎöÒK/‘’’ÂŒ3¼–ÿéOâÆodýúõLŸ>½Ýû™0ao¿ý¶{jg€I“&±{÷îfÿfýõÇ?þ‘_|‘x€ÈÈHfÏžMBÂOÊ�<ò¯¼ò ?ü06›�Q£Fñꫯz5ÉVlW_}5Ðt¬˜šš6mÚÄÒ¥K©««£gÏžüãÿpwŸ‚†Ù“zè!þö·¿ù½ÝÌ™3Ù±c7ÝtÇ祗^â®»î"44”^x�¢¢" ·ß~{‹ƒü !„>“Éä5.LLLL»ëŒ‰‰¡¢¢…Báþÿ` »(™ÍfBCCRŸ¥3:Xû³O_eͬSz¬s½ö|®þñ „ÚšššÌ@6ƒó¥¨¨õO] ÉÊ:ÅG~êUF­VóÄŸt¿þðƒO8~<Û«Lß~©Üâ1¨o¯7ûÑø³*gØŸ±�¸ÍýÚf‡¸¸¸ÅO, ~ø!³gÏ&&&†3gΰeËn½õVT*¯¿þ:“&M¢_¿~¨T*Ìf3|ðsçÎ%&&†œœ¾üòK-ZäUokå^ýuæÏŸO—.]8qâ{öìáÖ[oõ+×v¤§§së­·Éwß}Ç©S§¸þú멯¯gÕªU\ýõDFFràÀ***˜:uª;Æ3gÎpäÈæÌ™Óì¹q8ÔÖÖ‰ÉdbõêÕL›6�¸¸8–-[ƽ÷Þ‹Õjå£�>bÆŒtíÚ“ÉDhh(F£±ÅDŒkû–ö±fÍÆŒC÷îÝÛü>]Š***ˆ��ïì0.i®ÏP×�™Íf£¦¦ÆÝF\¸ÊÊʸæškرc‡W’Å999Ì›7��7^Ý2…Bt¬ŠŠ ***°ÙlDFFìûEQQÕÕÕ¨Õj”Je@ÇýŠŠŠ:ïñóòòˆˆˆ@­V£R©Ü?ZȸdK£Ñ L€0¶®fSÎFÏñx�Çr__òýùòÔ.&Ò5)ˆý!]êë½û1–•W5Ù®¢Ì{ì�z“÷Ûæp€µKŸEé[QQ]ºtqgÂ]# —••¹Ë 8ÐýåÞõ+§«|bbb³7ý­•S(îÓ>}ú¸[µ�çv}ûöE£Ñé~íjºXTTD}}=[·nåË/¿$''‡ÊÊJ¯ÃÃÃ[lê¨T*±Ùlìß¿Ÿ]»vQ__ßd�ââbÂÃÃéÚµ+Z­¶MêþìßóÞï“âç%++‹¤¤¤6'aÒÓÓ9r¤$a„âgÀétb2™Üƒ¾ò³_¯×»ë ô,Jf³9`u ÑQ¤kR¥öéE}�‘°p …›ÝN·F]]®=œÕÿù/ºpÐ�¨5k„W™<ÍR¬{Ñ„4$aΖE¢èyE‡Ço·Û›Ü¸[,Ÿ™b‡Ãá×�¾¿å\ûpí§µx<5^Öxæ’¸¸8fÍšås¿ÑÑÑX,rssÝÝ¢<•””°yófÒÒÒ0 TTT4³Åb± Ó隭ߟ>²þìÚþ> !.mgΜáìÙ³ >œ²²2–.]Êm·ÝÖú†Íøæ›o¸á†Z/(„â’`±X܃ôjµÚ€Õ«Õj±Ûí¨T*œNg@ïO=ˆâB%-b‚H£Ñ°èww¡p*8WRA7ƒ�»î¹Å«Ìˆ+/güÄ«¨®¬¡º²†‰Çpå•—{•QÏÿ'™ÊÉ|:Œïªc»õß(B:¾d\\EEEî1W p8>ÇMq•wÍœqîÜ9wâÀn·sèÐ!Ìfs‹å�/Ý»w§ººšÓ§O Ù«Õê£Z­fìØ±lܸ‘Ó§O»³÷eeeØl6ÊËËÑjµtëÖ »ÝNQQ‘»Å‰J¥Âf³Kaa!ååå@Ãÿ$œN':�«ÕJaa!ÐТ¥¦¦ÆŸkû–ö¡ÕjÝÛê¼!. 555¼óÎ;\sÍ5<ðÀÌš5‹ë¯¿¾Íõäæærüøq&NœØQ !„¸¹îyG@'¨P«Õ#"ФELkœáMé�Ì“Oý±Åmf;šY³¯ö¹^Ù•È…o´¸ÏŽþG§Ó1mÚ4ÒÓÓ±Ûíèõzf̘Ñl Wù)S¦ðí·ß¢T*éÚµ+!!!@C“Áï¾ûޤ¤$ºuëæ³\ ãñ%$$„™3g²}ûvöíÛ‡F£aèСÄÇÇ{ÅØ¿ÂÂÂØ¿?ééé( “&M"55•ÜÜ\>øàt:ñññî$ÉСCùì³Ï˜1ciii¬_¿ž��t:“&M",,ŒI“&±~ýzt:ÑÑÑ„‡‡»ãsm?mÚ4Ÿû6lÛ¶m###ƒY³fä¼!. C‡åÝwßmw==zô`ïÞ½ˆH!ÄÅÀÕe(Ð]‡š«_ˆŸ¬·a³˜Ðê׌ÏF£‰�6àƒõ¶W]]_~ù%7ÝtS@Ê á‹ ÖÛñd°^!„âÒæp8ÈÉÉqÏD4xðà€µŠ±Ùl=z”ÐÐPBBBP©T랤R©Îû~Dëí2X¯¸ü‚‚ ï³ öéKmm-6› €ŒŒ RRRÚUN!„Bž­Ô�Fc %Û&�u5æOËz!:›tMê@J¥’’’b"#"Pª;-[sœN'»ƒ’’Rzwü,Jþ8sæ G�ÅétǸqãÚUN!„B¡¡¡ÔÖÖ¢P(¨¬¬$""" õVVVzMÂH¡¡?v¦í%‰˜¤Óép8Áh2RXXè5kGˆˆˆ >>Ç�À^† Â�!CVN!„BÑñ :�Î�0)**">>¾ÝÝ“l6EEEhµÚIÆ\(߃„h‰tMê@z½ž¤¤dÊ+*ƒ2z·Ãá ¼¢’=z¢×ë;|B!„BˆK—V«E§Ó¡T*Q©T¡  À=þJ “0Z­VZĈ‹‚´ˆé@ …‚aÆqâÄ P‡tì ½Z­–„„úöí+J !~Ö^yå~ÿûßwvB!ÄEM¡PE]]*•ŠÂÂBÂÃɉ‰9¯úÊÊÊ(,,D«Õºè ä÷–ÈÈÈ€Õ%DG’DLS*•ôïߟþýûwv(B!:Pee%[·nE¡P0{ölŸË„Bˆ‹�+AFTTååå„„„�••EÿþýÛœŒ)++#++ ­V‹Z­F©Tº[Å"!Ý’ÄECº& !„øÙÛºu+åååç½ýÎ�;Y»v-�¦ÅeB!ÄÅF©TÒµkWÂÃÃQ«Õh4Ž;Æ™3gܳž¶Äf³qæÌŽ;†F£ñš:P­a´Z-ƒ! u  Ò"F!ÄÏ^QQýúõ;ïíûõëÇUW]ENNGŽñ¹L!„¸˜¸%J¥’¸¸8œN§{’‚‚rrrèÑ£111„……¹òµÙlÔ××SVVFnn.jµšÐÐP4 !!!^‰˜ö&c´Z-ݺukß� d’ˆBÑéœN'[·nåÔ©S¨T*zôèÁäÉ“(..fË–-ÔÕÕ¡Õj™}šÜÜ\ú÷ïßlF!„¸Tx¶Šˆ��E§ÓQQQA]]6› »ÝŽÃáÀétº·q%b\‰׿®Az=ën+­VKdd¤Œ #.Z’ˆBÑ颣£©­­eóæÍ¤¦¦’œœ 44{ŽŽŽv·.éÝ»7#ß‹ IDAT{÷¬ ³ÙŒ^¯'66ÀëfÌétòù矓��ÀÀ�ÝuÕÕÕ±yóf !Éc·ÛÛ§B¡àšk®aÅŠÄÆÆò«_ýªÝÇ.„B\è<“1 …‚ÈÈHÂÃ鯯§®®£ÑèþÿªÓét'b\W ÏîHþ&a\u…„„ŠN§“)ªÅEO1B!:]TTwÞy'ÙÙÙ=z”íÛ·3þ|G“Án- J¥‹Åâó—0…BAJJ ™™™Œ9�FChh( \{íµ-ÆrúôiŸ]“èŽÇó=!„âRçÙŠÅõÐëõ„‡‡»[Ãx¶ˆq%P<“2ím #Ä¥B1B!:�ÙlÆf³Ñ·o_zõêÅ›o¾‰Ùl&>>ž 6PTTD\\ùùù8�NbbbÐétlذ�òòr V«µZí¾¹>|8ÕÕÕ¬[·Ž9sæGUUÙÙÙôîݧӉÍf#$$�NGuu5qqq¤¤¤øìš°~ýzfÏžMFFßÿ=C‡ ÖiB!:•B¡hÒâÅ•€q%a<Ëz¶|‘$Œ?‘DŒBˆNW^^ή]»¨­­Ån·3zôh÷x/¿üå/Ù¸q#v»½^ÏìÙ³Q*•èõz¦N�ÊW_}åN¦L�:Õk°Þ´´4Ö®]ËæÍ›™2e sçÎ%==�Ý»w£Ñh¸ì²ËèÛ·/Ç'==�ï¿ÿžë®»Îç‚ûöí#,,ŒÔÔTøè£�HLL”�…Bül4N¤¸^7—ˆiéµ?g�ñ×àÏ>}•Q4³Né±ÎõÚó¹úÇG(hkjj2P!.ÄÇÇwv—4×g¨ÃáÀn·c³Ù¨©©!))©“#B!Dgh-s1ÈËË#""¢ÉÌNã±\L4Í@ÀX3`ûñᚊËÙè9¯ñXîëK¾?_þƒš �1B!„B!ÚE’Bø¯ý“· !„B!„B¿H"F!„B!„"H$#„B!„B$’ˆB!„B!„¬·ƒ8�Î&#‡›B¡�A³„B!„Bˆ ˆ$bÌf³a4©+3a³Ø;-£P(PkT„ÇhÑét¨ÕòV !„B!„�M¾��Ñhä‡ '9¾ºKµ½³Ã@©¢ß¼î ™šŠN§ëìp„B!„BˆŸ5#&@ìv;¹Ç 9únÑ“„°TÛ9úïBò²Š°Û/œ¸„B!„BˆŸ#IĈÙl¦àp9N[çŽ Ó§ÍIþ¡2Ìfsg‡"„B!„Bü¬Iפq8Ôœ«íì0|ª9W‹Ãáèì0„—¸òòòÎA!„Bˆ š$bèBNt:¶ôôt¾þúkNžúˆÄÄÄÙ‡¢yƒ¡³CB!„8/õõõ�‚ø™�DL€8�N”Ê ·§—R© Ø Nÿûß9|ø0wÝu‹-Âjµrüøqôz}@êB!„B!.U’ˆ ›ÍFX˜°tv(ÍÒétØl¶v׳qãF:ÄŠ+w/ïÓ§O»ëB!„B!.u’ˆ »ÝNm�™Zû…Ùœ­¶F�Y“V¬XÁ]wÝå•„ñdµZY¾|9;w´”ØØX,XÀôéÓ}ÖiµZy뭷ؼy3f³™ñãÇsß}÷¹§Û¾çž{?~<{÷îåĉ$$$pÿý÷ó‹_üh8÷o¿ý67nÄáp0zôè6ÅsÏ=÷póÍ7óõ×_óÃ?ðÔSO1bĈvŸ+!„B!„¢1IÄ�EeE? ´³Ãh–IÙþ“L&yyy 4Èg™��’’’xúé§ eÓ¦M<ûì³ 8�äääf·yå•W¨¬¬äÍ7ßÄf³ñÌ3ÏðÆoðÀPUUÅ[o½Åo¼A||<ï¼óùË_Xµj!!!,_¾œƒòÌ3Ï ÓéX±bE›ãyòÉ'y衇øíoKRRR»Ï•B!„BÑIĈR©¤ç𮌿æÂlI±~íæv�aSPP€Óé¤K—.-–»öÚkÝÏo½õV¾úê+233›MÄÔÕÕ±víZ>ù䢣£øõ¯ÍŸÿügw"&**Š[o½Õ�ºå–[øïÿK^^‰‰‰¬Y³†¥K—º»G=üðÃ|óÍ7mŠgÖ¬YÌ�;·­§D!„B!„hIÄ�BqÖ«P´»Ž˜˜ !!é³\UU6làÈ‘#ÔÔÔ�ŸŸ�ÙÜ|‹œ¼¼<‹-BñcŒ6›­ÉˆåžI¤¸¸8t:F£‘üü|ìv;}ûöu¯W©TmŽgðàÁ~œ!„B!„¢}$píOx\¨¢¢¢0 ìÝ»—4[Æd2±páB&NœÈ�wÞI÷îݹï¾û|NŸíšié_ÿúW‹É�Æ<“6‡‡ÃÑl‹Ÿ¶Æ#„B!„Bt¤ · ÇÅHñÓC¡T R«Q©Õ(” ÷r§Ó‰ÅjÅbµâÄ´å�ÊÍ›7�?ü�‚‚‚f×;vŒªª*.\HJJ aaaœÍÓO?Ím·ÝFhh(¯¼ò ÅÅÅDGG3þ|ú÷ïïWLøÃXºt)úÓŸˆŒŒä—¿ü%ñññ~Å#„B!„BKg hâÏ>}•i®�‡Òc�ëµçsõ��P ÐÖÔÔdzv_ „òòrN)`üôá?öc"ÆÑh_®ñI�iÒ‘Ë¿ùr3C†À`0´á¨„¸8UTT¸“q¢c¸>Cv»›ÍFMM�Lÿ.„Bˆ‹V^^¨ÕjT*•ûû”"Ÿß4Í@ÀX3`ûñáØÓÙè9¯ñXîëK¾?_þ› h…tM 4�1Y8q4§EJ•¥JÜåBq{衇xðÁ›,æ™g1bD“™Ôrrr9r$ÕÕÕíÚï‚ øïÿÛ®:Zb±X1byyyíªgÞ¼yüûßÿîô8šÓÞØ„B!~n$@ 9� õ?!„¸p]uÕUBq�JLL$99™¸—íÚµ‹±cÇ’––ÆŽ;Ü­eœN'û÷ïgôèÑX­V^|ñE®»î:ÆŽËõ×_ϺuëÜu<öØcüíoóÚ×»ï¾ËC=Ô$†Öꂆ®Lï¼ó÷Üs'Ndþüù>|ؽÞn·óÚk¯1{ölf̘Á /¼Ðìñ>ñÄ<þøãî×®®C/¾ø¢{Y}}=£G�&??¿IªöÆáp8X±b×_=“&Mâþûï§   h±-]º”Y³f1sæL–,Yµ×^Ûl·©�;w²`ÁÆ�ǵ×^ËÒ¥K�ÖßW_Û½÷Þ{¼ýöÛ¬_¿žQ£Fñ�ühxï_~ùef͚ŴiÓxúé§½ºÃ-X°€·ß~›_ÿú×Lœ8‘Ûn»�ŒŒ >þøcn¾ùf&NœÈC=DEEE“cBˆK‘Ñh¤¸¸˜ÂÂB*++1�X­VN§Óý¯ëÑN§»ÝŽÉd¢ªªŠ¢¢"Š‹‹1�:!‚O1È×Oãå9ûKXý»­øð8><ÎêE[È=XÚæzZ[.„²Ñ£G{%bvìØÁرc5jõõõddd����ÙlfèС„„„УG^xáV­ZÅìÙ³yòÉ'9{ö,Ó¦Mcûöí^Ÿ‰[¶laêÔ©MößZ]•••¼þúëüþ÷¿gÍš5 2„G}«Õ ÀÒ¥KÙ¹s'K–,aùòå>o'L˜À¾}ûÜqíß¿€ôôtw™ƒ’””Dbbb“íÛÇ›o¾É·ß~ËsÏ=ÇÊ•+Ñh4,\¸«ÕÚá±½úê«ìÚµ‹_|‘7ÞxƒÊÊÊf“0ÕÕÕ<òÈ#Ì™3‡uëÖ±dÉw«¨–Þ×–¶[°`wß}7Ó§OgÏž=<úè£<ÿüóäççóÞ{ïñÁ�ŸŸÏ«¯¾êuLË–-ãÁdÍš5$''³`Árssyî¹çxÿý÷ÉËËãµ×^krBq©)++s'B\I»ÝŽÃáðz¸–y&dõÅd2QRRByyy@ê"Ø$P?5?±Ûìäää�““ƒÝfkqùžw2±Û~Áns°ûíÌ6×ÓÒri#„¸ÐyŽc2™8rä£F�"44”Q£F±mÛ6öíÛÇ•W^‰J¥àÆo$55•ÄÄDî¼óN8zô(cÇŽÅh4º_———“••åsû–êèÒ¥ ‹/fÈ�! î¸ãÊÊÊÈÍÍÅb±°jÕ*/^L¿~ýèÑ£‡Ï±HÆŒCMM 'OžZpüîw¿£²²’ììlöìÙøqãšÝ¾=qX,V®\Éã�?NŸ>}HLLä¯ý+uuulݺµCc3›Í¬^½Ú¯sTZZŠÕjeܸqDFF’ššÊ AƒZ}_[Ú®9uuu|þùç<üðà bccY¸p¡WâÉuLƒ Â`0pÛm·p÷Ýw“œœLrr2sæÌñjù#„—‡ÃAQQ555^ ½^O\\={ö$55•ÔÔTzöìI\\z½Þ+!ôãššŠ‹‹›Œ1'Ä…Nƈ 0WºÃáp�—{P���à>ÑÍ-¯.ªoROuQ=Š6ÖÓÒr!„¸Ð�1³ÙÌñãÇ)--eàÀ�DDD0qâDþóŸÿpï½÷6¦²²’¯¿þšÃ‡SSSC^^&“ €ÐÐP&L˜À¶mÛ2d[·neÔ¨Q„‡‡7CKu¹¸¦²HHH@§ÓQ__O^^v»ÝkàZϲžôz=W\qûöí£oß¾ìØ±ƒ—_~™¬¬,¶mÛFïÞ½Ù³g�<òˆÏóu¾qäççc³Ù¼Öët:†Ê™3g˜2eJ‡Å–ŸŸï÷9JIIaĈÌ›7�ñãÇ3wî\FŽ ´ü¾¶´]sΞ=‹Ãáàî»ïv�i`³Ù¨««óyL½{÷ºh w¼�g÷BˆKIII‰W+˜ÈÈH juÓojµµZMxx8ƒ�òòrª««Q*•îÏÚ@�#c2™(--¥{÷î©Oˆ`�1�öcã•ZÅe— ã²Ë.oøÕ¶…åÝšT7(ºÍõ´´\!.t:�ŽË/¿œ°sçN¯ãÇ�çĉràÀF� 4ôQ¿ãŽ;(--å·¿ý-/¼ðýúõÃn·»·�:uª»5�¯nIþÖÕ×�¤«o¼¿¿ÊMœ8‘½{÷’““ƒJ¥"99ùÿgïÎã›®òÅÿ¿²'Ý›î¥EJ¡XÙ÷E(»ˆ(ˆƒ8—AGt†ëx}øgÔq†;Þ¹÷þÆYtÆQ¸¢èྌ¢ ›,JY”E+(ûRºotM“&i>É÷LlèN|?�<Ú|>çsÎù$åC>ïœó>Lš4‰ììl***(++cèСª«3ýp:�¾o1›ÒëõèõúËÚ7—ËÕá×H­VóÒK/ñüóÏ£Óéxâ‰'ürû´ö¾¶wÜżÁ¾wÞy‡µkײvíZ6nÜHvvv‡Ï¯é9 !Äõ¨²²Ò„Q…˜˜bcc[ Â\L«ÕKLLŒ/™o S)Øív™¦$®)ˆ �ǃZóý4 �FKhX8¡aáh4Ú6·Oø��DôñÕ‘„‡uºž¶¶«5É#„¸ê�;–ƒúòÃxEFF2pà@þùÏáËMrìØ1jjjxôÑGéÝ»7AAAœ##ƒœœ²³³™0aãÇ�çøñã¾d²ù€ÛÙ~´´ßívsôèQúôésYû–””ÔfßZ2|øpþð‡?°råJvîÜIyy9ÐþûÚÚq€/_ @BBÁÁÁìܹ³Óç#„?6›Í7IQbcc ït=áááÄÆÆú‚1øiJ’ÀW\+$ �‡Ðˆ K:6¢G÷¼2™;ŸÏ�ÏŽçǯL&<±åaó—*2*T1Ýdùòå«KQ^{íµ€Õ'ÄÕf̘1ìÚµ‹ÆÆFRSSýöMœ8‘5kÖøFØÍfêëëYµjµµµdff¦Ãxéõz&L˜À³Ï>˰aà iøŽˆ ¨¨�ÇÓ¡ºÚÄí·ßΟþô'Ž9Âùóçyá…Z-Ÿ��@bb"¯¾úª/ØÂСCùÇ?þÑj–®ö#((ˆ9sæðç?ÿ™£G�RUUÅsÏ=‡Ùlö½¶ÝÕ·¦êêêX»v-åååØív¾üòKL&@ëïk{ÇÅÅÅ‘““CII hµZî»ï>–.]ʾ}ûP…²²2_rh!„ø¡«««ó�¤ »¤ ŒWxx8aaa¾¼1�VWWð:…¸$ �ƒ^{É+Kë ’†D“4$­^ð•«õz�bàüùólذ�·ß~›•+W²zõjjjjº»[B\7ÒÒÒ€ £.6qâD¿ü0½zõâÑGå•W^aîܹdee1yòäfÇNŸ>�ýû÷7›–´`Á6mÚÄO<ÑáºÚòä“O2bÄ{ì1zè!bccÛ äddd`µZ2dˆo›·Í¦çÙYíõã‰'ž`ܸq<þøãüøÇ?Æb±°téR¿é5WªoÞô犱X,lß¾�… 2uêTÖ¬YÃ_þòßô)hù}mï¸Y³f1hÐ î¹çß2Ý<ð?ýéOyî¹ç˜4i‹/æøñã—|ŽBq½°Ûí444ø1QQQ]®3**ªÙŠJ�b·Ûq8«OˆË¥;&4w¤ÍÖÊ´”ñDÝdŸ÷yÓßµß= €0Z,–c�JTTT`«±sÓ�~­7P}uˆps111ÝÝ•kV~~>{öìaâĉÄÇÇãñx¨¬¬l5I™×òåËùÅ/~�>(ŠÂ믿ÎÏ~ö³€Ôw½ª®®&!!¡»»q]ó^C½Ì\.‹Å7õäj“ŸŸÏüùóÉÌÌô#º_ee%·Þz+{öìñ ²t„¼¯BqyUWWS]]�Ëå",,Œøøø€Ô[ZZJ]]Z­Ö/�o „‡‡ûFAvVaa!¡¡¡hµZ4�ïKÉvyéõútÀ4ÀõÝÃ;lÊsÑï4yN“í­ÝäwäæÿŠŽZ�EuêjÎŒ{µöëÚàv»Ùµk3gÎô­�Û�½BtTVV£F�’›õ«Ð‰'HJJêtä}BˆËÉãñ`·Û}IÖy­ ¡¦¦·ÛðU”dDŒ¸H ærñxp:�À…yìx/,—°ÝÏ¥n�òòrvïÞ�ÍfÃh4’‘‘á F¼ýöÛôíÛ—ãÇ�3vìXúõëGII‰/߃Ùl¦¬¬Œûï¿¿Y½m•[±b©©©”––âñx˜8q¢/Ùd[ýY±b½{÷ö%Ú=z4gΜ¡¢¢�FÔ)S|ËܲgÏf³™)S¦ô}ΟÚÚZ´Z­_¦)«ÕʶmÛ¨®®FQÒÓÓ[ºßZ;m�cII »wïÆétáK2ÙV›-½Bü�mÙ²…ýèGÝÝ œ;w޼¼<†Nee%Ë–-ãÞ{、ºä}BˆËËétú’ô�Æ€Õk4QÍw ŠrÄIÓ„ìB\­$`ÞkˆÃá$çë/6d8z£á’¶{<àþ.¸¢V©üâ-�ÙN§“�7rÇwŹsçøì³ÏX¸p!�‹ÅBxx8÷Þ{/�‡ÃÁgŸ}Æœ9sˆŠŠ"??ŸÜÜÜfõ¶WÎår1|øp"""8uê;wîdáÂ…íöÇår1bÄ"""8zô([¶laáÂ…„……qèÐ!öìÙÃ]wÝ…Íf#33“»îº‹°°0ßÒ¹MsÔÖÖb2™Z}mL&“&M",, »ÝÎG}DJJŠßðͶÚië7mÚÄìÙ³}¯M^^^»m^ü^ñCVPPÀÉ“'}9fD÷²X,¬\¹’%K–˼yó¸ë®»:]�¼¯Bqùyó¸¸ÝîKZ-¯5Z­ÖWw ]Ž$ÀBšbNÕʳKÝ~ñÅéR·w]ii)¾$]½zõâË/¿¤²²Ò7 %==ݯ¼Ùlö•ïÑ£G‹CÏÛ+§R©|ó<ûôéömÛ:ÔŸ¦ÇõíÛ—½{÷æ{î]>µ´´›ÍFvv6p!Š®(Š_ƒƒƒÛÌ®V«q¹\>žÒÒR_ΕââbÜnw«yS¼åËËË� K?{Š¢�““ƒÃáh³\ ûÓš¸¸8êêê|Ó¡<�o´Š·�Z­–›o¾™ÌÌLrss}C)+++q¹\TUUa4‰‰‰AQJKK}S‚¼Ó¤Zk§#çØÒkÓV›B!„Bt•N§óýÞÐаzY×ÅšöYˆ«•Œˆ •JEqA)n·ûª»v» ó IJéÑ¥zL&Ó§O'++ EQ á¶Ûnk5êl2™˜:u*Û¶mC­Ví»0::DRR111­– dZ£Óé˜5k»wïæÀ�èõzHBB‚_ûõëGPP$++ •J…Ùlfòäɤ¦¦RPPÀ»ï¾‹Éd"!!Á÷w0pà@>ùän»í¶ÛIMMmó›¾6±±±¾Œõmµ)„B!DW êë/|¡[SSChhh@ê­©©ñH†&³ „¸ZuÇü…Ž´ÙZ™–Ö‡V7Ùç}Þôwíw Œ‹åX ‡ÁUWW³wó—L™=†Ð°p4jMÀW,ê4�lÖz>ù`=ÓoŸBddd·uÇjµ²~ýzî¹çž€”¢5ÕÕÕ$$$tw7®kÞk¨ÛíFQ\.‹…¤¤¤nî™B!Áãñ`³Ù(**Âáp`·Û:th—§'¹\.rrr0� ´Z-jµ:`A™øøøKÆŠV«E£Ñ´š‚A–^¯Oì@#à\ß=¼™—=ýN“ç4ÙÞÚM~Gnþ¯h²" F£{£§½‘¥’êªÊîî±q 4:]46ººä\GÕ××c4Ñjµ=z””””.•B!„B\F£“ÉDcc#�†ââbzöìÙ¥:‹‹‹}AŽ@8¼Á!®v’#&@L&}&±û½<œ­/®sÅY«�|ôÒ6ú»±Íå—/—sçÎññÇóÁ`µZ6lX—Ê !DG¼øâ‹ÝÝ…N dŸEaùòå«O!Ä“J¥"<<�FƒF£¡¤¤„ÊÊKÿ¹²²’’’_}�žžä]!Uˆ«�Œˆ  P˜—ÉÎj(++¤¢¡¸[û¦� 8"ˆØÑ:Ð-}0`´ßvGË !„B!.?o€$((ˆððpªªªÐétœ8q‚~ýúÕ©ú*++9qâ„o¼Z­ö�Š D0&44´[¾xâRH &€4 ·Ü6…©'ˆª Æín= ë• V«1›Íôë×O’¸ !D²³³0`@§W]B!®wÞÅ4Š¢ ×ë9~ü8=zô ))©Ýœ1.—‹ÂÂBŠŠŠ|9a=5Éh4Êÿáâš"�˜Óét2²C!®1¥¥¥¤¥¥uw7„Bˆ«Š7P¢V«‰��Çãñ`±X€ ¹^òóóINN&**Š   _PÆåra³Ù¨¬¬¤  ­V‹Á`@¯×£Óéü1] Æ�Fbbb;�µ IDATºv¢B\aˆBÑí<ÙÙÙœ9s�FCrr2S¦L ¬¬Œ�;wbµZ1�L™2…¸¸8***ÈÊÊÂjµĬY³öÕëp8øøã�=z4©©©äçç“���Ãá **ŠéÓ§sìØ1Š‹‹ùàƒHMMeÀ€lݺµY'L˜À™3gHNNfðàÁÀ…¼.£F�b̘1¬ZµŠ›o¾™°°06oÞLUUŠ¢Ð¿Æ�ÏúõëéÕ«—/`Ÿ““ƒÍfãæ›oöµcµZ[<`Ù²eôíÛ—ÒÒRÜn7S§Nõ%M,..fçÎ�8"##q:��~›„Bü@©T*´Z-‰‰‰TTTPUU…Z­¦±±‘ââb p»ý±Q«Õh4 :�­VëûÙtE¢® •‘0âš$�!„Ý.//�’’-Z„J¥Âåràt:Y»v-sçÎ%::š³gϲnÝ:î¿ÿ~<k×®åŽ;î 66–††¿Õá\.Ÿ~ú)C‡%55›ÍÆæÍ›™?>áááìß¿ŸÝ»w3cÆ Îž=KFFñññ,^¼¸Å~j4Ž=ÊàÁƒ©¨¨ &&†“'O2f̵µµ$$$ø‚$áááØívÞ{ï=RSSéß¿?_ýµ/sâÄ n¹å¿6L&S‹Ç&$$àr¹5j‘‘‘œ8q‚mÛ¶±hÑ"ëׯ箻î"::š¼¼ÍÈ‘#ùòË/©¬¬¤²²’Þ½{>¬º\.öíÛ‡ÅbÁjµR__Ojj*Û¶mÃn·ûF¬\üM^kÇz÷EFF�––ÆæÍ›())Ál6û^§¤¤$Y¾S!DÀ4 ƨT*ÂÂÂÆf³aµZihhðý¿êñx|�ïÃ;¦ét¤Ža¼uét: &“Iþ�×< Ä!„èvááá,Z´ˆ³gÏräÈvïÞÍ‚ p»Ýèõz¿²N§µZ�Óélõ›0•JEJJ ÇŽcÔ¨Qèõz ‰‰‰Üyç�mö%77·Õ©IéééôìÙ“ÂÂBòòò9r$õõõœ:uŠÚÚZnºé&àÂtª­[·2uêT¢¢¢¨ªªòõ;--�3gÎ`·Û¹ñÆ›µÓÚ±-�£÷ClK¯“BHMG±x!!!ûFÃ4ã  4 Êtu$Œ׋®OÌB!ºÈáp`·ÛéÛ·/Ó§O§¦¦‡ÃABB%%%”––PTT„Çã!**ŠøøxŠŠŠ¨ªª ±±Ñ÷`øðáôèу�7âv»‰��§¶¶–³gÏFÍ466FÓÔÕÕ�’’ÂâÅ‹›=¼#kÒÒÒÈÉÉ!<<­VKZZ§N�¢´´”¤¤$àÂ�&“‰¸¸8E¡¸¸Ø·zÝM7ÝÄ©S§8uêýúõóõ×;¦­c[“��@qq1eee”——ãp8ºö¦!„iHQ«ÕhµZ_î�N‡^¯÷%äõæƒñ.U-A!¾'#b„Bt»ªª*>ÿüsêëëQ…1cÆøò½Ìœ9“ÌÌLE!$$„;ZMHHÓ¦McÆ èt:L&Ó¦MóKÖ;iÒ$Ö­[ÇŽ;˜:u*sæÌ!++‹/¾ø½^ÏàÁƒéÛ·/Ç'++‹o¾ù†¹sç¶™@°W¯^¬_¿žÛo¿€   T*ÑÑѾ—}úô!//�7Þx“ÉD�=|Á”èèhêëë›Ím2dÿú׿˜9sf«Ç¶Æd21cÆ 6oÞŒZ­&..ŽÐÐÐK{3„Bˆ6\Hñ>oúeH[å„Ðÿ:ÒfkeT-ìS7Ùç}Þôwíw Œ‹åØÅ !Äõ£ººš„„„îîÆuÍ{ u»Ý(Š‚ËåÂb±øF„ˆ¶mܸ‘´´4úôéÓÝ]B!¢½@̵ °°�ÐÐÐf+;]‹çr-Ñëõé€h€ë»‡w).ÏE¿Óä9M¶·v“ß‘›ÿ+ �©IB!Ääp8(,,$%%¥»»"„BLÓÜ1¸¢mˆB!® ãÇ�“’’Òît#!„Bq}’1B!Ä4xðàîî‚B!„èF2"F!„B!„â ‘@ŒB!„B!Ä"�!„B!„Bˆ+D1B!„B!„Wˆb„B!„B!® Ä!„B!„B\!ˆB!„B!„¸B´ÝÝ!„×�ªªªîî‚B!„W5 Ä!„³ÙÜÝ]B!„¸$6›­»» ~ dj’B!„B!Ä"�!„B!„Bˆ+D¦&�ÛíÆápàñxº»+~T*ƒµ:pq·¬¬,>ûì3NŸ>�Õj%))‰Ù³g3{ö쀵ÑÔâÅ‹™3g³fÍê–ã/W]B!„B!~X$ 6›�ãÇOpôè ÝUŒQ©T8ì.úèG¿~iu¹Î?ýéO|ýõ×<ðÀ<üðÃ466ròäIBBBÐc!„B!„âú%�˜°Z­|¾ç T˜qËDT*UwwÉ�Çãá›oޱgÏçŒ7†àààK®+33“œœ^ýu¿zúô鈮 !„B!„×5 Ä€Õj¥¦¦–q7�$;ûsBBZtÔ×[;v$z½. í;�Nþ¹öNMX‹ûõJÎÌž=±Z­] ļþúë<ðÀ­ÖÑØØÈ+¯¼ÂÞ½{©¨¨ 66–ûî»�3føÊ,^¼˜ñãdzÿ~NŸ>Mrr2�?þ8ß~û-ëׯ§¤¤„aÆñä“Oá;nÏž=¼÷Þ{TVV’žžÎ¯~õ+’““;ÔfgûðÑG±nÝ:ªªªèß¿?�=öñññ|ûí·lÙ²…“'O’��À/ùK ä«ÿÕW_eÇŽ8&L˜À#�<‚Édºä×]!„B!ÄõA1àv» 6a³5pà IôêÕ³ÅrçÎåc³5<c³Ù©3¥ÒÖ»Åýºº³Ølv‚ƒM¸ÝîKnÇn·SXXÈM7ÝÔj�NGRRüã1 lß¾�?ÿùϤ§§Ó³ç…×¥¶¶–×^{�+VÇÒ¥KùùÏÎ�~ô#þ÷ÿ�ÇÃïÿ{V¬XÁ“O> @QQÇ�gÙ²eÄÄÄðÚk¯ñè£�òþûïc4Ûm³³}|ï½÷ÈÌÌdÉ’%DEEñõ×_û‚B555lذ�åË—“˜˜ÈÊ•+ù¯ÿú/>üðCt:/¾ø"555¬X±—ËÅ3Ï<ÃË/¿Ìc�=vɯ½B!„Bˆëƒb((ÈÄáÃG¨¬¬nq¿Õj#11á2´k$¬áNgE‹ûõŠ…  A]n§¸¸�Çã7J¥%wÞy§ï÷… ²aÃŽ;æ r„‡‡³páBn¼ñF~üã“™™É}÷ÝGdd$3gÎdýúõ¾zEaþüù¾Q'O=õ÷ÜsYYYÜzë­í¶Ù™>*ŠÂ;ï¼Ã³Ï>K¿~ý˜6mš¯|DD , ÿþüä'?áÓO?¥°°�ØØXÖ­[ǪU«|çò³ŸýŒßÿþ÷ˆB!„B!�˜@ÒëuddŒí†võübÞÈËÞNTTp! Öò4(¸0âeëÖ­>|‹ÅBQQ‡Ã¯LÓœzõê\Hxì ^ôêÕ‹††_™ž={’’’â{®Óé4hyyyn³£},))Áf³ùE-Ñé¾Õ�Éd¢¡¡�ÂÂBÜn7?ü°/W�ËåÂf³µZ—B!„Bˆ Ä€J¥¢¶¶–sç »»+mª«³t)‘pxx8f³™ýû÷·¤°Ûí<ôÐCLœ8‘E‹Ç#�<Òæ”¨–úÔ‘~êt:t:]§Ûl¯|}}=paÊ™F£i·Mûë]9êµ×^k3X%„B!„â‡I1àñxˆ‹�g̘QÝÝ•6ÕY껼¬öüùóyë­·˜6m‰‰‰Íö?~œÚÚZzè!ß¶Ó§OS^^Þ¥vkjj8{ö¬ï¹ÇãáØ±cŒ7®Óm¶W>11·Û͉'0`@§úGPP»wïæ¶ÛnëÔ±B!„B!®êö‹ˆŽPÓþŽüâ Voýœ­{rؾï0Û¾8DæÞ¯q)J§Újt¹È9z†²ó5ïc{æÏŸO¿~ýøùÏÎêÕ«ÉÍÍ¥  €ÌÌLöîÝ‹Ùl¦¾¾ž5kÖPWWÇŽ;|« ]ª²²2>úè#:Duu5Ë—/Çív3a„µNII �§Ýòaaadddð�üƒüü|l6{÷îõ›*Õ­VË‚ xùå—9x𠊢P^^Ή'ºtþBü,Y²„#F4{üæ7¿éÐñ÷ÝwŸ~úi‡ŸÒå¬ÛkÛ¶mŒ7Ž‚‚¿íŸ|ò 3fÌð�æÈÊÊbîܹ|øá‡~e[Û~)æÏŸÏo¼qÉÇ;�NFŒAaaàG“vµoB!„—“Œˆ m�4É+.ç|Us§ûç�q6ºØ�u�9SGw¨�¼ârŽœÊcÌ�),=ÏñÜB&Žìب�öúØZ­–矞O>ù„íÛ·óꫯ¢V«éÕ«³gϦgÏž<ôÐC¬\¹’×^{�Ñ£G“‘‘ÑåvûõëÇ�7ÞȲeË(..fРA¼ð hµÚµ9þ|ž{î9rssùãÿØnùßüæ7¼øâ‹<òÈ#¸\.úôéCïÞ½;´õ½÷Þ‹Á`àÅ_¤¬¬ŒÈÈH,XàKü+„hݼyóxä‘Gü¶iµ×ÏUË—/§°°�?þñ��>vêÔ©¬[·ŽgŸ}–_|¸0ZpÙ²e,Y²„��Ž;ÆóÏ?OQQeee¾c[ÛÞ“&Mj3—VwºšûÖ’®ü]!„âÚsý|º½Êå–1iÔÀfÛõ:-ƒúÝÀ¡ã¹ ¾1¥…#ý9•Çm/$æ5‡‡òø_þÉèAi ú€÷¹5jµšyóæ1oÞ¼÷/X°€ ´züŠ+üžët:²³³ý¶�5ŠU«VµzLgÛ9r$ÿú׿:\>44”%K–t¨ÿ›6mòý®R©¸çž{¸çž{Úì³¢9½^ï˵$šûÍo~ÃÝwßÍÎ�;™8q"/¼ðƒfêÔ©¬]»–©S§2wî\~ùË_úŽkm{W<üðéçr¸šû&„ׇÃACC‡ƒÆÆFEÁãñt)/åÅT*jµ�N‡Á`Àd2a0V¿ÝA1WÀ¾C'Ö¿O«ûS’âÙ²û+ í@ŒÛíÁhô¿èüþá_Ñ ŒBt‡ÆÆF–.]Ê®]»(//'..ŽŸýìg�ÎÅ”��Í›o¾Iee%ýû÷ç©§ž¢gÏž®ÿ½÷ÞcõêÕTVV2hÐ ž|òÉfù²êëëyà�˜>}:?ÿùÏ}Ûßzë-þùÏ�™™É]wÝÅo~óÜn7o¾ù&ëÖ­£ººšÁƒ·X/@BB‹/æ¹çžÃ`0°}ûv¿iF­MãêÈô®ÿüÏÿÄívóÌ3Ϧ�7Ž ð«_ý ¸°ºÝ”)Søøã�ùíoË�~ô#æÌ™\˜ž5iÒ$¾øâ Nœ8A�=xòÉ'2dŠ¢ðòË/³iÓ&Eaüøñ~í·õ:\‰¾-_¾œM›6áñx˜2e »víbÙ²e$%%ùõsïÞ½¼üòËœ={–èèh¦M›Æ#�<Âoû[L&O?ý´¯ì›o¾ÉáÇùÛßþÖêq­ý]466òÒK/±uëV“&Mâ±Ç#((ÈwN'NäóÏ?çÔ©SôìÙ“ßþö·>|˜5kÖPRRˆ#øÏÿüOߊ„B( ÔÕÕùMÝoš‹òâ`LW3�EQP»ÝNmm-F£‘°°°�Vâj$9b®€ªZ aÁ­_$<jMÛoÅÛkw V«p5ºü¶‡‡¤�Bq5hll¤¡¡Áïáv»Ñét$''óÜsÏñá‡rÇwð‡?üÁ·„}G°sçNž~úiÞÿ}Ìf3‹/Æn·w¨þ·Þz‹õë×ó?ÿó?|ðÁÌœ9³Ù ®¢(<õÔS¤¥¥ùaàÂ�óƒ>ÈŒ3Ø·oŸ/8²bÅ ¶mÛÆ_ÿúWÞyçôz==ô���-žÇO~òBBBxä‘GøÅ/~A\\\‡_ƒ¶dddpàÀßéƒòÊx}õÕW$%%Ñ£G�fÇ×ÔÔðÒK/ñè£�²zõj à (,[¶Œ½{÷ò·¿ý�W^y¥YÞ­¶^‡ËÝ·¥K—òùçŸó÷¿ÿ�—_~™šššs×ÔÕÕñÄO0{öl6nÜÈßþö7¦L™ÀôéÓÙ½{·ß�ÈÎ�;™6mZ›Çµöwñì³ÏRTTÄ[o½Å»ï¾KQQK—.õ;§åË—ó«_ýŠÕ«WÓ³gOî»ï> øë_ÿÊÛo¿Maa!ÿ÷ÿ×ì<„¢+*++)++£¡¡�ǃÛíFQÜn·ßûÍãñø=Án·S^^NUUU@êâJ“@L8œNg»—«íd¼Yû¿eDÿ¾m–;øFŽœÊG«ÓRQUÛé¾ !ĵà£�>b„ ~�¯¿þ€»ï¾›ÔÔTzôèÁ¢E‹HLLäÈ‘#®[Q,XÀ�!CHLLäé§ŸF¥R‘™™ÙnýŠ¢°råJ~ûÛß’žžNll,3fÌðû&Îãñð׿þ›Íæ7*¢-N§“wÞy‡ßýîwôéÓ‡=zðßÿýßX­ÖfS6½4 iiiŒ1¢ÃçßžqãÆa±X8}ú4paäÇüÇø­Z·oß¾f#Y¼"""X²d  Àl6sÿý÷SYYIAAN§“?ü�%K–�––Frr²ßôÏö^‡ËÙ7‡ÃÁG}Ôjßšª¨¨ ±±‘ñãÇFjj*7Ýt7ß|3 ¾¿™ªª*Nœ8AFFF›ÇµÄjµ²fÍüqÌf3±±±<ôÐC~�'ï9ÝtÓM˜Ífî½÷^|ðAzöìIÏž=™={¶ïß�Bt•Ûí¦´´‹Å†!>>žn¸�ÔÔTRSS¹á†ˆ��'$$Ä/ ,`±X(++Ãív¬N!®™št‰, ï¬ù•Q˰ÚNª×騳6ø�йÿ©çydáí—U‘’GDXÛ#[úÜ�@½ÍŽN¯åãÍ{1t LëElT8IñÑ�‡)„Ý¥éT“‹ÕÔÔðÙgŸñõ×_c±X(,,Än·w¸î^½z‘ššê{®×ë2d¹¹¹íÖ_TT„ÍfkóæyíÚµ>|˜Í›7£×wlÊhQQ.—Ë/±¬ÉdbàÀ�œ;w®ÅcŠ‹‹ÉÊÊbàÀ�<óÌ3¼öÚk¨Õ]ÿ^%$$„aÆqàÀúöíËž={xá…8qâ»ví¢wïÞìÛ·�'žx¢Õ:šö#11“É„Íf£°°EQüγiÙö^‡©S§^¶¾µÙ·¦RRR1bóçÏg„ Ì™3‡Q£F`0ÈÈÈ`×®] 0€ììlF�Mppp›Çµ$//·Û̓>èûÿÝåraµZ[=§Þ½{¦h™Íf_m6[«í!Dg”——û�‚ Ãl6·˜T_«Õ¢Õj Æl6SUUE]]jµÚw] Ôý‹Ýn§¢¢"`#D…¸dDÌ%R«ÕØ YËÛçw°õÄ>Nçžk±ìÄQø,û ß¶×þø(i½z0{êh¦õj³­¢²J>úl7k·ïã«#§‰�‰dû¾Ã<õ·7Ø´ë+6íúÒ÷°;œ:C!„¸z444pÿý÷SQQÁ¿ÿû¿óÜsÏ‘––†¢´=â°=z½½^ßnýÞ¥¡ÛúÆmäÈ‘„……ù%o�Óéô}£ØR¿ZòÌ3Ï0kÖ,–.]JQQ‘_bó®š8q"û÷ï'??�FCÏž=™4iÙÙÙTTTPVVÆÐ¡C;\Ÿ÷Cvcc£o¨zK:ò:\®¾¹\®6ûÖ”Z­æ¥—^âùçŸG§ÓñÄOðë_ÿÚ·Ú´iìÚµ ø~ZRGŽ»Xhh(ï¼ók×®eíÚµlܸ±ÕQRí�£BtUee¥/£( 111ÄÆÆvheC­VKll,111¾d¾�œ¦‚12MI\K$s‰ŒF#nè‹ëtÊðP,wG²´lÿÿ/‘µïs¿ ‹Ñ '4ÈÈ©s%¾mZ�†°� V믵XùdËç¼õévŽ�)`î-cYpûDúôLà/¯®Â¨×³ò™ÿ�ŸÏŸÁÌŒÜ:a8ÓÇ eçþo9v¦à²ž»B\iÇŽ£¦¦†G}”Þ½{ÄÉ“';µsuu5gΜñ=÷x<|ûí·ôîÝ»Ýú{ôè�ÛíæØ±c­ÖŸ˜˜È3Ï<Ão¼Ñæ sÓÜ/ÉÉÉäääø¶¹ÝnŽ=JŸ>Í“¼öÙgœ!„4›Í曎¤( ±±±„‡‡wºžððpbcc}Áü4¥‹ó� qµ’@Ì%Òh4¤§ßˆ®ðûNªC8«‰�Ãsø¯µ/ñþ¦µØ. k¿mâH¾:všÏsŽ·ZçÃx‰QwÿŠ'Ÿ}�-»s¸uÂ0î›3…iㆠÕh8“_Ê_Ÿ ëí?±â!9!æ¢>©™1a.EáÈ©üËsâBÑ Ìf3õõõ¬ZµŠÚÚZ_^—¦+ EDDPTTäûPwñóÒÒRÞ{ï=¾úê+ªªªxá…p»ÝLž<¹ÝúÃÃÙû,Æ ó½Oíwñß…V«å¾ûîcéÒ¥ìÛ·EQ(++ãèÑ£—tŽBÑuuu¾Q‹aaa—„ñ ',,Ì—7&Ðêêê^§—ƒbº $$„Góoß4ñ&ê&ñùàr~Ÿõ ÿ·úmJÊʹgæ z-ÿ\µ…?ÛÍæ]_±jÓ>ؘ͋o­cHz*k—ÿž¿>±ˆ»gŽ'Èä¿Tõ±3ù<²ðv z]›ý˜Ö‹ŠêZê¬B\zõêÅ£�>Ê+¯¼ÂܹsÉÊÊbòäÉ~e,XÀ¦M›|yB.~žžžÎ¼yóxþùç™7oùùù¼òÊ+hµÚÕÿûßÿž>}úø–µ~ç�w¨­mž<}Ñ¢E 6Œ'Ÿ|²Y›Y³f1hÐ î¹ç~÷»ßðÄO0nÜ8üq~üãc±XXºti³i%Ï?ÿ<)))Í–Ô~ê©§8xð ›7o¾„W¶¹ŒŒ ¬V«oigÀ÷ZŒ;ö’ë}òÉ'1b�=ö=ô±±±~�´Ž¼WªoÞ›Œ‹sÅX,¶oßÎÂ… ™:u*kÖ¬á/ù‹ß4²éÓ§³ÿ~ß´¤Ž×ÒßÅ<ÀOúSž{î9&MšÄâÅ‹9~¼õ/s„âr°Ûí¾ E!**ªËuFEE5[Q)Pìv;‡#`õ q¹tÇäᎴÙZU ûÔMöyª›ìÓ~÷0:Àh±XŽâ|}}=/¾ý…s h´ C‹å�VгhÛòå˯È1�8V!DëNœ8ARRR§ƒ0YYYŒ5J‚0BˆkžÇãÁn·ûšòºâ«7УbdDŒ¸H ¦ t:ƒ @}²…)@­\LÔ½B¨šb`K¯Ó,Y»Œ76®ÂR_ßbÙ¦TjŠÒú<ÊqCoäÐñ\¿mÉ 1—_½ÙÃm6¯¿þú[Zóüùólذ�·ß~›•+W²zõjjjj®HÛB!®^çÎ�cçÎ�Ô×ד——DzeËÊK¦dçIDAT¸÷Þ{/©®-[¶4›Ö&„×*§ÓéKÒk4V¯Ñhô[A)�š&?âjÕù儳ÙL�MÃÅÿÜ« í¥¨††ã jÿálšHŽ)rkøfç«ônŒáöá¹!9™– JëÅWGO3r`Z‹ûU*U³!s‰±Q?“O�¸®Ïå¼L&“&MÂd2]ö¶òóóÙ³g'N$>>�ÇCee¥|c)„‹ÅÂÊ•+Y²d ±±±Ì›7�»îº«ÓõpòäI&Nœxz)„WžwÄŠÛí¾¤•éZ£Õj}uÚåH,D I ¦‹´Z-a.•mׄèHKëÃ=Cg²aÿNŽÙò©iDêŸhW¥Ó ÜÁ)yþä§Ä406¡?G�õ ¬ÄFE°ëàQ†÷ï‹ZÝ|ŽâÁoO‘Ò#Îo›ÝîÀÔJÞš«�J¥"%%å²·ãv»Ùµk3gÎÄl6û¶ÇÆÆ^ö¶…B\ýÈ›o¾Ùåz’““Ù¿z$„ÝÏ;ZårŒZ¹¸~!~h$ÓEz½žÞ‘=(+«ÀÐÓ?èQé±`6Grï­wÒØèbÛ¾=(=JEš‚ºgpóÊÒ‚)Kƒ�˱mÝ×ô×%qçä�ê½5cïoØÉ�nç—[æ\QU5F è €ÛíA­Vq"·ˆúì\­V+Û¶m£ººEQHOO÷­RñöÛoÓ·o_Ž?ÎØ±céׯŸï¸`±X˜2e Š¢°jÕ*222HHH`ùòåüâ¿Àf³ñÑGñÓŸþ¸0�hÇŽÜ}÷Ým¶»bÅ RSS)--Åãñ0qâD’/UT[[‹V«õ Âtô¼V¬XAïÞ½)++`ôèÑœ9s†ŠŠ 4 S¦L!.îBÌãñ°eË***ÐétL˜0�„„„6ëïHΟ?Ï®]»°Ùl˜L&f̘App0�‡íÛ·SRRÒìÜ Ù³g‡³ÙÌ”)S ºô7_!„Büà¨Õj_°ÄårlTŒËåºlA˜‹W¼âj$�˜.Òëõ LOg߉sÐÓ?;w•ÎFCƒ“ɈN§åÖñ¹•‰|{â8™Yû8\‰zxDóiKqF,q°ÇVÆW[^&¹!œ»'ÝF|\,÷Ü6�-»¿¢ÁÞˆA¯Åát‘kæ–ñߝ޴òã-üìîXmö'îïT¢°°0ìv;}ô)))ÄÇÇc±XçÞ{ïE£Ñø7bÄV¯^͹sç(**¢OŸ>�ZѦ­v].Ç'""‚S§N±sçN.\èw|mmm›ÓŸÚ«ĈDDDpôèQ¶lÙÂÂ… ãСCìÙ³Çoøú°aÃˆŽŽ¦  €M›6±páÂ6ëo¯QQQlܸ‘Ûn»�èèhìv»ßê\ƒfÊ”)~çn³ÙÈÌÌä®»î",,Œ/¿ü’½{÷ú-¥*„B!D{t:v»€††BCCRoCC 96D§Óµ_Hˆn&�˜.R©TÄÆÆtXÝl½+g_û–±ÃFømÐïFô»‘ó••lØŸÍцlÛ¶­ÙñÁÁÁÔÕÕu¹þ¾}û²wï^ÂÂÂ|ÏsrrüꊎŽ. O�ˆˆ ¼¼œ=z´ùºµÕ—ËEpp°¯Þ¦IÒT*QQQÍν´´›ÍFvv6p!a™¢(í¾ÎB!„B4e0¨¯¯G¥RQSS°@LMMM‹9.Áp§fÂK1 Ñh±ë¹xkm¬‰£§rˈ�‹ŽŠâ§·ÎÅét²é‹l¾*=NU5êþ•”A!+Ïí ú“] �èÃm'7}ƺû¹îÔ�áåååìØ±ƒI“&a6›©®®Æét^èc;Qï jµºÕ²­%Öj«Ý¦Z»˜GFFât:)((h6m©3õ_<Ìñâç·ír¹P«Õª¿µ2*•ªCÉŒ›ž»^¯'>>žÛo¿½Ýã„B!„h‰÷s¨÷sfii) ]žžär¹(--Åh4^–`Ì•XDˆ®’ t¥ E©k¾fýy¥¶Ýcõz=SGÜÌäž#Э®Àñyy«eÕ½‚/,Ýû Oúï~¶›õûåŸÏä—òæšíŒܯÕ:.UUUF£‘˜˜E¡´´´Å@€¢(äääàp\xM233™9s&AAA9r¤Yy“ÉDcc#%%%À…Q‹¥Óí¶Ô¾V«åæ›o&33“ÜÜ\_†öÊÊJ\.×%Õß�ÇãË%S^^ŽÍf#&&¦Íú5M›}ˆ��¥¤¤„ªª Ë�766¶;—6..Žºº:rss}ý’eü„B!Dg�FL&jµ�FCqqq—ë,..F£Ñ´ùí¥2�2"F\dDL€$G'’{ò4Œðÿ‡žzEivcþ|%_ù†üºRÊܵTpö5 }¤'¹t¨ƒ5Ô�2�•wš¯²ÎÑ«1Š©7�ãÿóOžxp.齓šÓèêÚô”ÔÔT x÷Ýw1™L$$$´°p8:tˆ¤¤$  òåEYµj‰‰‰DFFúÊ«T*&OžÌæÍ›1™LDFFÜév[j?&&†~ýúÄÁƒÉÊÊB¥Ra6›™½Å2!!!Lš4‰Í›7£Óé0™LLž<¹ÍÄ»:�ŽY³f±{÷n8p!�ÑÀ�¤¦¦vúœ„¸V½øâ‹<ú裗¥îÚÚZ6lØ€ÓédòäÉÜpà íö¡µß»êrž§B¡R©Çjµ¢Ñh())!88Ø7=¾³*++)))Áh4¢Ñh>"Æ›B@ˆ«]à'å¦ÍÖʨZاn²ÏûSÝdŸö»‡ÐF‹År,�ºKKKÙºe;ç"k©�äƒÜ˜WÏÃú阌&œø†²Æ*ÊÝê"ñô FÔ~,Ì£xÀ®:;�%6\5B†ÇR·«Š$ÝЃp—W¹ÂÍÃÇ‘1fpó:<Þxã]¦ß2Å/IlwR…7Þxƒ|°»»"®3ÕÕÕ�J-:Ï{ u»Ý(Š‚ËåÂb±�”Ô<Ü.g€bË–-ÄÅÅ1xð`Ünw««3\+�˜šš²³³Q©TÜqÇ­nBñÃãñxP…ŠŠ ªªªp8Øívúõë×é`Lee%'Nœð�ZÑéthµÚ€�Œ mu•ÔŽ*,,$44­Vëµí§a]£×ëÓ;Ð8×woî 7øR²zšlkÊÓdßÅ:róE×Q—1 Ñh°Ûh(ªÅí6ú}(×&‡°bë§()F4#CPiÔ@P›sÂܵN�³ÌFc™·C!x@u»J0T¹‰�Š&ls#à 72öÖ¡ÄÄÆŠVÛr†ð²² ö}±Ÿ†Û%�ô¸\Î�;×bÎ!„¸Ò²³³0`@‡>ÀUUU1dÈàÚ_"sïÞ½œ9s†˜˜ßÆ–¶ !„øáR«ÕDGGãp8P½^ÏñãÇéÑ£IIIíæŒq¹\RTT„Á`ð r*Àa4»„âJ’@LDb£™#u ¨ô]P&„\øé°·x¼ÇæBeÒà,°âª´£Ö©ÑÆaÝ]‚¦Z!ÔdBs �tc©ÉI4º\Xë­4ØjÙ¾#«íΩT„ѧoojêjÚœÒr%y<NŸ>MFFFwwE!(--%--­Ce=ÏuóÍXZZcÇŽ%??ŸÃ‡·ºM!Ä“÷ÿ;µZM||<�ǗDZ¸¸˜üü|’““‰ŠŠ"((È”q¹\Øl6*++)((@«Õb0Ðëõèt:¿@LWÿOõæYâZ"�˜fðàA>|÷™<´7E´YÞmiD¬Å~¶¥ÒŽÆl@¥WÓ°¿ƒM…94 ýA+#"SI˜@c£ƒ††<öï‚9FSÇ“P™‚Œœ¯¬fèÐ!¾¼+ÝM¥R1cÆŒîî†â*áñxÈÎÎæÌ™3h4’““™2e eeeìܹ«ÕŠÑhdÊ”)ÄÅÅPQQAVVV«•   fÍšåw�s8|üñÇŒ=šÔÔTòóóÉÎÎÆápÅôéÓ9vìÅÅÅ|ðÁ¤¦¦2`À¶nÝÚ¬�&L ¢¢‚²²2Þ}÷]¢¢¢˜;w.[¶l¡ªª EQèß¿?ãÇ�oó\Ýn77n¤¢¢­VËäÉ“ILLÄjµ²yóæëêìy^lß¾}ÔÕÕ1}útEáý÷ßgÊ”)$&&6+Ý�wL!ĉJ¥B«Õ’˜˜è›¦¤V«ill¤¸¸˜‚‚‚f+ zü6�†äýÙtÚOWb:’ÝA1Ò¿È>|÷�ß_„}ûJO­Õ…GÎ\ ®J;¦�fìGÊq�¬ÇèÒ]b$Ôe`@jááahµ"Ãááá„„„IHHHwŸŽB\1‘‘‘Ô×׳cÇRSS}�ãââb"##}£4z÷îÍþýû©¬¬ÄápBll,€ß‡1�ÇÚ5kHLL$==ÝW—ÕjeÇŽÀ… �¢tm59µZ�Ëåbß¾}X,¬V+õõõm£R©|C¨o¸á"##)++#99¹Åº;užÕÕÕlܸÑWfܸq¤¤¤pë­·òúë¯Ë¿ýÛ¿ué¼…Bü°4 ƨT*ÂÂÂÆf³aµZihhðý¿ê�«V«}ӑ:„ñÖ¥Óé0 ˜L&Y¢Z\ó®Ö@Œ‡îYÑ©K4 a.5°í*EUb'DcÄ\lÃLéýGc 2¡×_˜é ¸˜Ífôz}ww_!ºMxx8‹-âìÙ³9r„Ý»w³`ÁÜnw³ë£ÓéD­Vãt:[ý&L¥R‘’’±cÇ5jz½Þ7:ðÎ;ïl³/¹¹¹­NMò;¼ÊÊÊØºu+S§N%**Šªª*œNg›õ_üÁÓår¡ÑhZ­K¥Ruê<###ùÉO~Ò¬¬÷ulúM¤BÑQMG±x!!!ûFÃ4ã  4 Êtu$Œ—àŠ®†ÔQWk æšd2™–šŽjËb�}H™ŒF«E¯ÓLXXáááDDD\U« !Dws8¸\.úöíK¯^½X±b‡ƒ„„¶nÝJii)ñññáñxˆŠŠÂd2±uëVªªª0›Í466¢Õj}î†N]]7ndöìÙÄÇÇS[[ËÙ³géÝ»7�—Ë…N§Ãd2QWWG||<)))­NMºXee%&“‰¸¸8ÅÅÅ 4ø~´Œwš©÷w·Ûí;Ÿ²²2¬V+±±±œ|8YYY|óÍ7Ì�;·Ã ûôéC^^o¼ñ&“‰=zøíC† á_ÿú³gÏöû]£ÑðÅ_P[[‹ÑhdöìÙhµÚV뺔ó¼Ø� "55•ÄÄDÞÿ}zôè! …BtÚÅ÷5Þç-bÚz.D<­ü~Ýè® i·µ2:V5y4=NýÝCèƒ÷§Åb9~ñ…Bqý¨®®n7Yªèï5Ôív£( .— ‹ÅBRRR7÷L!„Ý¡½@̵ °°�ÐÐÐf+;]‹çr-Ñëõ7 ±ÉOp÷€ï2ž&�¦Ü´¬#7þW<8p½Žˆi‰D^„B!„â2�`…€Ì={×oB!„B!„"�!„B!„B\q*•Jéî>t‡ë)ÓÚ0¦–¶·6L!„B!„WÆù¶uæÞþšt=b¼.NâÓÒþÚ+×!„B!„B\LQ”ã´~ßÞôÞþºr5b:kï�qWÆ ¸¿•dRB!„B!D÷©®®ÞÏ÷«#yïÙÿ_{wóâÆypü7Zɯaã]·ëÆm��äÐ@ 9„Òô”[H¡A¡9†Ü�ÒSýrJ‹Ï&/Ð\‚{i „L>˜Þ !YìÕÚ$û½õ°;ñXÑËH­fFŸÛÚéÑÈ—ýò<ÏL2K(mÀ)sˆgøbN»èƒáÇíÛ·ÿ¶¤±9¼ÿþû·bÄïì§?ÎXJ\Æ©bˆ™Eöžãß¶W_}õ_I’üouÀõu||üá›o¾ùE<9&�*µÞ×uU!fÅjÜž0O,KŠˆ^Dô>ûì³?–iyR¿ß�N§GGGqxxøÄãèè(:�Nôûµþ¿ÀH’¤wãÆ�wãô÷ó˜¾>ŽG�E£‘ÄåK—âé§7£ÕÌ÷UtºÝ8<8ˆ‡ÛÑïGlnnÆùóç£L³{€õµ···ê!Pb<øË³Ï>ûADtãq|ÉF˜I³_òþâ^ê@Sö3δð’ Ó?ý{/N¾ì$NfÆt···ßØÝÝýóYÌŒ9<<Œv»—/]ˆk;?Š��^þû÷ïÇW_}ß~ûmDD\¾|9žy晸zõjDD´šÍhmnÆææft»Ýxøèa´Ûí¸råJ\¼xq©ã˜f{{{ÕC˜ËÁÁÁª‡PkI’ôîÝ»÷N&¤&d²Ë’†oÀ3J©ƒË8« 1yg»,z~v³Ÿ^<Ž0Iœ|þîÎÎÎÛ·nÝúøå—_þÓ`0øyÄÉÌ•¢ôz½ØÝÝ� çÏÅÏ~z=�Ç[óܽ{7þþñÇñé??�ÿ|þy´Û푯±µµ¿|ñÅxå7¯Äk¯½Ï?÷\4›Í¸º}5¶®ôcïÁ^ìïïÇÎÎNlll6vXÄñññ‡7nÜx÷t9RaÒ“ 1³ì³è/í+‹8«^Ï’÷ýG—Œx>ýwcÄqIœ,KjDD+N"Lúhœ>6>ùä“_½ôÒK¿o6›¿H’d3ÜÐøàà Úívüdg'Î_8Ýn7>üè£xソÆ�;wæzÝ^x!ÞxãñÛ×_�æé²¦£ããøúëÝØÚÚŠK—.-2l¨´ýýý¸víÚª‡Qki¬ Ñëõ¢ÛíÆ7ß|ׯ__ñÈæóå—_ÆSO=Íf3666¾ßþÁ6³I’¤÷»Ýî÷÷÷ÿ}óæÍ¼õÖ[_Ä“³^º™G'Oœµ4){7ä¬qѦôË—Vý?j‘ñÃH’dþLF<×ÈÄTu�˜Ôðò¤ôߣöо V'ž¬m�8 3ÙãFͺÉ`XG“BÆp@ÉnÈ›]’4o„©äÞ0©U‡˜"îŠ4Ëù£bLú¥§wSJ—/�‹0fİ®f™3az™GvÆÌ¸à2ËŠ8ÿL¬:Ä!Ϭ˜áãÓ/ºO~ù�8ù‘]¦4�À:É2²Ë‘ÒGoèùIû¼Ôr6LD9"Â,cÈ»WLöØQûÅdŸÏ—ìÞ0ãöŸÉ;&¨£¼3R†cLö¹á“gIRzþ,cZôØÂ•%",ºiï´eDÃ?õ|cÄsÓöˆÉ36¨ƒY–þŒ +ý1?wÞ¤×]dl+U–xPĬ˜I·³7#fÔ¹yâKã€2*rvɸ(3|î¨Ízǽάc˜÷Ø¥(S$(bæÉ¬1føßãö„)Óu€²:úŽY$ÂLzÏy�[ª�U £¨Y&ó�tƒßÁ„c€éf¹ õ´»&aJ£Ž!fÒ-­§ÍŽ~nÚ*Ô°Žf‰#“ny=-Œۜ·²ÊŠÜ{eÚ2£IK”òžL*£~¶h„©ÔÞ0©2†…³ˆ1Ùs§ÍŠYäý ŽÙ—%O´©e„‰(×Ò¤Ô¬qcÞeJ³¾oÑÑEÄ`•Šyî ”ç¸"#Lé”5cÒŸçyͼÇùL»ëÑ,ÇÍaJmÊæWžs&-Uõze½>PfyãK*Ϧ¼óD!fËŠ1ó–2_+XµyCIÞÙ2ó¼vé”=.,3˜5ã¥ì׊TDà˜eÆLm"LD97ëÍš7rä=/ûÅ*°,;ÆL:§ ×Êf8 œå¬–RÇ›ª„†³Œ1Eœ ën‘ RËQ­Ø°ê¨R¥kg­¨½cVùþKWµ¸°èx—ñy«v `Ë‹¾f%"LD5#‚Ù-P«žEsæª$ŠwU??TYQñ¤R&¢Ú!¢è±WùZ@ÙM*a"ª–5þª_(ƒeÅ’JF˜ˆú‡³øu¹V° gG*`RuŠ eø,e­ ¤ cXXÃA?¬«Z˜T�£E�?Ô]­Lªî±¢îŸꨖ&b½BÅ:}V¨šÚÆ—¬uŒëø™ ¬Ö"À¤Ö=J¬ûç€UX«ø’%D<æZÀò¬m|É&s}`v¢ËBÃb\?Ö‘Ð3û?ú˜òé7{©ÇIEND®B`‚Flatseal-2.4.1/src/000077500000000000000000000000001520337174300140455ustar00rootroot00000000000000Flatseal-2.4.1/src/application.js000066400000000000000000000072341520337174300167140ustar00rootroot00000000000000/* exported FlatsealApplication */ /* eslint class-methods-use-this: */ /* application.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk, Gio, GLib, Adw} = imports.gi; const {FlatsealWindow} = imports.widgets.window; const {showAboutDialog} = imports.widgets.aboutDialog; const {FlatsealDocsViewer} = imports.widgets.docsViewer; var FlatsealApplication = GObject.registerClass({ GTypeName: 'FlatsealApplication', }, class FlatsealApplication extends Adw.Application { _init() { super._init({ application_id: 'com.github.tchx84.Flatseal', flags: Gio.ApplicationFlags.FLAGS_NONE, resource_base_path: '/com/github/tchx84/Flatseal/', }); this._window = null; } _displayHelp() { this.activate(); const launcher = new Gtk.UriLauncher(); launcher.uri = 'https://github.com/tchx84/flatseal'; launcher.launch(this._window, null, this._doDisplayHelp); } _doDisplayHelp(launcher, res) { try { launcher.launch_finish(res); } catch (err) { logError(err); } } _displayDocumentation() { this.activate(); const viewer = new FlatsealDocsViewer(this._window); viewer.present(); } _displayAbout() { this.activate(); showAboutDialog(this._window); } _quit() { this.activate(); this._window._shutdown(); this.quit(); } _show(action, appId) { this.activate(); this._window.showApplication(appId.unpack()); } _setupActions() { const help_action = new Gio.SimpleAction({name: 'help', state: null}); help_action.connect('activate', this._displayHelp.bind(this)); const documentation_action = new Gio.SimpleAction({name: 'documentation', state: null}); documentation_action.connect('activate', this._displayDocumentation.bind(this)); const about_action = new Gio.SimpleAction({name: 'about', state: null}); about_action.connect('activate', this._displayAbout.bind(this)); const quit_action = new Gio.SimpleAction({name: 'quit', state: null}); quit_action.connect('activate', this._quit.bind(this)); const show_action = new Gio.SimpleAction({name: 'show', state: null, parameterType: GLib.VariantType.new('s')}); show_action.connect('activate', this._show.bind(this)); this.add_action(help_action); this.add_action(documentation_action); this.add_action(about_action); this.add_action(quit_action); this.add_action(show_action); this.set_accels_for_action('app.documentation', ['F1']); this.set_accels_for_action('app.quit', ['q']); this.set_accels_for_action('window.close', ['w']); } vfunc_activate() { if (this._window === null) this._window = new FlatsealWindow(this); this._window.present(); } vfunc_startup() { super.vfunc_startup(); this._setupActions(); } }); Flatseal-2.4.1/src/com.github.tchx84.Flatseal.data.gresource.xml000066400000000000000000000016471520337174300244160ustar00rootroot00000000000000 style.css widgets/aboutDialog.ui widgets/appInfoViewer.ui widgets/applicationRow.ui widgets/busNameRow.ui widgets/docsViewer.ui widgets/globalInfoViewer.ui widgets/globalRow.ui widgets/menu.ui widgets/overrideStatusIcon.ui widgets/pathRow.ui widgets/pathsViewer.ui widgets/permissionEntryRow.ui widgets/permissionPortalRow.ui widgets/permissionSwitchRow.ui widgets/relativePathRow.ui widgets/shortcutsWindow.ui widgets/variableRow.ui widgets/window.ui Flatseal-2.4.1/src/com.github.tchx84.Flatseal.in000077500000000000000000000003041520337174300213070ustar00rootroot00000000000000#!@GJS@ imports.package.init({ name: "@PACKAGE_NAME@", version: "@PACKAGE_VERSION@", prefix: "@prefix@", libdir: "@libdir@", datadir: "@datadir@", }); imports.package.run(imports.main); Flatseal-2.4.1/src/com.github.tchx84.Flatseal.src.gresource.xml000066400000000000000000000031241520337174300242640ustar00rootroot00000000000000 application.js main.js widgets/aboutDialog.js widgets/appInfoViewer.js widgets/applicationRow.js widgets/busNameRow.js widgets/detailsButton.js widgets/docsViewer.js widgets/globalInfoViewer.js widgets/globalRow.js widgets/overrideStatusIcon.js widgets/pathRow.js widgets/pathsViewer.js widgets/permissionEntryRow.js widgets/permissionPortalRow.js widgets/permissionSwitchRow.js widgets/relativePathRow.js widgets/resetButton.js widgets/variableRow.js widgets/window.js models/applications.js models/globalModel.js models/info.js models/overrideStatus.js models/unsupported.js models/persistent.js models/permissions.js models/devices.js models/features.js models/filesystems.js models/filesystemsOther.js models/portals.js models/sessionBus.js models/settings.js models/shared.js models/sockets.js models/systemBus.js models/variables.js Flatseal-2.4.1/src/main.js000066400000000000000000000017621520337174300153350ustar00rootroot00000000000000/* exported main */ /* main.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ pkg.initGettext(); pkg.initFormat(); pkg.require({ Gio: '2.0', Gtk: '4.0', Adw: '1', WebKit: '6.0', }); const {FlatsealApplication} = imports.application; function main(argv) { const application = new FlatsealApplication(); return application.run(argv); } Flatseal-2.4.1/src/meson.build000066400000000000000000000022571520337174300162150ustar00rootroot00000000000000pkgdatadir = join_paths(get_option('datadir'), meson.project_name()) gnome = import('gnome') dependency('appstream', version : '>= 1.0') dependency('libadwaita-1', version : '>= 1.8') dependency('webkitgtk-6.0', version : '>= 2.40') src_res = gnome.compile_resources('com.github.tchx84.Flatseal.src', 'com.github.tchx84.Flatseal.src.gresource.xml', gresource_bundle: true, install: true, install_dir: pkgdatadir, ) data_res = gnome.compile_resources('com.github.tchx84.Flatseal.data', 'com.github.tchx84.Flatseal.data.gresource.xml', gresource_bundle: true, install: true, install_dir: pkgdatadir, ) bin_conf = configuration_data() bin_conf.set('GJS', find_program('gjs').full_path()) bin_conf.set('PACKAGE_VERSION', meson.project_version()) bin_conf.set('PACKAGE_NAME', meson.project_name()) bin_conf.set('prefix', get_option('prefix')) bin_conf.set('libdir', join_paths(get_option('prefix'), get_option('libdir'))) bin_conf.set('datadir', join_paths(get_option('prefix'), get_option('datadir'))) configure_file( input: 'com.github.tchx84.Flatseal.in', output: 'com.github.tchx84.Flatseal', configuration: bin_conf, install: true, install_dir: get_option('bindir') ) Flatseal-2.4.1/src/models/000077500000000000000000000000001520337174300153305ustar00rootroot00000000000000Flatseal-2.4.1/src/models/applications.js000066400000000000000000000302061520337174300203550ustar00rootroot00000000000000/* applications.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /* exported FlatpakApplicationsModel getDefault */ const {GObject, GLib, Gio, AppStream} = imports.gi; const {info} = imports.models; const SIGNAL_DELAY = 2500; const TARGET_EVENTS = [ Gio.FileMonitorEvent.CHANGES_DONE_HINT, Gio.FileMonitorEvent.DELETED, ]; var FlatpakApplicationsModel = GObject.registerClass({ GTypeName: 'FlatpakApplicationsModel', Signals: { changed: {}, }, }, class FlatpakApplicationsModel extends GObject.Object { _init() { super._init({}); this._setup(); } _setup() { this._paths = null; this._info = info.getDefault(); this._monitors = []; this._changedDelayHandlerId = 0; this._getInstallationsPaths().forEach(path => { const file = Gio.File.new_for_path(GLib.build_filenamev([path, 'app'])); try { const monitor = file.monitor_directory(Gio.FileMonitorFlags.NONE, null); monitor.connect('changed', this._changedDelayed.bind(this)); this._monitors.push(monitor); } catch (err) { logError(err); } }); } _changedDelayed(monitor, file, other_file, event) { if (!TARGET_EVENTS.includes(event)) return; if (this._changedDelayHandlerId !== 0) GLib.Source.remove(this._changedDelayHandlerId); this._changedDelayHandlerId = GLib.timeout_add( GLib.PRIORITY_DEFAULT, SIGNAL_DELAY, this._emitChanged.bind(this)); } _emitChanged() { this.emit('changed'); this._changedDelayHandlerId = 0; return GLib.SOURCE_REMOVE; } static _getSystemPath() { const systemPath = GLib.getenv('FLATPAK_SYSTEM_DIR'); if (systemPath) return systemPath; return GLib.build_filenamev([ GLib.DIR_SEPARATOR_S, 'var', 'lib', 'flatpak', ]); } _getUserPath() { const userPath = GLib.getenv('FLATPAK_USER_DIR'); if (userPath) return userPath; let userDataDir = GLib.get_user_data_dir(); if (this._info.getVersion() !== null) userDataDir = GLib.getenv('HOST_XDG_DATA_HOME'); if (!userDataDir) { userDataDir = GLib.build_filenamev([ GLib.get_home_dir(), '.local', 'share', ]); } return GLib.build_filenamev([userDataDir, 'flatpak']); } _getConfigPath() { let configPath = GLib.getenv('FLATPAK_CONFIG_DIR'); if (configPath) return configPath; configPath = GLib.build_filenamev([GLib.DIR_SEPARATOR_S, 'etc', 'flatpak']); if (this._info.getVersion() !== null) { configPath = GLib.build_filenamev([ GLib.DIR_SEPARATOR_S, 'run', 'host', 'etc', 'flatpak', ]); } return configPath; } static _parseCustomInstallation(path) { const installations = []; const keyFile = new GLib.KeyFile(); keyFile.load_from_file(path, GLib.KeyFileFlags.NONE); const [groups] = keyFile.get_groups(); groups.forEach(group => { const installation = {}; try { installation['path'] = keyFile.get_value(group, 'Path'); } catch (err) { return; } try { installation['priority'] = keyFile.get_value(group, 'Priority'); } catch (err) { installation['priority'] = 0; } installations.push(installation); }); return installations; } _getCustomInstallationsPaths() { let installations = []; const configPath = GLib.build_filenamev([ this._getConfigPath(), 'installations.d', ]); if (GLib.access(configPath, 0) !== 0) return installations; const directory = Gio.File.new_for_path(configPath); const enumerator = directory.enumerate_children('*', Gio.FileQueryInfoFlags.NONE, null); let fileInfo = enumerator.next_file(null); while (fileInfo !== null) { const file = enumerator.get_child(fileInfo); installations = [ ...installations, ...this.constructor._parseCustomInstallation(file.get_path()), ]; fileInfo = enumerator.next_file(null); } return installations .sort((a, b) => b.priority - a.priority) .map(e => e.path); } _getInstallationsPaths() { if (this._paths !== null) return this._paths; /* Installation priority is handled by this list order */ this._paths = this._getCustomInstallationsPaths(); this._paths.unshift(this._getUserPath()); this._paths.push(this.constructor._getSystemPath()); return this._paths; } _getBundlePathForAppId(appId) { return this._getInstallationsPaths() .map(p => GLib.build_filenamev([p, 'app', appId, 'current', 'active'])) .find(p => GLib.access(p, 0) === 0); } _getIconThemePathForAppId(appId) { return GLib.build_filenamev([ this._getBundlePathForAppId(appId), 'export', 'share', 'icons', ]); } /* XXX this only covers cases that follow the flathub convention */ static _isBaseApp(appId) { return appId.endsWith('.BaseApp'); } _getApplicationsForPath(path) { const list = []; if (GLib.access(path, 0) !== 0) return list; const directory = Gio.File.new_for_path(path); const enumerator = directory.enumerate_children('*', Gio.FileQueryInfoFlags.NONE, null); let fileInfo = enumerator.next_file(null); while (fileInfo !== null) { const file = enumerator.get_child(fileInfo); const appId = GLib.path_get_basename(file.get_path()); const activePath = GLib.build_filenamev([file.get_path(), 'current', 'active']); if (!this.constructor._isBaseApp(appId) && GLib.access(activePath, 0) === 0) list.push(appId); fileInfo = enumerator.next_file(null); } return list; } static _getApproximateNameForAppId(appId) { const name = appId.split('.').pop(); return name.replace(/^\w/, c => c.toUpperCase()); } getMetadataForAppId(appId) { const data = { runtime: _('Unknown'), }; const group = 'Application'; const path = this.getMetadataPathForAppId(appId); if (GLib.access(path, 0) !== 0) return data; const keyFile = new GLib.KeyFile(); keyFile.load_from_file(path, 0); try { data.runtime = keyFile.get_value(group, 'runtime'); } catch (err) { data.runtime = ''; } return data; } getDesktopForAppData(appdata) { const desktop = { icon: 'application-x-executable-symbolic', }; const path = GLib.build_filenamev([ this._getBundlePathForAppId(appdata.appId), 'export', 'share', 'applications', appdata.launchable, ]); const file = Gio.File.new_for_path(path); if (!file.query_exists(null)) return desktop; const metadata = new AppStream.Metadata(); try { metadata.parse_file(file, AppStream.FormatKind.DESKTOP_ENTRY); } catch (err) { return desktop; } const component = metadata.get_component(); if (component === null) return desktop; const icon = component.get_icon_stock(); if (icon === null) return desktop; const iconName = icon.get_name(); if (iconName !== null) desktop.icon = iconName; return desktop; } getAppDataForAppId(appId) { const appdata = { appId: appId, name: this.constructor._getApproximateNameForAppId(appId), author: _('Unknown'), version: _('Unknown'), date: _('Unknown'), launchable: `${appId}.desktop`, }; const bundlePath = this._getBundlePathForAppId(appId); let path = GLib.build_filenamev([ bundlePath, 'files', 'share', 'appdata', `${appId}.appdata.xml`, ]); if (!GLib.file_test(path, GLib.FileTest.EXISTS)) { path = GLib.build_filenamev([ bundlePath, 'files', 'share', 'metainfo', `${appId}.metainfo.xml`, ]); if (!GLib.file_test(path, GLib.FileTest.EXISTS)) return appdata; } const file = Gio.File.new_for_path(path); const metadata = new AppStream.Metadata(); try { metadata.parse_file(file, AppStream.FormatKind.XML); } catch (err) { return appdata; } const component = metadata.get_component(); if (component === null) return appdata; if (component.get_name()) appdata.name = component.get_name(); const developer = component.get_developer(); if (developer && developer.get_name()) appdata.author = developer.get_name(); const launchable = component.get_launchable(AppStream.LaunchableKind.DESKTOP_ID); if (launchable && launchable.get_entries()) [appdata.launchable] = launchable.get_entries(); const releaselist = component.get_releases_plain(); if (!releaselist) return appdata; const [release] = releaselist.get_entries(); if (!release) return appdata; if (release.get_version() !== null) appdata.version = `${release.get_version()}`; if (release.get_timestamp() !== null) { const ts = release.get_timestamp(); const date = new Date(ts * 1000); appdata.date = date.toISOString().substring(0, 10); } return appdata; } getAll() { const installations = this._getInstallationsPaths(); let applications = []; installations.forEach(path => { const app = GLib.build_filenamev([path, 'app']); applications = [...applications, ...this._getApplicationsForPath(app)]; }); const union = new Set(applications); const list = [...union]; list.sort(); return list.map(appId => { const appdata = this.getAppDataForAppId(appId); const desktop = this.getDesktopForAppData(appdata); return { appId: appId, appThemePath: this._getIconThemePathForAppId(appId), appName: appdata.name, appIconName: desktop.icon, }; }); } getMetadataPathForAppId(appId) { return GLib.build_filenamev([this._getBundlePathForAppId(appId), 'metadata']); } get userPath() { return this._getUserPath(); } shutdown() { if (this._changedDelayHandlerId !== 0) GLib.Source.remove(this._changedDelayHandlerId); this._changedDelayHandlerId = 0; this._monitors.forEach(monitor => { monitor.cancel(); }); this._monitors = []; } reload() { this.shutdown(); this._setup(); } }); var getDefault = (function() { let instance; return function() { if (typeof instance === 'undefined') instance = new FlatpakApplicationsModel(); return instance; }; }()); Flatseal-2.4.1/src/models/devices.js000066400000000000000000000060041520337174300173100ustar00rootroot00000000000000/* exported FlatpakDevicesModel */ /* devices.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {FlatpakSharedModel} = imports.models.shared; var FlatpakDevicesModel = GObject.registerClass({ GTypeName: 'FlatpakDevicesModel', }, class FlatpakDevicesModel extends FlatpakSharedModel { _init() { super._init({}); } getPermissions() { return { 'devices-dri': { supported: this._info.supports('0.4.0'), description: _('GPU acceleration'), option: 'dri', value: this.constructor.getDefault(), example: 'device=dri', }, 'devices-input': { supported: this._info.supports('1.15.6'), description: _('Input devices'), option: 'input', value: this.constructor.getDefault(), example: 'device=input', }, 'devices-kvm': { supported: this._info.supports('0.6.12'), description: _('Virtualization'), option: 'kvm', value: this.constructor.getDefault(), example: 'device=kvm', }, 'devices-shm': { supported: this._info.supports('1.6.1'), description: _('Shared memory'), option: 'shm', value: this.constructor.getDefault(), example: 'device=shm', }, 'devices-usb': { supported: this._info.supports('1.15.11'), description: _('USB devices'), option: 'usb', value: this.constructor.getDefault(), example: 'device=usb', }, 'devices-all': { supported: this._info.supports('0.6.6'), description: _('All devices (e.g. webcam)'), option: 'all', value: this.constructor.getDefault(), example: 'device=all', }, }; } static getGroup() { return 'Context'; } static getKey() { return 'devices'; } static getStyle() { return 'devices'; } static getTitle() { return 'Device'; } static getDescription() { return _('List of devices available in the sandbox'); } }); Flatseal-2.4.1/src/models/features.js000066400000000000000000000055771520337174300175220ustar00rootroot00000000000000/* exported FlatpakFeaturesModel */ /* features.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {FlatpakSharedModel} = imports.models.shared; var FlatpakFeaturesModel = GObject.registerClass({ GTypeName: 'FlatpakFeaturesModel', }, class FlatpakFeaturesModel extends FlatpakSharedModel { _init() { super._init({}); } getPermissions() { return { 'features-devel': { supported: this._info.supports('0.6.10'), description: _('Development syscalls (e.g. ptrace)'), option: 'devel', value: this.constructor.getDefault(), example: 'allow=devel', }, 'features-multiarch': { supported: this._info.supports('0.6.12'), description: _('Programs from other architectures'), option: 'multiarch', value: this.constructor.getDefault(), example: 'allow=multiarch', }, 'features-bluetooth': { supported: this._info.supports('0.11.8'), description: _('Bluetooth'), option: 'bluetooth', value: this.constructor.getDefault(), example: 'allow=bluetooth', }, 'features-canbus': { supported: this._info.supports('1.0.3'), description: _('Controller Area Network bus'), option: 'canbus', value: this.constructor.getDefault(), example: 'allow=canbus', }, 'features-per-app-dev-shm': { supported: this._info.supports('1.11.1'), description: _('Application Shared Memory'), option: 'per-app-dev-shm', value: this.constructor.getDefault(), example: 'allow=per-app-dev-shm', }, }; } static getGroup() { return 'Context'; } static getKey() { return 'features'; } static getStyle() { return 'features'; } static getTitle() { return 'Allow'; } static getDescription() { return _('List of features available to the application'); } }); Flatseal-2.4.1/src/models/filesystems.js000066400000000000000000000057751520337174300202530ustar00rootroot00000000000000/* exported FlatpakFilesystemsModel getDefault */ /* filesystems.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {FlatpakSharedModel} = imports.models.shared; var FlatpakFilesystemsModel = GObject.registerClass({ GTypeName: 'FlatpakFilesystemsModel', }, class FlatpakFilesystemsModel extends FlatpakSharedModel { _init() { super._init({}); } getPermissions() { return { 'filesystems-host': { supported: this._info.supports('0.4.0'), description: _('All system files'), option: 'host', value: this.constructor.getDefault(), example: 'filesystem=host', }, 'filesystems-host-os': { supported: this._info.supports('1.7.1'), description: _('All system libraries, executables and static data'), option: 'host-os', value: this.constructor.getDefault(), example: 'filesystem=host-os', }, 'filesystems-host-etc': { supported: this._info.supports('1.7.1'), description: _('All system configurations'), option: 'host-etc', value: this.constructor.getDefault(), example: 'filesystem=host-etc', }, 'filesystems-home': { supported: this._info.supports('0.4.0'), description: _('All user files'), option: 'home', value: this.constructor.getDefault(), example: 'filesystem=home', }, }; } static getGroup() { return 'Context'; } static getKey() { return 'filesystems'; } static getStyle() { return 'filesystems'; } static getTitle() { return 'Filesystem'; } static getDescription() { return _('List of filesystem subsets available to the application'); } get overrides() { return this._overrides; } get globals() { return this._globals; } get originals() { return this._originals; } }); var getDefault = (function() { let instance; return function() { if (typeof instance === 'undefined') instance = new FlatpakFilesystemsModel(); return instance; }; }()); Flatseal-2.4.1/src/models/filesystemsOther.js000066400000000000000000000157621520337174300212520ustar00rootroot00000000000000/* exported FlatpakFilesystemsOtherModel */ /* filesystemsOther.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {filesystems} = imports.models; const {FlatpakSharedModel} = imports.models.shared; var FlatpakFilesystemsOtherModel = GObject.registerClass({ GTypeName: 'FlatpakFilesystemsOtherModel', }, class FlatpakFilesystemsOtherModel extends FlatpakSharedModel { _init() { super._init({}); this._filesystems = filesystems.getDefault(); } getPermissions() { return { 'filesystems-other': { supported: this._info.supports('0.6.14'), description: _('Other files'), option: null, value: this.constructor.getDefault(), example: _('e.g. ~/games:ro, xdg-pictures, etc'), }, }; } static getGroup() { return 'Context'; } static getKey() { return 'filesystems'; } static getStyle() { return 'filesystems'; } static getTitle() { return 'Filesystem'; } static getDescription() { return _('List of filesystem subsets available to the application'); } static getType() { return 'path'; } static getDefault() { return ''; } getOptions() { // eslint-disable-line class-methods-use-this return null; } static isNegated(value) { return value.startsWith('!'); } static negate(value) { if (this.isNegated(value)) return value.replace('!', ''); return `!${value}`; } static isOverriden(set, value) { let [path] = value.split(':'); path = path.replace('!', ''); return ( set.has(path) || set.has(`${path}:ro`) || set.has(`${path}:rw`) || set.has(`${path}:create`) || set.has(`!${path}`) || set.has(`!${path}:ro`) || set.has(`!${path}:rw`) || set.has(`!${path}:create`) || set.has(`!${path}:reset`)); } static isStrictlyOverriden(set, value) { return set.has(this.negate(value)); } static isResetOverride(value) { const [path, mode] = value.split(':'); return path.startsWith('!') && mode === 'reset'; } static removeMode(value) { const [path] = value.split(':'); return path; } updateFromProxyProperty(property, value) { const paths = new Set(this.constructor.deserialize(value)); const added = new Set([...paths] .filter(p => p.length !== 0) .filter(p => !this._filesystems.originals.has(p)) .filter(p => !this._originals.has(p)) .filter(p => !this._globals.has(p))); const removedOriginals = [...this._originals] .filter(p => !this.constructor.isOverriden(this._filesystems.overrides, p)) .filter(p => !this.constructor.isOverriden(this._globals, p)) .filter(p => !this.constructor.isOverriden(added, p)) .filter(p => !paths.has(p)) .map(p => this.constructor.removeMode(p)) .map(p => this.constructor.negate(p)); const removedGlobals = [...this._globals] .filter(p => !this.constructor.isOverriden(this._filesystems.originals, p)) .filter(p => !this.constructor.isOverriden(this._filesystems.overrides, p)) .filter(p => !this.constructor.isOverriden(this._originals, p)) .filter(p => !this.constructor.isOverriden(added, p)) .filter(p => !paths.has(p)) .map(p => this.constructor.removeMode(p)) .map(p => this.constructor.negate(p)); this._overrides = new Set([...added, ...removedOriginals, ...removedGlobals]); } updateStatusProperty(proxy) { const values = proxy.filesystems_other .split(';') .filter(p => p.length !== 0) .map(p => this._getStatusForPermission(p)); proxy.set_property('filesystems-other-status', values.join(';')); } updateProxyProperty(proxy) { const originals = [...this._originals] .filter(p => !this.constructor.isOverriden(this._filesystems.globals, p)) .filter(p => !this.constructor.isOverriden(this._filesystems.overrides, p)) .filter(p => !this.constructor.isOverriden(this._globals, p)) .filter(p => !this.constructor.isOverriden(this._overrides, p)); const globals = [...this._globals] .filter(p => !this.constructor.isStrictlyOverriden(this._originals, p)) .filter(p => !this.constructor.isOverriden(this._filesystems.overrides, p)) .filter(p => !this.constructor.isOverriden(this._overrides, p)) .filter(p => !(this.constructor.isOverriden(this._filesystems.originals, p) && this.constructor.isNegated(p) && !this.constructor.isResetOverride(p))) .filter(p => !(this.constructor.isOverriden(this._originals, p) && this.constructor.isNegated(p) && !this.constructor.isResetOverride(p))); const overrides = [...this._overrides] .filter(p => !this.constructor.isStrictlyOverriden(this._originals, p)) .filter(p => !this.constructor.isStrictlyOverriden(this._globals, p)) .filter(p => !(this.constructor.isOverriden(this._filesystems.originals, p) && this.constructor.isNegated(p) && !this.constructor.isResetOverride(p))) .filter(p => !(this.constructor.isOverriden(this._originals, p) && this.constructor.isNegated(p) && !this.constructor.isResetOverride(p))) .filter(p => !(this.constructor.isOverriden(this._globals, p) && this.constructor.isNegated(p) && !this.constructor.isResetOverride(p))); const paths = new Set([...originals, ...globals, ...overrides]); const value = this.constructor.serialize([...paths]); proxy.set_property('filesystems-other', value); } loadFromKeyFile(group, key, value, overrides, global) { if (value.length === 0) return; const set = this._findProperSet(overrides, global); set.add(value); } }); Flatseal-2.4.1/src/models/globalModel.js000066400000000000000000000014571520337174300201160ustar00rootroot00000000000000/* exported isGlobalOverride */ /* globalModel.js * * Copyright 2022 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ function isGlobalOverride(appId) { return appId === 'global'; } Flatseal-2.4.1/src/models/info.js000066400000000000000000000050511520337174300166220ustar00rootroot00000000000000/* exported FlatpakInfoModel getDefault */ /* info.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, GLib} = imports.gi; var FlatpakInfoModel = GObject.registerClass({ GTypeName: 'FlatpakInfoModel', }, class FlatpakInfoModel extends GObject.Object { _init() { super._init({}); this._version = null; } static _getInfoPath() { const path = GLib.getenv('FLATPAK_INFO_PATH'); if (path) return path; return GLib.build_filenamev([ GLib.DIR_SEPARATOR_S, '.flatpak-info', ]); } _parseVersion() { const keyFile = new GLib.KeyFile(); try { keyFile.load_from_file(this.constructor._getInfoPath(), GLib.KeyFileFlags.NONE); return keyFile.get_value('Instance', 'flatpak-version'); } catch (err) { return null; } } getVersion() { if (this._version === null) this._version = this._parseVersion(); return this._version; } supports(target) { const version = this.getVersion(); if (version === null) return true; const versions = version.split('.'); const targets = target.split('.'); const components = Math.max(versions.length, targets.length); for (let index = 0; index < components; index++) { const _version = parseInt(versions[index] || 0, 10); const _target = parseInt(targets[index] || 0, 10); if (_version < _target) return false; if (_version > _target) return true; } return true; } reload() { this._version = this._parseVersion(); } }); var getDefault = (function() { let instance; return function() { if (typeof instance === 'undefined') instance = new FlatpakInfoModel(); return instance; }; }()); Flatseal-2.4.1/src/models/overrideStatus.js000066400000000000000000000015301520337174300207100ustar00rootroot00000000000000/* exported FlatsealOverrideStatus */ /* overrideStatus.js * * Copyright 2022 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ var FlatsealOverrideStatus = { ORIGINAL: 'original', GLOBAL: 'global', USER: 'user', }; Flatseal-2.4.1/src/models/permissions.js000066400000000000000000000341121520337174300202420ustar00rootroot00000000000000/* exported FlatpakPermissionsModel getDefault */ /* permissions.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {Gio, GObject, GLib} = imports.gi; const {FlatpakUnsupportedModel} = imports.models.unsupported; const {FlatpakDevicesModel} = imports.models.devices; const {FlatpakSharedModel} = imports.models.shared; const {FlatpakSocketsModel} = imports.models.sockets; const {FlatpakFeaturesModel} = imports.models.features; const {FlatpakFilesystemsOtherModel} = imports.models.filesystemsOther; const {FlatpakVariablesModel} = imports.models.variables; const {FlatpakSessionBusModel} = imports.models.sessionBus; const {FlatpakSystemBusModel} = imports.models.systemBus; const {FlatsealOverrideStatus} = imports.models.overrideStatus; const {isGlobalOverride} = imports.models.globalModel; const {applications, filesystems, persistent, portals} = imports.models; const FLAGS = GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT; const MODELS = { shared: new FlatpakSharedModel(), sockets: new FlatpakSocketsModel(), devices: new FlatpakDevicesModel(), features: new FlatpakFeaturesModel(), filesystems: filesystems.getDefault(), filesystemsOther: new FlatpakFilesystemsOtherModel(), persistent: persistent.getDefault(), variables: new FlatpakVariablesModel(), system: new FlatpakSystemBusModel(), session: new FlatpakSessionBusModel(), portals: portals.getDefault(), unsupported: new FlatpakUnsupportedModel(), }; function generate_index() { const index = {}; Object.values(MODELS).forEach(model => { const group = model.constructor.getGroup(); const key = model.constructor.getKey(); const options = model.getOptions(); if (key === null) { index[`${group}`] = model; } else if (options === null) { index[`${group}_${key}`] = model; } else { options.forEach(option => { index[`${group}_${key}_${option}`] = model; }); } }); return index; } const INDEX = generate_index(); function generate() { const properties = {}; Object.values(MODELS).forEach(model => { Object.entries(model.getPermissions()).forEach(([property]) => { const value = model.constructor.getDefault(); if (typeof value === 'boolean') { properties[property] = GObject.ParamSpec.boolean( property, property, property, FLAGS, value); } else if (typeof value === 'string') { properties[property] = GObject.ParamSpec.string( property, property, property, FLAGS, value); } else if (typeof value === 'number') { const max = model.constructor.getMax(); const min = model.constructor.getMin(); properties[property] = GObject.ParamSpec.int( property, property, property, FLAGS, min, max, value); } else { logError(`No support for ${property}:${typeof value}`); } /* overrides status */ const statusProperty = `${property}-status`; properties[statusProperty] = GObject.ParamSpec.string( statusProperty, statusProperty, statusProperty, FLAGS, FlatsealOverrideStatus.ORIGINAL); }); }); return properties; } var DELAY = 500; var FlatpakPermissionsModel = GObject.registerClass({ GTypeName: 'FlatpakPermissionsModel', Properties: generate(), Signals: { changed: { param_types: [GObject.TYPE_BOOLEAN, GObject.TYPE_BOOLEAN], }, reset: {}, failed: {}, }, }, class FlatpakPermissionsModel extends GObject.Object { _init() { super._init({}); this._appId = ''; this._delayedHandlerId = 0; this._monitors = []; this._monitorsDelayedHandlerId = 0; this._changesByUser = 0; this._applications = applications.getDefault(); this._notifyHandlerId = this.connect('notify', this._delayedUpdate.bind(this)); this._ensureBaseOverridesPath(); } _ensureBaseOverridesPath() { const path = this._getBaseOverridesPath(); if (GLib.access(path, 0) !== 0) GLib.mkdir_with_parents(path, 0o0755); } _getBaseOverridesPath() { return GLib.build_filenamev([this._applications.userPath, 'overrides']); } _getMetadataPath() { return this._applications.getMetadataPathForAppId(this._appId); } _getGlobalOverridesPath() { return GLib.build_filenamev([this._getBaseOverridesPath(), 'global']); } _getOverridesPath() { return GLib.build_filenamev([this._getBaseOverridesPath(), this._appId]); } _loadPermissionsForPath(path, overrides, global) { if (GLib.access(path, 0) !== 0) return; const keyFile = new GLib.KeyFile(); try { keyFile.load_from_file(path, 0); } catch (err) { logError(err, `Could not load ${path}`); this.emit('failed'); return; } const [groups] = keyFile.get_groups(); groups.forEach(group => { const [keys] = keyFile.get_keys(group); keys.forEach(key => { const value = keyFile.get_value(group, key); /* First for models that process the value as a whole */ let model = this.constructor._find(`${group}`); if (model !== null) { model.loadFromKeyFile(group, key, value, overrides, global); return; } /* Then check models that process the value as individually */ const values = value .replace(/;+$/, '') .split(';'); values.forEach(option => { model = this.constructor._find(`${group}_${key}_${option.replace('!', '')}`); if (model === null) model = this.constructor._find(`${group}_${key}`); if (model === null && overrides && !global) model = MODELS.unsupported; if (model !== null) model.loadFromKeyFile(group, key, option, overrides, global); }); }); }); } _loadPermissions() { if (isGlobalOverride(this._appId)) return; this._loadPermissionsForPath(this._getMetadataPath(), false, false); } _loadGlobalOverrides() { if (isGlobalOverride(this._appId)) return; this._loadPermissionsForPath( this._getGlobalOverridesPath(), true, true); } _loadOverrides() { this._loadPermissionsForPath( this._getOverridesPath(), true, false); } _checkIfChanged() { const overrideExists = GLib.access(this._getOverridesPath(), 0) === 0; const portalsChanged = MODELS.portals.changed(); const changed = overrideExists || portalsChanged; const unsupported = !MODELS.unsupported.isEmpty(); this.emit('changed', changed, unsupported); } _saveOverrides() { const keyFile = new GLib.KeyFile(); Object.values(MODELS).forEach(model => model.saveToKeyFile(keyFile)); const [, length] = keyFile.to_data(); const path = this._getOverridesPath(); if (length === 0) GLib.unlink(path); else keyFile.save_to_file(path); this._checkIfChanged(); } _updateProperties() { GObject.signal_handler_block(this, this._notifyHandlerId); Object.values(MODELS).forEach(model => model.updateProxyProperty(this)); this._checkIfChanged(); GObject.signal_handler_unblock(this, this._notifyHandlerId); } _updateStatusProperties() { GObject.signal_handler_block(this, this._notifyHandlerId); Object.values(MODELS).forEach(model => model.updateStatusProperty(this)); GObject.signal_handler_unblock(this, this._notifyHandlerId); } _delayedUpdate() { if (this._delayedHandlerId !== 0) GLib.Source.remove(this._delayedHandlerId); this._delayedHandlerId = GLib.timeout_add( GLib.PRIORITY_HIGH, DELAY, this._updateModels.bind(this)); } _processPendingUpdates() { if (this._appId === '') return; if (this._delayedHandlerId === 0) return; GLib.Source.remove(this._delayedHandlerId); this._updateModels(); } _updateModels() { Object.values(MODELS).forEach(model => { Object.entries(model.getPermissions()).forEach(([property]) => { model.updateFromProxyProperty( property, this[property.replace(/-/g, '_')]); }); }); this._changesByUser += 1; this._saveOverrides(); this._updateStatusProperties(); this._delayedHandlerId = 0; return GLib.SOURCE_REMOVE; } _setup() { if (this._appId === '') return; Object.values(MODELS).forEach(model => model.reset()); this._loadPermissions(); this._loadGlobalOverrides(); this._loadOverrides(); this._updateProperties(); this._updateStatusProperties(); } _setupMonitors() { if (this._appId === '') return; let paths = [this._getGlobalOverridesPath()]; if (!isGlobalOverride(this._appId)) paths = [...paths, this._getMetadataPath(), this._getOverridesPath()]; paths.forEach(path => { const file = Gio.File.new_for_path(path); try { const monitor = file.monitor_file(Gio.FileMonitorFlags.WATCH_MOVES, null); monitor.connect('changed', this._delayMonitorsChanged.bind(this)); this._monitors.push(monitor); } catch (err) { logError(err); } }); } _cancelMonitors() { if (this._monitorsDelayedHandlerId !== 0) GLib.Source.remove(this._monitorsDelayedHandlerId); this._monitors.forEach(monitor => { monitor.cancel(); }); this._monitors = []; this._monitorsDelayedHandlerId = 0; this._changesByUser = 0; } _delayMonitorsChanged() { if (this._monitorsDelayedHandlerId !== 0) GLib.Source.remove(this._monitorsDelayedHandlerId); this._monitorsDelayedHandlerId = GLib.timeout_add( GLib.PRIORITY_DEFAULT, DELAY, this._updateFromMonitors.bind(this)); } _updateFromMonitors() { if (this._changesByUser === 0) this._setup(); else this._changesByUser -= 1; this._monitorsDelayedHandlerId = 0; return GLib.SOURCE_REMOVE; } getAll() { const list = []; Object.values(MODELS).forEach(model => { Object.entries(model.getPermissions()).forEach(([property, permission]) => { const entry = {}; entry['property'] = property; entry['description'] = permission.description; entry['value'] = this[property.replace(/-/g, '_')]; entry['type'] = model.constructor.getType(); entry['permission'] = permission.example; entry['supported'] = permission.supported; entry['portalTable'] = permission.table; entry['portalId'] = permission.id; entry['groupTitle'] = model.constructor.getTitle(); entry['groupStyle'] = model.constructor.getStyle(); entry['groupDescription'] = model.constructor.getDescription(); entry['statusProperty'] = `${property}-status`; entry['serializeFunc'] = model.constructor.serialize; entry['deserializeFunc'] = model.constructor.deserialize; list.push(entry); }); }); return list; } undo() { this._changesByUser += 1; const path = this._getOverridesPath(); this._backup.save_to_file(path); MODELS.portals.restore(); this._setup(); } backup() { this._backup = new GLib.KeyFile(); Object.values(MODELS).forEach(model => model.saveToKeyFile(this._backup)); MODELS.portals.backup(); } reset() { this._changesByUser += 1; this.backup(); const path = this._getOverridesPath(); GLib.unlink(path); MODELS.portals.forget(); this._setup(); this.emit('reset'); } shutdown() { this._processPendingUpdates(); this._cancelMonitors(); } reload() { this.shutdown(); this._setup(); this._setupMonitors(); } set appId(appId) { this._backup = null; this.shutdown(); this._appId = appId; MODELS.portals.appId = appId; this._setup(); this._setupMonitors(); } get appId() { return this._appId; } static _find(key) { return Object.hasOwn(INDEX, key) ? INDEX[key] : null; } /* testing */ static getGroupForProperty(property) { const [group] = property.split('-'); return MODELS[group].constructor.getGroup(); } }); var getDefault = (function() { let instance; return function() { if (typeof instance === 'undefined') instance = new FlatpakPermissionsModel(); return instance; }; }()); Flatseal-2.4.1/src/models/persistent.js000066400000000000000000000064141520337174300200730ustar00rootroot00000000000000/* exported FlatpakPersistentModel getDefault */ /* persistent.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {FlatpakSharedModel} = imports.models.shared; var FlatpakPersistentModel = GObject.registerClass({ GTypeName: 'FlatpakPersistentModel', }, class FlatpakPersistentModel extends FlatpakSharedModel { _init() { super._init({}); } getPermissions() { return { persistent: { supported: this._info.supports('0.4.0'), description: _('Files'), option: null, value: this.constructor.getDefault(), example: _('e.g. .thunderbird'), }, }; } static getGroup() { return 'Context'; } static getKey() { return 'persistent'; } static getStyle() { return 'persistent'; } static getTitle() { return 'Persistent'; } static getDescription() { return _('List of homedir-relative paths created in the sandbox'); } static getType() { return 'relativePath'; } static getDefault() { return ''; } getOptions() { // eslint-disable-line class-methods-use-this return null; } updateFromProxyProperty(property, value) { const originals = new Set([...this._originals, ...this._globals]); const overrides = new Set(this.constructor.deserialize(value) .filter(p => p.length !== 0) .filter(p => !originals.has(p))); this._overrides = overrides; } updateStatusProperty(proxy) { const values = proxy.persistent .split(';') .filter(p => p.length !== 0) .map(p => this._getStatusForPermission(p)); proxy.set_property('persistent-status', this.constructor.serialize(values)); } updateProxyProperty(proxy) { const paths = new Set([...this._originals, ...this._globals, ...this._overrides]); const persistent = [...paths].join(';'); proxy.set_property('persistent', persistent); } loadFromKeyFile(group, key, value, overrides, global) { if (value.length === 0) return; const set = this._findProperSet(overrides, global); set.add(value); } isOriginal(value) { const originals = new Set([...this._originals, ...this._globals]); return originals.has(value); } }); var getDefault = (function() { let instance; return function() { if (typeof instance === 'undefined') instance = new FlatpakPersistentModel(); return instance; }; }()); Flatseal-2.4.1/src/models/portals.js000066400000000000000000000317701520337174300173620ustar00rootroot00000000000000/* exported FlatpakPortalsModel getDefault */ /* eslint class-methods-use-this: */ /* portals.js * * Copyright 2020-2021 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {Gio, GLib, GObject} = imports.gi; const {info} = imports.models; var PermissionsIface = ` `; const SUPPORTED_SERVICE_VERSION = 2; const SUPPORTED_FLATPAK_VERSION = '0.4.0'; var FlatpakPortalState = { UNKNOWN: 0, UNSUPPORTED: 1, UNSET: 2, DISALLOWED: 3, ALLOWED: 4, }; var FlatpakPortalsModel = GObject.registerClass({ GTypeName: 'FlatpakPortalsModel', }, class FlatpakPortalsModel extends GObject.Object { _init() { super._init({}); this._backup = {}; this._proxy = null; this._backgroundbackgroundSupported = null; this._notificationsnotificationSupported = null; this._devicesmicrophoneSupported = null; this._devicesspeakersSupported = null; this._devicescameraSupported = null; this._locationlocationSupported = null; this._backgroundbackgroundReason = ''; this._notificationsnotificationReason = ''; this._devicesmicrophoneReason = ''; this._devicesspeakersReason = ''; this._devicescameraReason = ''; this._locationlocationReason = ''; this._info = info.getDefault(); this._appId = ''; } _setup() { if (this._proxy !== null) return; let busName = GLib.getenv('FLATSEAL_PORTAL_BUS_NAME'); if (busName === null) busName = 'org.freedesktop.impl.portal.PermissionStore'; const PermissionsProxy = Gio.DBusProxy.makeProxyWrapper(PermissionsIface); try { this._proxy = new PermissionsProxy( Gio.DBus.session, busName, '/org/freedesktop/impl/portal/PermissionStore'); } catch (err) { logError(err); } } getPermissions() { return { 'portals-background': { supported: this.isSupported('background', 'background'), description: _('Background'), value: this.constructor.getDefault(), example: _('Can run in the background'), table: 'background', id: 'background', allowed: ['yes'], disallowed: ['no'], }, 'portals-notification': { supported: this.isSupported('notifications', 'notification'), description: _('Notifications'), value: this.constructor.getDefault(), example: _('Can send notifications'), table: 'notifications', id: 'notification', allowed: ['yes'], disallowed: ['no'], }, 'portals-microphone': { supported: this.isSupported('devices', 'microphone'), description: _('Microphone'), value: this.constructor.getDefault(), example: _('Can listen to your microphone'), table: 'devices', id: 'microphone', allowed: ['yes'], disallowed: ['no'], }, 'portals-speakers': { supported: this.isSupported('devices', 'speakers'), description: _('Speakers'), value: this.constructor.getDefault(), example: _('Can play sounds to your speakers'), table: 'devices', id: 'speakers', allowed: ['yes'], disallowed: ['no'], }, 'portals-camera': { supported: this.isSupported('devices', 'camera'), description: _('Camera'), value: this.constructor.getDefault(), example: _('Can record videos with your camera'), table: 'devices', id: 'camera', allowed: ['yes'], disallowed: ['no'], }, 'portals-location': { supported: this.isSupported('location', 'location'), description: _('Location'), value: this.constructor.getDefault(), example: _('Can access your location'), table: 'location', id: 'location', allowed: ['EXACT', '0'], disallowed: ['NONE', '0'], }, }; } static getType() { return 'portal'; } static getDefault() { return FlatpakPortalState.UNKNOWN; } static getMax() { return FlatpakPortalState.ALLOWED; } static getMin() { return FlatpakPortalState.UNKNOWN; } static getStyle() { return 'portals'; } static getGroup() { return 'portals'; } static getKey() { return null; } getOptions() { // eslint-disable-line class-methods-use-this return null; } static getTitle() { return 'Portals'; } static getDescription() { return _('List of resources selectively granted to the application'); } safeList(table) { try { return this._proxy.ListSync(table); } catch (err) { return [[]]; } } safeLookUp(table, id) { try { return this._proxy.LookupSync(table, id); } catch (err) { return [null]; } } safeSetPermission(table, id, appId, access) { try { this._proxy.SetPermissionSync(table, false, id, appId, access); } catch (err) { logError(err); } } safeDeletePermission(table, id, appId) { try { this._proxy.DeletePermissionSync(table, id, appId); } catch (err) { logError(err); } } isSupported(table, id) { if (this[`_${table}${id}Supported`] !== null) return this[`_${table}${id}Supported`]; if (this._info.supports(SUPPORTED_FLATPAK_VERSION) === false) { this[`_${table}${id}Reason`] = _('Not supported by the installed version of Flatpak'); this[`_${table}${id}Supported`] = false; return false; } this._setup(); if (this._proxy === null || this._proxy.version >= SUPPORTED_SERVICE_VERSION === false) { this[`_${table}${id}Reason`] = _('Requires permission store version 2 or newer'); this[`_${table}${id}Supported`] = false; return false; } const [appIds] = this.safeLookUp(table, id); if (appIds === null) { this[`_${table}${id}Reason`] = _('Portal data has not been set up yet'); this[`_${table}${id}Supported`] = false; return false; } this[`_${table}${id}Reason`] = ''; this[`_${table}${id}Supported`] = true; return true; } getUnsupportedReason(table, id) { return this[`_${table}${id}Reason`]; } updateFromProxyProperty(property, value) { const permission = this.getPermissions()[property]; if (!this.isSupported(permission.table, permission.id)) return; if (value === FlatpakPortalState.UNSET) { this.unset(permission.table, permission.id); } else if (value === FlatpakPortalState.ALLOWED) { this.safeSetPermission(permission.table, permission.id, this.appId, permission.allowed); } else if (value === FlatpakPortalState.DISALLOWED) { this.safeSetPermission(permission.table, permission.id, this.appId, permission.disallowed); } else { /* unsupported */ } } updateStatusProperty() { /* does not apply to this backend */ } updateProxyProperty(proxy) { Object.entries(this.getPermissions()).forEach(([property, permission]) => { if (!this.isSupported(permission.table, permission.id)) { proxy.set_property(property, FlatpakPortalState.UNSUPPORTED); return; } const [appIds] = this.safeLookUp(permission.table, permission.id); if (appIds === null) proxy.set_property(property, FlatpakPortalState.UNSUPPORTED); else if (!(this.appId in appIds)) proxy.set_property(property, FlatpakPortalState.UNSET); else if (appIds[this.appId][0] === permission.allowed[0]) proxy.set_property(property, FlatpakPortalState.ALLOWED); else proxy.set_property(property, FlatpakPortalState.DISALLOWED); }); } backup() { this._backup = {}; for (const [property, permission] of Object.entries(this.getPermissions())) { if (!this.isSupported(permission.table, permission.id)) continue; const [appIds] = this.safeLookUp(permission.table, permission.id); if (appIds === null || !(this.appId in appIds)) continue; this._backup[property] = appIds[this.appId]; } } restore() { for (const [property, permission] of Object.entries(this.getPermissions())) { if (!(property in this._backup)) continue; this.safeSetPermission(permission.table, permission.id, this.appId, this._backup[property]); } } unset(table, id) { const [appIds] = this.safeLookUp(table, id); if (appIds === null || !(this.appId in appIds)) return; /* https://github.com/flatpak/xdg-desktop-portal/issues/573 */ if (Object.keys(appIds).length === 1) this.safeSetPermission(table, id, '', []); this.safeDeletePermission(table, id, this.appId); } forget() { for (const [, permission] of Object.entries(this.getPermissions())) { if (!this.isSupported(permission.table, permission.id)) continue; this.unset(permission.table, permission.id); } } changed() { for (const [, permission] of Object.entries(this.getPermissions())) { if (!this.isSupported(permission.table, permission.id)) continue; const [appIds] = this.safeLookUp(permission.table, permission.id); if (appIds !== null && this.appId in appIds) return true; } return false; } saveToKeyFile() { /* this backend has no file */ } reset() { /* this backends speaks directly to DBus */ } reload() { const permissions = this.getPermissions(); Object.keys(permissions).forEach(property => { const permission = permissions[property]; this[`_${permission.table}${permission.id}Supported`] = null; this.isSupported(permission.table, permission.id); }); } getVersion() { if (this._proxy === null) return null; return this._proxy.version; } set appId(appId) { this._appId = appId; } get appId() { return this._appId; } }); var getDefault = (function() { let instance; return function() { if (typeof instance === 'undefined') instance = new FlatpakPortalsModel(); return instance; }; }()); Flatseal-2.4.1/src/models/sessionBus.js000066400000000000000000000132471520337174300200320ustar00rootroot00000000000000/* exported FlatpakSessionBusModel */ /* sessionBus.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {FlatpakSharedModel} = imports.models.shared; const {FlatsealOverrideStatus} = imports.models.overrideStatus; var FlatpakSessionBusModel = GObject.registerClass({ GTypeName: 'FlatpakSessionBusModel', }, class FlatpakSessionBusModel extends FlatpakSharedModel { _init() { super._init({}); } getPermissions() { return { 'session-talk': { supported: this._info.supports('0.4.0'), description: _('Talks'), option: 'talk', value: this.constructor.getDefault(), example: 'e.g. org.freedesktop.Notifications', }, 'session-own': { supported: this._info.supports('0.4.0'), description: _('Owns'), option: 'own', value: this.constructor.getDefault(), example: 'e.g. org.gnome.Contacts.SearchProvider', }, }; } static getDefault() { return ''; } static getType() { return 'bus'; } static getGroup() { return 'Session Bus Policy'; } static getKey() { return null; } static getPrefix() { return 'session'; } static getStyle() { return 'session'; } static getTitle() { return 'Session Bus'; } static getDescription() { return _('List of well-known names on the session bus'); } getOptions() { // eslint-disable-line class-methods-use-this return null; } updateFromProxyProperty(property, value) { const prefix = this.constructor.getPrefix(); const option = property.replace(`${prefix}-`, ''); const originals = {...this._originals, ...this._globals}; const values = this.constructor.deserialize(value); /* Reset overrides on Talk since it's the first to update */ const overrides = option === 'talk' ? {} : this._overrides; const missing = option === 'talk' ? {} : this._missing; values .filter(n => n.length !== 0) .filter(n => !(n in originals) || originals[n] !== option) .forEach(n => { overrides[n] = option; }); Object.keys(originals) .filter(n => originals[n] === option) .filter(n => values.indexOf(n) === -1) .forEach(n => { missing[n] = 'none'; }); /* Preserve previously negated overrides */ Object.keys(this._overrides) .filter(n => this._overrides[n] === 'none') .filter(n => values.indexOf(n) === -1) .forEach(n => { missing[n] = 'none'; }); this._overrides = overrides; this._missing = missing; /* Add missing ones after Own since it's the last to update */ if (option !== 'own') return; this._overrides = {...this._missing, ...this._overrides}; } _getStatusForPermission(name) { let status = FlatsealOverrideStatus.ORIGINAL; if (name in this._globals) status = FlatsealOverrideStatus.GLOBAL; if (name in this._overrides) status = FlatsealOverrideStatus.USER; return status; } updateStatusProperty(proxy) { const prefix = this.constructor.getPrefix(); const talk_values = proxy[`${prefix}-talk`] .split(';') .filter(n => n.length !== 0) .map(n => this._getStatusForPermission(n)); const own_values = proxy[`${prefix}-own`] .split(';') .filter(n => n.length !== 0) .map(n => this._getStatusForPermission(n)); proxy.set_property(`${prefix}-talk-status`, talk_values.join(';')); proxy.set_property(`${prefix}-own-status`, own_values.join(';')); } updateProxyProperty(proxy) { const options = {talk: [], own: [], none: []}; const values = {...this._originals, ...this._globals, ...this._overrides}; Object.entries(values).forEach(([name, option]) => { if (!(option in options)) return; options[option].push(name); }); const prefix = this.constructor.getPrefix(); proxy.set_property(`${prefix}-talk`, this.constructor.serialize(options['talk'])); proxy.set_property(`${prefix}-own`, this.constructor.serialize(options['own'])); } loadFromKeyFile(group, name, option, overrides, global) { const dictionary = this._findProperSet(overrides, global); dictionary[name] = option; } saveToKeyFile(keyFile) { const group = this.constructor.getGroup(); Object.entries(this._overrides).forEach(([key, value]) => { keyFile.set_value(group, key, value); }); } reset() { this._overrides = {}; this._globals = {}; this._originals = {}; this._missing = {}; } }); Flatseal-2.4.1/src/models/settings.js000066400000000000000000000035331520337174300175320ustar00rootroot00000000000000/* exported FlatsealSettingsModel getDefault */ /* settings.js * * Copyright 2021 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gio} = imports.gi; var FlatsealSettingsModel = GObject.registerClass({ GTypeName: 'FlatsealSettingsModel', }, class FlatsealSettingsModel extends GObject.Object { _init() { super._init({}); this._settings = new Gio.Settings({schema_id: 'com.github.tchx84.Flatseal'}); } restoreWindowState(window) { window.default_width = this._settings.get_int('window-width'); window.default_height = this._settings.get_int('window-height'); if (this._settings.get_boolean('window-maximized')) window.maximize(); } saveWindowState(window) { if (!window.maximized) { const [width, height] = window.get_default_size(); this._settings.set_int('window-width', width); this._settings.set_int('window-height', height); } this._settings.set_boolean('window-maximized', window.maximized); } getSelectedAppId() { return this._settings.get_string('selected-app-id'); } setSelectedAppId(appId) { this._settings.set_string('selected-app-id', appId); } }); Flatseal-2.4.1/src/models/shared.js000066400000000000000000000143511520337174300171400ustar00rootroot00000000000000/* exported FlatpakSharedModel */ /* shared.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {info} = imports.models; const {FlatsealOverrideStatus} = imports.models.overrideStatus; var FlatpakSharedModel = GObject.registerClass({ GTypeName: 'FlatpakSharedModel', }, class FlatpakSharedModel extends GObject.Object { _init() { super._init({}); this._info = info.getDefault(); this.reset(); } getPermissions() { return { 'shared-network': { supported: this._info.supports('0.4.0'), description: _('Network'), option: 'network', value: this.constructor.getDefault(), example: 'share=network', }, 'shared-ipc': { supported: this._info.supports('0.4.0'), description: _('Inter-process communications'), option: 'ipc', value: this.constructor.getDefault(), example: 'share=ipc', }, }; } static getGroup() { return 'Context'; } static getKey() { return 'shared'; } static getType() { return 'state'; } static getDefault() { return false; } static getStyle() { return 'shared'; } static getTitle() { return 'Share'; } static getDescription() { return _('List of subsystems shared with the host system'); } static serialize(values) { return values.join(';'); } static deserialize(value) { return value.split(';'); } getOptions() { return Object.entries(this.getPermissions()) .map(([, permission]) => permission.option); } updateFromProxyProperty(property, value) { const permission = this.getPermissions()[property]; const {option} = permission; const override = value ? option : `!${option}`; /* Determine if this value is an actual override */ /* Preserve previously negated overrides */ const matchesDefault = value === permission.value && !this._overrides.has(override); const fromOriginals = this._originals.has(override); const fromGlobals = this._globals.has(override); const seenInOriginals = this.constructor._isOverriden(this._originals, override); const seenInGlobals = this.constructor._isOverriden(this._globals, override); /* Assume it isn't */ this._overrides.delete(option); this._overrides.delete(`!${option}`); /* Ignore if it came from originals or from globals */ if (fromOriginals && !seenInGlobals || fromGlobals) return; /* Ignore if it's just the default value */ if (matchesDefault && !seenInGlobals && !seenInOriginals) return; /* It's an override */ this._overrides.add(override); } static _isOverriden(set, permission) { const option = permission.replace('!', ''); return set.has(option) || set.has(`!${option}`); } _getStatusForPermission(permission) { let status = FlatsealOverrideStatus.ORIGINAL; if (this._globals.has(permission) || this._globals.has(`!${permission}`)) status = FlatsealOverrideStatus.GLOBAL; if (this._overrides.has(permission) || this._overrides.has(`!${permission}`)) status = FlatsealOverrideStatus.USER; return status; } updateStatusProperty(proxy) { Object.entries(this.getPermissions()).forEach(([property, permission]) => { const {option} = permission; const statusProperty = `${property}-status`; const status = this._getStatusForPermission(option); proxy.set_property(statusProperty, status); }); } updateProxyProperty(proxy) { const originals = [...this._originals] .filter(o => !this.constructor._isOverriden(this._globals, o)) .filter(o => !this.constructor._isOverriden(this._overrides, o)); const globals = [...this._globals] .filter(g => !this.constructor._isOverriden(this._overrides, g)); const permissions = new Set([...originals, ...globals, ...this._overrides]); Object.entries(this.getPermissions()).forEach(([property, permission]) => { let value = this.constructor.getDefault(); const {option} = permission; if (permissions.has(option)) value = true; if (permissions.has(`!${option}`)) value = false; proxy.set_property(property, value); }); } _findProperSet(overrides, global) { if (overrides && global) return this._globals; if (overrides && !global) return this._overrides; return this._originals; } loadFromKeyFile(group, key, value, overrides, global) { const set = this._findProperSet(overrides, global); set.add(value); } saveToKeyFile(keyFile) { const group = this.constructor.getGroup(); const key = this.constructor.getKey(); this._overrides.forEach(value => { let _value = value; try { const existing = keyFile.get_value(group, key); _value = `${value};${existing}`; } catch (err) { _value = `${value}`; } keyFile.set_value(group, key, _value); }); } reset() { this._overrides = new Set(); this._globals = new Set(); this._originals = new Set(); } }); Flatseal-2.4.1/src/models/sockets.js000066400000000000000000000111521520337174300173410ustar00rootroot00000000000000/* exported FlatpakSocketsModel */ /* sockets.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {FlatpakSharedModel} = imports.models.shared; var FlatpakSocketsModel = GObject.registerClass({ GTypeName: 'FlatpakSocketsModel', }, class FlatpakSocketsModel extends FlatpakSharedModel { _init() { super._init({}); } getPermissions() { return { 'sockets-x11': { supported: this._info.supports('0.4.0'), description: _('X11 windowing system'), option: 'x11', value: this.constructor.getDefault(), example: 'socket=x11', }, 'sockets-wayland': { supported: this._info.supports('0.4.0'), description: _('Wayland windowing system'), option: 'wayland', value: this.constructor.getDefault(), example: 'socket=wayland', }, 'sockets-fallback-x11': { supported: this._info.supports('0.11.1'), description: _('Fallback to X11 windowing system'), option: 'fallback-x11', value: this.constructor.getDefault(), example: 'socket=fallback-x11', }, 'sockets-pulseaudio': { supported: this._info.supports('0.4.0'), description: _('PulseAudio sound server'), option: 'pulseaudio', value: this.constructor.getDefault(), example: 'socket=pulseaudio', }, 'sockets-session-bus': { supported: this._info.supports('0.4.0'), description: _('D-Bus session bus'), option: 'session-bus', value: this.constructor.getDefault(), example: 'socket=session-bus', }, 'sockets-system-bus': { supported: this._info.supports('0.4.0'), description: _('D-Bus system bus'), option: 'system-bus', value: this.constructor.getDefault(), example: 'socket=system-bus', }, 'sockets-ssh-auth': { supported: this._info.supports('0.99.1'), description: _('Secure Shell agent'), option: 'ssh-auth', value: this.constructor.getDefault(), example: 'socket=ssh-auth', }, 'sockets-pcsc': { supported: this._info.supports('1.3.2'), description: _('Smart cards'), option: 'pcsc', value: this.constructor.getDefault(), example: 'socket=pcsc', }, 'sockets-cups': { supported: this._info.supports('1.5.2'), description: _('Printing system'), option: 'cups', value: this.constructor.getDefault(), example: 'socket=cups', }, 'sockets-gpg-agent': { supported: this._info.supports('1.14.0'), description: _('GPG-Agent directories'), option: 'gpg-agent', value: this.constructor.getDefault(), example: 'socket=gpg-agent', }, 'sockets-inherit-wayland-socket': { supported: this._info.supports('1.15.7'), description: _('Inherit Wayland socket'), option: 'inherit-wayland-socket', value: this.constructor.getDefault(), example: 'socket=inherit-wayland-socket', }, }; } static getGroup() { return 'Context'; } static getKey() { return 'sockets'; } static getStyle() { return 'sockets'; } static getTitle() { return 'Socket'; } static getDescription() { return _('List of well-known sockets available in the sandbox'); } }); Flatseal-2.4.1/src/models/systemBus.js000066400000000000000000000040231520337174300176630ustar00rootroot00000000000000/* exported FlatpakSystemBusModel */ /* sessionBus.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {FlatpakSessionBusModel} = imports.models.sessionBus; var FlatpakSystemBusModel = GObject.registerClass({ GTypeName: 'FlatpakSystemBusModel', }, class FlatpakSystemBusModel extends FlatpakSessionBusModel { _init() { super._init({}); } getPermissions() { return { 'system-talk': { supported: this._info.supports('0.4.0'), description: _('Talks'), option: 'talk', value: this.constructor.getDefault(), example: 'e.g. org.freedesktop.Accounts', }, 'system-own': { supported: this._info.supports('0.4.0'), description: _('Owns'), option: 'own', value: this.constructor.getDefault(), example: 'e.g. org.freedesktop.GeoClue2', }, }; } static getGroup() { return 'System Bus Policy'; } static getKey() { return null; } static getPrefix() { return 'system'; } static getStyle() { return 'system'; } static getTitle() { return 'System Bus'; } static getDescription() { return _('List of well-known names on the system bus'); } }); Flatseal-2.4.1/src/models/unsupported.js000066400000000000000000000042741520337174300202650ustar00rootroot00000000000000/* exported FlatpakUnsupportedModel */ /* eslint class-methods-use-this: */ /* unsupported.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; var FlatpakUnsupportedModel = GObject.registerClass({ GTypeName: 'FlatpakUnsupportedModel', }, class FlatpakUnsupportedModel extends GObject.Object { _init() { super._init(); this.reset(); } getPermissions() { return {}; } static getGroup() { return 'unsupported'; } static getKey() { return null; } getOptions() { // eslint-disable-line class-methods-use-this return null; } updateFromProxyProperty() { // eslint-disable-line class-methods-use-this return false; } updateStatusProperty() { /* does not apply to this backend */ } updateProxyProperty() { // eslint-disable-line class-methods-use-this return false; } loadFromKeyFile(group, key, value) { this._permissions.add([group, key, value]); return true; } saveToKeyFile(keyFile) { this._permissions.forEach(([group, key, value]) => { let _value; try { const existing = keyFile.get_value(group, key); _value = `${value};${existing}`; } catch (err) { _value = `${value}`; } keyFile.set_value(group, key, _value); }); } reset() { this._permissions = new Set(); } isEmpty() { return this._permissions.size === 0; } }); Flatseal-2.4.1/src/models/variables.js000066400000000000000000000113761520337174300176460ustar00rootroot00000000000000/* exported FlatpakVariablesModel */ /* variables.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject} = imports.gi; const {FlatpakSharedModel} = imports.models.shared; const {FlatsealOverrideStatus} = imports.models.overrideStatus; var VAR_REGEXP = /^[^;\s]+=[\S ]+$/; var FlatpakVariablesModel = GObject.registerClass({ GTypeName: 'FlatpakVariablesModel', }, class FlatpakVariablesModel extends FlatpakSharedModel { _init() { super._init({}); this.reset(); } getPermissions() { return { variables: { supported: this._info.supports('0.4.0'), description: _('Variables'), option: null, value: this.constructor.getDefault(), example: _('e.g. GTK_DEBUG=interactive'), }, }; } static getDefault() { return ''; } static getType() { return 'variable'; } static getGroup() { return 'Environment'; } static getKey() { return null; } static getStyle() { return 'environment'; } static getTitle() { return 'Environment'; } static getDescription() { return _('List of variables exported to the application'); } static deserialize(value) { return value .split(/(?=;[^;]+=)/) .map(v => v.replace(/^;/, '')); } getOptions() { // eslint-disable-line class-methods-use-this return null; } updateFromProxyProperty(property, value) { const overrides = {}; const variables = {}; const originals = {...this._originals, ...this._globals}; this.constructor.deserialize(value) .filter(v => this._expression.test(v)) .map(v => v.split(/[=](.*)/s)) .forEach(([k, v]) => { variables[k] = v; }); Object.entries(variables) .filter(([k, v]) => !(k in originals) || originals[k] !== v) .forEach(([k, v]) => { overrides[k] = v; }); Object.keys(originals) .filter(k => !(k in variables)) .filter(k => originals[k] !== '') .forEach(k => { overrides[k] = ''; }); /* Preserve previously negated overrides */ Object.keys(this._overrides) .filter(k => !(k in variables)) .filter(k => this._overrides[k] === '') .forEach(k => { overrides[k] = ''; }); this._overrides = overrides; } _getStatusForPermission(variable) { const [key] = variable.split(/[=](.*)/s); let status = FlatsealOverrideStatus.ORIGINAL; if (key in this._globals) status = FlatsealOverrideStatus.GLOBAL; if (key in this._overrides) status = FlatsealOverrideStatus.USER; return status; } updateStatusProperty(proxy) { const values = this.constructor.deserialize(proxy.variables) .filter(v => v.length !== 0) .map(v => this._getStatusForPermission(v)); proxy.set_property('variables-status', values.join(';')); } updateProxyProperty(proxy) { let variables = {...this._originals, ...this._globals, ...this._overrides}; variables = Object.entries(variables) .filter(([, value]) => value.length !== 0) .map(([key, value]) => `${key}=${value}`); proxy.set_property('variables', this.constructor.serialize(variables)); } loadFromKeyFile(group, key, value, overrides, global) { if (!overrides && value.length === 0) return; const dict = this._findProperSet(overrides, global); dict[key] = value; } saveToKeyFile(keyFile) { const group = this.constructor.getGroup(); Object.entries(this._overrides).forEach(([key, value]) => { keyFile.set_value(group, key, value); }); } reset() { this._overrides = {}; this._globals = {}; this._originals = {}; this._expression = new RegExp(VAR_REGEXP); } }); Flatseal-2.4.1/src/style.css000066400000000000000000000041271520337174300157230ustar00rootroot00000000000000.navigation-sidebar row { padding: 3px 0px; } .permissions clamp { margin-bottom: 25px; } row .status { padding: 8px; background-color: transparent; background-image: -gtk-icontheme("dialog-warning-symbolic"); background-repeat: no-repeat; background-position: center; background-size: 16px; } row .status.user { color: @accent_color; } row .status.global { color: @insensitive_fg_color; } row .content .bus .info, row .content .variable .info, row .content .path .info { padding: 8px; color: @accent_color; background-color: transparent; background-image: -gtk-icontheme("dialog-question-symbolic"); background-repeat: no-repeat; background-position: center; background-size: 16px; } row .content .relative.path .info, row .content .bus .info, row .content .variable .info { background-image: -gtk-icontheme("object-select-symbolic"); } row .content .bus.not-valid .info, row .content .variable.not-valid .info, row .content .path.not-valid .info { color: @warning_color; background-image: -gtk-icontheme("dialog-warning-symbolic"); } row .content entry, row .content .status, row .content button { margin-left: 8px; } row .content .path popover treeview { color: @insensitive_fg_color; font-size: small; background-color: transparent; } row .content .path popover treeview:selected { background-color: @theme_bg_color; } .permissions .app-info { margin-top: 15px; } .permissions .app-info.compact { margin-top: 5px; margin-bottom: 5px; } .permissions .app-info .icon { margin: 25px 25px 25px 0px; } .permissions .app-info.compact .icon { margin: 5px 0px 5px 0px; } .permissions .app-info .name { font-size: xx-large; font-weight: 800; margin-bottom: 5px; } .permissions .app-info .author { margin-bottom: 15px; } .permissions .app-info.compact .author { margin-bottom: 25px; } .permissions .app-info .description { color: @insensitive_fg_color; margin-bottom: 5px; } .permissions .app-info .value { margin-bottom: 5px; } .reset-button image { color: @warning_color; } Flatseal-2.4.1/src/widgets/000077500000000000000000000000001520337174300155135ustar00rootroot00000000000000Flatseal-2.4.1/src/widgets/aboutDialog.js000066400000000000000000000020151520337174300203010ustar00rootroot00000000000000/* exported showAboutDialog */ /* aboutDialog.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {Gtk} = imports.gi; const ABOUT_RESOURCE = '/com/github/tchx84/Flatseal/widgets/aboutDialog.ui'; function showAboutDialog(window) { const builder = Gtk.Builder.new_from_resource(ABOUT_RESOURCE); const dialog = builder.get_object('about-window'); dialog.present(window); } Flatseal-2.4.1/src/widgets/aboutDialog.ui000066400000000000000000000032061520337174300203050ustar00rootroot00000000000000 Flatseal 2.4.1 © 2020-2026 Martin Abente Lahaye https://github.com/tchx84/Flatseal/issues/new Martin Abente Lahaye Martin Abente Lahaye Bilal Elmoussaoui Adrien Plazas Kevin Degeling Mufeed Ali Leorize Christopher Davis Lctrs Will Thompson Jonas Johan Solsvik Maximiliano Sandoval Ferenc rusty-snake Guilhem Morer Fiana Fortressia Hubert Figuière Arvin Verain Daniel Hast Urtsi Santsi Artem Bilous Peter Daniel Rusek Heimen Stoffels Tim Rieck Óvári Milo Casagrande Kukuh Syafaat Ã…ke Engelbrektson BartÅ‚omiej Garbiec Ã�car Nin Solana BigmenPixel0 Ümit Solmaz Exponentactivity Eric Zhang Georgi Georgiev Sabri Ünal Mathieu Bousquet Yaron Shahrabani K.B.Dharun Krishna Dingzhong Chen Philipp Kiemle Vovkiv Nikolai Eugen Sandvik Aleksandr Melman Lucas Serrano Benedek Dévényi Athanasios Karachalios Scrambled777 Sunniva Løvstad Dynamiclinking Ahmed Mohammed Danial Behzadi Limemane Mate Babos badbrocoli Léane Grasser lucasmz-dev camegone Huỳnh Thiện Lá»™c Tobias Bernard J.P. MacDonald TheEvilSkeleton com.github.tchx84.Flatseal gpl-3-0 Flatseal-2.4.1/src/widgets/appInfoViewer.js000066400000000000000000000071731520337174300206370ustar00rootroot00000000000000/* exported FlatsealAppInfoViewer */ /* eslint accessor-pairs: */ /* appInfoViewer.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, GLib, Gtk} = imports.gi; const {applications} = imports.models; const _propFlags = GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT; const styles = { NORMAL: 'normal', COMPACT: 'compact', }; var FlatsealAppInfoViewer = GObject.registerClass({ GTypeName: 'FlatsealAppInfoViewer', Template: 'resource:///com/github/tchx84/Flatseal/widgets/appInfoViewer.ui', InternalChildren: ['icon', 'name', 'author', 'version', 'identifier', 'released', 'runtime'], Properties: { compact: GObject.ParamSpec.boolean( 'compact', 'compact', 'compact', _propFlags, false), }, }, class FlatsealAppInfoViewer extends Gtk.Box { _init() { super._init(); this._appId = ''; this._compact = false; this._applications = applications.getDefault(); this._validator = new RegExp(/^(\d+)-(\d+)-(\d+)$/); } _getFormattedDate(string) { if (!this._validator.test(string)) return string; const [, year, month, day] = string.match(this._validator); const date = GLib.DateTime.new(GLib.TimeZone.new_local(), year, month, day, 0, 0, 0); /* TRANSLATORS: , */ return date.format(_('%B %e, %Y')); } _setup() { const appdata = this._applications.getAppDataForAppId(this._appId); const desktop = this._applications.getDesktopForAppData(appdata); this._name.set_label(appdata.name); this._author.set_label(appdata.author); this._version.set_label(appdata.version); this._identifier.set_label(appdata.appId); this._released.set_label(this._getFormattedDate(appdata.date)); this._icon.set_from_icon_name(desktop.icon); const metadata = this._applications.getMetadataForAppId(this._appId); this._runtime.set_label(metadata.runtime); } set appId(id) { this._appId = id; this._setup(); } set compact(value) { if (typeof this._icon === 'undefined') return; if (this._compact === value) return; const orientation = value ? Gtk.Orientation.VERTICAL : Gtk.Orientation.HORIZONTAL; const alignment = value ? Gtk.Align.CENTER : Gtk.Align.START; this.set_orientation(orientation); this._icon.halign = alignment; this._name.halign = alignment; this._author.halign = alignment; this.halign = alignment; const style = value ? styles.COMPACT : styles.NORMAL; const context = this.get_style_context(); if (context.has_class(styles.NORMAL)) context.remove_class(styles.NORMAL); if (context.has_class(styles.COMPACT)) context.remove_class(styles.COMPACT); context.add_class(style); this._compact = value; } }); Flatseal-2.4.1/src/widgets/appInfoViewer.ui000066400000000000000000000137531520337174300206410ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/applicationRow.js000066400000000000000000000025761520337174300210560ustar00rootroot00000000000000/* exported FlatsealApplicationRow */ /* applicationRow.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GLib, GObject, Adw} = imports.gi; var FlatsealApplicationRow = GObject.registerClass({ GTypeName: 'FlatsealApplicationRow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/applicationRow.ui', InternalChildren: ['icon'], }, class FlatsealApplicationRow extends Adw.ActionRow { _init(appId, appName, appIconName) { super._init(); this._icon.set_from_icon_name(appIconName); this.set_title(GLib.markup_escape_text(appName, -1)); this.set_subtitle(appId); } get appId() { return this.get_subtitle(); } get appName() { return this.get_title(); } }); Flatseal-2.4.1/src/widgets/applicationRow.ui000066400000000000000000000013711520337174300210470ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/busNameRow.js000066400000000000000000000061501520337174300201350ustar00rootroot00000000000000/* exported FlatsealBusNameRow */ /* busNameRow.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk} = imports.gi; const {FlatsealOverrideStatusIcon} = imports.widgets.overrideStatusIcon; const _propFlags = GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT; /* https://dbus.freedesktop.org/doc/dbus-specification.html */ const EXP = /^(([A-Z]|[a-z]|[0-9]|_|-)+)(\.(([A-Z]|[a-z]|[0-9]|_|-)+))+(\.\*){0,1}$/; var validity = { VALID: 'valid', NOTVALID: 'not-valid', }; const _notValidMsg = _('This is not a valid option'); var FlatsealBusNameRow = GObject.registerClass({ GTypeName: 'FlatsealBusNameRow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/busNameRow.ui', InternalChildren: ['entry', 'button', 'image', 'statusBox'], Properties: { text: GObject.ParamSpec.string( 'text', 'text', 'text', _propFlags, ''), }, Signals: { 'remove-requested': {}, }, }, class FlatsealBusNameRow extends Gtk.Box { _init() { super._init({}); this._setup(); } _setup() { this._expression = new RegExp(EXP); this._entry.connect('notify::text', this._changed.bind(this)); this._button.connect('clicked', this._remove.bind(this)); this._statusIcon = new FlatsealOverrideStatusIcon(); this._statusBox.append(this._statusIcon); this._validate(); } _remove() { this.emit('remove-requested'); } _changed() { this._validate(); this.notify('text'); } _validate() { const context = this.get_style_context(); if (context.has_class(validity.VALID)) context.remove_class(validity.VALID); else if (context.has_class(validity.NOTVALID)) context.remove_class(validity.NOTVALID); if (this._expression.test(this.text)) { context.add_class(validity.VALID); this._image.set_tooltip_text(''); } else { context.add_class(validity.NOTVALID); this._image.set_tooltip_text(_notValidMsg); } } get text() { if (!this._entry) return ''; return this._entry.get_text(); } set text(text) { if (this.text === text) return; this._entry.set_text(text); } get status() { return this._statusIcon.status; } set status(status) { this._statusIcon.status = status; } }); Flatseal-2.4.1/src/widgets/busNameRow.ui000066400000000000000000000023101520337174300201300ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/detailsButton.js000066400000000000000000000070501520337174300206740ustar00rootroot00000000000000/* exported FlatsealDetailsButton */ /* detailsButton.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {Gio, GObject, Gtk, GLib} = imports.gi; const GSActivateIface = ` `; const DBListNamesIface = ` `; var FlatsealDetailsButton = GObject.registerClass({ GTypeName: 'FlatsealDetailsButton', }, class FlatsealDetailsButton extends Gtk.Button { _init(permissions) { super._init(); this._setup(permissions); } _setup(permissions) { this._proxy = null; this._permissions = permissions; this._foundManager = false; this.set_use_underline(true); this.set_label(_('_Show Details')); this.connect('clicked', this._clicked.bind(this)); this._checkSoftwareManager(); } _checkSoftwareManager() { try { const DBListNamesProxy = Gio.DBusProxy.makeProxyWrapper(DBListNamesIface); const proxy = new DBListNamesProxy( Gio.DBus.session, 'org.freedesktop.DBus', '/org/freedesktop/DBus'); proxy.ListActivatableNamesRemote(([services], err) => { this._foundManager = !err && services.indexOf('org.gnome.Software') !== -1; this._update(); }); } catch (err) { this._foundManager = false; this._update(); } } _clicked() { try { const GSProxy = Gio.DBusProxy.makeProxyWrapper(GSActivateIface); this._proxy = new GSProxy( Gio.DBus.session, 'org.gnome.Software', '/org/gnome/Software', this._launchSoftwareManager.bind(this)); } catch (err) { logError(err); } } _launchSoftwareManager() { try { const args = GLib.Variant.new('(ss)', [this._permissions.appId, '']); this._proxy.ActivateRemote('details', [args], null); } catch (err) { logError(err); } } _update() { this.sensitive = this._foundManager && this._permissions.appId; if (this.sensitive) this.set_tooltip_text(_('Show application in a software manager')); else this.set_tooltip_text(_('No software manager found')); } enable() { this._update(); } disable() { this.sensitive = false; this.set_tooltip_text(''); } }); Flatseal-2.4.1/src/widgets/docsViewer.js000066400000000000000000000130601520337174300201630ustar00rootroot00000000000000/* exported FlatsealDocsViewer */ /* docsViewer.js * * Copyright 2021 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GLib, Gtk, GObject, Adw, WebKit} = imports.gi; const {WebView} = imports.gi.WebKit; // eslint-disable-line no-unused-vars const MAX_RESULTS = 10; var FlatsealDocsViewer = GObject.registerClass({ GTypeName: 'FlatsealDocsViewer', Template: 'resource:///com/github/tchx84/Flatseal/widgets/docsViewer.ui', InternalChildren: [ 'webview', 'backButton', 'forwardButton', 'previousButton', 'nextButton', 'searchButton', 'searchBar', 'searchEntry', ], Signals: { close: { flags: GObject.SignalFlags.RUN_LAST | GObject.SignalFlags.ACTION, }, }, }, class FlatsealDocsViewer extends Adw.Window { _init(parent) { super._init({}); this._setup(parent); } _setup(parent) { const [width, height] = parent.get_default_size(); this.default_width = width; this.default_height = height; this.transient_for = parent; this.application = parent.application; const path = GLib.build_filenamev([ imports.package.datadir, 'help', 'C', 'flatseal', 'index.html', ]); this._webview.load_uri(`file://${path}`); /* Force it to use browser history with inner anchors */ this._webview.connect('notify::uri', this._loadUri.bind(this)); /* Use system web browser for external urls */ this._webview.connect('decide-policy', this._decidePolicy.bind(this)); /* Update navigation buttons on every history change */ this._webview.connect_after('load-changed', this._updateNavigation.bind(this)); this._backButton.connect('clicked', this._goBack.bind(this)); this._forwardButton.connect('clicked', this._goForward.bind(this)); this._searchEntry.connect('search-changed', this._resetSearch.bind(this)); this._searchEntry.connect('stop-search', this._cancelSearch.bind(this)); this._searchEntry.connect('next-match', this._searchNext.bind(this)); this._searchEntry.connect('previous-match', this._searchPrevious.bind(this)); this._previousButton.connect('clicked', this._searchPrevious.bind(this)); this._nextButton.connect('clicked', this._searchNext.bind(this)); this._searchButton.connect('toggled', this._toggleSearchWithButton.bind(this)); this._searchButton.bind_property( 'active', this._searchBar, 'search-mode-enabled', GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE); this._searchBar.connect( 'notify::search-mode-enabled', this._enableSearchController.bind(this)); this._searchBar.connect_entry(this._searchEntry); this._searchBar.set_key_capture_widget(this); } _loadUri() { this._webview.load_uri(this._webview.uri); } _decidePolicy(webview, decision, type) { // eslint-disable-line class-methods-use-this if (type !== WebKit.PolicyDecisionType.NAVIGATION_ACTION) return false; const action = decision.get_navigation_action(); const uri = action.get_request().get_uri(); if (!uri.startsWith('file')) { const launcher = new Gtk.UriLauncher(); launcher.uri = uri; launcher.launch(this, null, this._openUri); decision.ignore(); return true; } return false; } _openUri(launcher, res) { // eslint-disable-line class-methods-use-this try { launcher.launch_finish(res); } catch (err) { logError(err); } } _updateNavigation() { this._backButton.sensitive = this._webview.can_go_back(); this._forwardButton.sensitive = this._webview.can_go_forward(); } _goBack() { this._webview.go_back(); } _goForward() { this._webview.go_forward(); } _toggleSearchWithButton() { if (this._searchButton.active) this._searchEntry.grab_focus(); else this._searchButton.grab_focus(); } _enableSearchController() { if (this._searchBar.search_mode_enabled) this._findController = this._webview.get_find_controller(); else this._findController.search_finish(); } _cancelSearch() { if (this._searchEntry.get_text() === '') this._searchBar.search_mode_enabled = false; this._searchEntry.set_text(''); } _resetSearch() { this._findController.search( this._searchEntry.text, WebKit.FindOptions.CASE_INSENSITIVE | WebKit.FindOptions.WRAP_AROUND, MAX_RESULTS); } _searchPrevious() { this._findController.search_previous(); } _searchNext() { this._findController.search_next(); } }); Flatseal-2.4.1/src/widgets/docsViewer.ui000066400000000000000000000061141520337174300201660ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/globalInfoViewer.js000066400000000000000000000056161520337174300213170ustar00rootroot00000000000000/* exported FlatsealGlobalInfoViewer */ /* eslint accessor-pairs: */ /* globalInfoViewer.js * * Copyright 2022 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk} = imports.gi; const _propFlags = GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT; const {info, permissions, portals} = imports.models; const styles = { NORMAL: 'normal', COMPACT: 'compact', }; var FlatsealGlobalInfoViewer = GObject.registerClass({ GTypeName: 'FlatsealGlobalInfoViewer', Template: 'resource:///com/github/tchx84/Flatseal/widgets/globalInfoViewer.ui', InternalChildren: ['icon', 'title', 'description', 'flatpak', 'portal', 'overrides'], Properties: { compact: GObject.ParamSpec.boolean( 'compact', 'compact', 'compact', _propFlags, false), }, }, class FlatsealGlobalInfoViewer extends Gtk.Box { _init() { super._init(); this._compact = false; this._setup(); } _setup() { this.constructor._setIfAvailable(this._flatpak, info.getDefault().getVersion()); this.constructor._setIfAvailable(this._portal, portals.getDefault().getVersion()); this.constructor._setIfAvailable(this._overrides, permissions.getDefault()._getBaseOverridesPath()); } static _setIfAvailable(label, value) { if (!value) return; label.set_label(value.toString()); } set compact(value) { if (typeof this._icon === 'undefined') return; if (this._compact === value) return; const orientation = value ? Gtk.Orientation.VERTICAL : Gtk.Orientation.HORIZONTAL; const alignment = value ? Gtk.Align.CENTER : Gtk.Align.START; this.set_orientation(orientation); this._icon.halign = alignment; this._title.halign = alignment; this._description.halign = alignment; this.halign = alignment; const style = value ? styles.COMPACT : styles.NORMAL; const context = this.get_style_context(); if (context.has_class(styles.NORMAL)) context.remove_class(styles.NORMAL); if (context.has_class(styles.COMPACT)) context.remove_class(styles.COMPACT); context.add_class(style); this._compact = value; } }); Flatseal-2.4.1/src/widgets/globalInfoViewer.ui000066400000000000000000000145561520337174300213230ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/globalRow.js000066400000000000000000000022531520337174300200030ustar00rootroot00000000000000/* exported FlatsealGlobalRow */ /* globalRow.js * * Copyright 2022 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Adw} = imports.gi; var FlatsealGlobalRow = GObject.registerClass({ GTypeName: 'FlatsealGlobalRow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/globalRow.ui', InternalChildren: ['icon'], }, class FlatsealGlobalRow extends Adw.ActionRow { _init() { super._init(); } get appId() { return this.get_subtitle(); } get appName() { return this.get_title(); } }); Flatseal-2.4.1/src/widgets/globalRow.ui000066400000000000000000000015661520337174300200120ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/menu.ui000066400000000000000000000014021520337174300170130ustar00rootroot00000000000000
app.help _Help app.documentation _Documentation app.shortcuts _Keyboard Shortcuts app.about _About Flatseal
Flatseal-2.4.1/src/widgets/overrideStatusIcon.js000066400000000000000000000045071520337174300217130ustar00rootroot00000000000000/* exported FlatsealOverrideStatusIcon OverrideStatus */ /* overrideStatusIcon.js * * Copyright 2022 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk} = imports.gi; const {FlatsealOverrideStatus} = imports.models.overrideStatus; const OverrideStatusDescription = { global: _('Changed globally'), user: _('Changed by the user'), }; var FlatsealOverrideStatusIcon = GObject.registerClass({ GTypeName: 'FlatsealOverrideStatusIcon', Template: 'resource:///com/github/tchx84/Flatseal/widgets/overrideStatusIcon.ui', Properties: { status: GObject.ParamSpec.string( 'status', 'status', 'status', GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT, FlatsealOverrideStatus.ORIGINAL, ), }, }, class FlatsealOverrideStatusIcon extends Gtk.Image { _init() { super._init({}); this._status = FlatsealOverrideStatus.ORIGINAL; } set status(status) { if (this._status === status) return; const context = this.get_style_context(); if (context.has_class(FlatsealOverrideStatus.USER)) context.remove_class(FlatsealOverrideStatus.USER); else if (context.has_class(FlatsealOverrideStatus.GLOBAL)) context.remove_class(FlatsealOverrideStatus.GLOBAL); this._status = status; if (status === FlatsealOverrideStatus.ORIGINAL) { this.set_tooltip_text(''); this.visible = false; return; } this.set_tooltip_text(OverrideStatusDescription[status]); this.visible = true; context.add_class(status); } get status() { return this._status; } }); Flatseal-2.4.1/src/widgets/overrideStatusIcon.ui000066400000000000000000000003061520337174300217050ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/pathRow.js000066400000000000000000000163051520337174300175020ustar00rootroot00000000000000/* exported FlatsealPathRow */ /* pathRow.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk} = imports.gi; const {FlatsealOverrideStatusIcon} = imports.widgets.overrideStatusIcon; const _propFlags = GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT; const _options = { '/': _('this absolute path'), '~/': _('this path relative to the home directory'), 'host-etc': _('all system configurations'), 'host-os': _('all system libraries, executables and static data'), host: _('all system files'), home: _('all user files'), 'xdg-desktop': _('the desktop directory'), 'xdg-documents': _('the documents directory'), 'xdg-download': _('the download directory'), 'xdg-music': _('the music directory'), 'xdg-pictures': _('the pictures directory'), 'xdg-public-share': _('the public directory'), 'xdg-videos': _('the videos directory'), 'xdg-templates': _('the templates directory'), 'xdg-config': _('the config directory'), 'xdg-cache': _('the cache directory'), 'xdg-data': _('the data directory'), 'xdg-run': _('the runtime directory'), }; var mode = { READONLY: 'read-only', READWRITE: 'read-write', CREATE: 'create', }; var validity = { VALID: 'valid', NOTVALID: 'not-valid', }; const _modeDescription = { 'read-only': _('Can read: %s'), 'read-write': _('Can modify and read: %s'), create: _('Can create, modify and read: %s'), }; const _negationSymbol = '!'; const _negationRegex = '^!{0,1}'; const _modeNegatedDescription = { 'read-only': _('Can\'t read: %s'), 'read-write': _('Can\'t modify or read: %s'), create: _('Can\'t create, modify or read: %s'), reset: _('Can\'t create, modify or read: %s'), }; const _notValidMsg = _('This is not a valid option'); var FlatsealPathRow = GObject.registerClass({ GTypeName: 'FlatsealPathRow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/pathRow.ui', InternalChildren: ['entry', 'button', 'store', 'completion', 'image', 'statusBox'], Properties: { text: GObject.ParamSpec.string( 'text', 'text', 'text', _propFlags, ''), mode: GObject.ParamSpec.string( 'mode', 'mode', 'mode', _propFlags, mode.READONLY), }, Signals: { 'remove-requested': {}, }, }, class FlatsealPathRow extends Gtk.Box { _init() { this._mode = mode.READONLY; super._init({}); this._setup(); } _setup() { this._statusIcon = new FlatsealOverrideStatusIcon(); this._statusBox.append(this._statusIcon); Object.keys(_options).forEach(option => { this._store.set(this._store.append(), [0], [option]); this._store.set(this._store.append(), [0], [`!${option}`]); }); /* XXX workaround property deprecation until GtkSuggestionEntry*/ this._completion.set_text_column(0); const paths = Object.keys(_options) .slice(0, 2) .join('|'); this._pathRE = new RegExp(`${_negationRegex}((${paths})[^/]+)+/{0,1}(? { if (text.startsWith(option)) { optionMsg = _options[option]; return true; } return false; }); this._image.set_tooltip_text(modeMsg.format(optionMsg)); } _validate() { const negated = this.text.startsWith(_negationSymbol); const context = this.get_style_context(); if (context.has_class(validity.VALID)) context.remove_class(validity.VALID); else if (context.has_class(validity.NOTVALID)) context.remove_class(validity.NOTVALID); if ((this._pathRE.test(this.text) || this._optionRE.test(this.text)) && (!negated && this._modeRE.test(this.text) || negated && this._negationModeRE.test(this.text))) { context.add_class(validity.VALID); return; } context.add_class(validity.NOTVALID); this._image.set_tooltip_text(_notValidMsg); } get text() { if (!this._entry) return ''; return this._entry.get_text(); } set text(text) { if (this.text === text) return; this._entry.set_text(text); this._update(); this._validate(); } get mode() { return this._mode; } set mode(value) { const context = this.get_style_context(); if (context.has_class(mode.READONLY)) context.remove_class(mode.READONLY); else if (context.has_class(mode.READWRITE)) context.remove_class(mode.READWRITE); else if (context.has_class(mode.CREATE)) context.remove_class(mode.CREATE); if (value === mode.READONLY) context.add_class(mode.READONLY); else if (value === mode.READWRITE) context.add_class(mode.READWRITE); else if (value === mode.CREATE) context.add_class(mode.CREATE); if (this._mode === value) return; this._mode = value; this.notify('mode'); } get status() { return this._statusIcon.status; } set status(status) { this._statusIcon.status = status; } }); Flatseal-2.4.1/src/widgets/pathRow.ui000066400000000000000000000027471520337174300175100ustar00rootroot00000000000000 store True True Flatseal-2.4.1/src/widgets/pathsViewer.js000066400000000000000000000065721520337174300203640ustar00rootroot00000000000000/* exported FlatsealPathsViewer */ /* pathsViewer.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk} = imports.gi; const {FlatsealOverrideStatus} = imports.models.overrideStatus; const _propFlags = GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT; var FlatsealPathsViewer = GObject.registerClass({ GTypeName: 'FlatsealPathsViewer', Template: 'resource:///com/github/tchx84/Flatseal/widgets/pathsViewer.ui', Properties: { text: GObject.ParamSpec.string( 'text', 'text', 'text', _propFlags, ''), status: GObject.ParamSpec.string( 'status', 'status', 'status', _propFlags, FlatsealOverrideStatus.ORIGINAL), }, }, class FlatsealPathsViewer extends Gtk.Box { _init(serializeFunc, deserializeFunc, rowClass) { this._serializeFunc = serializeFunc; this._deserializeFunc = deserializeFunc; this._status = FlatsealOverrideStatus.ORIGINAL; super._init({}); this._rowClass = rowClass; } _changed() { this.notify('text'); } _remove(row) { this.remove(row); if (this.get_first_child() === null) this.visible = false; this._changed(); } _update(text) { for (const row of Array.from(this)) this.remove(row); this.visible = false; const paths = this._deserializeFunc(text); paths.forEach(path => { if (path.length === 0) return; this.add(path); }); this._updateStatus(); } _updateStatus() { const statuses = this._status .split(';') .filter(s => s.length !== 0); const rows = Array.from(this).reverse(); /* if it's still out of sync, bail out */ if (statuses.length !== rows.length) return; rows.forEach((row, index) => { row.status = statuses[index]; }); } set text(text) { if (text === '') { this._update(text); return; } this._update(text); this.notify('text'); } get text() { return this._serializeFunc(Array.from(this) .map(row => row.text) .reverse(), ); } set status(status) { this._status = status; this._updateStatus(); } get status() { return this._status; } add(path) { const row = new this._rowClass(); row.text = path; row.connect('remove-requested', this._remove.bind(this, row)); row.connect('notify::text', this._changed.bind(this)); this.prepend(row); this.visible = true; } }); Flatseal-2.4.1/src/widgets/pathsViewer.ui000066400000000000000000000003521520337174300203530ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/permissionEntryRow.js000066400000000000000000000045751520337174300217660ustar00rootroot00000000000000/* exported FlatsealPermissionEntryRow */ /* permissionEntryRow.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Adw} = imports.gi; const {FlatsealPathsViewer} = imports.widgets.pathsViewer; var FlatsealPermissionEntryRow = GObject.registerClass({ GTypeName: 'FlatsealPermissionEntryRow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/permissionEntryRow.ui', InternalChildren: [ 'description', 'permission', 'box', 'button', ], }, class FlatsealpermissionEntryRow extends Adw.PreferencesRow { _init(description, permission, content, serializeFunc, deserializeFunc, rowClass, iconName) { super._init({}); this._description.set_text(description); this._permission.set_text(permission); this._content = new FlatsealPathsViewer(serializeFunc, deserializeFunc, rowClass); this._content.text = content; this._box.append(this._content); this._content.bind_property('visible', this._box, 'visible', GObject.BindingFlags.SYNC_CREATE); this._button.icon_name = iconName; this._button.connect('clicked', this._add.bind(this)); this.connect('notify::sensitive', this._update.bind(this)); } _add() { this._content.add(''); } _update() { if (this.sensitive === false) this.set_tooltip_text(_('Not supported by the installed version of Flatpak')); else this.set_tooltip_text(''); } get content() { return this._content; } get status() { return this._content; } get supported() { return this.sensitive; } set supported(supported) { this.sensitive = supported; this._update(); } }); Flatseal-2.4.1/src/widgets/permissionEntryRow.ui000066400000000000000000000054461520337174300217650ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/permissionPortalRow.js000066400000000000000000000077531520337174300221270ustar00rootroot00000000000000/* exported FlatsealPermissionPortalRow */ /* permissionPortalRow.js * * Copyright 2021 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GLib, GObject, Adw} = imports.gi; const {getDefault, FlatpakPortalState} = imports.models.portals; const _propFlags = GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT; var FlatsealPermissionPortalRow = GObject.registerClass({ GTypeName: 'FlatsealPermissionPortalRow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/permissionPortalRow.ui', InternalChildren: ['stateSwitch', 'unsetButton'], Properties: { state: GObject.ParamSpec.int( 'state', 'state', 'state', _propFlags, FlatpakPortalState.UNKNOWN, FlatpakPortalState.ALLOWED, FlatpakPortalState.UNKNOWN), }, }, class FlatsealPermissionPortalRow extends Adw.ActionRow { _init(description, permission, content, table, id) { super._init({}); this.set_title(description); this.set_subtitle(permission); this._state = content; this._table = table; this._id = id; this._portals = getDefault(); this._unsetButton.connect('clicked', this._unsetClicked.bind(this)); this._stateHandlerId = this._stateSwitch.connect('state-set', this._stateSwitched.bind(this)); } _stateSwitched() { if (this._stateSwitch.active) this._state = FlatpakPortalState.ALLOWED; else this._state = FlatpakPortalState.DISALLOWED; this._updateWidget(); this.notify('state'); } _unsetClicked() { this._state = FlatpakPortalState.UNSET; this._updateWidget(); this.notify('state'); } _updateWidget() { GObject.signal_handler_block(this._stateSwitch, this._stateHandlerId); if (this._state === FlatpakPortalState.UNSUPPORTED) { this._stateSwitch.active = false; this._unsetButton.visible = false; this.sensitive = false; this.set_tooltip_text(this._portals.getUnsupportedReason(this._table, this._id)); } else if (this._state === FlatpakPortalState.UNSET) { this._stateSwitch.active = false; this._unsetButton.visible = false; this.sensitive = true; this.set_tooltip_text(''); } else if (this._state === FlatpakPortalState.DISALLOWED) { this._stateSwitch.active = false; this._unsetButton.visible = true; this.sensitive = true; this.set_tooltip_text(''); } else if (this._state === FlatpakPortalState.ALLOWED) { this._stateSwitch.active = true; this._unsetButton.visible = true; this.sensitive = true; this.set_tooltip_text(''); } GObject.signal_handler_unblock(this._stateSwitch, this._stateHandlerId); } get content() { return this; } set state(value) { if (value === this._state || typeof this._state === 'undefined') return; this._state = value; GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, this._updateWidget.bind(this)); } get state() { return this._state; } get supported() { return this.sensitive; } set supported(supported) { this.sensitive = supported; this._updateWidget(); } }); Flatseal-2.4.1/src/widgets/permissionPortalRow.ui000066400000000000000000000016371520337174300221230ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/permissionSwitchRow.js000066400000000000000000000037621520337174300221230ustar00rootroot00000000000000/* exported FlatsealPermissionSwitchRow */ /* permissionSwitchRow.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Adw} = imports.gi; const {FlatsealOverrideStatusIcon} = imports.widgets.overrideStatusIcon; var FlatsealPermissionSwitchRow = GObject.registerClass({ GTypeName: 'FlatsealPermissionSwitchRow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/permissionSwitchRow.ui', InternalChildren: ['content', 'statusBox'], }, class FlatsealPermissionSwitchRow extends Adw.ActionRow { _init(description, permission, content) { super._init({}); this.set_title(description); this.set_subtitle(permission); this._content.set_active(content); this.connect('notify::sensitive', this._update.bind(this)); this._statusIcon = new FlatsealOverrideStatusIcon(); this._statusBox.append(this._statusIcon); } _update() { if (this.sensitive === false) this.set_tooltip_text(_('Not supported by the installed version of Flatpak')); else this.set_tooltip_text(''); } get content() { return this._content; } get status() { return this._statusIcon; } get supported() { return this.sensitive; } set supported(supported) { this.sensitive = supported; this._update(); } }); Flatseal-2.4.1/src/widgets/permissionSwitchRow.ui000066400000000000000000000010211520337174300221060ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/relativePathRow.js000066400000000000000000000065161520337174300212010ustar00rootroot00000000000000/* exported FlatsealRelativePathRow */ /* relativePathRow.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk} = imports.gi; const {persistent} = imports.models; const {FlatsealOverrideStatusIcon} = imports.widgets.overrideStatusIcon; const _propFlags = GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT; var validity = { VALID: 'valid', NOTVALID: 'not-valid', }; const _notValidMsg = _('This is not a valid option'); var FlatsealRelativePathRow = GObject.registerClass({ GTypeName: 'FlatsealRelativePathRow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/relativePathRow.ui', InternalChildren: ['entry', 'button', 'image', 'statusBox'], Properties: { text: GObject.ParamSpec.string( 'text', 'text', 'text', _propFlags, ''), }, Signals: { 'remove-requested': {}, }, }, class FlatsealRelativePathRow extends Gtk.Box { _init() { super._init({}); this._setup(); } _setup() { this._expression = new RegExp(/^[^\n]*$/); this._entry.connect('notify::text', this._changed.bind(this)); this._button.connect('clicked', this._remove.bind(this)); this._statusIcon = new FlatsealOverrideStatusIcon(); this._statusBox.append(this._statusIcon); this._validate(); } _remove() { this.emit('remove-requested'); } _changed() { this._update(); this._validate(); this.notify('text'); } _update() { const model = persistent.getDefault(); this.sensitive = !model.isOriginal(this.text); let tooltip = ''; if (!this.sensitive) tooltip = _('Default paths can\'t be removed'); this.set_tooltip_text(tooltip); } _validate() { const context = this.get_style_context(); if (context.has_class(validity.VALID)) context.remove_class(validity.VALID); else if (context.has_class(validity.NOTVALID)) context.remove_class(validity.NOTVALID); if (this._expression.test(this.text)) { context.add_class(validity.VALID); this._image.set_tooltip_text(''); } else { context.add_class(validity.NOTVALID); this._image.set_tooltip_text(_notValidMsg); } } get text() { if (!this._entry) return ''; return this._entry.get_text(); } set text(text) { if (this.text === text) return; this._entry.set_text(text); } get status() { return this._statusIcon.status; } set status(status) { this._statusIcon.status = status; } }); Flatseal-2.4.1/src/widgets/relativePathRow.ui000066400000000000000000000022641520337174300211760ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/resetButton.js000066400000000000000000000044021520337174300203670ustar00rootroot00000000000000/* exported FlatsealResetButton */ /* resetButton.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk, Adw} = imports.gi; var FlatsealResetButton = GObject.registerClass({ GTypeName: 'FlatsealResetButton', }, class FlatsealResetButton extends Gtk.Button { _init(permissions) { super._init(); this._setup(permissions); } /* XXX Can't move this a .ui file for some reason */ _setup(permissions) { this._permissions = permissions; this._permissions.connect('changed', this._update.bind(this)); this.label = _('_Reset'); this.use_underline = true; this.sensitive = false; this.add_css_class('reset-button'); this.connect('clicked', this._clicked.bind(this)); } _clicked() { this._permissions.reset(); } _update(widget, overriden, unsupported) { this.sensitive = overriden; if (unsupported) { const content = new Adw.ButtonContent(); content.icon_name = 'dialog-warning-symbolic'; content.label = _('_Reset'); content.use_underline = true; this.set_child(content); /* XXX this makes the button look very inconsistent */ this.remove_css_class('image-text-button'); } else { this.label = _('_Reset'); } let text = _('No changes made to this application'); if (overriden) text = _('Reset this application permissions'); if (unsupported) text += _(', including changes not made with Flatseal'); this.set_tooltip_text(text); } }); Flatseal-2.4.1/src/widgets/shortcutsWindow.ui000066400000000000000000000102341520337174300213000ustar00rootroot00000000000000 General <alt> Show mnemonics F1 Show documentation F10 Show menu <ctrl>question Keyboard shortcuts <ctrl>Q Quit Navigation Left Move left Up Move up Right Move right Down Move down Applications <ctrl>F Find Permissions space Toggle Documentation <ctrl>F Find <ctrl>G Find next <Control><Shift>G Find previous Flatseal-2.4.1/src/widgets/variableRow.js000066400000000000000000000060161520337174300203310ustar00rootroot00000000000000/* exported FlatsealVariableRow */ /* variableRow.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk} = imports.gi; const {FlatsealOverrideStatusIcon} = imports.widgets.overrideStatusIcon; const {VAR_REGEXP} = imports.models.variables; const _propFlags = GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT; var validity = { VALID: 'valid', NOTVALID: 'not-valid', }; const _notValidMsg = _('This is not a valid option'); var FlatsealVariableRow = GObject.registerClass({ GTypeName: 'FlatsealVariableRow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/variableRow.ui', InternalChildren: ['entry', 'button', 'image', 'statusBox'], Properties: { text: GObject.ParamSpec.string( 'text', 'text', 'text', _propFlags, ''), }, Signals: { 'remove-requested': {}, }, }, class FlatsealVariableRow extends Gtk.Box { _init() { super._init({}); this._setup(); } _setup() { this._expression = new RegExp(VAR_REGEXP); this._entry.connect('notify::text', this._changed.bind(this)); this._button.connect('clicked', this._remove.bind(this)); this._statusIcon = new FlatsealOverrideStatusIcon(); this._statusBox.append(this._statusIcon); this._validate(); } _remove() { this.emit('remove-requested'); } _changed() { this._validate(); this.notify('text'); } _validate() { const context = this.get_style_context(); if (context.has_class(validity.VALID)) context.remove_class(validity.VALID); else if (context.has_class(validity.NOTVALID)) context.remove_class(validity.NOTVALID); if (this._expression.test(this.text)) { context.add_class(validity.VALID); this._image.set_tooltip_text(''); } else { context.add_class(validity.NOTVALID); this._image.set_tooltip_text(_notValidMsg); } } get text() { if (!this._entry) return ''; return this._entry.get_text(); } set text(text) { if (this.text === text) return; this._entry.set_text(text); } get status() { return this._statusIcon.status; } set status(status) { this._statusIcon.status = status; } }); Flatseal-2.4.1/src/widgets/variableRow.ui000066400000000000000000000021441520337174300203300ustar00rootroot00000000000000 Flatseal-2.4.1/src/widgets/window.js000066400000000000000000000352051520337174300173650ustar00rootroot00000000000000/* exported FlatsealWindow */ /* window.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {GObject, Gtk, Adw} = imports.gi; const {applications, permissions} = imports.models; const {FlatsealAppInfoViewer} = imports.widgets.appInfoViewer; const {FlatsealGlobalInfoViewer} = imports.widgets.globalInfoViewer; const {FlatsealApplicationRow} = imports.widgets.applicationRow; const {FlatsealGlobalRow} = imports.widgets.globalRow; const {FlatsealPermissionEntryRow} = imports.widgets.permissionEntryRow; const {FlatsealPermissionPortalRow} = imports.widgets.permissionPortalRow; const {FlatsealPermissionSwitchRow} = imports.widgets.permissionSwitchRow; const {FlatsealResetButton} = imports.widgets.resetButton; const {FlatsealDetailsButton} = imports.widgets.detailsButton; const {FlatsealPathRow} = imports.widgets.pathRow; const {FlatsealRelativePathRow} = imports.widgets.relativePathRow; const {FlatsealVariableRow} = imports.widgets.variableRow; const {FlatsealBusNameRow} = imports.widgets.busNameRow; const {FlatsealSettingsModel} = imports.models.settings; const {isGlobalOverride} = imports.models.globalModel; const _bindFlags = GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE; const _bindReadFlags = GObject.BindingFlags.SYNC_CREATE; const menuResource = '/com/github/tchx84/Flatseal/widgets/menu.ui'; var FlatsealWindow = GObject.registerClass({ GTypeName: 'FlatsealWindow', Template: 'resource:///com/github/tchx84/Flatseal/widgets/window.ui', InternalChildren: [ 'actionBar', 'appInfoGroup', 'applicationsToastOverlay', 'applicationsSearchButton', 'applicationsSearchBar', 'applicationsSearchEntry', 'applicationsListBox', 'applicationsHeaderBar', 'permissionsHeaderBar', 'permissionsStack', 'permissionsBox', 'startHeaderBox', 'endHeaderBox', 'startActionBox', 'endActionBox', 'menuButton', 'contentLeaflet', 'permissionsTitle', 'toastOverlay', ], }, class FlatsealWindow extends Adw.ApplicationWindow { _init(application) { super._init({application}); this._setup(); } _setup() { const builder = Gtk.Builder.new_from_resource(menuResource); this._menuButton.set_menu_model(builder.get_object('menu')); this._settings = new FlatsealSettingsModel(); this._settings.restoreWindowState(this); this._permissions = permissions.getDefault(); this._applications = applications.getDefault(); this._detailsHeaderButton = new FlatsealDetailsButton(this._permissions); this._startHeaderBox.append(this._detailsHeaderButton); this._resetHeaderButton = new FlatsealResetButton(this._permissions); this._endHeaderBox.append(this._resetHeaderButton); this._detailsActionButton = new FlatsealDetailsButton(this._permissions); this._startActionBox.append(this._detailsActionButton); this._resetActionButton = new FlatsealResetButton(this._permissions); this._endActionBox.append(this._resetActionButton); this._toast = new Adw.Toast(); this._toast.title = _('Permissions have been reset'); this._toast.button_label = _('_Undo'); this._toast.timeout = 3; this._toast.connect('button-clicked', this._undoReset.bind(this)); this._resetHandlerId = this._permissions.connect('reset', this._showToast.bind(this)); this._failedToast = new Adw.Toast(); this._failedToast.title = _('Cannot load overrides due to incorrect contents'); this._failedToast.button_label = _('_Reset'); this._failedToast.timeout = null; this._failedToast.connect('button-clicked', this._doReset.bind(this)); this._permissions.connect('failed', this._showFailedToast.bind(this)); this._applicationsToast = new Adw.Toast(); this._applicationsToast.title = _('Refreshed due to changes in Flatpak installations'); this._applicationsToast.timeout = null; this._applications.connect('changed', this._showApplicationsToast.bind(this)); this._activatedRow = null; this._contentLeaflet.connect('notify::collapsed', this._updateSelection.bind(this)); this._updateSelection(); this._applicationsListBox.set_filter_func(this._filter.bind(this)); this._applicationsListBox.set_sort_func(this._sort.bind(this)); this._applicationsListBox.connect('row-activated', this._activateApplication.bind(this)); this._applicationsSearchEntry.connect('activate', this._selectSearch.bind(this)); this._applicationsSearchEntry.connect('search-changed', this._resetSearch.bind(this)); this._applicationsSearchButton.bind_property( 'active', this._applicationsSearchBar, 'search-mode-enabled', _bindFlags); this._setupApplications(); this._setupPermissions(); this._applicationsSearchBar.set_key_capture_widget(this.root); /* Only after the UI is setup */ if (this._activatedRow !== null) this._activateApplication(this._applicationsListBox, this._activatedRow); } _setupApplications() { for (const row of Array.from(this._applicationsListBox)) { if (row instanceof Adw.ActionRow) this._applicationsListBox.remove(row); } /* Find all available applications */ const allApplications = this._applications.getAll(); if (allApplications.length === 0) { this._contentLeaflet.show_content = false; this._permissionsStack.visibleChildName = 'withNoPermissionsPage'; return; } this._contentLeaflet.show_content = true; this._permissionsStack.visibleChildName = 'withPermissionsPage'; /* Add rows for every application */ const iconTheme = Gtk.IconTheme.get_for_display(this.get_display()); allApplications.forEach(app => { iconTheme.add_search_path(app.appThemePath); const row = new FlatsealApplicationRow(app.appId, app.appName, app.appIconName); this._applicationsListBox.append(row); if (app.appId === this._settings.getSelectedAppId()) this._activatedRow = row; }); /* Add row for global overrides */ this._globalRow = new FlatsealGlobalRow(); this._applicationsListBox.append(this._globalRow); /* Select after the list has been sorted */ if (this._activatedRow === null) this._activatedRow = this._applicationsListBox.get_row_at_index(1); } _setupPermissions() { const allPermissions = this._permissions.getAll(); if (allPermissions.length === 0) return; /* Set up applications information viewer */ this._appInfoViewer = new FlatsealAppInfoViewer(); this._appInfoGroup.add(this._appInfoViewer); this._contentLeaflet.bind_property( 'collapsed', this._appInfoViewer, 'compact', _bindReadFlags); this._globalInfoViewer = new FlatsealGlobalInfoViewer(); this._appInfoGroup.add(this._globalInfoViewer); this._contentLeaflet.bind_property( 'collapsed', this._globalInfoViewer, 'compact', _bindReadFlags); let lastGroup = ''; let lastPrefsGroup; allPermissions.forEach(p => { let row; let property = 'text'; if (p.type === 'path') { row = new FlatsealPermissionEntryRow( p.description, p.permission, p.value, p.serializeFunc, p.deserializeFunc, FlatsealPathRow, 'folder-new-symbolic'); } else if (p.type === 'relativePath') { row = new FlatsealPermissionEntryRow( p.description, p.permission, p.value, p.serializeFunc, p.deserializeFunc, FlatsealRelativePathRow, 'folder-new-symbolic'); } else if (p.type === 'variable') { row = new FlatsealPermissionEntryRow( p.description, p.permission, p.value, p.serializeFunc, p.deserializeFunc, FlatsealVariableRow, 'list-add-symbolic'); } else if (p.type === 'bus') { row = new FlatsealPermissionEntryRow( p.description, p.permission, p.value, p.serializeFunc, p.deserializeFunc, FlatsealBusNameRow, 'list-add-symbolic'); } else if (p.type === 'portal') { property = 'state'; row = new FlatsealPermissionPortalRow( p.description, p.permission, p.value, p.portalTable, p.portalId); } else { property = 'active'; row = new FlatsealPermissionSwitchRow( p.description, p.permission, p.value); } const context = row.get_style_context(); context.add_class(p.groupStyle); if (p.groupStyle !== lastGroup) { const groupRow = new Adw.PreferencesGroup(); groupRow.set_title(p.groupTitle); groupRow.set_description(p.groupDescription); this._permissionsBox.add(groupRow); lastGroup = p.groupStyle; lastPrefsGroup = groupRow; } row.supported = p.supported; lastPrefsGroup.add(row); this._portalsGroup = lastPrefsGroup; this._permissions.bind_property(p.property, row.content, property, _bindFlags); if (!row.status) return; this._permissions.bind_property(p.statusProperty, row.status, 'status', _bindFlags); }); } _shutdown() { this._permissions.shutdown(); this._applications.shutdown(); } _activateApplication(listBox, row) { this._activatedRow = row; this._updatePermissions(row); this._applicationsListBox.select_row(row); this._contentLeaflet.show_content = true; } _updatePermissionsPane(row) { if (row === null) { this._permissionsTitle.title = ''; this._resetActionButton.sensitive = false; this._resetHeaderButton.sensitive = false; this._detailsHeaderButton.disable(); this._detailsActionButton.disable(); } else if (isGlobalOverride(row.appId)) { this._permissionsTitle.title = row.appName; this._appInfoViewer.visible = false; this._globalInfoViewer.visible = true; this._portalsGroup.visible = false; this._detailsHeaderButton.disable(); this._detailsActionButton.disable(); } else { this._permissionsTitle.title = row.appName; this._appInfoViewer.appId = row.appId; this._appInfoViewer.visible = true; this._globalInfoViewer.visible = false; this._portalsGroup.visible = true; this._detailsHeaderButton.enable(); this._detailsActionButton.enable(); } } _updatePermissions(row) { this._failedToast.dismiss(); this._updatePermissionsPane(row); const appId = row ? row.appId : ''; this._permissions.appId = appId; this._settings.setSelectedAppId(appId); this._toast.dismiss(); } _updateSelection() { const mode = this._contentLeaflet.collapsed ? Gtk.SelectionMode.NONE : Gtk.SelectionMode.BROWSE; this._applicationsListBox.selection_mode = mode; if (this._contentLeaflet.collapsed) return; if (this._activatedRow === null) return; this._applicationsListBox.select_row(this._activatedRow); } _filter(row) { const text = this._applicationsSearchEntry.get_text(); if (text.length === 0) return true; const subString = text.toLowerCase(); return ( row.appId.toLowerCase().includes(subString) || row.appName.toLowerCase().includes(subString) ); } _sort(row1, row2) { // eslint-disable-line class-methods-use-this if (isGlobalOverride(row1.appId) || isGlobalOverride(row2.appId)) return 1; const name1 = row1.appName.toLowerCase(); const name2 = row2.appName.toLowerCase(); if (name1 === name2) return 0; if (name1 < name2) return -1; return 1; } _selectSearch() { const row = this._applicationsListBox.get_row_at_y(0); if (row !== null) row.grab_focus(); } _resetSearch() { this._applicationsListBox.invalidate_filter(); } _showToast() { this._toastOverlay.add_toast(this._toast); } _showFailedToast() { this._toastOverlay.add_toast(this._failedToast); } _showApplicationsToast() { this._setupApplications(); this._applicationsToastOverlay.add_toast(this._applicationsToast); } _doReset() { GObject.signal_handler_block(this._permissions, this._resetHandlerId); this._permissions.reset(); GObject.signal_handler_unblock(this._permissions, this._resetHandlerId); } _undoReset() { this._permissions.undo(); } vfunc_close_request() { this._settings.saveWindowState(this); this._shutdown(); return super.vfunc_close_request(); } showApplication(appId) { const row = Array.from(this._applicationsListBox).find(r => r.appId === appId); if (typeof row !== 'undefined') this._activateApplication(this._applicationsListBox, row); } }); Flatseal-2.4.1/src/widgets/window.ui000066400000000000000000000201541520337174300173630ustar00rootroot00000000000000 Flatseal-2.4.1/tests/000077500000000000000000000000001520337174300144205ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/000077500000000000000000000000001520337174300160725ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/.flatpak-info000066400000000000000000000000371520337174300204460ustar00rootroot00000000000000[Instance] flatpak-version=1.0 Flatseal-2.4.1/tests/content/.flatpak-info.new000066400000000000000000000000401520337174300212300ustar00rootroot00000000000000[Instance] flatpak-version=3000 Flatseal-2.4.1/tests/content/.flatpak-info.old000066400000000000000000000000411520337174300212160ustar00rootroot00000000000000[Instance] flatpak-version=0.0.1 Flatseal-2.4.1/tests/content/custom/000077500000000000000000000000001520337174300174045ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/custom/app/000077500000000000000000000000001520337174300201645ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/custom/app/com.test.Extra/000077500000000000000000000000001520337174300230025ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/custom/app/com.test.Extra/current/000077500000000000000000000000001520337174300244645ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/custom/app/com.test.Extra/current/active/000077500000000000000000000000001520337174300257375ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/custom/app/com.test.Extra/current/active/metadata000066400000000000000000000000251520337174300274370ustar00rootroot00000000000000[Context] shared=ipc Flatseal-2.4.1/tests/content/extra/000077500000000000000000000000001520337174300172155ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/extra/app/000077500000000000000000000000001520337174300177755ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/extra/app/com.test.Extra/000077500000000000000000000000001520337174300226135ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/extra/app/com.test.Extra/current/000077500000000000000000000000001520337174300242755ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/extra/app/com.test.Extra/current/active/000077500000000000000000000000001520337174300255505ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/extra/app/com.test.Extra/current/active/metadata000066400000000000000000000000311520337174300272450ustar00rootroot00000000000000[Context] shared=network Flatseal-2.4.1/tests/content/global/000077500000000000000000000000001520337174300173325ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/global/flatpak/000077500000000000000000000000001520337174300207545ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/global/flatpak/overrides/000077500000000000000000000000001520337174300227565ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/global/flatpak/overrides/com.test.GlobalRestored000066400000000000000000000004001520337174300273360ustar00rootroot00000000000000[Context] sockets=x11;!wayland persistent=.test3 filesystems=!~/test2;!~/test3;~/test4 [Environment] TEST1= TEST2=override TEST4=override [Session Bus Policy] org.test.Service-3=none org.test.Service-4=talk org.test.Service-2=none org.test.Service-5=own Flatseal-2.4.1/tests/content/global/flatpak/overrides/global000066400000000000000000000003311520337174300241360ustar00rootroot00000000000000[Context] shared=unsupported sockets=!x11;wayland; persistent=.test2 filesystems=~/test0;!~/test1;~/test3 [Environment] TEST1=global TEST3=global [Session Bus Policy] org.test.Service-1=none org.test.Service-3=talk Flatseal-2.4.1/tests/content/globalNegated/000077500000000000000000000000001520337174300206225ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/globalNegated/flatpak/000077500000000000000000000000001520337174300222445ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/globalNegated/flatpak/overrides/000077500000000000000000000000001520337174300242465ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/globalNegated/flatpak/overrides/global000066400000000000000000000001741520337174300254330ustar00rootroot00000000000000[Context] shared=unsupported sockets=!x11 filesystems=!~/test [Environment] TEST= [Session Bus Policy] org.test.Test=none Flatseal-2.4.1/tests/content/globalResetMode/000077500000000000000000000000001520337174300211425ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/globalResetMode/flatpak/000077500000000000000000000000001520337174300225645ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/globalResetMode/flatpak/overrides/000077500000000000000000000000001520337174300245665ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/globalResetMode/flatpak/overrides/global000066400000000000000000000000411520337174300257440ustar00rootroot00000000000000[Context] filesystems=!host:resetFlatseal-2.4.1/tests/content/installations.d/000077500000000000000000000000001520337174300212005ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/installations.d/extra.conf000066400000000000000000000003331520337174300231710ustar00rootroot00000000000000[Installation "extra"] Path=../tests/content/extra/ DisplayName=Extra Installation StorageType=sdcard [Installation "custom"] Path=../tests/content/custom/ DisplayName=Custom Installation StorageType=sdcard Priority=2 Flatseal-2.4.1/tests/content/statuses/000077500000000000000000000000001520337174300177455ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/statuses/flatpak/000077500000000000000000000000001520337174300213675ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/statuses/flatpak/overrides/000077500000000000000000000000001520337174300233715ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/statuses/flatpak/overrides/com.test.Statuses000066400000000000000000000002371520337174300266640ustar00rootroot00000000000000[Context] sockets=x11 persistent=.test3 filesystems=~/test3 [Environment] TEST2=override [Session Bus Policy] org.test.Service-5=talk org.test.Service-6=own Flatseal-2.4.1/tests/content/statuses/flatpak/overrides/global000066400000000000000000000002721520337174300245550ustar00rootroot00000000000000[Context] shared=unsupported sockets=!x11;wayland; persistent=.test2 filesystems=~/test2 [Environment] TEST1=global [Session Bus Policy] org.test.Service-3=talk org.test.Service-4=own Flatseal-2.4.1/tests/content/system/000077500000000000000000000000001520337174300174165ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/000077500000000000000000000000001520337174300210405ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/000077500000000000000000000000001520337174300216205ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.BaseApp/000077500000000000000000000000001520337174300246665ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.BaseApp/current/000077500000000000000000000000001520337174300263505ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.BaseApp/current/active/000077500000000000000000000000001520337174300276235ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.BaseApp/current/active/metadata000066400000000000000000000000001520337174300313140ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Basic/000077500000000000000000000000001520337174300243745ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Basic/current/000077500000000000000000000000001520337174300260565ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Basic/current/active/000077500000000000000000000000001520337174300273315ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Basic/current/active/metadata000066400000000000000000000007261520337174300310410ustar00rootroot00000000000000[Context] shared=network;ipc; sockets=x11;fallback-x11;wayland;pulseaudio;system-bus;session-bus;ssh-auth;pcsc;cups;gpg-agent;inherit-wayland-socket; devices=dri;input;kvm;shm;usb;all; features=bluetooth;devel;multiarch;canbus;per-app-dev-shm; filesystems=host;host-os;host-etc;home;~/test; persistent=.test; [Environment] TEST=yes [Session Bus Policy] org.test.Service-1=talk org.test.Service-2=own [System Bus Policy] org.test.Service-3=talk org.test.Service-4=own Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.BasicNegated/000077500000000000000000000000001520337174300256645ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.BasicNegated/current/000077500000000000000000000000001520337174300273465ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.BasicNegated/current/active/000077500000000000000000000000001520337174300306215ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.BasicNegated/current/active/metadata000066400000000000000000000007631520337174300323320ustar00rootroot00000000000000[Context] shared=!network;!ipc; sockets=!x11;!fallback-x11;!wayland;!pulseaudio;!system-bus;!session-bus;!ssh-auth;!pcsc;!cups;!gpg-agent;!inherit-wayland-socket; devices=!dri;!input;!kvm;!shm;!usb;!all; features=!bluetooth;!devel;!multiarch;!canbus;!per-app-dev-shm; filesystems=!host;!host-os;!host-etc;!home;!~/test; persistent=tset. [Environment] TEST=no [Session Bus Policy] org.test.Service-1=none org.test.Service-2=none [System Bus Policy] org.test.Service-3=none org.test.Service-4=none Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Bus/000077500000000000000000000000001520337174300241045ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Bus/current/000077500000000000000000000000001520337174300255665ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Bus/current/active/000077500000000000000000000000001520337174300270415ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Bus/current/active/metadata000066400000000000000000000001041520337174300305370ustar00rootroot00000000000000[Session Bus Policy] org.test.Service-1=talk org.test.Service-2=own Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Environment/000077500000000000000000000000001520337174300256575ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Environment/current/000077500000000000000000000000001520337174300273415ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Environment/current/active/000077500000000000000000000000001520337174300306145ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Environment/current/active/metadata000066400000000000000000000000271520337174300323160ustar00rootroot00000000000000[Environment] TEST=yes Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.FilesystemWithMode/000077500000000000000000000000001520337174300271405ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.FilesystemWithMode/current/000077500000000000000000000000001520337174300306225ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.FilesystemWithMode/current/active/000077500000000000000000000000001520337174300320755ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.FilesystemWithMode/current/active/metadata000066400000000000000000000000671520337174300336030ustar00rootroot00000000000000[Context] filesystems=host:ro;xdg-documents:ro;home:ro Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Global/000077500000000000000000000000001520337174300245535ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Global/current/000077500000000000000000000000001520337174300262355ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Global/current/active/000077500000000000000000000000001520337174300275105ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Global/current/active/metadata000066400000000000000000000003171520337174300312140ustar00rootroot00000000000000[Context] sockets=x11;!wayland;cups; persistent=.test1 filesystems=!~/test0;~/test1;~/test2; [Environment] TEST1=original TEST2=original [Session Bus Policy] org.test.Service-1=talk org.test.Service-2=own Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.GlobalRestored/000077500000000000000000000000001520337174300262635ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.GlobalRestored/current/000077500000000000000000000000001520337174300277455ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.GlobalRestored/current/active/000077500000000000000000000000001520337174300312205ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.GlobalRestored/current/active/metadata000066400000000000000000000003171520337174300327240ustar00rootroot00000000000000[Context] sockets=x11;!wayland;cups; persistent=.test1 filesystems=!~/test0;~/test1;~/test2; [Environment] TEST1=original TEST2=original [Session Bus Policy] org.test.Service-1=talk org.test.Service-2=own Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Increase/000077500000000000000000000000001520337174300251045ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Increase/current/000077500000000000000000000000001520337174300265665ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Increase/current/active/000077500000000000000000000000001520337174300300415ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Increase/current/active/metadata000066400000000000000000000000461520337174300315440ustar00rootroot00000000000000[Context] filesystems=xdg-pictures:ro Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Malformed/000077500000000000000000000000001520337174300252615ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Malformed/current/000077500000000000000000000000001520337174300267435ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Malformed/current/active/000077500000000000000000000000001520337174300302165ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Malformed/current/active/metadata000066400000000000000000000000311520337174300317130ustar00rootroot00000000000000[Context] shared=network;Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Negation/000077500000000000000000000000001520337174300251175ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Negation/current/000077500000000000000000000000001520337174300266015ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Negation/current/active/000077500000000000000000000000001520337174300300545ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Negation/current/active/metadata000066400000000000000000000000551520337174300315570ustar00rootroot00000000000000[Context] filesystems=!~/negative;~/positive Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Old/000077500000000000000000000000001520337174300240715ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Old/current/000077500000000000000000000000001520337174300255535ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Old/current/active/000077500000000000000000000000001520337174300270265ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Old/current/active/metadata000066400000000000000000000000431520337174300305260ustar00rootroot00000000000000[Context] filesystems=xdg-pictures Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Overriden/000077500000000000000000000000001520337174300253105ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Overriden/current/000077500000000000000000000000001520337174300267725ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Overriden/current/active/000077500000000000000000000000001520337174300302455ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Overriden/current/active/metadata000066400000000000000000000003441520337174300317510ustar00rootroot00000000000000[Context] shared=network;ipc; sockets=x11;fallback-x11;wayland;pulseaudio;system-bus;session-bus;ssh-auth;cups;gpg-agent;inherit-wayland-socket; devices=dri;all; features=bluetooth;devel;multiarch; filesystems=host;home;~/test; Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Reduce/000077500000000000000000000000001520337174300245625ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Reduce/current/000077500000000000000000000000001520337174300262445ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Reduce/current/active/000077500000000000000000000000001520337174300275175ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Reduce/current/active/metadata000066400000000000000000000000441520337174300312200ustar00rootroot00000000000000[Context] filesystems=xdg-downloads Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.ResetMode/000077500000000000000000000000001520337174300252425ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.ResetMode/current/000077500000000000000000000000001520337174300267245ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.ResetMode/current/active/000077500000000000000000000000001520337174300301775ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.ResetMode/current/active/metadata000066400000000000000000000000331520337174300316760ustar00rootroot00000000000000[Context] filesystems=host;Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Statuses/000077500000000000000000000000001520337174300251665ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Statuses/current/000077500000000000000000000000001520337174300266505ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Statuses/current/active/000077500000000000000000000000001520337174300301235ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Statuses/current/active/metadata000066400000000000000000000003141520337174300316240ustar00rootroot00000000000000[Context] sockets=x11;!wayland;cups; persistent=.test1 filesystems=~/test1 [Environment] TEST0=original TEST1=original TEST2=original [Session Bus Policy] org.test.Service-1=talk org.test.Service-2=own Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.TrailingSemicolon/000077500000000000000000000000001520337174300267755ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.TrailingSemicolon/current/000077500000000000000000000000001520337174300304575ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.TrailingSemicolon/current/active/000077500000000000000000000000001520337174300317325ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.TrailingSemicolon/current/active/metadata000066400000000000000000000000611520337174300334320ustar00rootroot00000000000000[Context] shared=network [Environment] TEST=YES Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Unsupported/000077500000000000000000000000001520337174300257035ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Unsupported/current/000077500000000000000000000000001520337174300273655ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Unsupported/current/active/000077500000000000000000000000001520337174300306405ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Unsupported/current/active/metadata000066400000000000000000000001071520337174300323410ustar00rootroot00000000000000[Context] shared=unsupported unsupported=all filesystems=~/unsupported Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Variables/000077500000000000000000000000001520337174300252635ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Variables/current/000077500000000000000000000000001520337174300267455ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Variables/current/active/000077500000000000000000000000001520337174300302205ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/system/flatpak/app/com.test.Variables/current/active/metadata000066400000000000000000000000361520337174300317220ustar00rootroot00000000000000[Environment] ENVIRONMENT=set Flatseal-2.4.1/tests/content/user/000077500000000000000000000000001520337174300170505ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/user/flatpak/000077500000000000000000000000001520337174300204725ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/user/flatpak/overrides/000077500000000000000000000000001520337174300224745ustar00rootroot00000000000000Flatseal-2.4.1/tests/content/user/flatpak/overrides/com.test.Basic000066400000000000000000000007631520337174300252010ustar00rootroot00000000000000[Context] shared=!network;!ipc; sockets=!x11;!fallback-x11;!wayland;!pulseaudio;!system-bus;!session-bus;!ssh-auth;!pcsc;!cups;!gpg-agent;!inherit-wayland-socket; devices=!dri;!input;!kvm;!shm;!usb;!all; features=!bluetooth;!devel;!multiarch;!canbus;!per-app-dev-shm; filesystems=!host;!host-os;!host-etc;!home;!~/test; persistent=tset. [Environment] TEST=no [Session Bus Policy] org.test.Service-1=none org.test.Service-2=none [System Bus Policy] org.test.Service-3=none org.test.Service-4=none Flatseal-2.4.1/tests/content/user/flatpak/overrides/com.test.BasicNegated000066400000000000000000000007261520337174300264700ustar00rootroot00000000000000[Context] shared=network;ipc; sockets=x11;fallback-x11;wayland;pulseaudio;system-bus;session-bus;ssh-auth;pcsc;cups;gpg-agent;inherit-wayland-socket; devices=dri;input;kvm;shm;usb;all; features=bluetooth;devel;multiarch;canbus;per-app-dev-shm; filesystems=host;host-os;host-etc;home;~/test; persistent=.test; [Environment] TEST=yes [Session Bus Policy] org.test.Service-1=talk org.test.Service-2=own [System Bus Policy] org.test.Service-3=talk org.test.Service-4=own Flatseal-2.4.1/tests/content/user/flatpak/overrides/com.test.FilesystemWithMode000066400000000000000000000000531520337174300277350ustar00rootroot00000000000000[Context] filesystems=!host;!xdg-documents Flatseal-2.4.1/tests/content/user/flatpak/overrides/com.test.Malformed000066400000000000000000000000111520337174300260500ustar00rootroot00000000000000malformedFlatseal-2.4.1/tests/content/user/flatpak/overrides/com.test.Old000066400000000000000000000000641520337174300246700ustar00rootroot00000000000000[Context] filesystems=xdg-pictures:ro;!xdg-pictures Flatseal-2.4.1/tests/content/user/flatpak/overrides/com.test.TrailingSemicolon000066400000000000000000000000541520337174300275730ustar00rootroot00000000000000[Context] shared=ipc; [Environment] TEST=; Flatseal-2.4.1/tests/content/user/flatpak/overrides/com.test.Unsupported000066400000000000000000000000601520337174300264760ustar00rootroot00000000000000[Context] shared=unsupported unsupported=always Flatseal-2.4.1/tests/content/user/flatpak/overrides/com.test.Variables000066400000000000000000000000331520337174300260560ustar00rootroot00000000000000[Environment] ENVIRONMENT= Flatseal-2.4.1/tests/meson.build000066400000000000000000000004411520337174300165610ustar00rootroot00000000000000jasmine = find_program('jasmine', required: false) if jasmine.found() env = environment() env.set('LC_ALL', 'C') tests = join_paths(meson.current_source_dir(), 'src') test('Jasmine tests', jasmine, env: env, args: ['--no-config', '--verbose', '--no-color', tests]) endif Flatseal-2.4.1/tests/service.js000066400000000000000000000121441520337174300164200ustar00rootroot00000000000000/* eslint class-methods-use-this:, no-unused-vars: */ /* service.js * * Copyright 2021 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ imports.gi.versions.Gtk = '4.0'; const {Gio, GLib, Gtk} = imports.gi; const PermissionsIface = ` `; class MockPermissionsStore { constructor() { this._store = { background: { background: {}, }, notifications: { notification: {}, }, devices: { speakers: {}, microphone: {}, camera: {}, }, location: { location: {}, }, }; this._version = new GLib.Variant('u', 2); this._dbusId = null; this._nameId = Gio.bus_own_name( Gio.BusType.SESSION, 'com.github.tchx84.Flatseal.PermissionStore', Gio.BusNameOwnerFlags.NONE, this._onBusAcquired.bind(this), null, null, ); } _onBusAcquired(connection, name) { const info = Gio.DBusNodeInfo.new_for_xml(PermissionsIface); const activationId = connection.register_object( '/org/freedesktop/impl/portal/PermissionStore', info.interfaces[0], this._onCalled.bind(this), this._onProperty.bind(this), null, ); if (activationId <= 0) throw new Error('activationId is ZERO'); } _onCalled(connection, sender, path, iface, method, params, invocation) { if (method === 'Lookup') { const [table, id] = params.deep_unpack(); if (!(table in this._store) || !(id in this._store[table])) invocation.return_dbus_error('org.freedesktop.portal.Error.NotFound', ''); const data = new GLib.Variant('b', true); const permissions = new GLib.Variant('(a{sas}v)', [this._store[table][id], data]); invocation.return_value(permissions); } else if (method === 'SetPermission') { const [table, create, id, appId, permissions] = params.deep_unpack(); this._store[table][id][appId] = permissions; invocation.return_value(null); } else if (method === 'List') { var ids = []; const [table] = params.deep_unpack(); if (table in this._store) ids = Object.keys(this._store[table]); const value = new GLib.Variant('(as)', [ids]); invocation.return_value(value); } else if (method === 'DeletePermission') { const [table, id, appId] = params.deep_unpack(); if (table in this._store && id in this._store[table] && appId in this._store[table][id]) delete this._store[table][id][appId]; invocation.return_value(null); } else if (method === 'testPartialTable') { delete this._store['devices']['microphone']; invocation.return_value(null); } } _onProperty(connection, sender, path, iface, key) { return this._version; } shutdown() { Gio.bus_unown_name(this._nameId); } } Gtk.init(); const service = new MockPermissionsStore(); const loop = new GLib.MainLoop(null, false); loop.run(); Flatseal-2.4.1/tests/src/000077500000000000000000000000001520337174300152075ustar00rootroot00000000000000Flatseal-2.4.1/tests/src/testModels.js000066400000000000000000001743071520337174300177040ustar00rootroot00000000000000/* testModels.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {Gio, GLib} = imports.gi; const { setup, update, has, hasOnly, hasInTotal, startService, waitForService, stopService, partialService, getValueFromService, } = imports.utils; setup(); const _totalPermissions = 41; const _basicAppId = 'com.test.Basic'; const _basicNegatedAppId = 'com.test.BasicNegated'; const _oldAppId = 'com.test.Old'; const _reduceAppId = 'com.test.Reduce'; const _increaseAppId = 'com.test.Increase'; const _baseAppId = 'com.test.BaseApp'; const _negationAppId = 'com.test.Negation'; const _unsupportedAppId = 'com.test.Unsupported'; const _overridenAppId = 'com.test.Overriden'; const _extraAppId = 'com.test.Extra'; const _environmentAppId = 'com.test.Environment'; const _busAppId = 'com.test.Bus'; const _variablesAppId = 'com.test.Variables'; const _trailingSemicolonId = 'com.test.TrailingSemicolon'; const _filesystemWithMode = 'com.test.FilesystemWithMode'; const _resetModeId = 'com.test.ResetMode'; const _globalAppId = 'com.test.Global'; const _globalRestoredAppId = 'com.test.GlobalRestored'; const _statusesAppId = 'com.test.Statuses'; const _malformedAppId = 'com.test.Malformed'; const _flatpakInfo = GLib.build_filenamev(['..', 'tests', 'content', '.flatpak-info']); const _flatpakInfoOld = GLib.build_filenamev(['..', 'tests', 'content', '.flatpak-info.old']); const _flatpakInfoNew = GLib.build_filenamev(['..', 'tests', 'content', '.flatpak-info.new']); const _system = GLib.build_filenamev(['..', 'tests', 'content', 'system', 'flatpak']); const _user = GLib.build_filenamev(['..', 'tests', 'content', 'user', 'flatpak']); const _global = GLib.build_filenamev(['..', 'tests', 'content', 'global', 'flatpak']); const _globalNegated = GLib.build_filenamev(['..', 'tests', 'content', 'globalNegated', 'flatpak']); const _globalResetMode = GLib.build_filenamev(['..', 'tests', 'content', 'globalResetMode', 'flatpak']); const _statuses = GLib.build_filenamev(['..', 'tests', 'content', 'statuses', 'flatpak']); const _tmp = GLib.build_filenamev([GLib.DIR_SEPARATOR_S, 'tmp']); const _none = GLib.build_filenamev([GLib.DIR_SEPARATOR_S, 'dev', 'null']); const _overrides = GLib.build_filenamev([_tmp, 'overrides']); const _globalOverride = GLib.build_filenamev([_overrides, 'global']); const _globalNegatedOverride = GLib.build_filenamev([_globalNegated, 'overrides', 'global']); const _globalResetModeOverride = GLib.build_filenamev([_globalResetMode, 'overrides', 'global']); const _basicOverride = GLib.build_filenamev([_overrides, _basicAppId]); const _reduceOverride = GLib.build_filenamev([_overrides, _reduceAppId]); const _increaseOverride = GLib.build_filenamev([_overrides, _increaseAppId]); const _negationOverride = GLib.build_filenamev([_overrides, _negationAppId]); const _unsupportedOverride = GLib.build_filenamev([_overrides, _unsupportedAppId]); const _overridenOverride = GLib.build_filenamev([_overrides, _overridenAppId]); const _environmentOverride = GLib.build_filenamev([_overrides, _environmentAppId]); const _busOverride = GLib.build_filenamev([_overrides, _busAppId]); const _filesystemWithModeOverride = GLib.build_filenamev([_overrides, _filesystemWithMode]); const _resetModeOverride = GLib.build_filenamev([_overrides, _resetModeId]); const _globalWithGlobalOverride = GLib.build_filenamev([_global, 'overrides', _globalAppId]); const _sessionGroup = 'Session Bus Policy'; const _key = 'filesystems'; const _flatpakConfig = GLib.build_filenamev(['..', 'tests', 'content']); describe('Model', function() { var delay, permissionsDefault, applicationsDefault, infoDefault, portalsDefault, portalState; beforeAll(function() { startService(); waitForService(); const {applications, info, permissions, portals} = imports.models; infoDefault = info.getDefault(); portalsDefault = portals.getDefault(); applicationsDefault = applications.getDefault(); permissionsDefault = permissions.getDefault(); delay = permissions.DELAY; portalState = portals.FlatpakPortalState; GLib.unlink(_overridenOverride); GLib.mkdir_with_parents(_overrides, 0o755); }); afterAll(function() { stopService(); }); beforeEach(function() { GLib.setenv('FLATPAK_SYSTEM_DIR', _system, true); GLib.setenv('FLATPAK_USER_DIR', _none, true); GLib.setenv('FLATPAK_INFO_PATH', _flatpakInfo, true); infoDefault.reload(); portalsDefault.reload(); applicationsDefault.reload(); permissionsDefault.reload(); GLib.unlink(_basicOverride); GLib.unlink(_reduceOverride); GLib.unlink(_increaseOverride); GLib.unlink(_negationOverride); GLib.unlink(_unsupportedOverride); GLib.unlink(_environmentOverride); GLib.unlink(_busOverride); GLib.unlink(_filesystemWithModeOverride); GLib.unlink(_resetModeOverride); GLib.unlink(_globalWithGlobalOverride); GLib.unlink(_globalOverride); }); it('loads applications', function() { const appIds = applicationsDefault.getAll().map(a => a.appId); expect(appIds).toContain(_basicAppId); expect(appIds).toContain(_basicNegatedAppId); expect(appIds).toContain(_oldAppId); expect(appIds).toContain(_reduceAppId); expect(appIds).toContain(_increaseAppId); expect(appIds).toContain(_negationAppId); expect(appIds).toContain(_unsupportedAppId); expect(appIds).toContain(_trailingSemicolonId); expect(appIds).toContain(_filesystemWithMode); expect(appIds).toContain(_resetModeId); }); it('ignores BaseApp bundles', function() { const path = GLib.build_filenamev([ _system, 'app', _baseAppId, 'current', 'active', 'metadata', ]); expect(GLib.access(path, 0)).toEqual(0); const appIds = applicationsDefault.getAll().map(a => a.appId); expect(appIds).not.toContain(_baseAppId); }); it('loads permissions', function() { permissionsDefault.appId = _basicAppId; expect(permissionsDefault.shared_network).toBe(true); expect(permissionsDefault.shared_ipc).toBe(true); expect(permissionsDefault.sockets_x11).toBe(true); expect(permissionsDefault.sockets_fallback_x11).toBe(true); expect(permissionsDefault.sockets_wayland).toBe(true); expect(permissionsDefault.sockets_pulseaudio).toBe(true); expect(permissionsDefault.sockets_system_bus).toBe(true); expect(permissionsDefault.sockets_session_bus).toBe(true); expect(permissionsDefault.sockets_ssh_auth).toBe(true); expect(permissionsDefault.sockets_pcsc).toBe(true); expect(permissionsDefault.sockets_cups).toBe(true); expect(permissionsDefault.sockets_gpg_agent).toBe(true); expect(permissionsDefault.sockets_inherit_wayland_socket).toBe(true); expect(permissionsDefault.devices_dri).toBe(true); expect(permissionsDefault.devices_input).toBe(true); expect(permissionsDefault.devices_kvm).toBe(true); expect(permissionsDefault.devices_shm).toBe(true); expect(permissionsDefault.devices_usb).toBe(true); expect(permissionsDefault.devices_all).toBe(true); expect(permissionsDefault.features_bluetooth).toBe(true); expect(permissionsDefault.features_devel).toBe(true); expect(permissionsDefault.features_multiarch).toBe(true); expect(permissionsDefault.features_canbus).toBe(true); expect(permissionsDefault.features_per_app_dev_shm).toBe(true); expect(permissionsDefault.filesystems_host).toBe(true); expect(permissionsDefault.filesystems_host_os).toBe(true); expect(permissionsDefault.filesystems_host_etc).toBe(true); expect(permissionsDefault.filesystems_home).toBe(true); expect(permissionsDefault.filesystems_other).toEqual('~/test'); expect(permissionsDefault.session_talk).toEqual('org.test.Service-1'); expect(permissionsDefault.session_own).toEqual('org.test.Service-2'); expect(permissionsDefault.system_talk).toEqual('org.test.Service-3'); expect(permissionsDefault.system_own).toEqual('org.test.Service-4'); expect(permissionsDefault.persistent).toEqual('.test'); expect(permissionsDefault.variables).toEqual('TEST=yes'); }); it('loads overrides', function() { GLib.setenv('FLATPAK_USER_DIR', _user, true); permissionsDefault.appId = _basicAppId; expect(permissionsDefault.shared_network).toBe(false); expect(permissionsDefault.shared_ipc).toBe(false); expect(permissionsDefault.sockets_x11).toBe(false); expect(permissionsDefault.sockets_fallback_x11).toBe(false); expect(permissionsDefault.sockets_wayland).toBe(false); expect(permissionsDefault.sockets_pulseaudio).toBe(false); expect(permissionsDefault.sockets_system_bus).toBe(false); expect(permissionsDefault.sockets_session_bus).toBe(false); expect(permissionsDefault.sockets_ssh_auth).toBe(false); expect(permissionsDefault.sockets_pcsc).toBe(false); expect(permissionsDefault.sockets_cups).toBe(false); expect(permissionsDefault.sockets_gpg_agent).toBe(false); expect(permissionsDefault.sockets_inherit_wayland_socket).toBe(false); expect(permissionsDefault.devices_dri).toBe(false); expect(permissionsDefault.devices_input).toBe(false); expect(permissionsDefault.devices_kvm).toBe(false); expect(permissionsDefault.devices_shm).toBe(false); expect(permissionsDefault.devices_usb).toBe(false); expect(permissionsDefault.devices_all).toBe(false); expect(permissionsDefault.features_bluetooth).toBe(false); expect(permissionsDefault.features_devel).toBe(false); expect(permissionsDefault.features_multiarch).toBe(false); expect(permissionsDefault.features_canbus).toBe(false); expect(permissionsDefault.features_per_app_dev_shm).toBe(false); expect(permissionsDefault.filesystems_host).toBe(false); expect(permissionsDefault.filesystems_host_os).toBe(false); expect(permissionsDefault.filesystems_host_etc).toBe(false); expect(permissionsDefault.filesystems_home).toBe(false); expect(permissionsDefault.session_talk).toEqual(''); expect(permissionsDefault.session_own).toEqual(''); expect(permissionsDefault.system_talk).toEqual(''); expect(permissionsDefault.system_own).toEqual(''); expect(permissionsDefault.persistent).toEqual('.test;tset.'); expect(permissionsDefault.variables).toEqual('TEST=no'); }); it('loads negated permissions', function() { permissionsDefault.appId = _basicNegatedAppId; expect(permissionsDefault.shared_network).toBe(false); expect(permissionsDefault.shared_ipc).toBe(false); expect(permissionsDefault.sockets_x11).toBe(false); expect(permissionsDefault.sockets_fallback_x11).toBe(false); expect(permissionsDefault.sockets_wayland).toBe(false); expect(permissionsDefault.sockets_pulseaudio).toBe(false); expect(permissionsDefault.sockets_system_bus).toBe(false); expect(permissionsDefault.sockets_session_bus).toBe(false); expect(permissionsDefault.sockets_ssh_auth).toBe(false); expect(permissionsDefault.sockets_pcsc).toBe(false); expect(permissionsDefault.sockets_cups).toBe(false); expect(permissionsDefault.sockets_gpg_agent).toBe(false); expect(permissionsDefault.sockets_inherit_wayland_socket).toBe(false); expect(permissionsDefault.devices_dri).toBe(false); expect(permissionsDefault.devices_input).toBe(false); expect(permissionsDefault.devices_kvm).toBe(false); expect(permissionsDefault.devices_shm).toBe(false); expect(permissionsDefault.devices_usb).toBe(false); expect(permissionsDefault.devices_all).toBe(false); expect(permissionsDefault.features_bluetooth).toBe(false); expect(permissionsDefault.features_devel).toBe(false); expect(permissionsDefault.features_multiarch).toBe(false); expect(permissionsDefault.features_canbus).toBe(false); expect(permissionsDefault.features_per_app_dev_shm).toBe(false); expect(permissionsDefault.filesystems_host).toBe(false); expect(permissionsDefault.filesystems_host_os).toBe(false); expect(permissionsDefault.filesystems_host_etc).toBe(false); expect(permissionsDefault.filesystems_home).toBe(false); expect(permissionsDefault.filesystems_other).toEqual('!~/test'); expect(permissionsDefault.session_talk).toEqual(''); expect(permissionsDefault.session_own).toEqual(''); expect(permissionsDefault.system_talk).toEqual(''); expect(permissionsDefault.system_own).toEqual(''); expect(permissionsDefault.persistent).toEqual('tset.'); expect(permissionsDefault.variables).toEqual('TEST=no'); }); it('loads negated overrides', function() { GLib.setenv('FLATPAK_USER_DIR', _user, true); permissionsDefault.appId = _basicNegatedAppId; expect(permissionsDefault.shared_network).toBe(true); expect(permissionsDefault.shared_ipc).toBe(true); expect(permissionsDefault.sockets_x11).toBe(true); expect(permissionsDefault.sockets_fallback_x11).toBe(true); expect(permissionsDefault.sockets_wayland).toBe(true); expect(permissionsDefault.sockets_pulseaudio).toBe(true); expect(permissionsDefault.sockets_system_bus).toBe(true); expect(permissionsDefault.sockets_session_bus).toBe(true); expect(permissionsDefault.sockets_ssh_auth).toBe(true); expect(permissionsDefault.sockets_pcsc).toBe(true); expect(permissionsDefault.sockets_cups).toBe(true); expect(permissionsDefault.sockets_gpg_agent).toBe(true); expect(permissionsDefault.sockets_inherit_wayland_socket).toBe(true); expect(permissionsDefault.devices_dri).toBe(true); expect(permissionsDefault.devices_input).toBe(true); expect(permissionsDefault.devices_kvm).toBe(true); expect(permissionsDefault.devices_shm).toBe(true); expect(permissionsDefault.devices_usb).toBe(true); expect(permissionsDefault.devices_all).toBe(true); expect(permissionsDefault.features_bluetooth).toBe(true); expect(permissionsDefault.features_devel).toBe(true); expect(permissionsDefault.features_multiarch).toBe(true); expect(permissionsDefault.features_canbus).toBe(true); expect(permissionsDefault.features_per_app_dev_shm).toBe(true); expect(permissionsDefault.filesystems_host).toBe(true); expect(permissionsDefault.filesystems_host_os).toBe(true); expect(permissionsDefault.filesystems_host_etc).toBe(true); expect(permissionsDefault.filesystems_home).toBe(true); expect(permissionsDefault.filesystems_other).toEqual(''); expect(permissionsDefault.session_talk).toEqual('org.test.Service-1'); expect(permissionsDefault.session_own).toEqual('org.test.Service-2'); expect(permissionsDefault.system_talk).toEqual('org.test.Service-3'); expect(permissionsDefault.system_own).toEqual('org.test.Service-4'); expect(permissionsDefault.persistent).toEqual('tset.;.test'); expect(permissionsDefault.variables).toEqual('TEST=yes'); }); it('creates overrides when properties changed', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _overridenAppId; permissionsDefault.set_property('shared-network', false); permissionsDefault.set_property('sockets_x11', false); permissionsDefault.set_property('devices_dri', false); permissionsDefault.set_property('shared-network', false); permissionsDefault.set_property('features-bluetooth', false); permissionsDefault.set_property('filesystems-host', false); permissionsDefault.set_property('filesystems-other', '~/tset'); permissionsDefault.set_property('session_talk', 'org.test.Service-3'); permissionsDefault.set_property('session_own', 'org.test.Service-4'); permissionsDefault.set_property('system_talk', 'org.test.Service-5'); permissionsDefault.set_property('system_own', 'org.test.Service-6'); permissionsDefault.set_property('persistent', 'tset.'); permissionsDefault.set_property('variables', 'TEST=maybe'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(GLib.access(_overridenOverride, 0)).toEqual(0); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('reloads previous overrides later on', function() { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _overridenAppId; expect(permissionsDefault.shared_network).toBe(false); expect(permissionsDefault.shared_ipc).toBe(true); expect(permissionsDefault.sockets_x11).toBe(false); expect(permissionsDefault.sockets_fallback_x11).toBe(true); expect(permissionsDefault.sockets_wayland).toBe(true); expect(permissionsDefault.sockets_pulseaudio).toBe(true); expect(permissionsDefault.sockets_system_bus).toBe(true); expect(permissionsDefault.sockets_session_bus).toBe(true); expect(permissionsDefault.sockets_ssh_auth).toBe(true); expect(permissionsDefault.sockets_cups).toBe(true); expect(permissionsDefault.sockets_gpg_agent).toBe(true); expect(permissionsDefault.sockets_inherit_wayland_socket).toBe(true); expect(permissionsDefault.devices_dri).toBe(false); expect(permissionsDefault.devices_all).toBe(true); expect(permissionsDefault.features_bluetooth).toBe(false); expect(permissionsDefault.features_devel).toBe(true); expect(permissionsDefault.features_multiarch).toBe(true); expect(permissionsDefault.filesystems_host).toBe(false); expect(permissionsDefault.filesystems_host_os).toBe(false); expect(permissionsDefault.filesystems_host_etc).toBe(false); expect(permissionsDefault.filesystems_home).toBe(true); expect(permissionsDefault.filesystems_other).toEqual('~/tset'); expect(permissionsDefault.session_talk).toEqual('org.test.Service-3'); expect(permissionsDefault.session_own).toEqual('org.test.Service-4'); expect(permissionsDefault.system_talk).toEqual('org.test.Service-5'); expect(permissionsDefault.system_own).toEqual('org.test.Service-6'); expect(permissionsDefault.persistent).toEqual('tset.'); expect(permissionsDefault.variables).toEqual('TEST=maybe'); }); it('resets overrides', function() { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _overridenAppId; permissionsDefault.reset(); expect(GLib.access(_overridenOverride, 0)).toEqual(-1); }); it('creates overrides when properties values changed', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _overridenAppId; permissionsDefault.set_property('shared-network', false); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(GLib.access(_overridenOverride, 0)).toEqual(0); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('removes overrides when properties values restore', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _overridenAppId; permissionsDefault.set_property('shared-network', true); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(GLib.access(_overridenOverride, 0)).toEqual(-1); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('loads old filesystems overrides', function() { GLib.setenv('FLATPAK_USER_DIR', _user, true); permissionsDefault.appId = _oldAppId; expect(permissionsDefault.filesystems_other).toEqual('xdg-pictures:ro'); }); it('reduces filesystems permission', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _reduceAppId; expect(permissionsDefault.filesystems_other).toEqual('xdg-downloads'); permissionsDefault.set_property('filesystems-other', 'xdg-downloads:ro'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('filesystems-other'); expect(hasOnly(_reduceOverride, group, _key, 'xdg-downloads:ro')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('increases filesystems permission', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _increaseAppId; expect(permissionsDefault.filesystems_other).toEqual('xdg-pictures:ro'); permissionsDefault.set_property('filesystems-other', 'xdg-pictures:rw'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('filesystems-other'); expect(hasOnly(_increaseOverride, group, _key, 'xdg-pictures:rw')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('increases filesystems permission (default)', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _increaseAppId; expect(permissionsDefault.filesystems_other).toEqual('xdg-pictures:ro'); permissionsDefault.set_property('filesystems-other', 'xdg-pictures'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('filesystems-other'); expect(hasOnly(_increaseOverride, group, _key, 'xdg-pictures')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles negated filesystems permission', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _negationAppId; expect(permissionsDefault.filesystems_other).toEqual('!~/negative;~/positive'); permissionsDefault.set_property('filesystems-other', '!~/negative'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('filesystems-other'); expect(hasOnly(_negationOverride, group, _key, '!~/positive')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles removing negated filesystems permission', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _negationAppId; expect(permissionsDefault.filesystems_other).toEqual('!~/negative;~/positive'); permissionsDefault.set_property('filesystems-other', '~/positive'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('filesystems-other'); expect(hasOnly(_negationOverride, group, _key, '~/negative')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles adding negated filesystems override (manually)', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _negationAppId; expect(permissionsDefault.filesystems_other).toEqual('!~/negative;~/positive'); permissionsDefault.set_property('filesystems-other', '!~/negative;!~/positive'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('filesystems-other'); expect(hasOnly(_negationOverride, group, _key, '!~/positive')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles removing negated filesystems override (manually)', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _negationAppId; expect(permissionsDefault.filesystems_other).toEqual('!~/negative;~/positive'); permissionsDefault.set_property('filesystems-other', '~/negative;~/positive'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('filesystems-other'); expect(hasOnly(_negationOverride, group, _key, '~/negative')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('ignores unsupported permissions', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _unsupportedAppId; expect(permissionsDefault.filesystems_other).toEqual('~/unsupported'); permissionsDefault.set_property('filesystems-other', ''); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('filesystems-other'); expect(hasOnly(_unsupportedOverride, group, _key, '!~/unsupported')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('preserves unsupported permissions', function(done) { GLib.setenv('FLATPAK_USER_DIR', _user, true); permissionsDefault.appId = _unsupportedAppId; GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.set_property('filesystems-other', ''); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_unsupportedOverride, 'Context', 'unsupported', 'always')).toBe(true); expect(has(_unsupportedOverride, 'Context', 'unsupported', 'undefined')).toBe(false); expect(has(_unsupportedOverride, 'Context', 'unsupported', 'null')).toBe(false); expect(has(_unsupportedOverride, 'Context', 'shared', 'unsupported')).toBe(true); expect(has(_unsupportedOverride, 'Context', 'shared', 'undefined')).toBe(false); expect(has(_unsupportedOverride, 'Context', 'shared', 'null')).toBe(false); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('signals changes with overrides', function(done) { spyOn(permissionsDefault, 'emit'); GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _basicAppId; permissionsDefault.set_property('shared-network', false); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(permissionsDefault.emit.calls.mostRecent().args).toEqual(['changed', true, false]); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('signals changes with no overrides', function() { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _basicAppId; spyOn(permissionsDefault, 'emit'); permissionsDefault.reset(); expect(permissionsDefault.emit.calls.first().args).toEqual(['changed', false, false]); expect(permissionsDefault.emit.calls.count()).toEqual(2); // including reset signal }); it('signals changes with unsupported overrides', function() { spyOn(permissionsDefault, 'emit'); GLib.setenv('FLATPAK_USER_DIR', _user, true); permissionsDefault.appId = _unsupportedAppId; expect(permissionsDefault.emit.calls.mostRecent().args).toEqual(['changed', true, true]); }); it('signals changes without unsupported overrides', function() { spyOn(permissionsDefault, 'emit'); GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _unsupportedAppId; expect(permissionsDefault.emit.calls.mostRecent().args).toEqual(['changed', false, false]); }); it('saves pending updates before selecting other application', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _basicAppId; expect(permissionsDefault.shared_network).toEqual(true); permissionsDefault.set_property('shared-network', false); permissionsDefault.appId = _unsupportedAppId; GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(GLib.access(_basicOverride, 0)).toEqual(0); expect(GLib.access(_unsupportedOverride, 0)).toEqual(-1); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('saves pending updates before shutting down', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _basicAppId; expect(permissionsDefault.shared_network).toEqual(true); permissionsDefault.set_property('shared-network', false); permissionsDefault.shutdown(); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(GLib.access(_basicOverride, 0)).toEqual(0); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('disables all permissions with old flatpak version', function() { GLib.setenv('FLATPAK_INFO_PATH', _flatpakInfoOld, true); infoDefault.reload(); portalsDefault.reload(); permissionsDefault.appId = _basicAppId; const total = permissionsDefault.getAll().filter(p => p.supported).length; expect(total).toEqual(0); }); it('enables all permissions with new flatpak version', function() { GLib.setenv('FLATPAK_INFO_PATH', _flatpakInfoNew, true); infoDefault.reload(); portalsDefault.reload(); permissionsDefault.appId = _basicAppId; const total = permissionsDefault.getAll().filter(p => p.supported).length; expect(total).toEqual(_totalPermissions); }); it('disables permissions with stable flatpak version', function() { infoDefault.reload(); portalsDefault.reload(); permissionsDefault.appId = _basicAppId; const total = permissionsDefault.getAll().filter(p => p.supported).length; expect(total).toEqual(_totalPermissions - 11); }); it('handles missing .flatpak-info', function() { GLib.setenv('FLATPAK_INFO_PATH', _none, true); infoDefault.reload(); portalsDefault.reload(); permissionsDefault.appId = _basicAppId; const total = permissionsDefault.getAll().filter(p => p.supported).length; expect(total).toEqual(_totalPermissions); }); it('loads extra applications', function() { GLib.setenv('FLATPAK_CONFIG_DIR', _flatpakConfig, true); applicationsDefault.reload(); const appIds = applicationsDefault.getAll().map(a => a.appId); expect(appIds).toContain(_extraAppId); }); it('preserves installation priorities', function() { GLib.setenv('FLATPAK_USER_DIR', _user, true); GLib.setenv('FLATPAK_CONFIG_DIR', _flatpakConfig, true); applicationsDefault.reload(); permissionsDefault.appId = _extraAppId; expect(permissionsDefault.shared_network).toBe(false); expect(permissionsDefault.shared_ipc).toBe(true); }); it('add new environment variable', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _environmentAppId; expect(permissionsDefault.variables).toEqual('TEST=yes'); permissionsDefault.set_property('variables', 'TEST=yes;TEST2=no'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(hasOnly(_environmentOverride, 'Environment', 'TEST2', 'no')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('override original environment variable', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _environmentAppId; expect(permissionsDefault.variables).toEqual('TEST=yes'); permissionsDefault.set_property('variables', 'TEST=no'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(hasOnly(_environmentOverride, 'Environment', 'TEST', 'no')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('remove original environment variable', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _environmentAppId; expect(permissionsDefault.variables).toEqual('TEST=yes'); permissionsDefault.set_property('variables', ''); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(hasOnly(_environmentOverride, 'Environment', 'TEST', '')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles re-loading removed variables', function() { GLib.setenv('FLATPAK_USER_DIR', _user, true); permissionsDefault.appId = _variablesAppId; expect(permissionsDefault.variables).toEqual(''); }); it('handles non-valid environment variable', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _environmentAppId; expect(permissionsDefault.variables).toEqual('TEST=yes'); permissionsDefault.set_property('variables', 'TEST=yes;TE ST=no'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(GLib.access(_environmentOverride, 0)).toEqual(-1); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles RUST debug export environment variables', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _environmentAppId; expect(permissionsDefault.variables).toEqual('TEST=yes'); permissionsDefault.set_property('variables', 'TEST=yes=no'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(hasOnly(_environmentOverride, 'Environment', 'TEST', 'yes=no')).toBe(true); permissionsDefault.appId = _environmentAppId; expect(permissionsDefault.variables).toEqual('TEST=yes=no'); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles environment variables with semicolons', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _environmentAppId; expect(permissionsDefault.variables).toEqual('TEST=yes'); permissionsDefault.set_property('variables', 'TEST=yes;no'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { permissionsDefault.appId = _environmentAppId; expect(permissionsDefault.variables).toEqual('TEST=yes;no'); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('Add new well-known names', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _busAppId; expect(permissionsDefault.session_talk).toEqual('org.test.Service-1'); expect(permissionsDefault.session_own).toEqual('org.test.Service-2'); permissionsDefault.set_property('session-talk', 'org.test.Service-1;org.test.Service-3'); permissionsDefault.set_property('session-own', 'org.test.Service-2;org.test.Service-4'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_busOverride, _sessionGroup, 'org.test.Service-1', 'talk')).toBe(false); expect(has(_busOverride, _sessionGroup, 'org.test.Service-2', 'own')).toBe(false); expect(has(_busOverride, _sessionGroup, 'org.test.Service-3', 'talk')).toBe(true); expect(has(_busOverride, _sessionGroup, 'org.test.Service-4', 'own')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('Remove well-known names', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _busAppId; expect(permissionsDefault.session_talk).toEqual('org.test.Service-1'); expect(permissionsDefault.session_own).toEqual('org.test.Service-2'); permissionsDefault.set_property('session-talk', ''); permissionsDefault.set_property('session-own', ''); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_busOverride, _sessionGroup, 'org.test.Service-1', 'none')).toBe(true); expect(has(_busOverride, _sessionGroup, 'org.test.Service-2', 'none')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('Modify well-known names', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _busAppId; expect(permissionsDefault.session_talk).toEqual('org.test.Service-1'); expect(permissionsDefault.session_own).toEqual('org.test.Service-2'); permissionsDefault.set_property('session-talk', 'org.test.Service-2'); permissionsDefault.set_property('session-own', 'org.test.Service-1'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_busOverride, _sessionGroup, 'org.test.Service-1', 'own')).toBe(true); expect(has(_busOverride, _sessionGroup, 'org.test.Service-2', 'talk')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('signals reset when done explicitly', function() { spyOn(permissionsDefault, 'emit'); GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _basicAppId; permissionsDefault.reset(); expect(permissionsDefault.emit.calls.mostRecent().args).toEqual(['reset']); }); it('restores overrides when undo', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _basicAppId; expect(permissionsDefault.shared_network).toEqual(true); permissionsDefault.set_property('shared_network', false); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(permissionsDefault.shared_network).toBe(false); permissionsDefault.reset(); expect(permissionsDefault.shared_network).toBe(true); permissionsDefault.undo(); expect(permissionsDefault.shared_network).toBe(false); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles portals permissions', function(done) { permissionsDefault.appId = _basicAppId; expect(permissionsDefault.portals_background).toBe(portalState.UNSET); permissionsDefault.set_property('portals_background', portalState.ALLOWED); expect(permissionsDefault.portals_notification).toBe(portalState.UNSET); permissionsDefault.set_property('portals_notification', portalState.ALLOWED); expect(permissionsDefault.portals_microphone).toBe(portalState.UNSET); permissionsDefault.set_property('portals_microphone', portalState.ALLOWED); expect(permissionsDefault.portals_speakers).toBe(portalState.UNSET); permissionsDefault.set_property('portals_speakers', portalState.ALLOWED); expect(permissionsDefault.portals_camera).toBe(portalState.UNSET); permissionsDefault.set_property('portals_camera', portalState.ALLOWED); expect(permissionsDefault.portals_location).toBe(portalState.UNSET); permissionsDefault.set_property('portals_location', portalState.ALLOWED); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(getValueFromService('background', 'background', 'yes', _basicAppId)).toBe(true); expect(getValueFromService('notifications', 'notification', 'yes', _basicAppId)).toBe(true); expect(getValueFromService('devices', 'microphone', 'yes', _basicAppId)).toBe(true); expect(getValueFromService('devices', 'speakers', 'yes', _basicAppId)).toBe(true); expect(getValueFromService('devices', 'camera', 'yes', _basicAppId)).toBe(true); expect(getValueFromService('location', 'location', 'EXACT', _basicAppId)).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('resets portals permissions', function() { permissionsDefault.appId = _basicAppId; permissionsDefault.reset(); expect(getValueFromService('background', 'background', null, _basicAppId)).toBe(true); expect(getValueFromService('notifications', 'notification', null, _basicAppId)).toBe(true); expect(getValueFromService('devices', 'microphone', null, _basicAppId)).toBe(true); expect(getValueFromService('devices', 'speakers', null, _basicAppId)).toBe(true); expect(getValueFromService('devices', 'camera', null, _basicAppId)).toBe(true); expect(getValueFromService('location', 'location', null, _basicAppId)).toBe(true); }); it('restores portals permissions when undo', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _overridenAppId; expect(permissionsDefault.portals_background).toBe(portalState.UNSET); expect(permissionsDefault.portals_notification).toBe(portalState.UNSET); expect(permissionsDefault.portals_microphone).toBe(portalState.UNSET); expect(permissionsDefault.portals_speakers).toBe(portalState.UNSET); expect(permissionsDefault.portals_camera).toBe(portalState.UNSET); expect(permissionsDefault.portals_location).toBe(portalState.UNSET); permissionsDefault.set_property('portals_notification', portalState.ALLOWED); permissionsDefault.set_property('portals_background', portalState.ALLOWED); permissionsDefault.set_property('portals_microphone', portalState.ALLOWED); permissionsDefault.set_property('portals_speakers', portalState.ALLOWED); permissionsDefault.set_property('portals_camera', portalState.ALLOWED); permissionsDefault.set_property('portals_location', portalState.ALLOWED); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(getValueFromService('background', 'background', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('notifications', 'notification', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('devices', 'microphone', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('devices', 'speakers', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('devices', 'camera', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('location', 'location', 'EXACT', _overridenAppId)).toBe(true); permissionsDefault.reset(); expect(getValueFromService('background', 'background', null, _overridenAppId)).toBe(true); expect(getValueFromService('notifications', 'notification', null, _overridenAppId)).toBe(true); expect(getValueFromService('devices', 'microphone', null, _overridenAppId)).toBe(true); expect(getValueFromService('devices', 'speakers', null, _overridenAppId)).toBe(true); expect(getValueFromService('devices', 'camera', null, _overridenAppId)).toBe(true); expect(getValueFromService('location', 'location', null, _overridenAppId)).toBe(true); permissionsDefault.undo(); expect(getValueFromService('background', 'background', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('notifications', 'notification', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('devices', 'microphone', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('devices', 'speakers', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('devices', 'camera', 'yes', _overridenAppId)).toBe(true); expect(getValueFromService('location', 'location', 'EXACT', _overridenAppId)).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('does not write to the store unnecessarily', function() { permissionsDefault.appId = _reduceAppId; expect(permissionsDefault.portals_background).toBe(portalState.UNSET); expect(getValueFromService('background', 'background', null, _reduceAppId)).toBe(true); }); it('handles portals with partial tables on permission store', function() { partialService(); GLib.setenv('FLATPAK_INFO_PATH', _flatpakInfoNew, true); infoDefault.reload(); portalsDefault.reload(); permissionsDefault.appId = _basicAppId; const total = permissionsDefault.getAll().filter(p => p.supported).length; expect(total).toEqual(_totalPermissions - 1); expect(permissionsDefault.portals_background).toBe(portalState.UNSET); expect(permissionsDefault.portals_notification).toBe(portalState.UNSET); expect(permissionsDefault.portals_microphone).toBe(portalState.UNSUPPORTED); expect(permissionsDefault.portals_speakers).toBe(portalState.UNSET); expect(permissionsDefault.portals_camera).toBe(portalState.UNSET); expect(permissionsDefault.portals_location).toBe(portalState.UNSET); }); it('handles writing to missing pair on permission store', function(done) { permissionsDefault.appId = _basicAppId; expect(permissionsDefault.portals_microphone).toBe(portalState.UNSUPPORTED); permissionsDefault.set_property('portals_microphone', portalState.ALLOWED); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(getValueFromService('devices', 'microphone', null, _basicAppId)).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles portals without permission store', function() { stopService(); GLib.setenv('FLATPAK_INFO_PATH', _flatpakInfoNew, true); infoDefault.reload(); portalsDefault.reload(); permissionsDefault.appId = _basicAppId; const total = permissionsDefault.getAll().filter(p => p.supported).length; expect(total).toEqual(_totalPermissions - 6); expect(permissionsDefault.portals_background).toBe(portalState.UNSUPPORTED); expect(permissionsDefault.portals_notification).toBe(portalState.UNSUPPORTED); expect(permissionsDefault.portals_microphone).toBe(portalState.UNSUPPORTED); expect(permissionsDefault.portals_speakers).toBe(portalState.UNSUPPORTED); expect(permissionsDefault.portals_camera).toBe(portalState.UNSUPPORTED); expect(permissionsDefault.portals_location).toBe(portalState.UNSUPPORTED); }); it('handles trailing semicolons', function(done) { GLib.setenv('FLATPAK_USER_DIR', _user, true); permissionsDefault.appId = _trailingSemicolonId; expect(permissionsDefault.shared_network).toBe(true); expect(permissionsDefault.shared_network).toBe(true); expect(permissionsDefault.variables).toEqual('TEST=;'); /* force change to verify that there ins't unsupported permissions */ spyOn(permissionsDefault, 'emit'); GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.set_property('shared-network', false); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(permissionsDefault.emit.calls.mostRecent().args).toEqual(['changed', true, false]); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles loading filesystems with mode', function() { GLib.setenv('FLATPAK_USER_DIR', _user, true); permissionsDefault.appId = _filesystemWithMode; expect(permissionsDefault.filesystems_other).toEqual('home:ro'); }); it('handles overriding filesystems with mode', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _filesystemWithMode; expect(permissionsDefault.filesystems_other).toEqual('host:ro;xdg-documents:ro;home:ro'); permissionsDefault.set_property('filesystems-other', 'home:ro'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('filesystems-other'); expect(has(_filesystemWithModeOverride, group, _key, '!host')).toBe(true); expect(has(_filesystemWithModeOverride, group, _key, '!xdg-documents')).toBe(true); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('loads global overrides', function() { GLib.setenv('FLATPAK_USER_DIR', _global, true); permissionsDefault.appId = _globalAppId; expect(permissionsDefault.sockets_x11).toBe(false); expect(permissionsDefault.sockets_wayland).toBe(true); expect(permissionsDefault.sockets_cups).toBe(true); expect(permissionsDefault.variables).toEqual('TEST1=global;TEST2=original;TEST3=global'); expect(permissionsDefault.persistent).toEqual('.test1;.test2'); expect(permissionsDefault.filesystems_other).toEqual('~/test2;~/test3'); expect(permissionsDefault.session_talk).toEqual('org.test.Service-3'); expect(permissionsDefault.session_own).toEqual('org.test.Service-2'); }); it('handles overriding apps already globally overridden', function(done) { GLib.setenv('FLATPAK_USER_DIR', _global, true); permissionsDefault.appId = _globalAppId; expect(permissionsDefault.sockets_x11).toBe(false); permissionsDefault.set_property('sockets-x11', true); expect(permissionsDefault.sockets_wayland).toBe(true); permissionsDefault.set_property('sockets-wayland', false); expect(permissionsDefault.sockets_cups).toBe(true); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = permissionsDefault.constructor.getGroupForProperty('sockets-x11'); expect(has(_globalWithGlobalOverride, group, 'sockets', 'x11')).toBe(true); expect(has(_globalWithGlobalOverride, group, 'sockets', '!wayland')).toBe(true); expect(hasInTotal(_globalWithGlobalOverride)).toEqual(2); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles variables already globally overridden', function(done) { GLib.setenv('FLATPAK_USER_DIR', _global, true); permissionsDefault.appId = _globalAppId; expect(permissionsDefault.variables).toEqual('TEST1=global;TEST2=original;TEST3=global'); permissionsDefault.set_property('variables', 'TEST2=override;TEST3=global;TEST4=override'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_globalWithGlobalOverride, 'Environment', 'TEST1', '')).toBe(true); expect(has(_globalWithGlobalOverride, 'Environment', 'TEST2', 'override')).toBe(true); expect(has(_globalWithGlobalOverride, 'Environment', 'TEST4', 'override')).toBe(true); expect(hasInTotal(_globalWithGlobalOverride)).toEqual(3); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles persistent path already globally overridden', function(done) { GLib.setenv('FLATPAK_USER_DIR', _global, true); permissionsDefault.appId = _globalAppId; expect(permissionsDefault.persistent).toEqual('.test1;.test2'); permissionsDefault.set_property('persistent', '.test1;.test2;.test3'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_globalWithGlobalOverride, 'Context', 'persistent', '.test3')).toBe(true); expect(hasInTotal(_globalWithGlobalOverride)).toEqual(1); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles filesystem path already globally overridden', function(done) { GLib.setenv('FLATPAK_USER_DIR', _global, true); permissionsDefault.appId = _globalAppId; expect(permissionsDefault.filesystems_other).toEqual('~/test2;~/test3'); permissionsDefault.set_property('filesystems_other', '~/test4'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_globalWithGlobalOverride, 'Context', 'filesystems', '!~/test2')).toBe(true); expect(has(_globalWithGlobalOverride, 'Context', 'filesystems', '!~/test3')).toBe(true); expect(has(_globalWithGlobalOverride, 'Context', 'filesystems', '~/test4')).toBe(true); expect(hasInTotal(_globalWithGlobalOverride)).toEqual(3); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles well-known names already globally overridden', function(done) { GLib.setenv('FLATPAK_USER_DIR', _global, true); permissionsDefault.appId = _globalAppId; expect(permissionsDefault.session_talk).toEqual('org.test.Service-3'); permissionsDefault.set_property('session_talk', 'org.test.Service-4'); expect(permissionsDefault.session_own).toEqual('org.test.Service-2'); permissionsDefault.set_property('session_own', 'org.test.Service-5'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { const group = 'Session Bus Policy'; expect(has(_globalWithGlobalOverride, group, 'org.test.Service-3', 'none')).toBe(true); expect(has(_globalWithGlobalOverride, group, 'org.test.Service-4', 'talk')).toBe(true); expect(has(_globalWithGlobalOverride, group, 'org.test.Service-2', 'none')).toBe(true); expect(has(_globalWithGlobalOverride, group, 'org.test.Service-5', 'own')).toBe(true); expect(hasInTotal(_globalWithGlobalOverride)).toEqual(4); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('restores all overriden global overrides', function() { GLib.setenv('FLATPAK_USER_DIR', _global, true); permissionsDefault.appId = _globalRestoredAppId; expect(permissionsDefault.sockets_x11).toBe(true); expect(permissionsDefault.sockets_wayland).toBe(false); expect(permissionsDefault.sockets_cups).toBe(true); expect(permissionsDefault.variables).toEqual('TEST2=override;TEST3=global;TEST4=override'); expect(permissionsDefault.persistent).toEqual('.test1;.test2;.test3'); expect(permissionsDefault.filesystems_other).toEqual('~/test4'); expect(permissionsDefault.session_talk).toEqual('org.test.Service-4'); expect(permissionsDefault.session_own).toEqual('org.test.Service-5'); }); it('sets proper override statuses', function() { GLib.setenv('FLATPAK_USER_DIR', _statuses, true); permissionsDefault.appId = _statusesAppId; expect(permissionsDefault.sockets_cups_status).toEqual('original'); expect(permissionsDefault.sockets_wayland_status).toEqual('global'); expect(permissionsDefault.sockets_x11_status).toEqual('user'); expect(permissionsDefault.variables_status).toEqual('original;global;user'); expect(permissionsDefault.persistent_status).toEqual('original;global;user'); expect(permissionsDefault.filesystems_other_status).toEqual('original;global;user'); expect(permissionsDefault.session_talk_status).toEqual('original;global;user'); expect(permissionsDefault.session_own_status).toEqual('original;global;user'); }); it('handles writting global overridden', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = 'global'; expect(permissionsDefault.sockets_x11).toBe(false); permissionsDefault.set_property('sockets-x11', true); expect(permissionsDefault.variables).toEqual(''); permissionsDefault.set_property('variables', 'TEST=override'); expect(permissionsDefault.persistent).toEqual(''); permissionsDefault.set_property('persistent', '.test'); expect(permissionsDefault.filesystems_other).toEqual(''); permissionsDefault.set_property('filesystems_other', '~/test'); expect(permissionsDefault.session_talk).toEqual(''); permissionsDefault.set_property('session_talk', 'org.test.Talk'); expect(permissionsDefault.session_own).toEqual(''); permissionsDefault.set_property('session_own', 'org.test.Own'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_globalOverride, 'Context', 'sockets', 'x11')).toBe(true); expect(has(_globalOverride, 'Environment', 'TEST', 'override')).toBe(true); expect(has(_globalOverride, 'Context', 'persistent', '.test')).toBe(true); expect(has(_globalOverride, 'Context', 'filesystems', '~/test')).toBe(true); expect(has(_globalOverride, 'Session Bus Policy', 'org.test.Talk', 'talk')).toBe(true); expect(has(_globalOverride, 'Session Bus Policy', 'org.test.Own', 'own')).toBe(true); expect(hasInTotal(_globalOverride)).toEqual(6); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('preserves negated global overridden', function(done) { const source = Gio.File.new_for_path(_globalNegatedOverride); const destination = Gio.File.new_for_path(_globalOverride); source.copy(destination, Gio.FileCopyFlags.NONE, null, null); GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = 'global'; expect(permissionsDefault.sockets_x11).toBe(false); expect(permissionsDefault.filesystems_other).toEqual('!~/test'); expect(permissionsDefault.variables).toEqual(''); expect(permissionsDefault.session_talk).toEqual(''); expect(permissionsDefault.session_own).toEqual(''); permissionsDefault.set_property('shared-network', true); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_globalOverride, 'Context', 'shared', 'unsupported')).toBe(true); expect(has(_globalOverride, 'Context', 'shared', 'network')).toBe(true); expect(has(_globalOverride, 'Context', 'sockets', '!x11')).toBe(true); expect(has(_globalOverride, 'Context', 'filesystems', '!~/test')).toBe(true); expect(has(_globalOverride, 'Environment', 'TEST', '')).toBe(true); expect(has(_globalOverride, 'Session Bus Policy', 'org.test.Test', 'none')).toBe(true); expect(hasInTotal(_globalOverride)).toEqual(6); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles weird interactions with reset mode', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _resetModeId; expect(permissionsDefault.filesystems_host).toBe(true); expect(permissionsDefault.filesystems_other).toEqual(''); permissionsDefault.set_property('filesystems_other', '!host:reset'); expect(permissionsDefault.sockets_x11).toBe(false); permissionsDefault.set_property('sockets_x11', true); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_resetModeOverride, 'Context', 'sockets', 'x11')).toBe(true); expect(has(_resetModeOverride, 'Context', 'filesystems', '!host:reset')).toBe(true); expect(hasInTotal(_resetModeOverride)).toEqual(2); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles weird interactions with global reset mode', function(done) { const source = Gio.File.new_for_path(_globalResetModeOverride); const destination = Gio.File.new_for_path(_globalOverride); source.copy(destination, Gio.FileCopyFlags.NONE, null, null); GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _resetModeId; expect(permissionsDefault.filesystems_host).toBe(true); expect(permissionsDefault.filesystems_other).toEqual('!host:reset'); expect(permissionsDefault.sockets_x11).toBe(false); permissionsDefault.set_property('sockets_x11', true); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { expect(has(_resetModeOverride, 'Context', 'sockets', 'x11')).toBe(true); expect(hasInTotal(_resetModeOverride)).toEqual(1); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles global overrides that negate filesystems with mode', function(done) { GLib.setenv('FLATPAK_USER_DIR', _tmp, true); permissionsDefault.appId = _filesystemWithMode; expect(permissionsDefault.filesystems_other).toEqual('host:ro;xdg-documents:ro;home:ro'); permissionsDefault.appId = 'global'; expect(permissionsDefault.filesystems_other).toEqual(''); permissionsDefault.set_property('filesystems_other', '!host'); GLib.timeout_add(GLib.PRIORITY_HIGH, delay + 1, () => { permissionsDefault.appId = _filesystemWithMode; expect(permissionsDefault.filesystems_other).toEqual('xdg-documents:ro;home:ro'); done(); return GLib.SOURCE_REMOVE; }); update(); }); it('handles malformed overrides', function() { spyOn(permissionsDefault, 'emit'); GLib.setenv('FLATPAK_USER_DIR', _user, true); permissionsDefault.appId = _malformedAppId; expect(permissionsDefault.emit.calls.first().args).toEqual(['failed']); }); }); Flatseal-2.4.1/tests/src/testPathRow.js000066400000000000000000000120761520337174300200370ustar00rootroot00000000000000/* eslint max-len: */ /* testPathRow.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {setup} = imports.utils; setup(); const {FlatsealPathRow, mode, validity} = imports.widgets.pathRow; describe('FlatsealPathRow', function() { var row; beforeEach(function() { row = new FlatsealPathRow(); }); it('starts empty', function() { expect(row.text).toEqual(''); }); it('processes path correctly', function() { const text = 'home:ro'; row.text = text; expect(row.text).toEqual(text); }); it('sets ready-only style class', function() { row.text = 'home:ro'; const context = row.get_style_context(); expect(context.has_class(mode.READONLY)).toBe(true); expect(context.has_class(mode.READWRITE)).toBe(false); expect(context.has_class(mode.CREATE)).toBe(false); }); it('sets ready-write style class', function() { row.text = 'home:rw'; const context = row.get_style_context(); expect(context.has_class(mode.READONLY)).toBe(false); expect(context.has_class(mode.READWRITE)).toBe(true); expect(context.has_class(mode.CREATE)).toBe(false); }); it('sets ready-write style class (default)', function() { row.text = 'home'; const context = row.get_style_context(); expect(context.has_class(mode.READONLY)).toBe(false); expect(context.has_class(mode.READWRITE)).toBe(true); expect(context.has_class(mode.CREATE)).toBe(false); }); it('sets create style class', function() { row.text = 'home:create'; const context = row.get_style_context(); expect(context.has_class(mode.READONLY)).toBe(false); expect(context.has_class(mode.READWRITE)).toBe(false); expect(context.has_class(mode.CREATE)).toBe(true); }); function _handles(description, path, _mode) { it(`handles ${description} paths (${_mode ? _mode : 'default'})`, function() { row.text = `${path}${_mode}`; const context = row.get_style_context(); expect(context.has_class(validity.VALID)).toBe(true); expect(context.has_class(validity.NOTVALID)).toBe(false); }); } _handles('absolute', '/home/.test', ''); _handles('absolute', '/home/.test', ':ro'); _handles('absolute', '/home/.test', ':rw'); _handles('absolute', '/home/.test', ':create'); _handles('absolute', '/home/.test/', ''); _handles('relative', '~/.test', ''); _handles('relative', '~/.test', ':ro'); _handles('relative', '~/.test', ':rw'); _handles('relative', '~/.test', ':create'); _handles('relative', '~/.test/', ''); _handles('relative', '~/.local/share/Folder/Games/common/Console Classics/uncompressed GAMEs/Old_Game_wVersion3.bin', ':ro'); _handles('relative', '!~/.TelegramDesktop', ''); _handles('token-based', 'home/.test', ''); _handles('token-based', 'home/.test', ':ro'); _handles('token-based', 'home/.test', ':rw'); _handles('token-based', 'home/.test', ':create'); _handles('token-based', 'home/.test/', ''); _handles('token-based', 'xdg-download/Telegram Desktop:create', ''); _handles('token-based', '!xdg-download', ''); _handles('token-based', '!xdg-download', ':reset'); function _catches(description, path, _mode) { it(`catches ${description} paths (${_mode ? _mode : 'default'})`, function() { row.text = `${path}${_mode}`; const context = row.get_style_context(); expect(context.has_class(validity.VALID)).toBe(false); expect(context.has_class(validity.NOTVALID)).toBe(true); }); } _catches('not-valid empty', '', ''); _catches('not-valid absolute', '/', ''); _catches('not-valid relative', '~/', ''); _catches('not-valid absolute', '/home/ .test ', ''); _catches('not-valid relative', '~/ .test ', ''); _catches('not-valid token-based', 'home ', ':ro'); _catches('not-valid token-based', 'home/', ''); _catches('not-valid token-based', 'home/.test/ ', ''); _catches('not-valid token-based', 'home-non-valid', ''); _catches('not-valid token-based', 'jome/.test ', ''); _catches('not-valid mode', 'home', ':'); _catches('not-valid mode', 'home', ':not'); _catches('not-valid negation', '!!~/.TelegramDesktop', ''); _catches('not-valid negation', '!~/.TelegramDesktop', ':'); _catches('not-valid negation', '!~/.TelegramDesktop', ':ro'); }); Flatseal-2.4.1/tests/src/testPathsViewer.js000066400000000000000000000032251520337174300207100ustar00rootroot00000000000000/* testPathsViewer.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ const {setup} = imports.utils; setup(); const {FlatsealPathsViewer} = imports.widgets.pathsViewer; const {FlatsealPathRow} = imports.widgets.pathRow; const _paths = 'home;host;xdg-desktop'; describe('FlatsealPathsViewer', function() { var viewer; beforeEach(function() { viewer = new FlatsealPathsViewer( (v) => v.join(';'), (v) => v.split(';'), FlatsealPathRow, ); }); it('starts empty', function() { expect(viewer.text).toEqual(''); }); it('processes paths correctly', function() { viewer.text = _paths; expect(viewer.text).toEqual(_paths); }); it('handles new paths', function() { viewer.text = _paths; viewer.add('~/Steam'); expect(viewer.text).toEqual(`${_paths};~/Steam`); }); it('resets paths', function() { viewer.add(''); viewer.text = ''; expect(viewer.text).toEqual(''); }); }); Flatseal-2.4.1/tests/src/utils.js000066400000000000000000000115621520337174300167120ustar00rootroot00000000000000/* exported setup update has hasOnly hasInTotal startService stopService getValueFromService waitForService partialService */ /* eslint no-extend-native: */ /* utils.js * * Copyright 2020 Martin Abente Lahaye * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ imports.gi.versions.Gtk = '4.0'; const {gettext} = imports; const {Gio, GLib, Gtk} = imports.gi; const TestPermissionStoreIface = ` `; function setup() { Gtk.init(); /* XXX this shouldn't be needed */ const {format} = imports; String.prototype.format = format.format; window._ = gettext.gettext; const src = GLib.build_filenamev([ GLib.get_current_dir(), 'src', 'com.github.tchx84.Flatseal.src.gresource', ]); const data = GLib.build_filenamev([ GLib.get_current_dir(), 'src', 'com.github.tchx84.Flatseal.data.gresource', ]); Gio.Resource.load(src)._register(); Gio.Resource.load(data)._register(); imports.searchPath.unshift('resource:///com/github/tchx84/Flatseal/js'); } function update() { const context = GLib.MainContext.default(); while (context.pending()) context.iteration(true); } function has(path, group, key, value) { const keyFile = new GLib.KeyFile(); keyFile.load_from_file(path, 0); const [keys] = keyFile.get_keys(group); if (!keys.includes(key)) return false; const values = keyFile.get_value(group, key); return values.split(';').indexOf(value) !== -1; } function hasOnly(path, group, key, value) { const keyFile = new GLib.KeyFile(); keyFile.load_from_file(path, 0); const [keys] = keyFile.get_keys(group); const values = keyFile.get_value(group, key); const list = values.split(';'); return keys.length === 1 && list.length === 1 && list.indexOf(value) !== -1; } function hasInTotal(path) { let count = 0; const keyFile = new GLib.KeyFile(); keyFile.load_from_file(path, 0); const [groups] = keyFile.get_groups(); groups.forEach(group => { const [keys] = keyFile.get_keys(group); keys.forEach(key => { const values = keyFile.get_value(group, key); count += values.split(';').length; }); }); return count; } function startService() { GLib.setenv( 'FLATSEAL_PORTAL_BUS_NAME', 'com.github.tchx84.Flatseal.PermissionStore', true); const service = GLib.build_filenamev([ '..', 'tests', 'service.js', ]); window.service = Gio.Subprocess.new(['gjs', service], null); } function stopService() { window.service.force_exit(); } function getValueFromService(table, id, allowed, appId) { const {PermissionsIface} = imports.models.portals; const Proxy = Gio.DBusProxy.makeProxyWrapper(PermissionsIface); const proxy = new Proxy( Gio.DBus.session, GLib.getenv('FLATSEAL_PORTAL_BUS_NAME'), '/org/freedesktop/impl/portal/PermissionStore'); let appIds; try { [appIds] = proxy.LookupSync(table, id); } catch (err) { appIds = null; } // check if no entry in the permission store if (allowed === null && (appIds === null || !(appId in appIds))) return true; const value = appId in appIds && appIds[appId][0] === allowed; return value; } function waitForService() { const {PermissionsIface} = imports.models.portals; var version = null; do { GLib.usleep(1000000); const Proxy = Gio.DBusProxy.makeProxyWrapper(PermissionsIface); const proxy = new Proxy( Gio.DBus.session, GLib.getenv('FLATSEAL_PORTAL_BUS_NAME'), '/org/freedesktop/impl/portal/PermissionStore'); version = proxy.version; // eslint-disable-line prefer-destructuring } while (version === null); } function partialService() { const Proxy = Gio.DBusProxy.makeProxyWrapper(TestPermissionStoreIface); const proxy = new Proxy( Gio.DBus.session, GLib.getenv('FLATSEAL_PORTAL_BUS_NAME'), '/org/freedesktop/impl/portal/PermissionStore'); proxy.testPartialTableSync(); }