From 9d67a583e6a332e48f94ba9bd7e29cf625040f63 Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Tue, 14 Jul 2026 03:43:58 +0300 Subject: [PATCH 01/17] Pure Codename One rich text and code editors (remove BrowserComponent) Replace the BrowserComponent-backed RichTextArea and CodeEditor with a 100% pure Codename One text engine (com.codename1.ui.editor) that renders the document itself with Graphics/Font and binds to the platform text input source. - New low-level text input source API (TextInputClient/State/Config + impl SPI) bound per port: Android custom InputConnection, iOS UITextInput first responder, JavaSE InputMethod/key listeners. - Editor engine: document model, incremental stateful tokenizer, undo, styled rich runs, HTML import/export, code completion popup and diagnostics squiggles. - Bidirectional (RTL) text via a Unicode Bidi Algorithm core (BidiUtil) wired into caret/selection/hit-test/render for the base, code and rich views. - IME / CJK marked-text composition with an inline underline. - Native-feel touch selection: cross-platform CN1-drawn handles + magnifier loupe + Copy/Cut/Paste/Select All, plus the native iOS system magnifier / handles / edit menu via UITextInteraction. - Remove the HTML/BrowserComponent backend (CodeEditorHtml, createEditorHtml) and the dead CodeEditor CodeMirror bundling in the Maven plugin builders and GLViewController.h. Public API preserved (drop-in); backend-switch methods kept as deprecated no-ops. - Tests: 66 core unit tests (bidi, document, composing, geometry, backend) plus a hellocodenameone screenshot test. Full core-unittests suite green (3867). - Developer guide updated. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../impl/CodenameOneImplementation.java | 49 + .../codename1/ui/AbstractEditorComponent.java | 170 +- .../src/com/codename1/ui/CodeEditor.java | 41 +- .../src/com/codename1/ui/CodeEditorHtml.java | 182 -- .../src/com/codename1/ui/RichTextArea.java | 70 +- .../src/com/codename1/ui/TextInputClient.java | 174 ++ .../src/com/codename1/ui/TextInputConfig.java | 129 ++ .../src/com/codename1/ui/TextInputState.java | 109 + .../src/com/codename1/ui/editor/BidiUtil.java | 346 +++ .../codename1/ui/editor/CodePureEditor.java | 179 ++ .../src/com/codename1/ui/editor/CodeView.java | 827 ++++++++ .../codename1/ui/editor/EditorDocument.java | 257 +++ .../com/codename1/ui/editor/EditorHost.java | 53 + .../com/codename1/ui/editor/EditorView.java | 1876 +++++++++++++++++ .../com/codename1/ui/editor/HtmlImporter.java | 576 +++++ .../codename1/ui/editor/HtmlSerializer.java | 211 ++ .../com/codename1/ui/editor/InlineStyles.java | 144 ++ .../com/codename1/ui/editor/LanguageDef.java | 167 ++ .../com/codename1/ui/editor/PureEditor.java | 129 ++ .../com/codename1/ui/editor/RichBlocks.java | 139 ++ .../codename1/ui/editor/RichPureEditor.java | 212 ++ .../src/com/codename1/ui/editor/RichView.java | 903 ++++++++ .../com/codename1/ui/editor/TextStyle.java | 148 ++ .../com/codename1/ui/editor/ThemePalette.java | 135 ++ .../com/codename1/ui/editor/Tokenizer.java | 259 +++ .../com/codename1/ui/editor/UndoManager.java | 137 ++ .../impl/android/AndroidAsyncView.java | 7 + .../impl/android/AndroidImplementation.java | 132 +- .../impl/android/AndroidSurfaceView.java | 7 + .../impl/android/AndroidTextureView.java | 7 + .../impl/android/CN1TextInputConnection.java | 234 ++ .../com/codename1/impl/javase/JavaSEPort.java | 70 +- .../iOSPort/nativeSources/CN1TextInputView.h | 50 + .../iOSPort/nativeSources/CN1TextInputView.m | 719 +++++++ .../CodenameOne_GLViewController.h | 1 - .../codename1/impl/ios/IOSImplementation.java | 222 +- .../src/com/codename1/impl/ios/IOSNative.java | 4 + .../The-Components-Of-Codename-One.asciidoc | 26 +- .../builders/AndroidGradleBuilder.java | 17 - .../com/codename1/builders/IPhoneBuilder.java | 12 - .../java/com/codename1/ui/CodeEditorTest.java | 18 +- .../com/codename1/ui/RichTextAreaTest.java | 38 +- .../com/codename1/ui/editor/BidiUtilTest.java | 138 ++ .../ui/editor/EditorDocumentTest.java | 114 + .../ui/editor/EditorViewBidiTest.java | 170 ++ .../ui/editor/EditorViewInputTest.java | 129 ++ .../codename1/ui/editor/RichViewBidiTest.java | 130 ++ .../tests/Cn1ssDeviceRunner.java | 1 + .../tests/PureEditorScreenshotTest.java | 44 + 49 files changed, 9483 insertions(+), 429 deletions(-) delete mode 100644 CodenameOne/src/com/codename1/ui/CodeEditorHtml.java create mode 100644 CodenameOne/src/com/codename1/ui/TextInputClient.java create mode 100644 CodenameOne/src/com/codename1/ui/TextInputConfig.java create mode 100644 CodenameOne/src/com/codename1/ui/TextInputState.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/BidiUtil.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/CodeView.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/EditorDocument.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/EditorHost.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/EditorView.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/HtmlSerializer.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/InlineStyles.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/LanguageDef.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/PureEditor.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/RichBlocks.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/RichView.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/TextStyle.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/ThemePalette.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/Tokenizer.java create mode 100644 CodenameOne/src/com/codename1/ui/editor/UndoManager.java create mode 100644 Ports/Android/src/com/codename1/impl/android/CN1TextInputConnection.java create mode 100644 Ports/iOSPort/nativeSources/CN1TextInputView.h create mode 100644 Ports/iOSPort/nativeSources/CN1TextInputView.m create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/BidiUtilTest.java create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorDocumentTest.java create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewBidiTest.java create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewInputTest.java create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/RichViewBidiTest.java create mode 100644 scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/PureEditorScreenshotTest.java diff --git a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java index e2be5e7049e..53dca77ac00 100644 --- a/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java +++ b/CodenameOne/src/com/codename1/impl/CodenameOneImplementation.java @@ -5321,6 +5321,55 @@ public String editorPeerQuery(PeerComponent peer, String name, String arg) { return null; } + /// Returns true when this platform can bind a `com.codename1.ui.TextInputClient` to a low level text + /// input source (soft keyboard / IME / hardware keyboard) so a component can capture raw text input + /// while rendering the document itself. When false the pure Codename One editors fall back to their + /// `BrowserComponent` backend. The default returns false. + public boolean isTextInputSupported() { + return false; + } + + /// Binds a `com.codename1.ui.TextInputClient` to the platform text input source and shows the soft + /// keyboard on touch devices. The platform then routes committed text, IME composition, deletions and + /// key commands into the client, and reads back the client's editing state and caret rectangle. The + /// returned handle identifies this binding for `#updateTextInputState` and `#stopTextInput`. The + /// default returns null (unsupported). + /// + /// #### Parameters + /// + /// - `client`: the input client to bind + /// + /// - `config`: the desired keyboard type and input behavior + /// + /// #### Returns + /// + /// an opaque handle for this binding, or null when unsupported + public Object startTextInput(com.codename1.ui.TextInputClient client, com.codename1.ui.TextInputConfig config) { + return null; + } + + /// Pushes the client's authoritative editing state (surrounding text, selection, composition and + /// caret rectangle) down to the platform input source so autocorrect, prediction and the IME + /// candidate window stay in sync after a Codename One side edit (programmatic change, undo, reflow). + /// No-op by default. + /// + /// #### Parameters + /// + /// - `handle`: the handle returned by `#startTextInput` + /// + /// - `state`: the current editing state + public void updateTextInputState(Object handle, com.codename1.ui.TextInputState state) { + } + + /// Unbinds a text input client bound with `#startTextInput` and hides the soft keyboard on touch + /// devices. No-op by default. + /// + /// #### Parameters + /// + /// - `handle`: the handle returned by `#startTextInput` + public void stopTextInput(Object handle) { + } + /// Posts a message to the window in a BrowserComponent. This is intended to be an abstraction of the Javascript postMessage() API. /// /// This is only overridden by the Javascript port to provide proper CORS handling. Other ports use the implementation diff --git a/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java index fd99e3de83b..8228b38dcf0 100644 --- a/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java +++ b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java @@ -23,6 +23,8 @@ */ package com.codename1.ui; +import com.codename1.ui.editor.EditorHost; +import com.codename1.ui.editor.PureEditor; import com.codename1.ui.events.ActionEvent; import com.codename1.ui.events.ActionListener; import com.codename1.ui.layouts.BorderLayout; @@ -40,27 +42,30 @@ /// and the inbound `#onEditorEvent(String, String)` dispatch. Two interchangeable backends honor /// that channel: /// -/// 1. A 100% cross platform fallback backed by `BrowserComponent` (a `contenteditable` surface for -/// rich text, a syntax highlighting surface for code). This works on every platform that supports -/// the native web widget and gets virtual keyboard handling on phones/tablets and physical keyboard -/// handling on desktop for free. +/// 1. The pure Codename One text engine (`com.codename1.ui.editor`) which renders the document itself +/// with `Graphics`/`Font` and binds to the platform text input source (soft keyboard, hardware +/// keyboard and IME). This is the default and only cross platform backend. /// 2. An optional native backend supplied by the platform port (see /// `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(AbstractEditorComponent, String)`). /// When a port returns a non-null native peer the editor drives it through -/// `editorPeerCommand` / `editorPeerQuery` instead of the browser, allowing a platform to provide a -/// genuinely native experience that can exceed an HTML based app. +/// `editorPeerCommand` / `editorPeerQuery` instead of the pure engine, allowing a platform to provide a +/// genuinely native experience. /// /// Both backends are addressed with the same vocabulary so concrete editors never need to know which /// one is active. /// /// @author Shai Almog -public abstract class AbstractEditorComponent extends Container { - /// Prefix used for all messages that travel from the web editor back to Codename One over the - /// `BrowserComponent` message bridge. - static final String MESSAGE_PREFIX = "cn1ed:"; +public abstract class AbstractEditorComponent extends Container implements EditorHost { + /// Backend identifier: the pure Codename One text engine. + public static final int BACKEND_PURE = 0; + + /// Deprecated backend identifier retained for source compatibility; the `BrowserComponent` engine has + /// been removed and this value now behaves identically to `#BACKEND_PURE`. + @Deprecated + public static final int BACKEND_BROWSER = 1; - private BrowserComponent browser; private PeerComponent nativePeer; + private PureEditor pureEditor; private boolean nativeMode; private boolean ready; private boolean editable = true; @@ -101,55 +106,13 @@ private void initBackend() { return; } nativeMode = false; - browser = new BrowserComponent(); - // keep the editor chrome supplied by the surrounding form, the editing surface is transparent - browser.setProperty("BackgroundColor", 0xffffff); - browser.addWebEventListener(BrowserComponent.onMessage, new ActionListener() { - @Override - public void actionPerformed(ActionEvent evt) { - handleBrowserMessage((String) evt.getSource()); - } - }); - browser.addWebEventListener(BrowserComponent.onLoad, new ActionListener() { - @Override - public void actionPerformed(ActionEvent evt) { - // the page defines window.cn1editor synchronously so it is ready once the page loaded - markReady(); - } - }); + pureEditor = createPureEditor(); removeComponent(placeholder); - addComponent(BorderLayout.CENTER, browser); - String engineUrl = getEngineURL(); - if (engineUrl != null) { - try { - browser.setURLHierarchy(engineUrl); - } catch (java.io.IOException err) { - browser.setURL(engineUrl); - } - } else { - browser.setPage(createEditorHtml(), getEditorBaseURL()); - } + addComponent(BorderLayout.CENTER, pureEditor.getView()); + markReady(); revalidateLater(); } - private void handleBrowserMessage(String msg) { - if (msg == null || !msg.startsWith(MESSAGE_PREFIX)) { - return; - } - String body = msg.substring(MESSAGE_PREFIX.length()); - int colon = body.indexOf(':'); - String type; - String value; - if (colon < 0) { - type = body; - value = null; - } else { - type = body.substring(0, colon); - value = body.substring(colon + 1); - } - onEditorEvent(type, value); - } - private void markReady() { if (ready) { return; @@ -164,29 +127,32 @@ private void markReady() { readyListeners.fireActionEvent(new ActionEvent(this)); } - /// Returns the editor type identifier passed to the native peer factory, e.g. - /// `"richtext"` or `"code"`. - abstract String getEditorType(); - - /// Returns the bootstrap HTML page used by the `BrowserComponent` fallback backend. The page must - /// define a global `window.cn1editor` object exposing `cmd(name, arg)` and `query(name, arg)` - /// functions and post change/ready events back through `window.cn1PostMessage`. - abstract String createEditorHtml(); + /// Deprecated no-op retained for source compatibility. The `BrowserComponent` backend has been + /// removed, so the pure Codename One text engine is always used regardless of the argument. + /// + /// #### Parameters + /// + /// - `backend`: ignored + @Deprecated + public static void setDefaultBackend(int backend) { + } - /// Base URL used when loading the editor page, allowing relative resources (such as a bundled code - /// editor library) to resolve. The default returns a synthetic origin. - String getEditorBaseURL() { - return "https://cn1editor.codenameone.com/"; + /// Returns `#BACKEND_PURE`; the pure engine is the only backend. + @Deprecated + public static int getDefaultBackend() { + return BACKEND_PURE; } - /// When non-null the browser fallback loads this app-hierarchy URL (via - /// `BrowserComponent#setURLHierarchy(String)`) as a custom editor engine instead of the built-in - /// `#createEditorHtml()` page. Subclasses override to allow an application to supply a richer editor - /// backend that speaks the same `window.cn1editor` bridge. - String getEngineURL() { - return null; + /// Creates the pure Codename One backend for this editor. Subclasses override to supply a code or + /// rich text feature layer. + PureEditor createPureEditor() { + return new PureEditor(this, getEditorType()); } + /// Returns the editor type identifier passed to the native peer factory, e.g. + /// `"richtext"` or `"code"`. + abstract String getEditorType(); + /// Inbound event dispatch from either backend. Subclasses override to react to editor side events /// (content changes, selection changes, completion requests, ...). Always call /// `super.onEditorEvent` for the shared `"change"` and `"ready"` handling. @@ -249,7 +215,7 @@ public void run() { if (nativeMode) { Display.impl.editorPeerCommand(nativePeer, name, arg); } else { - browser.execute("window.cn1editor.cmd(${0}, ${1})", new Object[]{name, arg == null ? "" : arg}); + pureEditor.cmd(name, arg); } } @@ -277,22 +243,7 @@ public void run() { callback.onSucess(Display.impl.editorPeerQuery(nativePeer, name, arg)); return; } - browser.execute("callback.onSuccess(window.cn1editor.query(${0}, ${1}))", - new Object[]{name, arg == null ? "" : arg}, - new JSRefStringCallback(callback)); - } - - private static final class JSRefStringCallback implements SuccessCallback { - private final SuccessCallback delegate; - - JSRefStringCallback(SuccessCallback delegate) { - this.delegate = delegate; - } - - @Override - public void onSucess(BrowserComponent.JSRef value) { - delegate.onSucess(value == null ? null : value.getValue()); - } + callback.onSucess(pureEditor.query(name, arg)); } /// Runs the supplied task once the editor backend is ready, or immediately if it already is. @@ -314,16 +265,16 @@ public boolean isEditorReady() { return ready; } - /// True when a platform supplied native editor backend is in use, false when the cross platform - /// `BrowserComponent` fallback is active. + /// True when a platform supplied native editor backend is in use, false when the pure Codename One + /// text engine is active. public boolean isNativeEditor() { return nativeMode; } - /// Returns the underlying `BrowserComponent` used by the fallback backend, or null when a native - /// backend is active. Exposed for advanced customization; most apps never need this. + /// Deprecated: the `BrowserComponent` backend has been removed and this always returns null. + @Deprecated public BrowserComponent getInternalBrowser() { - return browser; + return null; } /// Adds a listener notified whenever the editor content changes. @@ -397,4 +348,31 @@ public void focusEditor() { public void blurEditor() { command("blur", null); } + + // ---- EditorHost (pure backend bridge to the platform text input source) ---- + + /// {@inheritDoc} + public boolean isTextInputSupported() { + return Display.impl.isTextInputSupported(); + } + + /// {@inheritDoc} + public Object startTextInput(TextInputClient client, TextInputConfig config) { + return Display.impl.startTextInput(client, config); + } + + /// {@inheritDoc} + public void updateTextInputState(Object handle, TextInputState state) { + Display.impl.updateTextInputState(handle, state); + } + + /// {@inheritDoc} + public void stopTextInput(Object handle) { + Display.impl.stopTextInput(handle); + } + + /// {@inheritDoc} + public void editorChanged() { + onEditorEvent("change", null); + } } diff --git a/CodenameOne/src/com/codename1/ui/CodeEditor.java b/CodenameOne/src/com/codename1/ui/CodeEditor.java index ebdc3a7797a..392d4fd86e0 100644 --- a/CodenameOne/src/com/codename1/ui/CodeEditor.java +++ b/CodenameOne/src/com/codename1/ui/CodeEditor.java @@ -23,6 +23,8 @@ */ package com.codename1.ui; +import com.codename1.ui.editor.CodePureEditor; +import com.codename1.ui.editor.PureEditor; import com.codename1.util.SuccessCallback; import java.util.List; @@ -34,12 +36,10 @@ /// desktops (with a physical keyboard). Code completion is driven by a `CodeCompletionProvider`, which /// can resolve proposals locally or from a remote language server. /// -/// Like `RichTextArea`, the editor uses a 100% cross platform `BrowserComponent` backend by default and -/// can be transparently upgraded to a native code editor by a platform port. The built-in editing -/// surface is fully self contained and offline. When the optional bundled CodeMirror library is present -/// (the Codename One build server adds it automatically when, and only when, an app actually uses -/// `CodeEditor`) the editor upgrades to CodeMirror for richer language support; otherwise it uses a -/// lightweight built-in highlighter. +/// Like `RichTextArea`, the editor is implemented with the pure Codename One text engine +/// (`com.codename1.ui.editor`) - it renders the document itself with a built-in incremental syntax +/// highlighter and binds to the platform text input source - and can be transparently upgraded to a +/// native code editor by a platform port. /// /// #### Example /// @@ -88,6 +88,11 @@ String getEditorType() { return "code"; } + @Override + PureEditor createPureEditor() { + return new CodePureEditor(this, getEditorType()); + } + /// Replaces the entire editor content. /// /// #### Parameters @@ -254,31 +259,23 @@ private static String diagnosticsJson(List diagnostics) { return sb.toString(); } - /// Points the editor at a custom engine page bundled in the app's HTML hierarchy (loaded with - /// `BrowserComponent#setURLHierarchy(String)`) instead of the self contained built-in engine. The - /// custom page must implement the same `window.cn1editor` command/query bridge and post the same - /// `cn1ed:` events, which lets an application back `CodeEditor` with a richer editor (e.g. CodeMirror - /// or Monaco) when maximum polish is required while keeping the exact same Java API. Must be set - /// before the editor is shown. + /// Deprecated: the `BrowserComponent` custom-engine escape hatch has been removed. The value is + /// stored for source compatibility but ignored; the pure Codename One code engine is always used. /// /// #### Parameters /// - /// - `url`: an app-hierarchy URL such as `"/my-editor/index.html"`, or null to use the built-in engine + /// - `url`: ignored + @Deprecated public void setEngineURL(String url) { this.engineUrl = url; } - /// Returns the custom engine URL set with `#setEngineURL(String)`, or null when the built-in engine - /// is used. - @Override + /// Deprecated: returns the value last passed to `#setEngineURL(String)` (ignored by the engine). + @Deprecated public String getEngineURL() { return engineUrl; } - String getEngineURLInternal() { - return engineUrl; - } - /// Sets the provider that supplies code completion proposals. Passing null disables completion. /// /// #### Parameters @@ -396,8 +393,4 @@ private static String jsonEscape(String s) { return sb.toString(); } - @Override - String createEditorHtml() { - return CodeEditorHtml.PAGE; - } } diff --git a/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java b/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java deleted file mode 100644 index 8d433651c4e..00000000000 --- a/CodenameOne/src/com/codename1/ui/CodeEditorHtml.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores - * CA 94065 USA or visit www.oracle.com if you need additional information or - * have any questions. - */ -package com.codename1.ui; - -/// Holds the self contained HTML/JS implementation of the `CodeEditor` built-in editing surface. Kept -/// in its own class so the large literal does not clutter the editor component. The page exposes the -/// `window.cn1editor` command/query bridge used by `AbstractEditorComponent` and supports syntax -/// highlighting, a line-number gutter, code completion, diagnostics (squiggly underlines + gutter -/// markers + tooltips), bracket auto-close and an active-line highlight. -final class CodeEditorHtml { - private CodeEditorHtml() { - } - - // Assigned in a static initializer (not at the declaration) so this large string is a runtime - // constant rather than a compile-time constant - that keeps the compiler from inlining the whole - // ~13KB literal into every class that references CodeEditorHtml.PAGE. - static final String PAGE; - - static { - PAGE = - "" - + "" - + "" - + "" - + "
1
" - + "
" - + ""; - } -} diff --git a/CodenameOne/src/com/codename1/ui/RichTextArea.java b/CodenameOne/src/com/codename1/ui/RichTextArea.java index c08c6be5612..bb3e80395f6 100644 --- a/CodenameOne/src/com/codename1/ui/RichTextArea.java +++ b/CodenameOne/src/com/codename1/ui/RichTextArea.java @@ -23,6 +23,8 @@ */ package com.codename1.ui; +import com.codename1.ui.editor.PureEditor; +import com.codename1.ui.editor.RichPureEditor; import com.codename1.util.SuccessCallback; /// A native visual editor for rich text / HTML content (a WYSIWYG editor). @@ -31,10 +33,10 @@ /// headings and more - and exchange the result as HTML with your application. It works on phones and /// tablets (with the on screen virtual keyboard) as well as on desktops (with a physical keyboard). /// -/// By default the editor is implemented as a `contenteditable` surface hosted inside the platform's -/// native web widget (`BrowserComponent`), which makes it 100% cross platform and gives correct -/// keyboard, selection and IME behavior on every device for free. A platform port may transparently -/// replace this with a fully native editing widget; see +/// The editor is implemented with the pure Codename One text engine (`com.codename1.ui.editor`): it +/// renders the document itself and binds to the platform text input source (soft keyboard, hardware +/// keyboard and IME), which makes it 100% cross platform with correct keyboard, selection and IME +/// behavior. A platform port may transparently replace this with a fully native editing widget; see /// `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(Object, String)`. /// /// #### Basic usage @@ -79,6 +81,11 @@ String getEditorType() { return "richtext"; } + @Override + PureEditor createPureEditor() { + return new RichPureEditor(this, getEditorType()); + } + /// Replaces the entire editor content with the supplied HTML. /// /// #### Parameters @@ -295,59 +302,4 @@ private static String toCss(int rgb) { } return "#" + s; } - - @Override - String createEditorHtml() { - // A self-contained contenteditable editor. No external resources are required which keeps the - // editor fully functional offline and adds zero footprint to apps that do not use it. - return "" - + "" - + "" - + "" - + "
" - + ""; - } } diff --git a/CodenameOne/src/com/codename1/ui/TextInputClient.java b/CodenameOne/src/com/codename1/ui/TextInputClient.java new file mode 100644 index 00000000000..a9185241059 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/TextInputClient.java @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +/// A low level text input client, the counterpart to a platform text input source (soft keyboard, IME, +/// autocorrect and hardware keyboard). A component that wants to own text editing itself - rendering +/// text with its own `Graphics` code instead of a native text widget - implements this interface and +/// binds it through `com.codename1.impl.CodenameOneImplementation#startTextInput`. From then on the +/// platform routes committed text, IME composition (marked text), deletions and key commands directly +/// into the client, and the client answers back with the surrounding text and caret geometry the +/// platform needs to place candidate windows, the selection loupe and predictions. +/// +/// This is the same pattern high end custom editors use (a hidden input surface driving a +/// custom rendered document). Codename One's pure `RichTextArea` / `CodeEditor` are the primary +/// consumers, but the API is deliberately general so any component can capture raw text input. +/// +/// All offsets exchanged with the platform are UTF-16 character indices. All callbacks are delivered on +/// the EDT. +public interface TextInputClient { + /// Key command: move / extend to the left. + int KEY_LEFT = 1; + /// Key command: move / extend to the right. + int KEY_RIGHT = 2; + /// Key command: move / extend up a line. + int KEY_UP = 3; + /// Key command: move / extend down a line. + int KEY_DOWN = 4; + /// Key command: move / extend to the start of the line. + int KEY_HOME = 5; + /// Key command: move / extend to the end of the line. + int KEY_END = 6; + /// Key command: page up. + int KEY_PAGE_UP = 7; + /// Key command: page down. + int KEY_PAGE_DOWN = 8; + /// Key command: delete backward (backspace) when not expressed as a surrounding text deletion. + int KEY_BACKSPACE = 9; + /// Key command: delete forward. + int KEY_DELETE = 10; + /// Key command: dismiss / cancel (escape). + int KEY_ESCAPE = 11; + /// Key command: copy the selection. + int KEY_COPY = 12; + /// Key command: cut the selection. + int KEY_CUT = 13; + /// Key command: paste the clipboard. + int KEY_PASTE = 14; + /// Key command: select all. + int KEY_SELECT_ALL = 15; + /// Key command: undo. + int KEY_UNDO = 16; + /// Key command: redo. + int KEY_REDO = 17; + + /// Modifier bit: shift held (used to extend a selection). + int MOD_SHIFT = 1; + /// Modifier bit: control or command held. + int MOD_CTRL = 2; + /// Modifier bit: alt / option held. + int MOD_ALT = 4; + + /// Commits final text at the caret, replacing the active selection. This is the normal path for a + /// typed character, an accepted autocorrect suggestion, dictation and paste. + /// + /// #### Parameters + /// + /// - `text`: the committed text + void commitText(String text); + + /// Updates the in progress IME composition (marked text) at the caret. The composing text is not yet + /// final and is typically rendered underlined; it is replaced on the next `#setComposingText` and + /// finalized by `#finishComposing`. + /// + /// #### Parameters + /// + /// - `text`: the current marked text + /// + /// - `relativeCaret`: caret position relative to the marked text (platform convention) + void setComposingText(String text, int relativeCaret); + + /// Finalizes any active IME composition, committing the current marked text. + void finishComposing(); + + /// Deletes text around the caret, the primary deletion path used by soft keyboards. + /// + /// #### Parameters + /// + /// - `before`: number of UTF-16 units to delete before the caret + /// + /// - `after`: number of UTF-16 units to delete after the caret + void deleteSurroundingText(int before, int after); + + /// Delivers a non text key command (navigation, deletion, clipboard, undo). Text producing keys are + /// delivered through `#commitText` instead. + /// + /// #### Parameters + /// + /// - `command`: one of the `KEY_*` constants + /// + /// - `modifiers`: a bit mask of the `MOD_*` constants + void onKeyCommand(int command, int modifiers); + + /// Delivers the keyboard return key action (done / next / search / send) configured through + /// `TextInputConfig`. + /// + /// #### Parameters + /// + /// - `action`: one of the `TextInputConfig` `ACTION_*` constants + void onEditorAction(int action); + + /// Returns the current editing state (surrounding text, selection and composition) so the platform + /// can seed autocorrect and prediction. May return a window around the caret for very large + /// documents. + TextInputState getEditingState(); + + /// Returns the caret rectangle in absolute screen pixels `{x, y, width, height}`, used by the + /// platform to anchor the IME candidate window and the selection loupe near the rendered caret. + int[] getCaretRect(); + + /// Returns the configuration describing the desired keyboard type and input behavior. + TextInputConfig getConfig(); + + /// Notifies the client that it gained the platform input focus (became first responder). + void inputFocusGained(); + + /// Notifies the client that it lost the platform input focus. + void inputFocusLost(); + + // ---- geometry + direct editing, used by richer platform input protocols (iOS UITextInput) to draw + // the selection loupe / handles and to drive edits by range ---- + + /// Returns the total number of UTF-16 characters in the document. + int getTextLength(); + + /// Returns the text in `[start, end)`. + String getTextRange(int start, int end); + + /// Returns the caret rectangle for an arbitrary offset in absolute screen pixels `{x, y, w, h}`. + int[] rectForOffset(int offset); + + /// Returns the document offset nearest an absolute screen point (pixels). + int offsetAtPoint(int x, int y); + + /// Returns the selection rectangles covering `[start, end)` as a flat array of absolute-pixel + /// rectangles `{x, y, w, h, x, y, w, h, ...}` (one entry per visual line the range spans). + int[] selectionRects(int start, int end); + + /// Replaces the range `[start, end)` with `text` (a direct, range based edit from the platform). + void replaceRange(int start, int end, String text); + + /// Sets the selection to `[start, end)` (a caret when equal). + void setSelectionRange(int start, int end); +} diff --git a/CodenameOne/src/com/codename1/ui/TextInputConfig.java b/CodenameOne/src/com/codename1/ui/TextInputConfig.java new file mode 100644 index 00000000000..84b2695be2f --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/TextInputConfig.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +/// Immutable configuration handed to the platform when a `TextInputClient` binds to the low level text +/// input source (see `com.codename1.impl.CodenameOneImplementation#startTextInput`). It tells the +/// platform which soft keyboard flavor to present and how aggressive autocorrect / autocapitalization +/// should be. A source editor typically disables autocorrect and autocapitalization so it does not +/// mangle code, whereas a prose editor leaves them on. +/// +/// The constraint constants mirror the `TextArea` constraint bits so the same keyboard mapping the +/// framework already uses for native fields applies here. +public final class TextInputConfig { + /// The action label shown on the keyboard's return key: a plain newline / carriage return. + public static final int ACTION_DEFAULT = 0; + + /// The action label shown on the keyboard's return key: a "done" affordance that finishes editing. + public static final int ACTION_DONE = 1; + + /// The action label shown on the keyboard's return key: a "next" affordance moving to the next field. + public static final int ACTION_NEXT = 2; + + /// The action label shown on the keyboard's return key: a "search" affordance. + public static final int ACTION_SEARCH = 3; + + /// The action label shown on the keyboard's return key: a "send" affordance. + public static final int ACTION_SEND = 4; + + private int constraint = TextArea.ANY; + private boolean autoCorrect = true; + private boolean autoCapitalize = true; + private boolean multiline = true; + private int actionType = ACTION_DEFAULT; + + /// Creates a config with prose oriented defaults (autocorrect and autocapitalize enabled, multiline, + /// `TextArea#ANY` constraint). + public TextInputConfig() { + } + + /// Returns the `TextArea` style constraint bits describing the keyboard type. + public int getConstraint() { + return constraint; + } + + /// Sets the `TextArea` style constraint bits describing the keyboard type. + /// + /// #### Parameters + /// + /// - `constraint`: one of the `TextArea` constraint constants + /// + /// Returns this instance for chaining. + public TextInputConfig setConstraint(int constraint) { + this.constraint = constraint; + return this; + } + + /// True when the platform should apply autocorrect / predictive text. + public boolean isAutoCorrect() { + return autoCorrect; + } + + /// Enables or disables platform autocorrect / predictive text. Disable this for source code. + /// + /// Returns this instance for chaining. + public TextInputConfig setAutoCorrect(boolean autoCorrect) { + this.autoCorrect = autoCorrect; + return this; + } + + /// True when the platform should auto capitalize. + public boolean isAutoCapitalize() { + return autoCapitalize; + } + + /// Enables or disables platform auto capitalization. Disable this for source code. + /// + /// Returns this instance for chaining. + public TextInputConfig setAutoCapitalize(boolean autoCapitalize) { + this.autoCapitalize = autoCapitalize; + return this; + } + + /// True when the editor accepts multiple lines (the return key inserts a newline). + public boolean isMultiline() { + return multiline; + } + + /// Sets whether the editor accepts multiple lines. + /// + /// Returns this instance for chaining. + public TextInputConfig setMultiline(boolean multiline) { + this.multiline = multiline; + return this; + } + + /// Returns the return key action type, one of the `ACTION_*` constants. + public int getActionType() { + return actionType; + } + + /// Sets the return key action type, one of the `ACTION_*` constants. + /// + /// Returns this instance for chaining. + public TextInputConfig setActionType(int actionType) { + this.actionType = actionType; + return this; + } +} diff --git a/CodenameOne/src/com/codename1/ui/TextInputState.java b/CodenameOne/src/com/codename1/ui/TextInputState.java new file mode 100644 index 00000000000..7e2a2b1bc44 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/TextInputState.java @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui; + +/// An immutable snapshot of the editing state shared between a `TextInputClient` and the platform text +/// input source. It carries the surrounding text the platform needs for autocorrect / prediction, the +/// current selection, and the in progress IME composition (marked text) range if any. +/// +/// All offsets are UTF-16 character indices into `text`, matching Java `String` indices as well as the +/// `NSString` / Android `Editable` indices used by the native input machinery. A collapsed selection +/// (`selectionStart == selectionEnd`) represents a plain caret. A composing range of `-1, -1` means no +/// IME composition is active. +public final class TextInputState { + private final String text; + private final int selectionStart; + private final int selectionEnd; + private final int composingStart; + private final int composingEnd; + + /// Creates a state snapshot without an active composition. + /// + /// #### Parameters + /// + /// - `text`: the surrounding text (may be a window around the caret for very large documents) + /// + /// - `selectionStart`: UTF-16 offset of the selection anchor + /// + /// - `selectionEnd`: UTF-16 offset of the selection focus + public TextInputState(String text, int selectionStart, int selectionEnd) { + this(text, selectionStart, selectionEnd, -1, -1); + } + + /// Creates a state snapshot including an IME composition range. + /// + /// #### Parameters + /// + /// - `text`: the surrounding text + /// + /// - `selectionStart`: UTF-16 offset of the selection anchor + /// + /// - `selectionEnd`: UTF-16 offset of the selection focus + /// + /// - `composingStart`: UTF-16 offset where the marked text begins, or -1 when none + /// + /// - `composingEnd`: UTF-16 offset where the marked text ends, or -1 when none + public TextInputState(String text, int selectionStart, int selectionEnd, int composingStart, int composingEnd) { + this.text = text == null ? "" : text; + this.selectionStart = selectionStart; + this.selectionEnd = selectionEnd; + this.composingStart = composingStart; + this.composingEnd = composingEnd; + } + + /// Returns the surrounding text. + public String getText() { + return text; + } + + /// Returns the UTF-16 offset of the selection anchor. + public int getSelectionStart() { + return selectionStart; + } + + /// Returns the UTF-16 offset of the selection focus. + public int getSelectionEnd() { + return selectionEnd; + } + + /// Returns the UTF-16 offset where the IME marked text begins, or -1 when no composition is active. + public int getComposingStart() { + return composingStart; + } + + /// Returns the UTF-16 offset where the IME marked text ends, or -1 when no composition is active. + public int getComposingEnd() { + return composingEnd; + } + + /// True when the selection is collapsed to a caret. + public boolean isCaret() { + return selectionStart == selectionEnd; + } + + /// True when an IME composition (marked text) is currently active. + public boolean isComposing() { + return composingStart >= 0 && composingEnd >= 0; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java b/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java new file mode 100644 index 00000000000..a871f7dd51a --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +/// A compact implementation of the core Unicode Bidirectional Algorithm (UAX #9) used by the pure text +/// editor to lay out, hit test and render a single line of mixed left-to-right / right-to-left text. +/// +/// The editor renders each directional run as a substring so the platform font engine performs the actual +/// glyph shaping (Arabic joining, ligatures); this class only resolves the *embedding levels* of the +/// characters on a line and the *visual order* those characters appear in. That division keeps the editor +/// correct on every platform while remaining self contained and unit testable with no UI dependency. +/// +/// A single paragraph line is assumed (no explicit embedding/override controls beyond the paragraph base +/// direction, and no line wrapping inside the algorithm). This covers the editor's model where each +/// document line is one paragraph. The implementation follows the resolution phases of UAX #9: character +/// typing, the weak type rules W1-W7, the neutral rules N1-N2, the implicit level rules I1-I2 and the +/// reordering rule L2. +class BidiUtil { + // Bidirectional character types (a subset of UAX #9 sufficient for the editor). + static final byte L = 0; // Left-to-Right (strong) + static final byte R = 1; // Right-to-Left (strong) + static final byte AL = 2; // Right-to-Left Arabic (strong) + static final byte EN = 3; // European Number + static final byte ES = 4; // European Number Separator + static final byte ET = 5; // European Number Terminator + static final byte AN = 6; // Arabic Number + static final byte CS = 7; // Common Number Separator + static final byte NSM = 8; // Nonspacing Mark + static final byte BN = 9; // Boundary Neutral + static final byte ON = 10; // Other Neutral + static final byte WS = 11; // Whitespace + + private BidiUtil() { + } + + /// Returns the bidirectional character type of a single UTF-16 code unit. Uses coarse Unicode ranges + /// that cover the scripts an editor realistically handles (Latin, Arabic, Hebrew, Syriac, Thaana, + /// common digits, punctuation and whitespace). + static byte typeOf(char c) { + if (c == '\t' || c == ' ' || c == 0x00A0 || c == 0x2007 || c == 0x202F) { + return WS; + } + if (c == '\n' || c == '\r' || c == 0x0085 || c == 0x2028 || c == 0x2029) { + return WS; + } + // European digits + if (c >= '0' && c <= '9') { + return EN; + } + // Arabic-Indic and Extended Arabic-Indic digits + if ((c >= 0x0660 && c <= 0x0669) || (c >= 0x06F0 && c <= 0x06F9)) { + return AN; + } + if (c == '+' || c == '-') { + return ES; + } + if (c == '#' || c == '$' || c == '%' || c == 0x00A2 || c == 0x00A3 || c == 0x00A5 + || c == 0x00B0 || c == 0x00B1 || c == 0x066A) { + return ET; + } + if (c == ',' || c == '.' || c == ':' || c == '/' || c == 0x00A0) { + return CS; + } + // Combining marks + if ((c >= 0x0300 && c <= 0x036F) || (c >= 0x0483 && c <= 0x0489) + || (c >= 0x0591 && c <= 0x05BD) || (c >= 0x0610 && c <= 0x061A) + || (c >= 0x064B && c <= 0x065F) || c == 0x0670 + || (c >= 0x06D6 && c <= 0x06DC) || (c >= 0x06DF && c <= 0x06E4)) { + return NSM; + } + // Hebrew and Hebrew presentation forms (strong R) + if ((c >= 0x0590 && c <= 0x05FF) || (c >= 0xFB1D && c <= 0xFB4F)) { + return R; + } + // Arabic, Arabic Supplement/Extended, Syriac, Thaana, and Arabic presentation forms (strong AL) + if ((c >= 0x0600 && c <= 0x06FF) || (c >= 0x0700 && c <= 0x074F) + || (c >= 0x0750 && c <= 0x077F) || (c >= 0x0780 && c <= 0x07BF) + || (c >= 0x08A0 && c <= 0x08FF) + || (c >= 0xFB50 && c <= 0xFDFF) || (c >= 0xFE70 && c <= 0xFEFF)) { + return AL; + } + // Latin letters and the vast majority of the BMP letters an editor sees are strong L. + if ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z')) { + return L; + } + if (c >= 0x00C0 && c <= 0x024F) { + return L; + } + // CJK, Kana, Hangul and the like are strong L for bidi purposes. + if (c >= 0x2E80 && c <= 0xD7FF) { + return L; + } + if (c >= 0xF900 && c <= 0xFAFF) { + return L; + } + // Everything else (ASCII punctuation, symbols) is a neutral. + return ON; + } + + /// Returns true if the paragraph's automatically detected base direction is right-to-left, per rules + /// P2/P3: the direction of the first strong (L, R or AL) character, defaulting to left-to-right. + static boolean autoBaseRtl(String text) { + for (int i = 0; i < text.length(); i++) { + byte t = typeOf(text.charAt(i)); + if (t == L) { + return false; + } + if (t == R || t == AL) { + return true; + } + } + return false; + } + + /// Resolves the bidi embedding level of every character on a line. `baseRtl` is the paragraph base + /// direction (embedding level 1 when true, 0 when false). + /// + /// #### Parameters + /// + /// - `text`: the line text (a single paragraph, no line breaks) + /// + /// - `baseRtl`: true for a right-to-left base direction + /// + /// #### Returns + /// + /// a `byte[]` the same length as `text`, holding the resolved level of each character + static byte[] resolveLevels(String text, boolean baseRtl) { + int n = text.length(); + byte baseLevel = (byte) (baseRtl ? 1 : 0); + byte[] levels = new byte[n]; + if (n == 0) { + return levels; + } + byte[] types = new byte[n]; + for (int i = 0; i < n; i++) { + types[i] = typeOf(text.charAt(i)); + } + // W1: NSM takes the type of the previous character, or the base type (treated as ON) at the start. + for (int i = 0; i < n; i++) { + if (types[i] == NSM) { + types[i] = (i == 0) ? ON : types[i - 1]; + } + } + // W2: EN becomes AN if the previous strong type is AL. + byte prevStrong = baseRtl ? R : L; + for (int i = 0; i < n; i++) { + byte t = types[i]; + if (t == L || t == R || t == AL) { + prevStrong = t; + } else if (t == EN && prevStrong == AL) { + types[i] = AN; + } + } + // W3: AL becomes R. + for (int i = 0; i < n; i++) { + if (types[i] == AL) { + types[i] = R; + } + } + // W4: a single ES between two EN becomes EN; a single CS between two numbers of the same type + // becomes that type. + for (int i = 1; i < n - 1; i++) { + if (types[i] == ES && types[i - 1] == EN && types[i + 1] == EN) { + types[i] = EN; + } else if (types[i] == CS && types[i - 1] == types[i + 1] + && (types[i - 1] == EN || types[i - 1] == AN)) { + types[i] = types[i - 1]; + } + } + // W5: a sequence of ET adjacent to EN becomes EN. + for (int i = 0; i < n; i++) { + if (types[i] == ET) { + int start = i; + while (i < n && types[i] == ET) { + i++; + } + boolean en = (start > 0 && types[start - 1] == EN) || (i < n && types[i] == EN); + if (en) { + for (int j = start; j < i; j++) { + types[j] = EN; + } + } + i--; + } + } + // W6: remaining ES, ET, CS become ON. + for (int i = 0; i < n; i++) { + if (types[i] == ES || types[i] == ET || types[i] == CS) { + types[i] = ON; + } + } + // W7: EN becomes L if the previous strong type is L. + prevStrong = baseRtl ? R : L; + for (int i = 0; i < n; i++) { + byte t = types[i]; + if (t == L || t == R) { + prevStrong = t; + } else if (t == EN && prevStrong == L) { + types[i] = L; + } + } + // N1/N2: resolve neutrals. A neutral run between two strongs of the same direction takes that + // direction (numbers count as R); otherwise it takes the base direction. Whitespace and boundary + // neutrals are treated as neutrals here. + byte baseDir = baseRtl ? R : L; + for (int i = 0; i < n; i++) { + if (isNeutral(types[i])) { + int start = i; + while (i < n && isNeutral(types[i])) { + i++; + } + byte before = start == 0 ? baseDir : dirOf(types[start - 1]); + byte after = i >= n ? baseDir : dirOf(types[i]); + byte resolved = (before == after) ? before : baseDir; + for (int j = start; j < i; j++) { + types[j] = resolved; + } + i--; + } + } + // I1/I2: implicit levels. + for (int i = 0; i < n; i++) { + byte t = types[i]; + if (baseLevel % 2 == 0) { + // even (LTR) embedding level + if (t == R) { + levels[i] = (byte) (baseLevel + 1); + } else if (t == AN || t == EN) { + levels[i] = (byte) (baseLevel + 2); + } else { + levels[i] = baseLevel; + } + } else { + // odd (RTL) embedding level + if (t == L || t == EN || t == AN) { + levels[i] = (byte) (baseLevel + 1); + } else { + levels[i] = baseLevel; + } + } + } + return levels; + } + + private static boolean isNeutral(byte t) { + return t == ON || t == WS || t == BN; + } + + // Maps a resolved type to its directional class for neutral resolution (numbers behave as R). + private static byte dirOf(byte t) { + if (t == L) { + return L; + } + return R; + } + + /// Applies reordering rule L2 to produce the visual order of the characters. Returns an array + /// `visualToLogical` where element `v` is the logical index of the character drawn at visual position + /// `v` (left to right on screen). + static int[] reorderVisual(byte[] levels) { + int n = levels.length; + int[] order = new int[n]; + for (int i = 0; i < n; i++) { + order[i] = i; + } + if (n == 0) { + return order; + } + byte highest = 0; + byte lowestOdd = Byte.MAX_VALUE; + for (int i = 0; i < n; i++) { + byte lv = levels[i]; + if (lv > highest) { + highest = lv; + } + if ((lv % 2) == 1 && lv < lowestOdd) { + lowestOdd = lv; + } + } + if (lowestOdd == Byte.MAX_VALUE) { + // all even levels: already in logical == visual order + return order; + } + for (int level = highest; level >= lowestOdd; level--) { + int i = 0; + while (i < n) { + if (levels[order[i]] >= level) { + int start = i; + while (i < n && levels[order[i]] >= level) { + i++; + } + reverse(order, start, i - 1); + } else { + i++; + } + } + } + return order; + } + + private static void reverse(int[] a, int from, int to) { + while (from < to) { + int t = a[from]; + a[from] = a[to]; + a[to] = t; + from++; + to--; + } + } + + /// True if the line, laid out with the given base direction, is purely left-to-right (no reordering + /// needed). This lets the editor keep its fast LTR path for the common case. + static boolean isTrivialLtr(String text, boolean baseRtl) { + if (baseRtl) { + return text.length() == 0; + } + for (int i = 0; i < text.length(); i++) { + byte t = typeOf(text.charAt(i)); + if (t == R || t == AL || t == AN) { + return false; + } + } + return true; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java b/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java new file mode 100644 index 00000000000..9c7bc278e73 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java @@ -0,0 +1,179 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.io.JSONParser; +import com.codename1.ui.CodeCompletion; +import com.codename1.ui.CodeDiagnostic; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/// The pure code editor backend. It maps the code editor command / query vocabulary onto a `CodeView`, +/// parsing the diagnostics and completion payloads that arrive over the string command channel back into +/// `CodeDiagnostic` / `CodeCompletion` objects. +public class CodePureEditor extends PureEditor { + private CodeView codeView; + + /// Creates a code editor backend. + public CodePureEditor(EditorHost host, String editorType) { + super(host, editorType); + codeView = (CodeView) view(); + } + + @Override + protected EditorView createView(EditorHost host, boolean codeMode) { + return new CodeView(host); + } + + @Override + public void cmd(String name, String arg) { + if ("setLanguage".equals(name)) { + codeView.setLanguage(arg); + return; + } + if ("setTheme".equals(name)) { + codeView.setTheme(arg); + return; + } + if ("setLineNumbers".equals(name)) { + codeView.setShowLineNumbers("1".equals(arg)); + return; + } + if ("setTabSize".equals(name)) { + codeView.setTabSize(parseInt(arg, 4)); + return; + } + if ("setCompletionEnabled".equals(name)) { + codeView.setCompletionEnabled("1".equals(arg)); + return; + } + if ("setDiagnostics".equals(name)) { + codeView.setDiagnostics(parseDiagnostics(arg)); + return; + } + if ("showCompletions".equals(name)) { + handleShowCompletions(arg); + return; + } + super.cmd(name, arg); + } + + private void handleShowCompletions(String arg) { + if (arg == null) { + return; + } + int colon = arg.indexOf(':'); + if (colon < 0) { + return; + } + int reqId = parseInt(arg.substring(0, colon), -1); + List items = parseCompletions(arg.substring(colon + 1)); + codeView.showCompletions(reqId, items); + } + + private static List parseArray(String json) { + if (json == null || json.length() == 0) { + return new ArrayList(); + } + try { + Map root = JSONParser.parseJSON(json); + Object list = root.get("root"); + if (list instanceof List) { + return (List) list; + } + } catch (Throwable t) { + // malformed payload, treat as empty + } + return new ArrayList(); + } + + private List parseDiagnostics(String json) { + List out = new ArrayList(); + List arr = parseArray(json); + for (int i = 0; i < arr.size(); i++) { + Object o = arr.get(i); + if (!(o instanceof Map)) { + continue; + } + Map m = (Map) o; + int line = intVal(m.get("l"), 1); + int col = intVal(m.get("c"), 1); + int el = intVal(m.get("el"), line); + int ec = intVal(m.get("ec"), col + 1); + String sev = strVal(m.get("s"), CodeDiagnostic.ERROR); + String msg = strVal(m.get("m"), ""); + out.add(new CodeDiagnostic(line, col, el, ec, msg).setSeverity(sev)); + } + return out; + } + + private List parseCompletions(String json) { + List out = new ArrayList(); + List arr = parseArray(json); + for (int i = 0; i < arr.size(); i++) { + Object o = arr.get(i); + if (!(o instanceof Map)) { + continue; + } + Map m = (Map) o; + String disp = strVal(m.get("d"), ""); + String ins = strVal(m.get("i"), disp); + CodeCompletion cc = new CodeCompletion(disp, ins); + cc.setType(strVal(m.get("t"), null)); + cc.setDetail(strVal(m.get("x"), null)); + out.add(cc); + } + return out; + } + + private static int intVal(Object o, int def) { + if (o instanceof Number) { + return ((Number) o).intValue(); + } + if (o instanceof String) { + return parseInt((String) o, def); + } + return def; + } + + private static String strVal(Object o, String def) { + if (o instanceof String) { + return (String) o; + } + return def; + } + + private static int parseInt(String s, int def) { + if (s == null) { + return def; + } + try { + return Integer.parseInt(s.trim()); + } catch (NumberFormatException err) { + return def; + } + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/CodeView.java b/CodenameOne/src/com/codename1/ui/editor/CodeView.java new file mode 100644 index 00000000000..81d99e0bd63 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/CodeView.java @@ -0,0 +1,827 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.ui.CodeCompletion; +import com.codename1.ui.CodeDiagnostic; +import com.codename1.ui.Display; +import com.codename1.ui.Font; +import com.codename1.ui.Graphics; +import com.codename1.ui.TextInputConfig; + +import java.util.ArrayList; +import java.util.List; + +/// The pure code editor surface. It adds syntax highlighting (via an incremental `Tokenizer`), a line +/// number gutter, bracket / quote auto close, tab expansion, auto indent, diagnostic squiggles and a +/// code completion popup on top of the shared `EditorView` editing engine. +public class CodeView extends EditorView { + private String languageId = "text"; + private LanguageDef def = LanguageDef.forName("text"); + private Tokenizer tokenizer = new Tokenizer(def); + private ThemePalette palette = ThemePalette.LIGHT; + private boolean showLineNumbers = true; + private int tabSize = 4; + + private int[] endStates; + private int validUpTo; + + private List diagnostics; + + private boolean completionEnabled; + private List completionAll; + private List completionFiltered; + private int completionIndex; + private boolean completionVisible; + private int completionAnchor; + private int completionReqSeq; + private int completionPending = -1; + + /// Creates a code editor view. + public CodeView(EditorHost host) { + super(host, true); + applyTheme(); + } + + // ---- configuration ---- + + /// Sets the highlighting language. + public void setLanguage(String language) { + this.languageId = language == null ? "text" : language; + this.def = LanguageDef.forName(this.languageId); + this.tokenizer = new Tokenizer(def); + validUpTo = 0; + repaint(); + } + + /// Returns the highlighting language id. + public String getLanguage() { + return languageId; + } + + /// Sets the color theme (`"light"` or `"dark"`). + public void setTheme(String theme) { + palette = ThemePalette.forName(theme); + applyTheme(); + repaint(); + } + + private void applyTheme() { + setBackgroundColor(palette.getBackground()); + setTextColor(palette.getForeground()); + setSelectionColor(palette.getSelection()); + } + + /// Shows or hides the line number gutter. + public void setShowLineNumbers(boolean show) { + this.showLineNumbers = show; + repaint(); + } + + /// Sets the number of spaces used for a tab / indentation step. + public void setTabSize(int tabSize) { + this.tabSize = Math.max(1, tabSize); + } + + /// Sets the diagnostics to render. + public void setDiagnostics(List diagnostics) { + this.diagnostics = diagnostics; + repaint(); + } + + /// Enables or disables the completion popup. + public void setCompletionEnabled(boolean enabled) { + this.completionEnabled = enabled; + if (!enabled) { + hideCompletion(); + } + } + + // ---- gutter ---- + + @Override + protected int getContentLeftInset() { + return getStyle().getPaddingLeftNoRTL() + gutterWidth(); + } + + private int gutterWidth() { + if (!showLineNumbers) { + return 0; + } + Font f = getEditorFont(); + int digits = String.valueOf(Math.max(1, getDocument().getLineCount())).length(); + return f.charWidth('0') * digits + f.charWidth('0') * 2; + } + + @Override + protected void paintBeforeContent(Graphics g, int originX, int originY, int firstLine, int lastLine, int lineHeight, Font f) { + if (!showLineNumbers) { + return; + } + g.setColor(palette.getGutterBackground()); + g.fillRect(getX(), getY(), originX - getX(), getHeight()); + int pad = f.charWidth('0'); + for (int ln = firstLine; ln <= lastLine; ln++) { + String num = String.valueOf(ln + 1); + int nx = originX - pad - f.stringWidth(num); + int ny = originY + ln * lineHeight; + int marker = gutterMarkerColor(ln); + if (marker != -1) { + g.setColor(marker); + int dia = Math.max(6, lineHeight / 2); + g.fillArc(getX() + pad / 2, ny + (lineHeight - dia) / 2, dia, dia, 0, 360); + } + g.setColor(palette.getGutterForeground()); + g.drawString(num, nx, ny); + } + } + + private int gutterMarkerColor(int line) { + if (diagnostics == null) { + return -1; + } + int color = -1; + int rank = -1; + for (int i = 0; i < diagnostics.size(); i++) { + CodeDiagnostic d = diagnostics.get(i); + if (d == null) { + continue; + } + if (line >= d.getLine() - 1 && line <= d.getEndLine() - 1) { + int r = severityRank(d.getSeverity()); + if (r > rank) { + rank = r; + color = severityColor(d.getSeverity()); + } + } + } + return color; + } + + // ---- syntax coloring ---- + + @Override + protected void paintLine(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { + if (text.length() == 0) { + return; + } + // Right-to-left / mixed lines need the bidi run renderer (per-token coloring falls back to the + // default foreground on those lines; code keywords are ASCII so this only affects RTL string and + // comment content). + if (!BidiUtil.isTrivialLtr(text, isRTL())) { + super.paintLine(g, line, text, x, y, lineHeight, f); + return; + } + if (def.isPlain()) { + g.setColor(getTextColor()); + g.drawString(text, x, y); + return; + } + ensureStates(line + 1); + int startState = line == 0 ? 0 : endStates[line - 1]; + Tokenizer.TokenLine tl = tokenizer.tokenize(text, startState); + int pos = 0; + int defColor = getTextColor(); + for (int i = 0; i < tl.tokens.size(); i++) { + Tokenizer.Token t = tl.tokens.get(i); + if (t.start > pos) { + drawSegment(g, f, text, pos, t.start, x, y, defColor); + } + drawSegment(g, f, text, t.start, t.start + t.length, x, y, palette.colorForKind(t.kind)); + pos = t.start + t.length; + } + if (pos < text.length()) { + drawSegment(g, f, text, pos, text.length(), x, y, defColor); + } + } + + private void drawSegment(Graphics g, Font f, String text, int a, int b, int x, int y, int color) { + if (b <= a) { + return; + } + int sx = x + f.substringWidth(text, 0, a); + g.setColor(color); + g.drawString(text.substring(a, b), sx, y); + } + + private void ensureStates(int upto) { + int lc = getDocument().getLineCount(); + if (upto > lc) { + upto = lc; + } + if (endStates == null || endStates.length < lc) { + int[] ns = new int[Math.max(lc, 16)]; + if (endStates != null) { + System.arraycopy(endStates, 0, ns, 0, Math.min(endStates.length, ns.length)); + } + endStates = ns; + } + if (validUpTo > lc) { + validUpTo = lc; + } + for (int i = validUpTo; i < upto; i++) { + int st = i == 0 ? 0 : endStates[i - 1]; + endStates[i] = tokenizer.tokenize(getDocument().getLineText(i), st).endState; + } + if (upto > validUpTo) { + validUpTo = upto; + } + } + + @Override + protected void documentEdited(int fromOffset) { + int line = getDocument().lineOfOffset(fromOffset); + if (line < validUpTo) { + validUpTo = line; + } + if (completionVisible) { + refilterCompletion(); + } + } + + // ---- diagnostics ---- + + @Override + protected void paintLineDecorations(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { + if (diagnostics == null) { + return; + } + for (int i = 0; i < diagnostics.size(); i++) { + CodeDiagnostic d = diagnostics.get(i); + if (d == null || line < d.getLine() - 1 || line > d.getEndLine() - 1) { + continue; + } + int cs = line == d.getLine() - 1 ? d.getColumn() - 1 : 0; + int ce = line == d.getEndLine() - 1 ? d.getEndColumn() - 1 : text.length(); + cs = clampI(cs, 0, text.length()); + ce = clampI(ce, 0, text.length()); + if (ce <= cs) { + ce = Math.min(text.length(), cs + 1); + } + int x1 = x + f.substringWidth(text, 0, cs); + int x2 = x + f.substringWidth(text, 0, ce); + if (x2 <= x1) { + x2 = x1 + f.charWidth('m'); + } + drawSquiggle(g, x1, x2, y + lineHeight - 2, severityColor(d.getSeverity())); + } + } + + private void drawSquiggle(Graphics g, int x1, int x2, int y, int color) { + g.setColor(color); + int amp = 2; + boolean up = true; + int x = x1; + while (x < x2) { + int nx = Math.min(x2, x + 3); + g.drawLine(x, up ? y : y - amp, nx, up ? y - amp : y); + up = !up; + x = nx; + } + } + + private int severityRank(String s) { + if (CodeDiagnostic.ERROR.equals(s)) { + return 3; + } + if (CodeDiagnostic.WARNING.equals(s)) { + return 2; + } + return 1; + } + + private int severityColor(String s) { + if (CodeDiagnostic.ERROR.equals(s)) { + return palette.getErrorColor(); + } + if (CodeDiagnostic.WARNING.equals(s)) { + return palette.getWarningColor(); + } + return palette.getInfoColor(); + } + + // ---- typing behavior: auto close, tab, auto indent ---- + + @Override + protected boolean handleTypedText(String text) { + if (!isEditableState()) { + return false; + } + if (completionVisible && ("\n".equals(text) || "\t".equals(text))) { + acceptCompletion(); + return true; + } + if ("\n".equals(text)) { + autoIndentNewline(); + return true; + } + if ("\t".equals(text)) { + insertSpaces(tabSize); + return true; + } + if (text.length() == 1) { + char c = text.charAt(0); + if (c == '(' || c == '[' || c == '{') { + insertPair(c, closeFor(c)); + onTypedChar(c); + return true; + } + if (c == ')' || c == ']' || c == '}') { + if (skipOver(c)) { + return true; + } + replaceRange(getSelectionStart(), getSelectionEnd(), text, true); + onTypedChar(c); + return true; + } + if (c == '"' || c == '\'' || c == '`') { + if (skipOver(c)) { + return true; + } + insertPair(c, c); + onTypedChar(c); + return true; + } + replaceRange(getSelectionStart(), getSelectionEnd(), text, true); + onTypedChar(c); + return true; + } + return false; + } + + private static char closeFor(char open) { + if (open == '(') { + return ')'; + } + if (open == '[') { + return ']'; + } + return '}'; + } + + private void insertPair(char open, char close) { + int s = getSelectionStart(); + int e = getSelectionEnd(); + String inner = getDocument().substring(s, e); + replaceRange(s, e, open + inner + close, true); + moveCaret(s + 1 + inner.length(), false); + } + + private boolean skipOver(char c) { + int caret = getCaretOffset(); + if (getSelectionStart() == getSelectionEnd() && caret < getDocument().length() + && getDocument().charAt(caret) == c) { + moveCaret(caret + 1, false); + return true; + } + return false; + } + + private void insertSpaces(int n) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < n; i++) { + sb.append(' '); + } + replaceRange(getSelectionStart(), getSelectionEnd(), sb.toString(), true); + } + + private void autoIndentNewline() { + int caret = getCaretOffset(); + int cl = getDocument().lineOfOffset(caret); + int lineStart = getDocument().getLineStart(cl); + int col = caret - lineStart; + String line = getDocument().getLineText(cl); + StringBuilder indent = new StringBuilder(); + for (int i = 0; i < col && i < line.length(); i++) { + char ch = line.charAt(i); + if (ch == ' ' || ch == '\t') { + indent.append(ch); + } else { + break; + } + } + boolean extra = false; + for (int i = col - 1; i >= 0 && i < line.length(); i--) { + char ch = line.charAt(i); + if (ch == ' ' || ch == '\t') { + continue; + } + extra = ch == '{' || ch == ':' || ch == '(' || ch == '['; + break; + } + StringBuilder ins = new StringBuilder("\n").append(indent); + if (extra) { + for (int i = 0; i < tabSize; i++) { + ins.append(' '); + } + } + replaceRange(getSelectionStart(), getSelectionEnd(), ins.toString(), true); + } + + // ---- completion ---- + + private void onTypedChar(char c) { + if (!completionEnabled) { + return; + } + if (isIdentPart(c)) { + requestCompletion(); + } else { + hideCompletion(); + } + } + + private void requestCompletion() { + completionReqSeq++; + completionPending = completionReqSeq; + if (host() != null) { + host().fireEditorEvent("complete", completionReqSeq + ":" + getCaretOffset()); + } + } + + /// Called by the backend with the provider's proposals for a request. + /// + /// #### Parameters + /// + /// - `reqId`: the request sequence id + /// + /// - `items`: the proposals + public void showCompletions(int reqId, List items) { + if (reqId != completionPending) { + return; + } + completionAll = items; + completionAnchor = identifierStart(getCaretOffset()); + completionIndex = 0; + refilterCompletion(); + } + + private int identifierStart(int off) { + int i = off; + while (i > 0 && isIdentPart(getDocument().charAt(i - 1))) { + i--; + } + return i; + } + + private void refilterCompletion() { + if (completionAll == null) { + hideCompletion(); + return; + } + int caret = getCaretOffset(); + if (caret < completionAnchor) { + hideCompletion(); + return; + } + String prefix = getDocument().substring(completionAnchor, caret).toLowerCase(); + List filtered = new ArrayList(); + for (int i = 0; i < completionAll.size(); i++) { + CodeCompletion cc = completionAll.get(i); + if (cc == null) { + continue; + } + String disp = cc.getDisplayText() != null ? cc.getDisplayText() : cc.getInsertText(); + if (disp != null && disp.toLowerCase().startsWith(prefix)) { + filtered.add(cc); + } + } + if (filtered.isEmpty()) { + hideCompletion(); + return; + } + completionFiltered = filtered; + if (completionIndex >= filtered.size()) { + completionIndex = filtered.size() - 1; + } + if (completionIndex < 0) { + completionIndex = 0; + } + completionVisible = true; + repaint(); + } + + private void hideCompletion() { + completionVisible = false; + completionAll = null; + completionFiltered = null; + completionPending = -1; + repaint(); + } + + private void acceptCompletion() { + if (!completionVisible || completionFiltered == null || completionFiltered.isEmpty()) { + return; + } + CodeCompletion cc = completionFiltered.get(clampI(completionIndex, 0, completionFiltered.size() - 1)); + String ins = cc.getInsertText() != null ? cc.getInsertText() : cc.getDisplayText(); + replaceRange(completionAnchor, getCaretOffset(), ins == null ? "" : ins, true); + hideCompletion(); + } + + // ---- popup painting ---- + + private String hoverTooltip; + private int hoverLocalX; + private int hoverLocalY; + + @Override + public void pointerHover(int[] x, int[] y) { + if (x != null && x.length > 0 && diagnostics != null) { + int off = offsetAtPoint(x[0], y[0]); + int localX = x[0] - getAbsoluteX(); + String msg = diagnosticMessageAt(off, localX); + if (msg != null) { + hoverTooltip = msg; + hoverLocalX = localX; + hoverLocalY = y[0] - getAbsoluteY(); + repaint(); + return; + } + } + if (hoverTooltip != null) { + hoverTooltip = null; + repaint(); + } + } + + private String diagnosticMessageAt(int off, int localX) { + int line = getDocument().lineOfOffset(off); + boolean inGutter = localX < getContentLeftInset(); + for (int i = 0; i < diagnostics.size(); i++) { + CodeDiagnostic d = diagnostics.get(i); + if (d == null) { + continue; + } + if (line < d.getLine() - 1 || line > d.getEndLine() - 1) { + continue; + } + if (inGutter) { + return d.getMessage(); + } + int sOff = lineColToOffset(d.getLine(), d.getColumn()); + int eOff = lineColToOffset(d.getEndLine(), d.getEndColumn()); + if (off >= sOff && off < eOff) { + return d.getMessage(); + } + } + return null; + } + + private int lineColToOffset(int line1, int col1) { + int line = clampI(line1 - 1, 0, getDocument().getLineCount() - 1); + int base = getDocument().getLineStart(line); + int max = getDocument().getLineEnd(line); + return clampI(base + col1 - 1, base, max); + } + + @Override + public void paint(Graphics g) { + super.paint(g); + if (completionVisible && completionFiltered != null && !completionFiltered.isEmpty()) { + paintCompletion(g); + } + if (hoverTooltip != null) { + paintTooltip(g); + } + } + + private void paintTooltip(Graphics g) { + Font f = getEditorFont(); + int pad = f.charWidth('m'); + int tw = f.stringWidth(hoverTooltip) + pad * 2; + int th = f.getHeight() + pad; + int tx = getX() + hoverLocalX; + int ty = getY() + hoverLocalY + getLineHeight() / 2; + if (tx + tw > getX() + getWidth()) { + tx = getX() + getWidth() - tw; + } + if (tx < getX()) { + tx = getX(); + } + if (ty + th > getY() + getHeight()) { + ty = getY() + hoverLocalY - th; + } + g.setColor(0x111111); + g.fillRect(tx, ty, tw, th); + g.setColor(0x454545); + g.drawRect(tx, ty, tw - 1, th - 1); + g.setColor(0xf0f0f0); + g.setFont(f); + g.drawString(hoverTooltip, tx + pad, ty + pad / 2); + } + + private void paintCompletion(Graphics g) { + Font f = getEditorFont(); + int lh = getLineHeight(); + int caret = getCaretOffset(); + int cl = getDocument().lineOfOffset(caret); + int col = caret - getDocument().getLineStart(cl); + String line = getDocument().getLineText(cl); + if (col > line.length()) { + col = line.length(); + } + int px = getX() + getContentLeftInset() + f.substringWidth(line, 0, col) - getHorizontalScroll(); + int top = getY() + lineTop(cl); + int visible = Math.min(completionFiltered.size(), 8); + int itemH = lh; + int boxW = 0; + for (int i = 0; i < completionFiltered.size(); i++) { + CodeCompletion cc = completionFiltered.get(i); + String d = cc.getDisplayText() != null ? cc.getDisplayText() : cc.getInsertText(); + if (d != null) { + boxW = Math.max(boxW, f.stringWidth(d)); + } + } + boxW += f.charWidth('m') * 2; + int boxH = visible * itemH + 2; + int boxY = top + lh; + if (boxY + boxH > getY() + getHeight()) { + boxY = top - boxH; + } + boolean dark = palette == ThemePalette.DARK; + int popupBg = dark ? 0x252526 : 0xffffff; + int border = dark ? 0x454545 : 0xc0c0c0; + g.setColor(popupBg); + g.fillRect(px, boxY, boxW, boxH); + g.setColor(border); + g.drawRect(px, boxY, boxW - 1, boxH - 1); + int start = 0; + if (completionIndex >= visible) { + start = completionIndex - visible + 1; + } + for (int i = 0; i < visible; i++) { + int idx = start + i; + if (idx >= completionFiltered.size()) { + break; + } + CodeCompletion cc = completionFiltered.get(idx); + int iy = boxY + 1 + i * itemH; + if (idx == completionIndex) { + g.setColor(palette.getSelection()); + g.fillRect(px + 1, iy, boxW - 2, itemH); + } + String d = cc.getDisplayText() != null ? cc.getDisplayText() : cc.getInsertText(); + g.setColor(palette.getForeground()); + g.drawString(d == null ? "" : d, px + f.charWidth('m'), iy); + } + // remember the popup bounds (component local) so touch taps can hit an item + popupLocalX = px - getX(); + popupLocalY = boxY - getY(); + popupW = boxW; + popupH = boxH; + popupItemH = itemH; + popupStart = start; + } + + private int popupLocalX; + private int popupLocalY; + private int popupW; + private int popupH; + private int popupItemH = 1; + private int popupStart; + + @Override + public void pointerPressed(int x, int y) { + int lx = x - getAbsoluteX(); + int ly = y - getAbsoluteY(); + // tap on the completion popup accepts the tapped proposal (touch has no arrow-key nav) + if (completionVisible && completionFiltered != null && !completionFiltered.isEmpty() + && popupItemH > 0 && lx >= popupLocalX && lx <= popupLocalX + popupW + && ly >= popupLocalY && ly <= popupLocalY + popupH) { + int idx = popupStart + (ly - popupLocalY) / popupItemH; + if (idx >= 0 && idx < completionFiltered.size()) { + completionIndex = idx; + acceptCompletion(); + } + return; + } + // tap on a squiggle / gutter icon shows its diagnostic (no hover on touch devices) + if (diagnostics != null) { + int off = offsetAtPoint(x, y); + String msg = diagnosticMessageAt(off, lx); + if (msg != null) { + hoverTooltip = msg; + hoverLocalX = lx; + hoverLocalY = ly; + repaint(); + } else if (hoverTooltip != null) { + hoverTooltip = null; + repaint(); + } + } + super.pointerPressed(x, y); + } + + // ---- key routing for completion ---- + + @Override + public void keyPressed(int keyCode) { + if (completionVisible && navigateCompletion(Display.getInstance().getGameAction(keyCode))) { + return; + } + super.keyPressed(keyCode); + } + + @Override + public void keyRepeated(int keyCode) { + if (completionVisible && navigateCompletion(Display.getInstance().getGameAction(keyCode))) { + return; + } + super.keyRepeated(keyCode); + } + + @Override + public void keyReleased(int keyCode) { + if (completionVisible) { + if (keyCode == 27) { + hideCompletion(); + return; + } + if (keyCode == 10 || keyCode == 13 || keyCode == 9) { + acceptCompletion(); + return; + } + } + super.keyReleased(keyCode); + } + + private boolean navigateCompletion(int action) { + if (action == Display.GAME_UP) { + completionIndex = Math.max(0, completionIndex - 1); + repaint(); + return true; + } + if (action == Display.GAME_DOWN) { + completionIndex = Math.min(completionFiltered.size() - 1, completionIndex + 1); + repaint(); + return true; + } + return false; + } + + @Override + public void onKeyCommand(int command, int modifiers) { + if (completionVisible) { + if (command == KEY_UP) { + completionIndex = Math.max(0, completionIndex - 1); + repaint(); + return; + } + if (command == KEY_DOWN) { + completionIndex = Math.min(completionFiltered.size() - 1, completionIndex + 1); + repaint(); + return; + } + if (command == KEY_ESCAPE) { + hideCompletion(); + return; + } + } + super.onKeyCommand(command, modifiers); + } + + @Override + public void onEditorAction(int action) { + if (completionVisible && action == TextInputConfig.ACTION_DEFAULT) { + acceptCompletion(); + return; + } + super.onEditorAction(action); + } + + private static boolean isIdentPart(char c) { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_' || c == '$'; + } + + private static int clampI(int v, int lo, int hi) { + if (v < lo) { + return lo; + } + if (v > hi) { + return hi; + } + return v; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java b/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java new file mode 100644 index 00000000000..58c632bb75d --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java @@ -0,0 +1,257 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +/// The plain text backing store shared by the pure Codename One editors. The document keeps the full +/// text in a single buffer addressed by a linear UTF-16 offset space and derives a cached line index +/// (the start offset of every logical line) on demand for rendering and hit testing. +/// +/// A single buffer keeps offset arithmetic trivial (offsets are direct buffer indices) which is exactly +/// what the caret, selection, undo stack and the platform text input source all operate on. Line +/// oriented feature layers (syntax highlighting, the gutter) sit on top of the line index. +public class EditorDocument { + private final StringBuilder buf = new StringBuilder(); + private String cachedText; + private int[] lineStarts = new int[]{0}; + private int lineCount = 1; + private boolean linesDirty = true; + + // The whole text as a String, cached between edits. Reading substrings from a String avoids + // StringBuilder.substring which the ParparVM (iOS) minimal runtime does not implement. + private String text() { + if (cachedText == null) { + cachedText = buf.toString(); + } + return cachedText; + } + + /// Creates an empty document. + public EditorDocument() { + } + + /// Creates a document initialized with the supplied text. + /// + /// #### Parameters + /// + /// - `text`: the initial text, or null for an empty document + public EditorDocument(String text) { + if (text != null) { + buf.append(normalize(text)); + } + linesDirty = true; + cachedText = null; + } + + private static String normalize(String text) { + // collapse CRLF / CR to LF so the linear offset space matches what the platform delivers + if (text.indexOf('\r') < 0) { + return text; + } + StringBuilder sb = new StringBuilder(text.length()); + for (int i = 0; i < text.length(); i++) { + char c = text.charAt(i); + if (c == '\r') { + if (i + 1 < text.length() && text.charAt(i + 1) == '\n') { + continue; + } + sb.append('\n'); + } else { + sb.append(c); + } + } + return sb.toString(); + } + + /// Returns the total number of UTF-16 characters in the document. + public int length() { + return buf.length(); + } + + /// Returns the full document text. + public String getText() { + return text(); + } + + /// Returns the character at the given offset. + /// + /// #### Parameters + /// + /// - `offset`: a valid offset in `[0, length())` + public char charAt(int offset) { + return buf.charAt(offset); + } + + /// Returns the substring in `[start, end)`. + public String substring(int start, int end) { + return text().substring(start, end); + } + + /// Replaces the entire document content. + /// + /// #### Parameters + /// + /// - `text`: the new text, or null to clear the document + public void setText(String text) { + buf.setLength(0); + if (text != null) { + buf.append(normalize(text)); + } + linesDirty = true; + cachedText = null; + } + + /// Inserts text at the given offset. + /// + /// #### Parameters + /// + /// - `offset`: the insertion offset in `[0, length()]` + /// + /// - `text`: the text to insert + public void insert(int offset, String text) { + if (text == null || text.length() == 0) { + return; + } + buf.insert(offset, normalize(text)); + linesDirty = true; + cachedText = null; + } + + /// Deletes the range `[start, end)`. + /// + /// #### Parameters + /// + /// - `start`: inclusive start offset + /// + /// - `end`: exclusive end offset + public void delete(int start, int end) { + if (start >= end) { + return; + } + buf.delete(start, end); + linesDirty = true; + cachedText = null; + } + + /// Clamps an arbitrary offset into the valid range `[0, length()]`. + public int clamp(int offset) { + if (offset < 0) { + return 0; + } + if (offset > buf.length()) { + return buf.length(); + } + return offset; + } + + private void ensureLines() { + if (!linesDirty) { + return; + } + int count = 1; + int len = buf.length(); + for (int i = 0; i < len; i++) { + if (buf.charAt(i) == '\n') { + count++; + } + } + int[] starts = new int[count]; + starts[0] = 0; + int idx = 1; + for (int i = 0; i < len; i++) { + if (buf.charAt(i) == '\n') { + starts[idx++] = i + 1; + } + } + lineStarts = starts; + lineCount = count; + linesDirty = false; + } + + /// Returns the number of logical lines (always at least one). + public int getLineCount() { + ensureLines(); + return lineCount; + } + + /// Returns the start offset of the given line. + /// + /// #### Parameters + /// + /// - `line`: a zero based line index in `[0, getLineCount())` + public int getLineStart(int line) { + ensureLines(); + return lineStarts[line]; + } + + /// Returns the end offset (exclusive, not counting the trailing newline) of the given line. + /// + /// #### Parameters + /// + /// - `line`: a zero based line index in `[0, getLineCount())` + public int getLineEnd(int line) { + ensureLines(); + if (line + 1 < lineCount) { + return lineStarts[line + 1] - 1; + } + return buf.length(); + } + + /// Returns the text of the given line without its trailing newline. + /// + /// #### Parameters + /// + /// - `line`: a zero based line index in `[0, getLineCount())` + public String getLineText(int line) { + return text().substring(getLineStart(line), getLineEnd(line)); + } + + /// Returns the zero based line index containing the given offset. + /// + /// #### Parameters + /// + /// - `offset`: an offset in `[0, length()]` + public int lineOfOffset(int offset) { + ensureLines(); + int lo = 0; + int hi = lineCount - 1; + while (lo < hi) { + int mid = (lo + hi + 1) >>> 1; + if (lineStarts[mid] <= offset) { + lo = mid; + } else { + hi = mid - 1; + } + } + return lo; + } + + /// Returns the column (offset within its line) for the given absolute offset. + /// + /// #### Parameters + /// + /// - `offset`: an offset in `[0, length()]` + public int columnOfOffset(int offset) { + return offset - getLineStart(lineOfOffset(offset)); + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorHost.java b/CodenameOne/src/com/codename1/ui/editor/EditorHost.java new file mode 100644 index 00000000000..18705d96282 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/EditorHost.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.ui.TextInputClient; +import com.codename1.ui.TextInputConfig; +import com.codename1.ui.TextInputState; + +/// The bridge a pure editor view uses to reach the owning editor component and, through it, the platform +/// text input source. The owning `com.codename1.ui.AbstractEditorComponent` implements this so the low +/// level implementation access (which is package private to `com.codename1.ui`) stays out of the editor +/// engine package. +public interface EditorHost { + /// True when the platform can bind a low level text input client (see + /// `com.codename1.impl.CodenameOneImplementation#isTextInputSupported`). + boolean isTextInputSupported(); + + /// Binds the client to the platform text input source and returns an opaque handle. + Object startTextInput(TextInputClient client, TextInputConfig config); + + /// Pushes the client's editing state down to the bound input source. + void updateTextInputState(Object handle, TextInputState state); + + /// Unbinds a previously bound text input client. + void stopTextInput(Object handle); + + /// Notifies the owning editor that the document content changed so it can fire its change listeners. + void editorChanged(); + + /// Delivers a semantic editor event (e.g. a code completion request) back to the owning editor. + void fireEditorEvent(String type, String value); +} diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorView.java b/CodenameOne/src/com/codename1/ui/editor/EditorView.java new file mode 100644 index 00000000000..fd3ee2d69f9 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/EditorView.java @@ -0,0 +1,1876 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.ui.Component; +import com.codename1.ui.Display; +import com.codename1.ui.Font; +import com.codename1.ui.Graphics; +import com.codename1.ui.TextInputClient; +import com.codename1.ui.TextInputConfig; +import com.codename1.ui.TextInputState; +import com.codename1.ui.events.ActionEvent; +import com.codename1.ui.events.ActionListener; +import com.codename1.ui.events.WheelEvent; +import com.codename1.ui.geom.Dimension; +import com.codename1.ui.plaf.Style; + +/// The pure Codename One text editing surface. It renders a plain text `EditorDocument` with its own +/// `Graphics` code, owns the caret and selection, handles pointer and keyboard interaction, and captures +/// text through the low level `TextInputClient` contract (soft keyboard / IME) when the platform +/// supports it, falling back to raw `keyPressed` capture on physical keyboard platforms. +/// +/// This class provides the shared editing behavior. Feature layers (syntax highlighting, the gutter, +/// styled rich text) subclass it and override `#paintContent(Graphics, int, int, int, int)` and the +/// document/measurement hooks. +public class EditorView extends Component implements TextInputClient { + private final EditorHost host; + private final boolean codeMode; + private EditorDocument doc = new EditorDocument(); + private final UndoManager undo = new UndoManager(); + + private int caret; + private int anchor = -1; + private int composingStart = -1; + private int composingEnd = -1; + private boolean editable = true; + + private int scrollY; + private int scrollX; + private boolean caretOn = true; + private long lastBlink; + private boolean animRegistered; + + private Object inputHandle; + private boolean inputActive; + + private int bgColor = 0xffffff; + private int fgColor = 0x111111; + private int selColor = 0xb3d4fc; + + /// Creates an editor view. + /// + /// #### Parameters + /// + /// - `host`: the bridge to the owning editor component / platform input source + /// + /// - `codeMode`: true for a code editor (autocorrect and autocapitalize disabled) + public EditorView(EditorHost host, boolean codeMode) { + this.host = host; + this.codeMode = codeMode; + setFocusable(true); + setGrabsPointerEvents(true); + // own the arrow / enter / tab keys so the form's focus traversal does not steal them + setHandlesInput(true); + // handle the mouse wheel / trackpad (shift = horizontal) ourselves so scrolling works without a + // scrollable ancestor; consuming the event stops the default scroll gesture from selecting text + addMouseWheelListener(new ActionListener() { + public void actionPerformed(ActionEvent evt) { + if (evt instanceof WheelEvent) { + WheelEvent we = (WheelEvent) evt; + scrollByPixels(we.getDeltaX(), we.getDeltaY()); + evt.consume(); + } + } + }); + } + + /// Scrolls the content by the given pixel deltas (as delivered by the mouse wheel gesture). + protected void scrollByPixels(int deltaX, int deltaY) { + scrollX = clampInt(scrollX - deltaX, 0, maxScrollX()); + scrollY = clampInt(scrollY - deltaY, 0, maxScroll()); + repaint(); + } + + /// Returns the backing document. + public EditorDocument getDocument() { + return doc; + } + + /// Returns the undo manager. + public UndoManager getUndoManager() { + return undo; + } + + /// Returns the current caret offset. + public int getCaretOffset() { + return caret; + } + + /// Sets the surface background color. + public void setBackgroundColor(int color) { + this.bgColor = color; + } + + /// Sets the default text color. + public void setTextColor(int color) { + this.fgColor = color; + } + + /// Sets the selection highlight color. + public void setSelectionColor(int color) { + this.selColor = color; + } + + /// Returns the default text color used by the base renderer. + protected int getTextColor() { + return fgColor; + } + + /// Replaces the whole document text and resets the caret and history. + public void setText(String text) { + doc.setText(text); + caret = 0; + anchor = -1; + composingStart = -1; + composingEnd = -1; + undo.clear(); + scrollY = 0; + scrollX = 0; + documentEdited(0); + documentReset(); + onDocumentChanged(); + } + + /// Returns the whole document text. + public String getText() { + return doc.getText(); + } + + /// Enables or disables editing. + public void setEditableState(boolean editable) { + this.editable = editable; + } + + /// True when editing is enabled. + public boolean isEditableState() { + return editable; + } + + // ---- font / geometry ---- + + private Font cachedBase; + private Font cachedFrom; + private int fontSizeOverridePx; + + /// Returns the base editor font size in pixels. + protected int baseFontSizePixels() { + return getEditorFont().getHeight(); + } + + /// Optionally overrides the editor font size in device independent pixels. Pass 0 to use the font + /// supplied by the component's style (the default, which is correctly sized for the current skin). + public void setFontSizeDips(int dips) { + this.fontSizeOverridePx = dips <= 0 ? 0 : Display.getInstance().convertToPixels((float) dips); + cachedBase = null; + invalidateLayout(); + repaint(); + } + + /// Returns the font used to render text. By default this is the component's style font (managed and + /// correctly sized by Codename One, and refreshed when the skin / theme reloads, which avoids stale + /// native font handles rendering as squares). Subclasses may override to supply styled variants. + protected Font getEditorFont() { + Font sf = getStyle().getFont(); + if (sf == null) { + sf = Font.getDefaultFont(); + } + if (cachedBase != null && cachedFrom == sf) { + return cachedBase; + } + cachedFrom = sf; + Font result = sf; + if (fontSizeOverridePx > 0 && sf.isTTFNativeFont()) { + try { + result = sf.derive(fontSizeOverridePx, Font.STYLE_PLAIN); + } catch (Throwable t) { + result = sf; + } + } + cachedBase = result; + return result; + } + + /// Returns the default height of a single visual line in pixels. + protected int getLineHeight() { + int h = getEditorFont().getHeight(); + return h + Math.max(2, h / 8); + } + + /// Returns the height of the given line. The default is uniform (`#getLineHeight()`); the rich text + /// editor overrides this for headings and font size runs. + protected int lineHeightAt(int line) { + return getLineHeight(); + } + + /// True when every line has the same height (the common case, and the fast path). Feature layers with + /// variable line heights override this to return false. + protected boolean uniformLineHeight() { + return true; + } + + private int[] cumTops; + private boolean layoutDirty = true; + + /// Invalidates the cached line layout (used by feature layers when line heights change). + protected void invalidateLayout() { + layoutDirty = true; + cachedMaxLineWidth = -1; + } + + private void ensureCum() { + int lc = doc.getLineCount(); + if (!layoutDirty && cumTops != null && cumTops.length == lc + 1) { + return; + } + cumTops = new int[lc + 1]; + int y = 0; + for (int i = 0; i < lc; i++) { + cumTops[i] = y; + y += lineHeightAt(i); + } + cumTops[lc] = y; + layoutDirty = false; + } + + /// Returns the top y pixel of the given line relative to the content top (before scroll). + protected int lineTopContent(int line) { + if (uniformLineHeight()) { + return line * getLineHeight(); + } + ensureCum(); + int l = line < 0 ? 0 : (line > doc.getLineCount() ? doc.getLineCount() : line); + return cumTops[l]; + } + + /// Returns the total content height in pixels. + protected int contentTotalHeight() { + if (uniformLineHeight()) { + return doc.getLineCount() * getLineHeight(); + } + ensureCum(); + return cumTops[doc.getLineCount()]; + } + + /// Returns the line index at the given content relative y pixel. + protected int lineAtContentY(int y) { + int lc = doc.getLineCount(); + if (uniformLineHeight()) { + return clampInt(y / getLineHeight(), 0, lc - 1); + } + ensureCum(); + int lo = 0; + int hi = lc - 1; + while (lo < hi) { + int mid = (lo + hi + 1) >>> 1; + if (cumTops[mid] <= y) { + lo = mid; + } else { + hi = mid - 1; + } + } + return lo; + } + + /// Returns the left inset (padding plus any gutter) at which text starts. + protected int getContentLeftInset() { + return getStyle().getPaddingLeftNoRTL(); + } + + private int contentX() { + return getX() + getContentLeftInset(); + } + + private int contentY() { + return getY() + getStyle().getPaddingTop(); + } + + /// Returns the width available for text (component width minus padding and any gutter). + protected int contentWidth() { + return getWidth() - getContentLeftInset() - getStyle().getPaddingRightNoRTL(); + } + + private int contentHeight() { + return getHeight() - getStyle().getPaddingTop() - getStyle().getPaddingBottom(); + } + + // ---- selection helpers ---- + + /// True when a non empty selection exists. + public boolean hasSelection() { + return anchor >= 0 && anchor != caret; + } + + /// Returns the inclusive start offset of the selection (or the caret when none). + public int getSelectionStart() { + if (anchor < 0) { + return caret; + } + return Math.min(anchor, caret); + } + + /// Returns the exclusive end offset of the selection (or the caret when none). + public int getSelectionEnd() { + if (anchor < 0) { + return caret; + } + return Math.max(anchor, caret); + } + + // ---- painting ---- + + @Override + public void paint(Graphics g) { + g.setColor(bgColor); + g.fillRect(getX(), getY(), getWidth(), getHeight()); + paintContent(g, contentX(), contentY() - scrollY, contentWidth(), contentHeight()); + if (touchSelection && hasSelection()) { + paintSelectionUI(g); + } + if (loupeActive) { + paintLoupe(g); + } + } + + // ---- touch selection UI (long-press, draggable handles, context toolbar, magnifier loupe) ---- + + private boolean touchSelection; + private int draggingHandle; + private int[] startHandleLocal; + private int[] endHandleLocal; + private int[][] toolbarButtons; + private java.util.List toolbarLabels; + private boolean loupeActive; + private int loupeOffset; + private Font loupeFontCache; + private Font loupeBaseFont; + + /// The magnified font used inside the loupe (1.5x the editor font), cached against the base font so a + /// theme/skin change regenerates it. + private Font loupeFont() { + Font base = getEditorFont(); + if (loupeFontCache == null || loupeBaseFont != base) { + loupeBaseFont = base; + loupeFontCache = base.derive(base.getHeight() * 1.5f, Font.STYLE_PLAIN); + } + return loupeFontCache; + } + + /// Draws the selection magnifier: a rounded callout above the touched offset showing the text around + /// it enlarged, with a caret marker centered on the touch. Shown while placing the caret with a long + /// press and while dragging a selection handle, mirroring the native touch selection feel. + private void paintLoupe(Graphics g) { + int off = doc.clamp(loupeOffset); + int ln = doc.lineOfOffset(off); + String line = doc.getLineText(ln); + int col = off - doc.getLineStart(ln); + Font base = getEditorFont(); + Font big = loupeFont(); + int lh = big.getHeight(); + int pad = base.charWidth('m'); + int bubbleH = lh + pad; + int bubbleW = Math.min(getWidth() - 8, big.charWidth('m') * 16); + int caretBaseX = measureColumnX(ln, line, col, base); + int caretLocalX = getContentLeftInset() + lineContentOffsetX(ln) + caretBaseX - scrollX; + int caretLocalY = getStyle().getPaddingTop() + lineTopContent(ln) - scrollY; + int bx = clampInt(caretLocalX - bubbleW / 2, 4, Math.max(4, getWidth() - 4 - bubbleW)); + int by = caretLocalY - bubbleH - handleRadius() * 3; + if (by < 4) { + by = caretLocalY + lineHeightAt(ln) + handleRadius() * 3; + } + int ax = getX() + bx; + int ay = getY() + by; + int arc = Math.max(8, bubbleH / 2); + g.setColor(0xffffff); + g.fillRoundRect(ax, ay, bubbleW, bubbleH, arc, arc); + g.setColor(0x1a73e8); + g.drawRoundRect(ax, ay, bubbleW, bubbleH, arc, arc); + g.pushClip(); + g.clipRect(ax + 2, ay + 2, bubbleW - 4, bubbleH - 4); + // scale the (bidi aware) caret x from the base to the magnified font so the touched glyph is centered + int scaledCaretX = caretBaseX * lh / Math.max(1, base.getHeight()); + int textX = ax + bubbleW / 2 - scaledCaretX; + int textY = ay + (bubbleH - lh) / 2; + g.setColor(fgColor); + g.setFont(big); + g.drawString(line, textX, textY); + g.setColor(0x1a73e8); + g.fillRect(ax + bubbleW / 2, textY, Math.max(1, lh / 14), lh); + g.popClip(); + g.setFont(base); + } + + private int handleRadius() { + return Math.max(6, getEditorFont().getHeight() / 3); + } + + // returns {localX, localYTop, lineHeight} for an offset (component-local, matches paint origin getX/getY) + private int[] offsetLocal(int off) { + Font f = getEditorFont(); + int line = doc.lineOfOffset(off); + int col = off - doc.getLineStart(line); + String text = doc.getLineText(line); + if (col > text.length()) { + col = text.length(); + } + int lx = getContentLeftInset() + lineContentOffsetX(line) + measureColumnX(line, text, col, f) - scrollX; + int ly = getStyle().getPaddingTop() + lineTopContent(line) - scrollY; + return new int[]{lx, ly, lineHeightAt(line)}; + } + + private void paintSelectionUI(Graphics g) { + int hr = handleRadius(); + int[] s = offsetLocal(getSelectionStart()); + int[] e = offsetLocal(getSelectionEnd()); + int color = 0x1a73e8; + // start handle: stem + ball above the line top + g.setColor(color); + g.fillRect(getX() + s[0] - 1, getY() + s[1], 2, s[2]); + g.fillArc(getX() + s[0] - hr, getY() + s[1] - hr * 2, hr * 2, hr * 2, 0, 360); + startHandleLocal = new int[]{s[0], s[1] - hr}; + // end handle: stem + ball below the line bottom + g.setColor(color); + g.fillRect(getX() + e[0] - 1, getY() + e[1], 2, e[2]); + g.fillArc(getX() + e[0] - hr, getY() + e[1] + e[2], hr * 2, hr * 2, 0, 360); + endHandleLocal = new int[]{e[0], e[1] + e[2] + hr}; + paintToolbar(g, s); + } + + private void paintToolbar(Graphics g, int[] anchor) { + Font f = getEditorFont(); + java.util.List labels = new java.util.ArrayList(); + labels.add("Copy"); + if (editable) { + labels.add("Cut"); + labels.add("Paste"); + } + labels.add("Select All"); + int pad = f.charWidth('m'); + int bh = f.getHeight() + pad; + int[] w = new int[labels.size()]; + int total = 0; + for (int i = 0; i < labels.size(); i++) { + w[i] = f.stringWidth(labels.get(i)) + pad * 2; + total += w[i]; + } + int tx = anchor[0] - total / 2; + int ty = anchor[1] - bh - handleRadius() * 2; + if (tx < 0) { + tx = 0; + } + if (tx + total > getWidth()) { + tx = getWidth() - total; + } + if (ty < 0) { + ty = anchor[1] + anchor[2] + handleRadius() * 2; + } + g.setColor(0x222222); + g.fillRect(getX() + tx, getY() + ty, total, bh); + toolbarButtons = new int[labels.size()][4]; + toolbarLabels = labels; + int cx = tx; + for (int i = 0; i < labels.size(); i++) { + toolbarButtons[i] = new int[]{cx, ty, w[i], bh}; + g.setColor(0xf0f0f0); + g.setFont(f); + g.drawString(labels.get(i), getX() + cx + pad, getY() + ty + pad / 2); + cx += w[i]; + if (i < labels.size() - 1) { + g.setColor(0x555555); + g.drawLine(getX() + cx, getY() + ty + 4, getX() + cx, getY() + ty + bh - 4); + } + } + } + + @Override + public void longPointerPress(int x, int y) { + int off = offsetAtPoint(x, y); + selectWordAt(off); + touchSelection = hasSelection(); + loupeActive = true; + loupeOffset = off; + repaint(); + } + + private boolean nearLocal(int[] handleLocal, int x, int y) { + if (handleLocal == null) { + return false; + } + int lx = x - getAbsoluteX(); + int ly = y - getAbsoluteY(); + int r = handleRadius() * 3; + int dx = lx - handleLocal[0]; + int dy = ly - handleLocal[1]; + return dx * dx + dy * dy <= r * r; + } + + private boolean handleTouchSelectionPress(int x, int y) { + if (!touchSelection) { + return false; + } + int lx = x - getAbsoluteX(); + int ly = y - getAbsoluteY(); + if (toolbarButtons != null) { + for (int i = 0; i < toolbarButtons.length; i++) { + int[] r = toolbarButtons[i]; + if (lx >= r[0] && lx <= r[0] + r[2] && ly >= r[1] && ly <= r[1] + r[3]) { + doToolbarAction(toolbarLabels.get(i)); + return true; + } + } + } + if (nearLocal(startHandleLocal, x, y)) { + anchor = getSelectionEnd(); + caret = getSelectionStart(); + draggingHandle = 1; + return true; + } + if (nearLocal(endHandleLocal, x, y)) { + anchor = getSelectionStart(); + caret = getSelectionEnd(); + draggingHandle = 2; + return true; + } + // tap outside the selection UI dismisses it + touchSelection = false; + startHandleLocal = null; + endHandleLocal = null; + toolbarButtons = null; + return false; + } + + private void doToolbarAction(String label) { + if ("Copy".equals(label)) { + copySelection(); + } else if ("Cut".equals(label)) { + cutSelection(); + } else if ("Paste".equals(label)) { + pasteClipboard(); + } else if ("Select All".equals(label)) { + selectAll(); + touchSelection = true; + repaint(); + return; + } + touchSelection = false; + repaint(); + } + + /// Paints the document content. `originY` is already offset by the scroll position, so line `n` is at + /// `originY + n * getLineHeight()`. Subclasses override to add highlighting, a gutter or styled runs + /// but should call through for the shared caret / selection rendering, or reimplement it. + /// + /// #### Parameters + /// + /// - `g`: the graphics context + /// + /// - `originX`: the x pixel at which line text starts + /// + /// - `originY`: the y pixel of the first line (scroll adjusted) + /// + /// - `width`: the content width + /// + /// - `height`: the content height + protected void paintContent(Graphics g, int originX, int originY, int width, int height) { + Font f = getEditorFont(); + g.setFont(f); + int lineCount = doc.getLineCount(); + int first = lineAtContentY(scrollY); + int last = Math.min(lineCount - 1, lineAtContentY(scrollY + height) + 1); + paintBeforeContent(g, originX, originY, first, last, getLineHeight(), f); + // clip the text area (so horizontally scrolled text does not paint over the gutter) and apply + // the horizontal scroll offset + g.pushClip(); + g.clipRect(originX, getY() + getStyle().getPaddingTop(), width, height); + int tx = originX - scrollX; + int ss = getSelectionStart(); + int se = getSelectionEnd(); + int eolPad = f.charWidth(' '); + for (int ln = first; ln <= last; ln++) { + int ly = originY + lineTopContent(ln); + int lh = lineHeightAt(ln); + String text = doc.getLineText(ln); + int lineStart = doc.getLineStart(ln); + int lineEnd = doc.getLineEnd(ln); + if (ss != se && ss <= lineEnd && se >= lineStart) { + int lineOff = lineContentOffsetX(ln); + int a = clampInt(ss - lineStart, 0, text.length()); + boolean pastEol = se > lineEnd; + int b = pastEol ? text.length() : clampInt(se - lineStart, 0, text.length()); + g.setColor(selColor); + int[] segs = lineVisualSegments(ln, text, a, b, f); + for (int si = 0; si < segs.length; si += 2) { + g.fillRect(tx + lineOff + segs[si], ly, segs[si + 1], lh); + } + if (pastEol) { + // selection continues across the line break: pad at the visual end of the line + int endX = tx + lineOff + measureColumnX(ln, text, text.length(), f); + g.fillRect(endX, ly, eolPad, lh); + } + } + paintLine(g, ln, text, tx, ly, lh, f); + paintLineDecorations(g, ln, text, tx, ly, lh, f); + paintComposingUnderline(g, ln, text, lineStart, lineEnd, tx, ly, lh, f); + } + paintCaret(g, tx, originY, f); + g.popClip(); + } + + /// Draws the IME composition (marked text) underline for the portion of the active composing range + /// that falls on the given line. The composing range is set by `#setComposingText(String, int)` while + /// an input method is composing (e.g. CJK) and cleared by `#finishComposing()`. + protected void paintComposingUnderline(Graphics g, int line, String text, int lineStart, int lineEnd, + int tx, int ly, int lineHeight, Font f) { + if (composingStart < 0 || composingEnd <= composingStart) { + return; + } + if (composingStart > lineEnd || composingEnd < lineStart) { + return; + } + int lineOff = lineContentOffsetX(line); + int a = clampInt(composingStart - lineStart, 0, text.length()); + int b = clampInt(Math.min(composingEnd, lineEnd) - lineStart, 0, text.length()); + int xa = tx + lineOff + measureColumnX(line, text, a, f); + int xb = tx + lineOff + measureColumnX(line, text, b, f); + int left = Math.min(xa, xb); + int w = Math.abs(xb - xa); + if (w <= 0) { + return; + } + int thickness = Math.max(1, lineHeight / 16); + int uy = ly + lineHeight - thickness - Math.max(1, lineHeight / 12); + g.setColor(fgColor); + g.fillRect(left, uy, w, thickness); + } + + /// Hook invoked before the visible lines are drawn, used by the code editor to paint the line number + /// gutter. `originY` is scroll adjusted so line `n` sits at `originY + n * lineHeight`. + protected void paintBeforeContent(Graphics g, int originX, int originY, int firstLine, int lastLine, int lineHeight, Font f) { + } + + /// Hook invoked after a line's text is drawn, used by the code editor to paint diagnostic squiggles. + protected void paintLineDecorations(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { + } + + /// Returns the y pixel of the top of the given line in component local coordinates (scroll adjusted). + protected int lineTop(int line) { + return getStyle().getPaddingTop() - scrollY + lineTopContent(line); + } + + /// Returns the first fully or partially visible line index. + protected int firstVisibleLine() { + return lineAtContentY(scrollY); + } + + /// Returns the current horizontal scroll offset in pixels. + protected int getHorizontalScroll() { + return scrollX; + } + + /// Paints a single line of text. Subclasses override to add syntax coloring; the base implementation + /// draws the whole line in the default text color. + /// + /// #### Parameters + /// + /// - `g`: the graphics context + /// + /// - `line`: the zero based line index + /// + /// - `text`: the line text + /// + /// - `x`: the x pixel at which the line text starts + /// + /// - `y`: the top y pixel of the line + /// + /// - `lineHeight`: the line height + /// + /// - `f`: the font + protected void paintLine(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { + if (text.length() == 0) { + return; + } + g.setColor(fgColor); + if (BidiUtil.isTrivialLtr(text, isRTL())) { + g.drawString(text, x, y); + return; + } + // Draw each directional run as its own substring at its visual x; the platform font engine shapes + // and orders the glyphs within the (single-direction) run. + int[][] runs = bidiRuns(text, f); + for (int r = 0; r < runs.length; r++) { + g.drawString(text.substring(runs[r][0], runs[r][1]), x + runs[r][3], y); + } + } + + private void paintCaret(Graphics g, int originX, int originY, Font f) { + if (!caretOn || !hasFocus() || !editable) { + return; + } + int cl = doc.lineOfOffset(caret); + int col = caret - doc.getLineStart(cl); + String line = doc.getLineText(cl); + if (col > line.length()) { + col = line.length(); + } + int cx = originX + lineContentOffsetX(cl) + measureColumnX(cl, line, col, f); + int cy = originY + lineTopContent(cl); + int cw = Math.max(1, f.getHeight() / 16); + g.setColor(fgColor); + g.fillRect(cx, cy, cw, lineHeightAt(cl)); + } + + private static int clampInt(int v, int lo, int hi) { + if (v < lo) { + return lo; + } + if (v > hi) { + return hi; + } + return v; + } + + // ---- hit testing ---- + + /// Returns the document offset nearest the given absolute screen point. + /// + /// #### Parameters + /// + /// - `absX`: absolute x + /// + /// - `absY`: absolute y + public int offsetAtPoint(int absX, int absY) { + Font f = getEditorFont(); + // pointer coordinates are absolute (form space); convert to content-local + int localY = absY - getAbsoluteY() - getStyle().getPaddingTop() + scrollY; + int ln = lineAtContentY(localY); + int lineStart = doc.getLineStart(ln); + String text = doc.getLineText(ln); + int localX = absX - getAbsoluteX() - getContentLeftInset() + scrollX - lineContentOffsetX(ln); + return lineStart + columnAtX(ln, text, localX, f); + } + + // ---- editing primitives ---- + + /// Replaces the range `[start, end)` with `text`, updating the caret, history and platform input + /// state. + /// + /// #### Parameters + /// + /// - `start`: inclusive start offset + /// + /// - `end`: exclusive end offset + /// + /// - `text`: the replacement text (may be empty) + /// + /// - `record`: true to record the mutation for undo + protected void replaceRange(int start, int end, String text, boolean record) { + start = doc.clamp(start); + end = doc.clamp(end); + if (start > end) { + int t = start; + start = end; + end = t; + } + String value = text == null ? "" : text; + String removed = doc.substring(start, end); + doc.delete(start, end); + doc.insert(start, value); + if (record) { + undo.record(start, removed, value); + } + caret = start + value.length(); + anchor = -1; + documentEdited(start); + documentReplaced(start, removed, value); + onDocumentChanged(); + } + + /// Hook invoked when the document is mutated at `fromOffset`, used by feature layers (e.g. the code + /// editor) to invalidate cached tokenization from the affected line onward. + protected void documentEdited(int fromOffset) { + } + + /// Hook invoked when a range is replaced, carrying the exact removed and inserted text so feature + /// layers (e.g. the rich text editor) can keep a parallel style / block model in sync. The default is + /// a no-op. + /// + /// #### Parameters + /// + /// - `start`: the offset at which the replacement happened + /// + /// - `removed`: the removed text + /// + /// - `inserted`: the inserted text + protected void documentReplaced(int start, String removed, String inserted) { + } + + /// Hook invoked when the whole document is reset (e.g. by `#setText(String)`), so feature layers can + /// rebuild their parallel models. The default is a no-op. + protected void documentReset() { + } + + /// Inserts text at the caret, replacing any active selection. + public void insertText(String text) { + if (!editable || text == null || text.length() == 0) { + return; + } + if (handleTypedText(text)) { + return; + } + replaceRange(getSelectionStart(), getSelectionEnd(), text, true); + } + + /// Hook giving feature layers a chance to intercept typed text before the default insertion (used by + /// the code editor for bracket / quote auto close, tab expansion and auto indent). Return true when + /// the text was consumed. The default returns false. + /// + /// #### Parameters + /// + /// - `text`: the text being typed / committed + protected boolean handleTypedText(String text) { + return false; + } + + /// Returns the host bridge, for feature layers that need to fire editor events. + protected EditorHost host() { + return host; + } + + private void deleteBackward() { + if (!editable) { + return; + } + if (hasSelection()) { + replaceRange(getSelectionStart(), getSelectionEnd(), "", true); + return; + } + if (caret > 0) { + int prev = caret - 1; + if (prev > 0 && Character.isLowSurrogate(doc.charAt(prev)) && Character.isHighSurrogate(doc.charAt(prev - 1))) { + prev--; + } + replaceRange(prev, caret, "", true); + } + } + + private void deleteForward() { + if (!editable) { + return; + } + if (hasSelection()) { + replaceRange(getSelectionStart(), getSelectionEnd(), "", true); + return; + } + if (caret < doc.length()) { + int next = caret + 1; + if (next < doc.length() && Character.isHighSurrogate(doc.charAt(caret)) && Character.isLowSurrogate(doc.charAt(next))) { + next++; + } + replaceRange(caret, next, "", true); + } + } + + // ---- navigation ---- + + /// Moves the caret to a new offset, optionally extending the selection. + /// + /// #### Parameters + /// + /// - `newCaret`: the target offset (clamped to the document) + /// + /// - `extend`: true to extend the selection from the current anchor + public void moveCaret(int newCaret, boolean extend) { + touchSelection = false; + newCaret = doc.clamp(newCaret); + if (extend) { + if (anchor < 0) { + anchor = caret; + } + } else { + anchor = -1; + } + caret = newCaret; + undo.breakRun(); + resetBlink(); + scrollCaretVisible(); + pushInputState(); + repaint(); + } + + private int caretLeft() { + int p = caret - 1; + if (p > 0 && Character.isLowSurrogate(doc.charAt(p)) && Character.isHighSurrogate(doc.charAt(p - 1))) { + p--; + } + return p; + } + + private int caretRight() { + int p = caret + 1; + if (p < doc.length() && Character.isHighSurrogate(doc.charAt(caret)) && Character.isLowSurrogate(doc.charAt(p))) { + p++; + } + return p; + } + + private int caretVertical(int delta) { + int cl = doc.lineOfOffset(caret); + int col = caret - doc.getLineStart(cl); + int target = clampInt(cl + delta, 0, doc.getLineCount() - 1); + int lineLen = doc.getLineEnd(target) - doc.getLineStart(target); + return doc.getLineStart(target) + Math.min(col, lineLen); + } + + private void lineHome(boolean extend) { + moveCaret(doc.getLineStart(doc.lineOfOffset(caret)), extend); + } + + private void lineEndKey(boolean extend) { + moveCaret(doc.getLineEnd(doc.lineOfOffset(caret)), extend); + } + + /// Selects the entire document. + public void selectAll() { + anchor = 0; + caret = doc.length(); + resetBlink(); + pushInputState(); + repaint(); + } + + // ---- clipboard ---- + + private void copySelection() { + if (hasSelection()) { + Display.getInstance().copyToClipboard(doc.substring(getSelectionStart(), getSelectionEnd())); + } + } + + private void cutSelection() { + if (hasSelection() && editable) { + copySelection(); + replaceRange(getSelectionStart(), getSelectionEnd(), "", true); + } + } + + private void pasteClipboard() { + if (!editable) { + return; + } + Object data = Display.getInstance().getPasteDataFromClipboard(); + if (data instanceof String) { + insertText((String) data); + } + } + + // ---- document change plumbing ---- + + private void onDocumentChanged() { + composingStart = -1; + composingEnd = -1; + touchSelection = false; + invalidateLayout(); + resetBlink(); + scrollCaretVisible(); + if (host != null) { + host.editorChanged(); + } + pushInputState(); + repaint(); + } + + private int maxScroll() { + return Math.max(0, contentTotalHeight() - contentHeight()); + } + + private int cachedMaxLineWidth = -1; + + private int maxScrollX() { + if (cachedMaxLineWidth < 0) { + Font f = getEditorFont(); + int w = 0; + int lc = doc.getLineCount(); + for (int i = 0; i < lc; i++) { + int lw = lineContentOffsetX(i) + f.stringWidth(doc.getLineText(i)); + if (lw > w) { + w = lw; + } + } + cachedMaxLineWidth = w; + } + return Math.max(0, cachedMaxLineWidth - contentWidth() + getEditorFont().charWidth('m') * 2); + } + + /// Returns the extra left offset of a line's text within the content area (0 for plain text and + /// code; the rich text editor overrides this for list bullets, indentation, block quotes and + /// alignment so the caret and selection line up with the drawn text). + protected int lineContentOffsetX(int line) { + return 0; + } + + /// Pixel width of the substring `text[from, to)`. `Font.substringWidth` takes an offset and a length, + /// so this converts an end index to a length for the bidi geometry helpers. + private static int subw(Font f, String text, int from, int to) { + if (to <= from) { + return 0; + } + return f.substringWidth(text, from, to - from); + } + + /// Returns the visual pixel x (from the start of a line) of the caret before logical column `col`. + /// For plain left-to-right text this is simply the substring width; for lines containing right-to-left + /// or mixed (bidirectional) text it maps the logical column through the resolved visual order so the + /// caret lines up with the reordered glyphs. The rich text editor overrides this to measure per styled + /// run. + protected int measureColumnX(int line, String text, int col, Font f) { + if (BidiUtil.isTrivialLtr(text, isRTL())) { + return f.substringWidth(text, 0, col); + } + int[][] runs = bidiRuns(text, f); + for (int r = 0; r < runs.length; r++) { + int lo = runs[r][0], hi = runs[r][1], lvl = runs[r][2], rx = runs[r][3]; + if (col >= lo && col <= hi) { + if ((lvl & 1) == 0) { + return rx + subw(f, text, lo, col); + } + return rx + subw(f, text, col, hi); + } + } + return f.substringWidth(text, 0, Math.min(col, text.length())); + } + + /// Returns the column nearest a given content-local x pixel on a line. Bidi aware: it locates the + /// visual run containing the pixel and maps back to a logical column. The rich text editor overrides + /// it to be styled-run aware. + protected int columnAtX(int line, String text, int localX, Font f) { + if (BidiUtil.isTrivialLtr(text, isRTL())) { + int col = 0; + while (col < text.length()) { + int wFull = measureColumnX(line, text, col + 1, f); + int wHalf = (measureColumnX(line, text, col, f) + wFull) / 2; + if (localX < wHalf) { + break; + } + col++; + } + return col; + } + int[][] runs = bidiRuns(text, f); + for (int r = 0; r < runs.length; r++) { + int lo = runs[r][0], hi = runs[r][1], lvl = runs[r][2], rx = runs[r][3]; + int rw = subw(f, text, lo, hi); + boolean lastRun = r == runs.length - 1; + if (localX < rx + rw || lastRun) { + if ((lvl & 1) == 0) { + int col = lo; + while (col < hi) { + int wa = rx + subw(f, text, lo, col); + int wb = rx + subw(f, text, lo, col + 1); + if (localX < (wa + wb) / 2) { + break; + } + col++; + } + return col; + } + int col = hi; + while (col > lo) { + int wa = rx + subw(f, text, col, hi); + int wb = rx + subw(f, text, col - 1, hi); + if (localX < (wa + wb) / 2) { + break; + } + col--; + } + return col; + } + } + return text.length(); + } + + /// Builds the visual directional runs of a line for bidi layout. Each entry is + /// `{logicalStart, logicalEnd, level, runX}` where `runX` is the pixel offset of the run's left edge + /// from the line content start. Runs are returned in visual (left to right) order. + private int[][] bidiRuns(String text, Font f) { + int n = text.length(); + byte[] levels = BidiUtil.resolveLevels(text, isRTL()); + int[] v2l = BidiUtil.reorderVisual(levels); + java.util.List runs = new java.util.ArrayList(); + int i = 0; + while (i < n) { + int lvl = levels[v2l[i]]; + int j = i; + int lo = v2l[i]; + int hi = v2l[i]; + while (j < n && levels[v2l[j]] == lvl) { + if (v2l[j] < lo) { + lo = v2l[j]; + } + if (v2l[j] > hi) { + hi = v2l[j]; + } + j++; + } + runs.add(new int[]{lo, hi + 1, lvl, 0}); + i = j; + } + int x = 0; + int[][] out = runs.toArray(new int[runs.size()][]); + for (int r = 0; r < out.length; r++) { + out[r][3] = x; + x += subw(f, text, out[r][0], out[r][1]); + } + return out; + } + + /// Returns the visual selection segments for the logical range `[from, to)` on a line as a flat array + /// of `{x, width, x, width, ...}` in content-local pixels. A bidi line can yield several disjoint + /// segments; a plain line yields a single segment. + protected int[] lineVisualSegments(int line, String text, int from, int to, Font f) { + from = clampInt(from, 0, text.length()); + to = clampInt(to, 0, text.length()); + if (from >= to) { + return new int[0]; + } + if (BidiUtil.isTrivialLtr(text, isRTL())) { + int xa = measureColumnX(line, text, from, f); + int xb = measureColumnX(line, text, to, f); + return new int[]{Math.min(xa, xb), Math.abs(xb - xa)}; + } + int[][] runs = bidiRuns(text, f); + java.util.List segs = new java.util.ArrayList(); + for (int r = 0; r < runs.length; r++) { + int lo = runs[r][0], hi = runs[r][1], lvl = runs[r][2], rx = runs[r][3]; + int a = Math.max(from, lo); + int b = Math.min(to, hi); + if (a >= b) { + continue; + } + int xl, xr; + if ((lvl & 1) == 0) { + xl = rx + subw(f, text, lo, a); + xr = rx + subw(f, text, lo, b); + } else { + xl = rx + subw(f, text, b, hi); + xr = rx + subw(f, text, a, hi); + } + segs.add(new int[]{Math.min(xl, xr), Math.abs(xr - xl)}); + } + int[] flat = new int[segs.size() * 2]; + for (int k = 0; k < segs.size(); k++) { + flat[k * 2] = segs.get(k)[0]; + flat[k * 2 + 1] = segs.get(k)[1]; + } + return flat; + } + + private void scrollCaretVisible() { + int cl = doc.lineOfOffset(caret); + int top = lineTopContent(cl); + int bottom = top + lineHeightAt(cl); + if (top - scrollY < 0) { + scrollY = top; + } else if (bottom - scrollY > contentHeight()) { + scrollY = bottom - contentHeight(); + } + scrollY = clampInt(scrollY, 0, maxScroll()); + + int caretX = caretContentX(); + int viewW = contentWidth(); + int margin = getEditorFont().charWidth('m') * 2; + if (caretX - scrollX < margin) { + scrollX = Math.max(0, caretX - margin); + } else if (caretX - scrollX > viewW - margin) { + scrollX = caretX - viewW + margin; + } + int maxX = Math.max(0, caretLineWidth() - viewW + margin); + scrollX = clampInt(scrollX, 0, maxX); + } + + private int caretContentX() { + int cl = doc.lineOfOffset(caret); + int col = caret - doc.getLineStart(cl); + String line = doc.getLineText(cl); + if (col > line.length()) { + col = line.length(); + } + return lineContentOffsetX(cl) + measureColumnX(cl, line, col, getEditorFont()); + } + + private int caretLineWidth() { + int cl = doc.lineOfOffset(caret); + return lineContentOffsetX(cl) + getEditorFont().stringWidth(doc.getLineText(cl)); + } + + private void resetBlink() { + caretOn = true; + lastBlink = System.currentTimeMillis(); + } + + // ---- focus + input source lifecycle ---- + + @Override + protected void focusGained() { + super.focusGained(); + startInput(); + if (!animRegistered && getComponentForm() != null) { + getComponentForm().registerAnimated(this); + animRegistered = true; + } + resetBlink(); + repaint(); + } + + @Override + protected void focusLost() { + super.focusLost(); + stopInput(); + if (animRegistered && getComponentForm() != null) { + getComponentForm().deregisterAnimated(this); + animRegistered = false; + } + repaint(); + } + + private void startInput() { + if (host != null && inputHandle == null && host.isTextInputSupported()) { + inputHandle = host.startTextInput(this, getConfig()); + inputActive = inputHandle != null; + } + } + + private void stopInput() { + if (host != null && inputHandle != null) { + host.stopTextInput(inputHandle); + } + inputHandle = null; + inputActive = false; + } + + private void pushInputState() { + if (host != null && inputActive) { + host.updateTextInputState(inputHandle, getEditingState()); + } + } + + @Override + public boolean animate() { + boolean sup = super.animate(); + if (hasFocus()) { + long now = System.currentTimeMillis(); + if (now - lastBlink >= 500) { + caretOn = !caretOn; + lastBlink = now; + return true; + } + } + return sup; + } + + // ---- pointer ---- + + private long lastClickTime; + private int lastClickOffset = -1; + private int clickCount; + private boolean multiClickSelecting; + + @Override + public void pointerPressed(int x, int y) { + requestFocus(); + if (handleTouchSelectionPress(x, y)) { + return; + } + int off = offsetAtPoint(x, y); + long now = System.currentTimeMillis(); + if (now - lastClickTime < 400 && Math.abs(off - lastClickOffset) <= 1) { + clickCount++; + } else { + clickCount = 1; + } + lastClickTime = now; + lastClickOffset = off; + if (clickCount == 2) { + multiClickSelecting = true; + selectWordAt(off); + return; + } + if (clickCount >= 3) { + multiClickSelecting = true; + selectLineAt(off); + return; + } + multiClickSelecting = false; + caret = off; + anchor = off; + resetBlink(); + pushInputState(); + repaint(); + } + + @Override + public void pointerDragged(int x, int y) { + if (draggingHandle != 0) { + caret = offsetAtPoint(x, y); + loupeActive = true; + loupeOffset = caret; + resetBlink(); + scrollCaretVisible(); + repaint(); + return; + } + if (loupeActive) { + // long-press caret placement drag: keep the magnifier following the finger + caret = offsetAtPoint(x, y); + loupeOffset = caret; + resetBlink(); + scrollCaretVisible(); + repaint(); + return; + } + if (multiClickSelecting) { + return; + } + caret = offsetAtPoint(x, y); + resetBlink(); + scrollCaretVisible(); + repaint(); + } + + @Override + public void pointerReleased(int x, int y) { + boolean wasLoupe = loupeActive; + loupeActive = false; + if (draggingHandle != 0) { + caret = offsetAtPoint(x, y); + draggingHandle = 0; + touchSelection = hasSelection(); + pushInputState(); + repaint(); + return; + } + if (wasLoupe) { + // finished a long-press caret placement / word selection; keep the current selection or caret + pushInputState(); + repaint(); + return; + } + if (multiClickSelecting) { + multiClickSelecting = false; + return; + } + caret = offsetAtPoint(x, y); + if (anchor == caret) { + anchor = -1; + } + pushInputState(); + repaint(); + } + + // ---- raw keyboard (reference path when no platform input source) ---- + + private boolean isPrimaryModifierDown() { + Display d = Display.getInstance(); + return d.isMetaKeyDown() || d.isControlKeyDown(); + } + + private boolean handleShortcut(int keyCode) { + Display d = Display.getInstance(); + if (!(d.isMetaKeyDown() || d.isControlKeyDown()) || d.isAltKeyDown()) { + return false; + } + char ch = Character.toLowerCase((char) keyCode); + if (ch == 'c') { + copySelection(); + return true; + } + if (ch == 'x') { + cutSelection(); + return true; + } + if (ch == 'v') { + pasteClipboard(); + return true; + } + if (ch == 'a') { + selectAll(); + return true; + } + if (ch == 'z') { + if (d.isShiftKeyDown()) { + performRedo(); + } else { + performUndo(); + } + return true; + } + if (ch == 'y') { + performRedo(); + return true; + } + return false; + } + + private boolean handleNavKey(int keyCode) { + Display d = Display.getInstance(); + boolean shift = d.isShiftKeyDown(); + boolean word = d.isAltKeyDown(); + boolean lineJump = d.isMetaKeyDown() || d.isControlKeyDown(); + int action = d.getGameAction(keyCode); + if (action == Display.GAME_LEFT) { + if (lineJump) { + lineHome(shift); + } else if (word) { + moveCaret(wordLeft(), shift); + } else { + moveCaret(caretLeft(), shift); + } + return true; + } + if (action == Display.GAME_RIGHT) { + if (lineJump) { + lineEndKey(shift); + } else if (word) { + moveCaret(wordRight(), shift); + } else { + moveCaret(caretRight(), shift); + } + return true; + } + if (action == Display.GAME_UP) { + if (lineJump) { + moveCaret(0, shift); + } else { + moveCaret(caretVertical(-1), shift); + } + return true; + } + if (action == Display.GAME_DOWN) { + if (lineJump) { + moveCaret(doc.length(), shift); + } else { + moveCaret(caretVertical(1), shift); + } + return true; + } + if (keyCode == 8) { + deleteBackward(); + return true; + } + if (keyCode == 127) { + deleteForward(); + return true; + } + return false; + } + + private static boolean isWordChar(char c) { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_'; + } + + private int wordLeft() { + int p = caret; + while (p > 0 && !isWordChar(doc.charAt(p - 1))) { + p--; + } + while (p > 0 && isWordChar(doc.charAt(p - 1))) { + p--; + } + return p; + } + + private int wordRight() { + int p = caret; + int n = doc.length(); + while (p < n && !isWordChar(doc.charAt(p))) { + p++; + } + while (p < n && isWordChar(doc.charAt(p))) { + p++; + } + return p; + } + + private void selectWordAt(int offset) { + int s = offset; + int e = offset; + while (s > 0 && isWordChar(doc.charAt(s - 1))) { + s--; + } + while (e < doc.length() && isWordChar(doc.charAt(e))) { + e++; + } + anchor = s; + caret = e; + resetBlink(); + pushInputState(); + repaint(); + } + + private void selectLineAt(int offset) { + int line = doc.lineOfOffset(offset); + anchor = doc.getLineStart(line); + caret = doc.getLineEnd(line); + resetBlink(); + pushInputState(); + repaint(); + } + + @Override + public void keyPressed(int keyCode) { + if (!inputActive && editable) { + if (handleShortcut(keyCode)) { + return; + } + if (handleNavKey(keyCode)) { + return; + } + } + super.keyPressed(keyCode); + } + + @Override + public void keyRepeated(int keyCode) { + if (!inputActive && editable && !isPrimaryModifierDown() && handleNavKey(keyCode)) { + return; + } + super.keyRepeated(keyCode); + } + + @Override + public void keyReleased(int keyCode) { + if (!inputActive && editable) { + if (isPrimaryModifierDown() || Display.getInstance().isAltKeyDown()) { + // modifier combos are handled in keyPressed; never type the raw character + return; + } + if (keyCode == 10 || keyCode == 13) { + insertText("\n"); + return; + } + if (keyCode == 9) { + insertText("\t"); + return; + } + int action = Display.getInstance().getGameAction(keyCode); + if (action == 0 && keyCode >= 32 && keyCode != 127) { + insertText(String.valueOf((char) keyCode)); + return; + } + } + super.keyReleased(keyCode); + } + + // ---- TextInputClient ---- + + @Override + public void commitText(String text) { + if (!editable) { + return; + } + if (composingStart >= 0) { + replaceRange(composingStart, composingEnd, text, true); + return; + } + if (handleTypedText(text)) { + return; + } + replaceRange(getSelectionStart(), getSelectionEnd(), text, true); + } + + @Override + public void setComposingText(String text, int relativeCaret) { + if (!editable) { + return; + } + String value = text == null ? "" : text; + int start; + int end; + if (composingStart >= 0) { + start = composingStart; + end = composingEnd; + } else { + start = getSelectionStart(); + end = getSelectionEnd(); + } + start = doc.clamp(start); + end = doc.clamp(end); + String removed = doc.substring(start, end); + doc.delete(start, end); + doc.insert(start, value); + composingStart = start; + composingEnd = start + value.length(); + caret = composingEnd; + anchor = -1; + // composition is not recorded until finalized; keep undo aware of the net removal only once + undo.breakRun(); + documentEdited(start); + documentReplaced(start, removed, value); + if (removed.length() > 0 || value.length() > 0) { + resetBlink(); + scrollCaretVisible(); + if (host != null) { + host.editorChanged(); + } + pushInputState(); + repaint(); + } + } + + @Override + public void finishComposing() { + composingStart = -1; + composingEnd = -1; + } + + @Override + public void deleteSurroundingText(int before, int after) { + if (!editable) { + return; + } + int s = doc.clamp(caret - Math.max(0, before)); + int e = doc.clamp(caret + Math.max(0, after)); + replaceRange(s, e, "", true); + } + + @Override + public void onKeyCommand(int command, int modifiers) { + boolean extend = (modifiers & MOD_SHIFT) != 0; + switch (command) { + case KEY_LEFT: + moveCaret(caretLeft(), extend); + break; + case KEY_RIGHT: + moveCaret(caretRight(), extend); + break; + case KEY_UP: + moveCaret(caretVertical(-1), extend); + break; + case KEY_DOWN: + moveCaret(caretVertical(1), extend); + break; + case KEY_HOME: + lineHome(extend); + break; + case KEY_END: + lineEndKey(extend); + break; + case KEY_PAGE_UP: + moveCaret(caretVertical(-Math.max(1, contentHeight() / getLineHeight())), extend); + break; + case KEY_PAGE_DOWN: + moveCaret(caretVertical(Math.max(1, contentHeight() / getLineHeight())), extend); + break; + case KEY_BACKSPACE: + deleteBackward(); + break; + case KEY_DELETE: + deleteForward(); + break; + case KEY_COPY: + copySelection(); + break; + case KEY_CUT: + cutSelection(); + break; + case KEY_PASTE: + pasteClipboard(); + break; + case KEY_SELECT_ALL: + selectAll(); + break; + case KEY_UNDO: + performUndo(); + break; + case KEY_REDO: + performRedo(); + break; + default: + break; + } + } + + /// Undoes the last edit. + public void performUndo() { + int c = undo.undo(doc); + if (c >= 0) { + caret = doc.clamp(c); + anchor = -1; + documentEdited(0); + onDocumentChanged(); + } + } + + /// Redoes the last undone edit. + public void performRedo() { + int c = undo.redo(doc); + if (c >= 0) { + caret = doc.clamp(c); + anchor = -1; + documentEdited(0); + onDocumentChanged(); + } + } + + @Override + public void onEditorAction(int action) { + if (action == TextInputConfig.ACTION_DEFAULT && editable) { + insertText("\n"); + } + } + + @Override + public TextInputState getEditingState() { + return new TextInputState(doc.getText(), getSelectionStart(), getSelectionEnd(), composingStart, composingEnd); + } + + @Override + public int[] getCaretRect() { + return rectForOffset(caret); + } + + @Override + public int[] rectForOffset(int offset) { + offset = doc.clamp(offset); + Font f = getEditorFont(); + int cl = doc.lineOfOffset(offset); + int col = offset - doc.getLineStart(cl); + String line = doc.getLineText(cl); + if (col > line.length()) { + col = line.length(); + } + int localX = getContentLeftInset() + lineContentOffsetX(cl) + measureColumnX(cl, line, col, f) - scrollX; + int localY = getStyle().getPaddingTop() + lineTopContent(cl) - scrollY; + return new int[]{getAbsoluteX() + localX, getAbsoluteY() + localY, Math.max(1, f.getHeight() / 16), lineHeightAt(cl)}; + } + + @Override + public int getTextLength() { + return doc.length(); + } + + @Override + public String getTextRange(int start, int end) { + start = doc.clamp(start); + end = doc.clamp(end); + if (start > end) { + int t = start; + start = end; + end = t; + } + return doc.substring(start, end); + } + + @Override + public int[] selectionRects(int start, int end) { + start = doc.clamp(start); + end = doc.clamp(end); + if (start > end) { + int t = start; + start = end; + end = t; + } + Font f = getEditorFont(); + int firstLine = doc.lineOfOffset(start); + int lastLine = doc.lineOfOffset(end); + java.util.List rects = new java.util.ArrayList(); + for (int ln = firstLine; ln <= lastLine; ln++) { + int ls = doc.getLineStart(ln); + int le = doc.getLineEnd(ln); + String text = doc.getLineText(ln); + int a = clampInt(Math.max(start, ls) - ls, 0, text.length()); + int b = clampInt(Math.min(end, le) - ls, 0, text.length()); + int lx = getContentLeftInset() + lineContentOffsetX(ln) - scrollX; + int y = getStyle().getPaddingTop() + lineTopContent(ln) - scrollY; + // A bidi line can produce several disjoint visual rectangles for one logical range. + int[] segs = lineVisualSegments(ln, text, a, b, f); + boolean crossesEol = ln < lastLine && end > le; + if (segs.length == 0 && crossesEol) { + int ex = lx + measureColumnX(ln, text, text.length(), f); + rects.add(new int[]{getAbsoluteX() + ex, getAbsoluteY() + y, f.charWidth(' '), lineHeightAt(ln)}); + } + for (int si = 0; si < segs.length; si += 2) { + int rx = lx + segs[si]; + int rw = segs[si + 1]; + // extend the last segment to cover the trailing newline when the selection wraps + if (crossesEol && si == segs.length - 2) { + rw += f.charWidth(' '); + } + rects.add(new int[]{getAbsoluteX() + rx, getAbsoluteY() + y, Math.max(1, rw), lineHeightAt(ln)}); + } + } + int[] out = new int[rects.size() * 4]; + for (int i = 0; i < rects.size(); i++) { + int[] r = rects.get(i); + out[i * 4] = r[0]; + out[i * 4 + 1] = r[1]; + out[i * 4 + 2] = r[2]; + out[i * 4 + 3] = r[3]; + } + return out; + } + + @Override + public void replaceRange(int start, int end, String text) { + replaceRange(start, end, text, true); + } + + @Override + public void setSelectionRange(int start, int end) { + start = doc.clamp(start); + end = doc.clamp(end); + anchor = start == end ? -1 : start; + caret = end; + resetBlink(); + scrollCaretVisible(); + repaint(); + } + + @Override + public TextInputConfig getConfig() { + TextInputConfig cfg = new TextInputConfig(); + if (codeMode) { + cfg.setAutoCorrect(false).setAutoCapitalize(false); + } + cfg.setMultiline(true); + return cfg; + } + + @Override + public void inputFocusGained() { + } + + @Override + public void inputFocusLost() { + } + + // ---- preferred size ---- + + @Override + protected Dimension calcPreferredSize() { + Font f = getEditorFont(); + int w = 20 * f.charWidth('m') + getContentLeftInset() + getStyle().getPaddingRightNoRTL(); + int h = 6 * getLineHeight() + getStyle().getPaddingTop() + getStyle().getPaddingBottom(); + return new Dimension(w, h); + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java b/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java new file mode 100644 index 00000000000..eca2faa53ed --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java @@ -0,0 +1,576 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/// Parses an HTML string into the pure rich text editor model (plain text plus per character +/// `TextStyle` and per paragraph `RichBlocks.BlockAttr`). It uses a small, tolerant streaming HTML +/// tokenizer (rather than the framework's `HTMLParser`, which is coupled to an `HTMLComponent`) and maps +/// the common inline and block tags onto the editor model. It handles the HTML that `HtmlSerializer` +/// emits plus common external markup (headings, paragraphs, lists, bold / italic / underline / strike, +/// colored spans and links). +public final class HtmlImporter { + /// The imported content. + public static final class Result { + private final String text; + private final List styles; + private final List blocks; + + Result(String text, List styles, List blocks) { + this.text = text; + this.styles = styles; + this.blocks = blocks; + } + + /// The plain text. + public String getText() { + return text; + } + + /// One style per character. + public List getStyles() { + return styles; + } + + /// One block attribute per paragraph. + public List getBlocks() { + return blocks; + } + } + + private final StringBuilder text = new StringBuilder(); + private final List styles = new ArrayList(); + private final List paras = new ArrayList(); + private boolean freshParagraph = true; + private boolean lastWasSpace = true; + + private TextStyle current = TextStyle.DEFAULT; + private final List styleStack = new ArrayList(); + // list context stack: each entry is {listType, indent} + private final List listStack = new ArrayList(); + + private HtmlImporter() { + } + + /// Parses HTML into an editor model result. + public static Result parse(String html) { + HtmlImporter imp = new HtmlImporter(); + imp.tokenize(html == null ? "" : html); + if (imp.paras.isEmpty()) { + imp.paras.add(new RichBlocks.BlockAttr()); + } + return new Result(imp.text.toString(), imp.styles, imp.paras); + } + + // ---- streaming tokenizer ---- + + private void tokenize(String html) { + int i = 0; + int n = html.length(); + while (i < n) { + char c = html.charAt(i); + if (c == '<') { + if (html.regionMatches(i, "", i + 4); + i = end < 0 ? n : end + 3; + continue; + } + int gt = html.indexOf('>', i); + if (gt < 0) { + appendText(html.substring(i)); + break; + } + String tagBody = html.substring(i + 1, gt); + i = gt + 1; + if (tagBody.length() == 0) { + continue; + } + if (tagBody.charAt(0) == '/') { + endTag(tagBody.substring(1).trim().toLowerCase()); + } else { + boolean selfClose = tagBody.endsWith("/"); + if (selfClose) { + tagBody = tagBody.substring(0, tagBody.length() - 1); + } + parseStartTag(tagBody); + } + } else { + int lt = html.indexOf('<', i); + if (lt < 0) { + lt = n; + } + appendText(decodeEntities(html.substring(i, lt))); + i = lt; + } + } + } + + private void parseStartTag(String tagBody) { + int sp = 0; + while (sp < tagBody.length() && !isSpace(tagBody.charAt(sp))) { + sp++; + } + String name = tagBody.substring(0, sp).toLowerCase(); + Map attrs = parseAttrs(tagBody.substring(sp)); + startTag(name, attrs); + } + + private static boolean isSpace(char c) { + return c == ' ' || c == '\t' || c == '\n' || c == '\r'; + } + + private Map parseAttrs(String s) { + Map attrs = new HashMap(); + int i = 0; + int n = s.length(); + while (i < n) { + while (i < n && isSpace(s.charAt(i))) { + i++; + } + int start = i; + while (i < n && s.charAt(i) != '=' && !isSpace(s.charAt(i))) { + i++; + } + if (i == start) { + break; + } + String key = s.substring(start, i).toLowerCase(); + while (i < n && isSpace(s.charAt(i))) { + i++; + } + String value = ""; + if (i < n && s.charAt(i) == '=') { + i++; + while (i < n && isSpace(s.charAt(i))) { + i++; + } + if (i < n && (s.charAt(i) == '"' || s.charAt(i) == '\'')) { + char q = s.charAt(i); + i++; + int vs = i; + while (i < n && s.charAt(i) != q) { + i++; + } + value = s.substring(vs, i); + if (i < n) { + i++; + } + } else { + int vs = i; + while (i < n && !isSpace(s.charAt(i))) { + i++; + } + value = s.substring(vs, i); + } + } + attrs.put(key, decodeEntities(value)); + } + return attrs; + } + + // ---- tag handling ---- + + private void startTag(String name, Map attrs) { + if ("br".equals(name)) { + newParagraph(currentBlockCtx()); + return; + } + if ("img".equals(name) || "hr".equals(name)) { + return; + } + if ("ol".equals(name) || "ul".equals(name)) { + listStack.add(new int[]{"ol".equals(name) ? RichBlocks.LIST_ORDERED : RichBlocks.LIST_UNORDERED, 0}); + return; + } + if (isBlockTag(name) || "li".equals(name)) { + startBlock(blockAttrFor(name, attrs)); + return; + } + // inline tag + styleStack.add(current); + current = applyInlineTag(name, current, attrs); + } + + private void endTag(String name) { + if ("ol".equals(name) || "ul".equals(name)) { + if (!listStack.isEmpty()) { + listStack.remove(listStack.size() - 1); + } + return; + } + if (isInlineTag(name)) { + if (!styleStack.isEmpty()) { + current = styleStack.remove(styleStack.size() - 1); + } + } + } + + private static boolean isBlockTag(String tag) { + return "p".equals(tag) || "div".equals(tag) || "pre".equals(tag) || "blockquote".equals(tag) + || (tag.length() == 2 && tag.charAt(0) == 'h' && tag.charAt(1) >= '1' && tag.charAt(1) <= '6'); + } + + private static boolean isInlineTag(String tag) { + return "b".equals(tag) || "strong".equals(tag) || "i".equals(tag) || "em".equals(tag) + || "u".equals(tag) || "s".equals(tag) || "strike".equals(tag) || "del".equals(tag) + || "a".equals(tag) || "span".equals(tag) || "font".equals(tag); + } + + private RichBlocks.BlockAttr currentBlockCtx() { + RichBlocks.BlockAttr a = new RichBlocks.BlockAttr(); + if (!listStack.isEmpty()) { + int[] top = listStack.get(listStack.size() - 1); + a.listType = top[0]; + a.indent = listStack.size() - 1; + } + return a; + } + + private RichBlocks.BlockAttr blockAttrFor(String tag, Map attrs) { + RichBlocks.BlockAttr attr = currentBlockCtx(); + if (tag.length() == 2 && tag.charAt(0) == 'h') { + attr.type = RichBlocks.H1 + (tag.charAt(1) - '1'); + attr.listType = RichBlocks.LIST_NONE; + } else if ("pre".equals(tag)) { + attr.type = RichBlocks.PRE; + attr.listType = RichBlocks.LIST_NONE; + } else if ("blockquote".equals(tag)) { + attr.type = RichBlocks.BLOCKQUOTE; + attr.listType = RichBlocks.LIST_NONE; + } else if ("li".equals(tag)) { + attr.type = RichBlocks.PARAGRAPH; + } else { + attr.type = RichBlocks.PARAGRAPH; + if (!"li".equals(tag)) { + attr.listType = RichBlocks.LIST_NONE; + } + } + String styleAttr = attrs.get("style"); + if (styleAttr != null) { + String align = cssValue(styleAttr, "text-align"); + if ("center".equals(align)) { + attr.align = RichBlocks.ALIGN_CENTER; + } else if ("right".equals(align)) { + attr.align = RichBlocks.ALIGN_RIGHT; + } else if ("left".equals(align)) { + attr.align = RichBlocks.ALIGN_LEFT; + } + } + String dataIndent = attrs.get("data-indent"); + if (dataIndent != null) { + try { + attr.indent = Integer.parseInt(dataIndent.trim()); + } catch (NumberFormatException err) { + // ignore + } + } + return attr; + } + + private TextStyle applyInlineTag(String tag, TextStyle style, Map attrs) { + if ("b".equals(tag) || "strong".equals(tag)) { + return style.withBold(true); + } + if ("i".equals(tag) || "em".equals(tag)) { + return style.withItalic(true); + } + if ("u".equals(tag)) { + return style.withUnderline(true); + } + if ("s".equals(tag) || "strike".equals(tag) || "del".equals(tag)) { + return style.withStrike(true); + } + if ("a".equals(tag)) { + return style.withUnderline(true).withForeColor(0x1a73e8); + } + if ("span".equals(tag) || "font".equals(tag)) { + TextStyle s = style; + String styleAttr = attrs.get("style"); + if (styleAttr != null) { + int color = parseColor(cssValue(styleAttr, "color")); + if (color >= 0) { + s = s.withForeColor(color); + } + int bg = parseColor(cssValue(styleAttr, "background-color")); + if (bg < 0) { + bg = parseColor(cssValue(styleAttr, "background")); + } + if (bg >= 0) { + s = s.withHighlight(bg); + } + String fw = cssValue(styleAttr, "font-weight"); + if ("bold".equals(fw) || "700".equals(fw)) { + s = s.withBold(true); + } + String fs = cssValue(styleAttr, "font-style"); + if ("italic".equals(fs)) { + s = s.withItalic(true); + } + int level = fontSizeLevel(cssValue(styleAttr, "font-size")); + if (level > 0) { + s = s.withFontSizeLevel(level); + } + } + String colorAttr = attrs.get("color"); + if (colorAttr != null) { + int color = parseColor(colorAttr); + if (color >= 0) { + s = s.withForeColor(color); + } + } + return s; + } + return style; + } + + // ---- model builders ---- + + private void startBlock(RichBlocks.BlockAttr attr) { + if (!freshParagraph) { + text.append('\n'); + styles.add(TextStyle.DEFAULT); + paras.add(attr); + freshParagraph = true; + lastWasSpace = true; + } else if (paras.isEmpty()) { + paras.add(attr); + } else { + paras.set(paras.size() - 1, attr); + } + } + + private void newParagraph(RichBlocks.BlockAttr attr) { + if (paras.isEmpty()) { + paras.add(new RichBlocks.BlockAttr()); + } + text.append('\n'); + styles.add(TextStyle.DEFAULT); + paras.add(attr); + freshParagraph = true; + lastWasSpace = true; + } + + private void appendText(String t) { + if (t == null || t.length() == 0) { + return; + } + if (paras.isEmpty()) { + paras.add(new RichBlocks.BlockAttr()); + } + for (int i = 0; i < t.length(); i++) { + char c = t.charAt(i); + if (c == ' ' || c == '\n' || c == '\r' || c == '\t') { + if (lastWasSpace) { + continue; + } + text.append(' '); + styles.add(current); + lastWasSpace = true; + freshParagraph = false; + } else { + text.append(c); + styles.add(current); + lastWasSpace = false; + freshParagraph = false; + } + } + } + + // ---- entities ---- + + private static String decodeEntities(String s) { + if (s.indexOf('&') < 0) { + return s; + } + StringBuilder sb = new StringBuilder(s.length()); + int i = 0; + int n = s.length(); + while (i < n) { + char c = s.charAt(i); + if (c == '&') { + int semi = s.indexOf(';', i); + if (semi > i && semi - i <= 10) { + String ent = s.substring(i + 1, semi); + String rep = entity(ent); + if (rep != null) { + sb.append(rep); + i = semi + 1; + continue; + } + } + } + sb.append(c); + i++; + } + return sb.toString(); + } + + private static String entity(String ent) { + if ("amp".equals(ent)) { + return "&"; + } + if ("lt".equals(ent)) { + return "<"; + } + if ("gt".equals(ent)) { + return ">"; + } + if ("quot".equals(ent)) { + return "\""; + } + if ("apos".equals(ent)) { + return "'"; + } + if ("nbsp".equals(ent)) { + return " "; + } + if (ent.length() > 1 && ent.charAt(0) == '#') { + try { + int code; + if (ent.charAt(1) == 'x' || ent.charAt(1) == 'X') { + code = Integer.parseInt(ent.substring(2), 16); + } else { + code = Integer.parseInt(ent.substring(1)); + } + return String.valueOf((char) code); + } catch (NumberFormatException err) { + return null; + } + } + return null; + } + + // ---- css helpers ---- + + private static String cssValue(String styleAttr, String prop) { + String lower = styleAttr.toLowerCase(); + int idx = lower.indexOf(prop); + while (idx >= 0) { + boolean boundary = idx == 0 || lower.charAt(idx - 1) == ';' || lower.charAt(idx - 1) == ' '; + int colon = lower.indexOf(':', idx); + if (boundary && colon == idx + prop.length()) { + int end = lower.indexOf(';', colon); + if (end < 0) { + end = styleAttr.length(); + } + return styleAttr.substring(colon + 1, end).trim(); + } + idx = lower.indexOf(prop, idx + 1); + } + return null; + } + + private static int parseColor(String v) { + if (v == null) { + return -1; + } + v = v.trim(); + if (v.startsWith("#")) { + String hex = v.substring(1); + if (hex.length() == 3) { + char r = hex.charAt(0); + char g = hex.charAt(1); + char b = hex.charAt(2); + hex = "" + r + r + g + g + b + b; + } + if (hex.length() >= 6) { + try { + return Integer.parseInt(hex.substring(0, 6), 16); + } catch (NumberFormatException err) { + return -1; + } + } + return -1; + } + if (v.startsWith("rgb")) { + int open = v.indexOf('('); + int close = v.indexOf(')'); + if (open >= 0 && close > open) { + String[] parts = split(v.substring(open + 1, close), ','); + if (parts.length >= 3) { + try { + int r = Integer.parseInt(parts[0].trim()); + int g = Integer.parseInt(parts[1].trim()); + int b = Integer.parseInt(parts[2].trim()); + return ((r & 0xff) << 16) | ((g & 0xff) << 8) | (b & 0xff); + } catch (NumberFormatException err) { + return -1; + } + } + } + } + return -1; + } + + private static int fontSizeLevel(String v) { + if (v == null) { + return 0; + } + v = v.trim(); + if (v.endsWith("%")) { + try { + int pct = Integer.parseInt(v.substring(0, v.length() - 1).trim()); + if (pct <= 70) { + return 1; + } + if (pct <= 85) { + return 2; + } + if (pct <= 100) { + return 3; + } + if (pct <= 115) { + return 4; + } + if (pct <= 150) { + return 5; + } + if (pct <= 200) { + return 6; + } + return 7; + } catch (NumberFormatException err) { + return 0; + } + } + return 0; + } + + private static String[] split(String s, char c) { + List out = new ArrayList(); + int start = 0; + for (int i = 0; i < s.length(); i++) { + if (s.charAt(i) == c) { + out.add(s.substring(start, i)); + start = i + 1; + } + } + out.add(s.substring(start)); + return out.toArray(new String[out.size()]); + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/HtmlSerializer.java b/CodenameOne/src/com/codename1/ui/editor/HtmlSerializer.java new file mode 100644 index 00000000000..cba49fdc1b3 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/HtmlSerializer.java @@ -0,0 +1,211 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +/// Serializes the pure rich text editor model (text + `InlineStyles` + `RichBlocks`) back into an HTML +/// string for `RichTextArea#getHtml`. The output is model canonical rather than byte identical, which +/// matches how a `contenteditable` surface normalized HTML in the previous backend. +public final class HtmlSerializer { + private HtmlSerializer() { + } + + /// Serializes the model into HTML. + /// + /// #### Parameters + /// + /// - `doc`: the text document + /// + /// - `inline`: the inline style model + /// + /// - `blocks`: the block attribute model + public static String serialize(EditorDocument doc, InlineStyles inline, RichBlocks blocks) { + StringBuilder sb = new StringBuilder(); + String currentList = null; + int lineCount = doc.getLineCount(); + for (int p = 0; p < lineCount; p++) { + RichBlocks.BlockAttr b = blocks.get(p); + String desiredList = b.listType == RichBlocks.LIST_ORDERED ? "ol" + : b.listType == RichBlocks.LIST_UNORDERED ? "ul" : null; + if (!eq(desiredList, currentList)) { + if (currentList != null) { + sb.append(""); + } + if (desiredList != null) { + sb.append("<").append(desiredList).append(">"); + } + currentList = desiredList; + } + String tag = desiredList != null ? "li" : tagForType(b.type); + sb.append("<").append(tag).append(alignAttr(b.align)).append(indentAttr(b.indent)).append(">"); + appendInline(sb, doc, inline, p); + sb.append(""); + } + if (currentList != null) { + sb.append(""); + } + return sb.toString(); + } + + private static void appendInline(StringBuilder sb, EditorDocument doc, InlineStyles inline, int paragraph) { + int start = doc.getLineStart(paragraph); + String text = doc.getLineText(paragraph); + int col = 0; + while (col < text.length()) { + TextStyle st = inline.styleAt(start + col); + int end = col + 1; + while (end < text.length() && inline.styleAt(start + end).equals(st)) { + end++; + } + appendRun(sb, st, text.substring(col, end)); + col = end; + } + } + + private static void appendRun(StringBuilder sb, TextStyle st, String text) { + StringBuilder span = new StringBuilder(); + if (st.getForeColor() >= 0) { + span.append("color:").append(css(st.getForeColor())).append(";"); + } + if (st.getHighlight() >= 0) { + span.append("background-color:").append(css(st.getHighlight())).append(";"); + } + if (st.getFontSizeLevel() > 0) { + span.append("font-size:").append(fontSizePercent(st.getFontSizeLevel())).append("%;"); + } + boolean hasSpan = span.length() > 0; + if (hasSpan) { + sb.append(""); + } + if (st.isBold()) { + sb.append(""); + } + if (st.isItalic()) { + sb.append(""); + } + if (st.isUnderline()) { + sb.append(""); + } + if (st.isStrike()) { + sb.append(""); + } + sb.append(escape(text)); + if (st.isStrike()) { + sb.append(""); + } + if (st.isUnderline()) { + sb.append(""); + } + if (st.isItalic()) { + sb.append(""); + } + if (st.isBold()) { + sb.append(""); + } + if (hasSpan) { + sb.append(""); + } + } + + private static String tagForType(int type) { + if (type >= RichBlocks.H1 && type <= RichBlocks.H1 + 5) { + return "h" + (type - RichBlocks.H1 + 1); + } + if (type == RichBlocks.PRE) { + return "pre"; + } + if (type == RichBlocks.BLOCKQUOTE) { + return "blockquote"; + } + return "p"; + } + + private static String alignAttr(int align) { + if (align == RichBlocks.ALIGN_CENTER) { + return " style=\"text-align:center\""; + } + if (align == RichBlocks.ALIGN_RIGHT) { + return " style=\"text-align:right\""; + } + return ""; + } + + private static String indentAttr(int indent) { + if (indent > 0) { + return " data-indent=\"" + indent + "\""; + } + return ""; + } + + private static int fontSizePercent(int level) { + switch (level) { + case 1: + return 70; + case 2: + return 85; + case 4: + return 115; + case 5: + return 150; + case 6: + return 200; + case 7: + return 250; + default: + return 100; + } + } + + private static String css(int rgb) { + String s = Integer.toHexString(rgb & 0xffffff); + while (s.length() < 6) { + s = "0" + s; + } + return "#" + s; + } + + private static boolean eq(String a, String b) { + return a == null ? b == null : a.equals(b); + } + + private static String escape(String s) { + StringBuilder sb = new StringBuilder(s.length()); + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + if (c == '\uFFFC') { + // object-replacement char for an inline image; images are not serialized to HTML yet + continue; + } + if (c == '&') { + sb.append("&"); + } else if (c == '<') { + sb.append("<"); + } else if (c == '>') { + sb.append(">"); + } else { + sb.append(c); + } + } + return sb.toString(); + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/InlineStyles.java b/CodenameOne/src/com/codename1/ui/editor/InlineStyles.java new file mode 100644 index 00000000000..25e4fd9f36b --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/InlineStyles.java @@ -0,0 +1,144 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import java.util.ArrayList; +import java.util.List; + +/// The per character inline style model for the pure rich text editor. It keeps one `TextStyle` +/// reference for every character in the document, kept in lockstep with the text through `#applyEdit`. +/// Runs of identical style are coalesced only at render time, which keeps edits simple and correct at +/// the cost of one reference per character (rich documents are small enough for this to be a non issue). +public final class InlineStyles { + /// A transform applied to a character's style, used to toggle bold, set a color, etc. + public interface StyleTransform { + /// Returns the new style for a character that currently has `current`. + TextStyle apply(TextStyle current); + } + + private final List perChar = new ArrayList(); + + /// Creates a model of the given length, all default style. + public InlineStyles(int length) { + reset(length); + } + + /// Resets the model to the given length, all default style. + public void reset(int length) { + perChar.clear(); + for (int i = 0; i < length; i++) { + perChar.add(TextStyle.DEFAULT); + } + } + + /// Returns the number of characters covered. + public int length() { + return perChar.size(); + } + + /// Returns the style of the character at `index`, or the default style out of range. + public TextStyle styleAt(int index) { + if (index < 0 || index >= perChar.size()) { + return TextStyle.DEFAULT; + } + return perChar.get(index); + } + + /// Keeps the model in sync with a text replacement: removes `removedLen` styles at `start` and + /// inserts `insertedLen` copies of `style`. + /// + /// #### Parameters + /// + /// - `start`: the offset of the edit + /// + /// - `removedLen`: number of characters removed + /// + /// - `insertedLen`: number of characters inserted + /// + /// - `style`: the style applied to the inserted characters + public void applyEdit(int start, int removedLen, int insertedLen, TextStyle style) { + start = clamp(start); + int end = clamp(start + removedLen); + if (end > start) { + perChar.subList(start, end).clear(); + } + if (insertedLen > 0) { + List ins = new ArrayList(insertedLen); + TextStyle s = style == null ? TextStyle.DEFAULT : style; + for (int i = 0; i < insertedLen; i++) { + ins.add(s); + } + perChar.addAll(Math.min(start, perChar.size()), ins); + } + } + + /// Sets the style of a single character. + public void setAt(int index, TextStyle style) { + if (index >= 0 && index < perChar.size()) { + perChar.set(index, style == null ? TextStyle.DEFAULT : style); + } + } + + /// Applies a transform to every character's style in `[start, end)`. + public void transformRange(int start, int end, StyleTransform t) { + start = clamp(start); + end = clamp(end); + for (int i = start; i < end; i++) { + perChar.set(i, t.apply(perChar.get(i))); + } + } + + /// True when every character in `[start, end)` satisfies the predicate. An empty range checks the + /// character just before the caret (the style typing would continue with). + public boolean allInRange(int start, int end, StylePredicate p) { + if (start >= end) { + int probe = start - 1; + return p.test(styleAt(probe < 0 ? 0 : probe)); + } + start = clamp(start); + end = clamp(end); + for (int i = start; i < end; i++) { + if (!p.test(perChar.get(i))) { + return false; + } + } + return true; + } + + /// A predicate over a style, used by `#allInRange`. + public interface StylePredicate { + /// Returns true when `style` satisfies the predicate. + boolean test(TextStyle style); + } + + private int clamp(int v) { + if (v < 0) { + return 0; + } + if (v > perChar.size()) { + return perChar.size(); + } + return v; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java b/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java new file mode 100644 index 00000000000..62eecf04b7f --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java @@ -0,0 +1,167 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import java.util.HashSet; +import java.util.Set; + +/// Describes the lexical rules of a programming language for the pure code editor's tokenizer: its +/// keyword set, comment styles, string delimiters and number syntax. The keyword lists match the ones +/// the previous `BrowserComponent` highlighter used. +public final class LanguageDef { + private final Set keywords; + private final boolean lineCommentSlash; + private final boolean lineCommentHash; + private final boolean blockComment; + private final boolean templateString; + private final boolean plain; + + private LanguageDef(String[] keywords, boolean lineCommentSlash, boolean lineCommentHash, + boolean blockComment, boolean templateString, boolean plain) { + this.keywords = new HashSet(); + for (int i = 0; i < keywords.length; i++) { + this.keywords.add(keywords[i]); + } + this.lineCommentSlash = lineCommentSlash; + this.lineCommentHash = lineCommentHash; + this.blockComment = blockComment; + this.templateString = templateString; + this.plain = plain; + } + + /// True for plain text (no syntax highlighting at all). + public boolean isPlain() { + return plain; + } + + /// True when `word` is a keyword in this language. + public boolean isKeyword(String word) { + return keywords.contains(word); + } + + /// True when `//` starts a line comment. + public boolean hasLineCommentSlash() { + return lineCommentSlash; + } + + /// True when `#` starts a line comment. + public boolean hasLineCommentHash() { + return lineCommentHash; + } + + /// True when `/* */` block comments are supported. + public boolean hasBlockComment() { + return blockComment; + } + + /// True when backtick template strings (which may span lines) are supported. + public boolean hasTemplateString() { + return templateString; + } + + private static final String[] JAVA = { + "abstract", "assert", "boolean", "break", "byte", "case", "catch", "char", "class", "const", + "continue", "default", "do", "double", "else", "enum", "extends", "final", "finally", "float", + "for", "goto", "if", "implements", "import", "instanceof", "int", "interface", "long", "native", + "new", "package", "private", "protected", "public", "return", "short", "static", "strictfp", + "super", "switch", "synchronized", "this", "throw", "throws", "transient", "try", "void", + "volatile", "while", "true", "false", "null", "var", "record", "sealed" + }; + + private static final String[] KOTLIN = { + "as", "break", "by", "class", "continue", "do", "else", "false", "for", "fun", "if", "in", + "interface", "is", "null", "object", "package", "return", "super", "this", "throw", "true", + "try", "typealias", "val", "var", "when", "while", "abstract", "final", "open", "override", + "private", "protected", "public", "internal", "companion", "data", "sealed", "suspend" + }; + + private static final String[] JAVASCRIPT = { + "await", "async", "break", "case", "catch", "class", "const", "continue", "debugger", "default", + "delete", "do", "else", "export", "extends", "false", "finally", "for", "function", "if", + "import", "in", "instanceof", "let", "new", "null", "return", "super", "switch", "this", "throw", + "true", "try", "typeof", "var", "void", "while", "with", "yield", "of", "static", "get", "set" + }; + + private static final String[] PYTHON = { + "and", "as", "assert", "async", "await", "break", "class", "continue", "def", "del", "elif", + "else", "except", "False", "finally", "for", "from", "global", "if", "import", "in", "is", + "lambda", "None", "nonlocal", "not", "or", "pass", "raise", "return", "True", "try", "while", + "with", "yield", "self" + }; + + private static final String[] CSS = { + "important", "inherit", "initial", "unset", "auto", "none", "flex", "grid", "block", "inline", + "absolute", "relative", "fixed", "static" + }; + + private static final String[] JSON = {"true", "false", "null"}; + + private static final String[] XML = {}; + + private static final String[] C = { + "auto", "break", "case", "char", "const", "continue", "default", "do", "double", "else", "enum", + "extern", "float", "for", "goto", "if", "int", "long", "register", "return", "short", "signed", + "sizeof", "static", "struct", "switch", "typedef", "union", "unsigned", "void", "volatile", "while" + }; + + private static final LanguageDef DEF_JAVA = new LanguageDef(JAVA, true, false, true, false, false); + private static final LanguageDef DEF_KOTLIN = new LanguageDef(KOTLIN, true, false, true, false, false); + private static final LanguageDef DEF_JAVASCRIPT = new LanguageDef(JAVASCRIPT, true, false, true, true, false); + private static final LanguageDef DEF_PYTHON = new LanguageDef(PYTHON, false, true, false, false, false); + private static final LanguageDef DEF_CSS = new LanguageDef(CSS, true, false, true, false, false); + private static final LanguageDef DEF_JSON = new LanguageDef(JSON, false, false, false, false, false); + private static final LanguageDef DEF_XML = new LanguageDef(XML, false, false, false, false, false); + private static final LanguageDef DEF_C = new LanguageDef(C, true, false, true, false, false); + private static final LanguageDef DEF_TEXT = new LanguageDef(XML, false, false, false, false, true); + + /// Returns the language definition for the given language id, defaulting to a plain text definition + /// (no highlighting) for unknown ids. + public static LanguageDef forName(String language) { + if ("java".equals(language)) { + return DEF_JAVA; + } + if ("kotlin".equals(language)) { + return DEF_KOTLIN; + } + if ("javascript".equals(language) || "js".equals(language)) { + return DEF_JAVASCRIPT; + } + if ("python".equals(language) || "py".equals(language)) { + return DEF_PYTHON; + } + if ("css".equals(language)) { + return DEF_CSS; + } + if ("json".equals(language)) { + return DEF_JSON; + } + if ("xml".equals(language) || "html".equals(language)) { + return DEF_XML; + } + if ("c".equals(language) || "cpp".equals(language) || "c++".equals(language)) { + return DEF_C; + } + return DEF_TEXT; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/PureEditor.java b/CodenameOne/src/com/codename1/ui/editor/PureEditor.java new file mode 100644 index 00000000000..f8b4445cf74 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/PureEditor.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.ui.Component; + +/// The pure Codename One editor backend. It owns an `EditorView` and translates the semantic +/// command / query vocabulary spoken by `RichTextArea` and `CodeEditor` (the same strings the +/// `BrowserComponent` backend understands) into operations on the pure text engine. +/// +/// This base class handles the shared, plain text portion of the vocabulary. The rich text and code +/// feature layers subclass it (and subclass `EditorView`) to add styling, syntax highlighting, the +/// gutter, completion and diagnostics. +public class PureEditor { + private final EditorView view; + private final boolean codeMode; + + /// Creates a pure editor backend. + /// + /// #### Parameters + /// + /// - `host`: the bridge to the owning editor component + /// + /// - `editorType`: `"code"` or `"richtext"` + public PureEditor(EditorHost host, String editorType) { + this.codeMode = "code".equals(editorType); + this.view = createView(host, codeMode); + } + + /// Creates the editor view. Subclasses override to supply a code or rich text view. + protected EditorView createView(EditorHost host, boolean codeMode) { + return new EditorView(host, codeMode); + } + + /// Returns the editing surface component to place in the editor container. + public Component getView() { + return view; + } + + /// Returns the underlying editor view. + protected EditorView view() { + return view; + } + + /// True for a code editor backend. + protected boolean isCodeMode() { + return codeMode; + } + + /// Executes a one way command. Unknown commands are ignored so subclasses can add vocabulary without + /// breaking the base. + /// + /// #### Parameters + /// + /// - `name`: the command name + /// + /// - `arg`: the optional argument, may be null + public void cmd(String name, String arg) { + if ("setText".equals(name) || "setHtml".equals(name)) { + view.setText(arg == null ? "" : arg); + return; + } + if ("insertText".equals(name) || "insertHtml".equals(name)) { + view.insertText(arg == null ? "" : arg); + return; + } + if ("setEditable".equals(name)) { + view.setEditableState("1".equals(arg)); + return; + } + if ("focus".equals(name)) { + view.requestFocus(); + return; + } + if ("undo".equals(name)) { + view.performUndo(); + return; + } + if ("redo".equals(name)) { + view.performRedo(); + return; + } + // remaining rich / code commands are handled by subclasses; ignore here + } + + /// Executes a query returning a string result. Unknown queries return an empty string. + /// + /// #### Parameters + /// + /// - `name`: the query name + /// + /// - `arg`: the optional argument, may be null + public String query(String name, String arg) { + if ("getText".equals(name)) { + return view.getText(); + } + if ("getHtml".equals(name)) { + return view.getText(); + } + if ("getCursor".equals(name)) { + return String.valueOf(view.getCaretOffset()); + } + if ("state".equals(name)) { + return "0"; + } + return ""; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/RichBlocks.java b/CodenameOne/src/com/codename1/ui/editor/RichBlocks.java new file mode 100644 index 00000000000..5e0db3a6876 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/RichBlocks.java @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import java.util.ArrayList; +import java.util.List; + +/// The per paragraph block attribute model for the pure rich text editor. Each logical line (paragraph, +/// delimited by newlines) has a `BlockAttr` describing its block type (paragraph / heading / preformatted +/// / blockquote), text alignment, list membership and indentation. The model is kept in lockstep with the +/// paragraph structure through `#applyEdit`. +public final class RichBlocks { + /// Block type: a normal paragraph. + public static final int PARAGRAPH = 0; + /// Block type: heading level 1 through 6 are `H1`..`H1 + 5`. + public static final int H1 = 1; + /// Block type: preformatted text. + public static final int PRE = 7; + /// Block type: a block quote. + public static final int BLOCKQUOTE = 8; + + /// Left alignment. + public static final int ALIGN_LEFT = 0; + /// Center alignment. + public static final int ALIGN_CENTER = 1; + /// Right alignment. + public static final int ALIGN_RIGHT = 2; + + /// Not a list item. + public static final int LIST_NONE = 0; + /// An ordered (numbered) list item. + public static final int LIST_ORDERED = 1; + /// An unordered (bulleted) list item. + public static final int LIST_UNORDERED = 2; + + /// A single paragraph's block attributes. + public static final class BlockAttr { + /// The block type (`PARAGRAPH`, `H1`..`H1+5`, `PRE`, `BLOCKQUOTE`). + public int type = PARAGRAPH; + /// The text alignment (`ALIGN_*`). + public int align = ALIGN_LEFT; + /// The list membership (`LIST_*`). + public int listType = LIST_NONE; + /// The indentation depth (0 or more). + public int indent; + + BlockAttr copy() { + BlockAttr b = new BlockAttr(); + b.type = type; + b.align = align; + b.listType = listType; + b.indent = indent; + return b; + } + } + + private final List blocks = new ArrayList(); + + /// Creates a model with the given paragraph count, all default paragraphs. + public RichBlocks(int paragraphCount) { + reset(paragraphCount); + } + + /// Resets the model to the given paragraph count, all default paragraphs. + public void reset(int paragraphCount) { + blocks.clear(); + for (int i = 0; i < Math.max(1, paragraphCount); i++) { + blocks.add(new BlockAttr()); + } + } + + /// Returns the number of paragraphs. + public int count() { + return blocks.size(); + } + + /// Returns the block attributes for the given paragraph (clamped to the valid range). + public BlockAttr get(int paragraph) { + if (paragraph < 0) { + paragraph = 0; + } + if (paragraph >= blocks.size()) { + paragraph = blocks.size() - 1; + } + return blocks.get(paragraph); + } + + /// Keeps the model in sync with a text edit that changed the paragraph structure. + /// + /// #### Parameters + /// + /// - `startParagraph`: the paragraph containing the edit offset + /// + /// - `removedNewlines`: number of newlines in the removed text (paragraphs merged away) + /// + /// - `addedNewlines`: number of newlines in the inserted text (paragraphs created) + public void applyEdit(int startParagraph, int removedNewlines, int addedNewlines) { + if (startParagraph < 0) { + startParagraph = 0; + } + if (startParagraph >= blocks.size()) { + startParagraph = blocks.size() - 1; + } + for (int i = 0; i < removedNewlines; i++) { + int idx = startParagraph + 1; + if (idx < blocks.size()) { + blocks.remove(idx); + } + } + BlockAttr base = blocks.get(startParagraph); + for (int i = 0; i < addedNewlines; i++) { + blocks.add(startParagraph + 1 + i, base.copy()); + } + if (blocks.isEmpty()) { + blocks.add(new BlockAttr()); + } + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java b/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java new file mode 100644 index 00000000000..911355da977 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java @@ -0,0 +1,212 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +/// The pure rich text editor backend. It maps the `RichTextArea` command / query vocabulary onto a +/// `RichView`, converting the HTML exchanged with the application to and from the editor's inline / block +/// model. +public class RichPureEditor extends PureEditor { + private RichView rich; + + /// Creates a rich text editor backend. + public RichPureEditor(EditorHost host, String editorType) { + super(host, editorType); + rich = (RichView) view(); + } + + @Override + protected EditorView createView(EditorHost host, boolean codeMode) { + return new RichView(host); + } + + @Override + public void cmd(String name, String arg) { + if ("setHtml".equals(name)) { + HtmlImporter.Result r = HtmlImporter.parse(arg == null ? "" : arg); + rich.importContent(r.getText(), r.getStyles(), r.getBlocks()); + return; + } + if ("insertHtml".equals(name)) { + HtmlImporter.Result r = HtmlImporter.parse(arg == null ? "" : arg); + rich.insertText(r.getText()); + return; + } + if ("insertImage".equals(name)) { + com.codename1.ui.Image img = loadImage(arg); + if (img != null) { + rich.insertImageObject(img); + } + return; + } + if ("setPlaceholder".equals(name)) { + rich.setPlaceholder(arg); + return; + } + if ("bold".equals(name)) { + rich.toggleBold(); + return; + } + if ("italic".equals(name)) { + rich.toggleItalic(); + return; + } + if ("underline".equals(name)) { + rich.toggleUnderline(); + return; + } + if ("strikeThrough".equals(name)) { + rich.toggleStrike(); + return; + } + if ("insertOrderedList".equals(name)) { + rich.setList(RichBlocks.LIST_ORDERED); + return; + } + if ("insertUnorderedList".equals(name)) { + rich.setList(RichBlocks.LIST_UNORDERED); + return; + } + if ("indent".equals(name)) { + rich.indentBlocks(); + return; + } + if ("outdent".equals(name)) { + rich.outdentBlocks(); + return; + } + if ("justifyLeft".equals(name)) { + rich.setAlign(RichBlocks.ALIGN_LEFT); + return; + } + if ("justifyCenter".equals(name)) { + rich.setAlign(RichBlocks.ALIGN_CENTER); + return; + } + if ("justifyRight".equals(name)) { + rich.setAlign(RichBlocks.ALIGN_RIGHT); + return; + } + if ("createLink".equals(name)) { + rich.applyLink(); + return; + } + if ("unlink".equals(name)) { + rich.removeLinkStyle(); + return; + } + if ("foreColor".equals(name)) { + rich.setForeColor(parseCss(arg)); + return; + } + if ("hiliteColor".equals(name)) { + rich.setHighlight(parseCss(arg)); + return; + } + if ("formatBlock".equals(name)) { + rich.setBlockFormat(arg); + return; + } + if ("fontSize".equals(name)) { + rich.setFontSizeLevel(parseInt(arg)); + return; + } + if ("removeFormat".equals(name)) { + rich.removeFormat(); + return; + } + super.cmd(name, arg); + } + + @Override + public String query(String name, String arg) { + if ("getHtml".equals(name)) { + return HtmlSerializer.serialize(rich.getDocument(), rich.getInlineStyles(), rich.getBlocks()); + } + if ("getText".equals(name)) { + return rich.getText(); + } + if ("state".equals(name)) { + return rich.queryState(arg) ? "1" : "0"; + } + return super.query(name, arg); + } + + private static int parseCss(String v) { + if (v == null) { + return 0; + } + v = v.trim(); + if (v.startsWith("#")) { + v = v.substring(1); + } + if (v.length() == 3) { + char r = v.charAt(0); + char g = v.charAt(1); + char b = v.charAt(2); + v = "" + r + r + g + g + b + b; + } + try { + return Integer.parseInt(v.length() >= 6 ? v.substring(0, 6) : v, 16); + } catch (NumberFormatException err) { + return 0; + } + } + + private static com.codename1.ui.Image loadImage(String url) { + if (url == null || url.length() == 0) { + return null; + } + try { + if (url.startsWith("gen:")) { + // gen:WxH:RRGGBB - a generated solid color image (handy for demos / placeholders) + String s = url.substring(4); + int xi = s.indexOf('x'); + int ci = s.indexOf(':', xi); + int w = Integer.parseInt(s.substring(0, xi)); + int h = Integer.parseInt(s.substring(xi + 1, ci)); + int color = Integer.parseInt(s.substring(ci + 1), 16); + return com.codename1.ui.Image.createImage(w, h, 0xff000000 | color); + } + int comma = url.indexOf(','); + if (url.startsWith("data:") && url.indexOf(";base64,") > 0 && comma > 0) { + byte[] data = com.codename1.util.Base64.decode(url.substring(comma + 1).getBytes()); + return com.codename1.ui.Image.createImage(data, 0, data.length); + } + return com.codename1.ui.Image.createImage(url); + } catch (Throwable t) { + return null; + } + } + + private static int parseInt(String s) { + if (s == null) { + return 0; + } + try { + return Integer.parseInt(s.trim()); + } catch (NumberFormatException err) { + return 0; + } + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/RichView.java b/CodenameOne/src/com/codename1/ui/editor/RichView.java new file mode 100644 index 00000000000..65226b560e7 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/RichView.java @@ -0,0 +1,903 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.ui.Display; +import com.codename1.ui.Font; +import com.codename1.ui.Graphics; +import com.codename1.ui.Image; +import com.codename1.ui.plaf.Style; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/// The pure rich text editor surface. It renders styled text (bold / italic / underline / strike, +/// foreground and highlight color, relative font size) organized into paragraphs with block attributes +/// (headings, preformatted, block quotes, alignment, ordered / unordered lists and indentation) on top +/// of the shared `EditorView` engine, keeping a parallel `InlineStyles` and `RichBlocks` model in lockstep +/// with the text. +public class RichView extends EditorView { + private InlineStyles inline = new InlineStyles(0); + private RichBlocks blocks = new RichBlocks(1); + private TextStyle pendingStyle; + private String placeholder = ""; + + // parallel to the document characters: an inline image for each object-replacement char, else null + private static final char OBJ = '\uFFFC'; + private final List imageRuns = new ArrayList(); + + private Font baseTtf; + private final Map fontCache = new HashMap(); + + /// Creates a rich text view. + public RichView(EditorHost host) { + super(host, false); + setBackgroundColor(0xffffff); + setTextColor(0x24292e); + setSelectionColor(0xb3d4fc); + } + + // ---- model access for the backend ---- + + /// Returns the inline style model. + public InlineStyles getInlineStyles() { + return inline; + } + + /// Returns the block attribute model. + public RichBlocks getBlocks() { + return blocks; + } + + /// Replaces the document with imported content: text plus per character styles and per paragraph + /// block attributes. Used by the HTML importer. + /// + /// #### Parameters + /// + /// - `text`: the plain text + /// + /// - `perChar`: one style per character (may be shorter; missing entries default) + /// + /// - `blockList`: one block attribute per paragraph (may be shorter; missing entries default) + public void importContent(String text, java.util.List perChar, java.util.List blockList) { + setText(text); + for (int i = 0; i < perChar.size() && i < inline.length(); i++) { + inline.setAt(i, perChar.get(i)); + } + for (int i = 0; i < blockList.size() && i < blocks.count(); i++) { + RichBlocks.BlockAttr dst = blocks.get(i); + RichBlocks.BlockAttr src = blockList.get(i); + dst.type = src.type; + dst.align = src.align; + dst.listType = src.listType; + dst.indent = src.indent; + } + invalidateLayout(); + repaint(); + } + + /// Sets the placeholder text shown when the document is empty. + public void setPlaceholder(String text) { + this.placeholder = text == null ? "" : text; + repaint(); + } + + // ---- fonts ---- + + private int baseSize() { + return super.getEditorFont().getHeight(); + } + + private Font fontFor(boolean bold, boolean italic, int px) { + Font base = super.getEditorFont(); + if (base != baseTtf) { + // the style font changed (skin / theme reload) - drop stale derived fonts + baseTtf = base; + fontCache.clear(); + } + if (!base.isTTFNativeFont()) { + // cannot derive size / weight from a non TTF font; use it as-is (correct size, no squares) + return base; + } + if (px < 6) { + px = 6; + } + long key = ((long) px << 2) | (bold ? 2 : 0) | (italic ? 1 : 0); + Font f = fontCache.get(Long.valueOf(key)); + if (f != null) { + return f; + } + int style = (bold ? Font.STYLE_BOLD : 0) | (italic ? Font.STYLE_ITALIC : 0); + try { + f = base.derive(px, style); + } catch (Throwable t) { + f = base; + } + fontCache.put(Long.valueOf(key), f); + return f; + } + + private static float headingScale(int type) { + if (type == RichBlocks.H1) { + return 2.0f; + } + if (type == RichBlocks.H1 + 1) { + return 1.5f; + } + if (type == RichBlocks.H1 + 2) { + return 1.25f; + } + if (type == RichBlocks.H1 + 3) { + return 1.1f; + } + if (type == RichBlocks.H1 + 4) { + return 0.9f; + } + if (type == RichBlocks.H1 + 5) { + return 0.8f; + } + return 1.0f; + } + + private static boolean isHeading(int type) { + return type >= RichBlocks.H1 && type <= RichBlocks.H1 + 5; + } + + private static float sizeLevelScale(int level) { + switch (level) { + case 1: + return 0.7f; + case 2: + return 0.85f; + case 4: + return 1.15f; + case 5: + return 1.5f; + case 6: + return 2.0f; + case 7: + return 2.5f; + default: + return 1.0f; + } + } + + private int runPx(int blockType, int level) { + return Math.round(baseSize() * headingScale(blockType) * sizeLevelScale(level)); + } + + @Override + protected boolean uniformLineHeight() { + return false; + } + + @Override + protected int lineHeightAt(int line) { + RichBlocks.BlockAttr b = blocks.get(line); + int lineStart = getDocument().getLineStart(line); + String text = getDocument().getLineText(line); + int maxLevel = 0; + for (int i = 0; i < text.length(); i++) { + int lv = inline.styleAt(lineStart + i).getFontSizeLevel(); + if (lv > maxLevel) { + maxLevel = lv; + } + } + int px = runPx(b.type, maxLevel); + int h = fontFor(isHeading(b.type), false, px).getHeight(); + int textH = h + Math.max(2, h / 6); + int imgH = 0; + for (int i = 0; i < text.length(); i++) { + if (text.charAt(i) == OBJ) { + Image im = imageAt(lineStart + i); + if (im != null) { + imgH = Math.max(imgH, imageDisplayHeight(im)); + } + } + } + return Math.max(textH, imgH + 4); + } + + // ---- model sync ---- + + @Override + protected void documentReset() { + inline.reset(getDocument().length()); + blocks.reset(getDocument().getLineCount()); + imageRuns.clear(); + int len = getDocument().length(); + for (int i = 0; i < len; i++) { + imageRuns.add(null); + } + pendingStyle = null; + invalidateLayout(); + } + + @Override + protected void documentReplaced(int start, String removed, String inserted) { + TextStyle ins = pendingStyle != null ? pendingStyle + : (start > 0 ? inline.styleAt(start - 1) : TextStyle.DEFAULT); + inline.applyEdit(start, removed.length(), inserted.length(), ins); + int rem = removed.length(); + for (int i = 0; i < rem && start < imageRuns.size(); i++) { + imageRuns.remove(start); + } + for (int i = 0; i < inserted.length(); i++) { + imageRuns.add(Math.min(start + i, imageRuns.size()), null); + } + int para = getDocument().lineOfOffset(start); + blocks.applyEdit(para, countNewlines(removed), countNewlines(inserted)); + invalidateLayout(); + } + + private Image imageAt(int offset) { + return offset >= 0 && offset < imageRuns.size() ? imageRuns.get(offset) : null; + } + + private int imageDisplayWidth(Image img) { + int maxW = Math.max(16, contentWidth() - baseSize()); + int w = img.getWidth(); + return Math.min(w, maxW); + } + + private int imageDisplayHeight(Image img) { + int w = img.getWidth(); + int h = img.getHeight(); + int dw = imageDisplayWidth(img); + return w > 0 ? h * dw / w : h; + } + + /// Inserts an inline image at the caret (replacing any selection). + public void insertImageObject(Image img) { + if (!isEditableState() || img == null) { + return; + } + int at = getSelectionStart(); + replaceRange(getSelectionStart(), getSelectionEnd(), String.valueOf(OBJ), true); + if (at < imageRuns.size()) { + imageRuns.set(at, img); + } + invalidateLayout(); + repaint(); + } + + private static int countNewlines(String s) { + int n = 0; + for (int i = 0; i < s.length(); i++) { + if (s.charAt(i) == '\n') { + n++; + } + } + return n; + } + + @Override + public void moveCaret(int newCaret, boolean extend) { + pendingStyle = null; + super.moveCaret(newCaret, extend); + } + + private TextStyle styleAtCaret() { + int c = getCaretOffset(); + return inline.styleAt(c > 0 ? c - 1 : 0); + } + + // ---- rendering ---- + + private String listPrefix(int line, RichBlocks.BlockAttr b) { + if (b.listType == RichBlocks.LIST_UNORDERED) { + return "\u2022 "; + } + if (b.listType == RichBlocks.LIST_ORDERED) { + return ordinal(line) + ". "; + } + return null; + } + + private int prefixWidth(int line, RichBlocks.BlockAttr b) { + String p = listPrefix(line, b); + if (p == null) { + return 0; + } + return fontFor(false, false, runPx(b.type, 0)).stringWidth(p); + } + + // ---- bidi atom layout: a line is split into atoms that are single bidi level + single inline style + // (an inline image is one atom); the atoms are reordered into visual order so mixed LTR/RTL styled + // text lays out, hit tests and paints correctly while each atom keeps its own font. ---- + + /// Splits a line into atoms in logical order. Each atom is `{logStart, logEnd, level, isImage}`. + private java.util.List richAtomsLogical(String text, int lineStart, byte[] levels) { + java.util.List atoms = new java.util.ArrayList(); + int c = 0; + int n = text.length(); + while (c < n) { + if (text.charAt(c) == OBJ && imageAt(lineStart + c) != null) { + atoms.add(new int[]{c, c + 1, levels[c], 1}); + c++; + continue; + } + TextStyle st = inline.styleAt(lineStart + c); + int lvl = levels[c]; + int e = c + 1; + while (e < n && text.charAt(e) != OBJ && levels[e] == lvl + && inline.styleAt(lineStart + e).equals(st)) { + e++; + } + atoms.add(new int[]{c, e, lvl, 0}); + c = e; + } + return atoms; + } + + /// Pixel width of `text[from, to)` measured with the inline style at `from` (the atom is single style). + private int styledWidth(String text, int lineStart, int from, int to, RichBlocks.BlockAttr b) { + if (to <= from) { + return 0; + } + TextStyle st = inline.styleAt(lineStart + from); + Font rf = fontFor(st.isBold() || isHeading(b.type), st.isItalic(), runPx(b.type, st.getFontSizeLevel())); + return rf.stringWidth(text.substring(from, to)); + } + + private int atomWidth(String text, int lineStart, int[] atom, RichBlocks.BlockAttr b) { + if (atom[3] == 1) { + Image img = imageAt(lineStart + atom[0]); + return img != null ? imageDisplayWidth(img) : 0; + } + return styledWidth(text, lineStart, atom[0], atom[1], b); + } + + /// Visual (left to right) atom layout: each entry is `{logStart, logEnd, level, isImage, xLeft, width}`. + private int[][] richVisualAtoms(int line, String text, int lineStart) { + byte[] levels = BidiUtil.resolveLevels(text, isRTL()); + java.util.List logical = richAtomsLogical(text, lineStart, levels); + byte[] al = new byte[logical.size()]; + for (int i = 0; i < al.length; i++) { + al[i] = (byte) logical.get(i)[2]; + } + int[] vis = BidiUtil.reorderVisual(al); + RichBlocks.BlockAttr b = blocks.get(line); + int[][] out = new int[vis.length][6]; + int x = 0; + for (int vi = 0; vi < vis.length; vi++) { + int[] a = logical.get(vis[vi]); + int w = atomWidth(text, lineStart, a, b); + out[vi] = new int[]{a[0], a[1], a[2], a[3], x, w}; + x += w; + } + return out; + } + + @Override + protected int measureColumnX(int line, String text, int col, Font f) { + int lineStart = getDocument().getLineStart(line); + RichBlocks.BlockAttr b = blocks.get(line); + if (!BidiUtil.isTrivialLtr(text, isRTL())) { + int[][] atoms = richVisualAtoms(line, text, lineStart); + for (int i = 0; i < atoms.length; i++) { + int as = atoms[i][0], ae = atoms[i][1], lvl = atoms[i][2], img = atoms[i][3], ax = atoms[i][4]; + if (col >= as && col <= ae) { + if (img == 1) { + boolean before = (lvl & 1) == 0 ? col == as : col == ae; + return before ? ax : ax + atoms[i][5]; + } + if ((lvl & 1) == 0) { + return ax + styledWidth(text, lineStart, as, col, b); + } + return ax + styledWidth(text, lineStart, col, ae, b); + } + } + return atoms.length > 0 ? atoms[atoms.length - 1][4] + atoms[atoms.length - 1][5] : 0; + } + int x = 0; + int c = 0; + while (c < col && c < text.length()) { + Image img = text.charAt(c) == OBJ ? imageAt(lineStart + c) : null; + if (img != null) { + x += imageDisplayWidth(img); + c++; + continue; + } + TextStyle st = inline.styleAt(lineStart + c); + int runEnd = c + 1; + while (runEnd < col && runEnd < text.length() && text.charAt(runEnd) != OBJ + && inline.styleAt(lineStart + runEnd).equals(st)) { + runEnd++; + } + Font rf = fontFor(st.isBold() || isHeading(b.type), st.isItalic(), runPx(b.type, st.getFontSizeLevel())); + x += rf.stringWidth(text.substring(c, runEnd)); + c = runEnd; + } + return x; + } + + @Override + protected int columnAtX(int line, String text, int localX, Font f) { + if (BidiUtil.isTrivialLtr(text, isRTL())) { + return super.columnAtX(line, text, localX, f); + } + int lineStart = getDocument().getLineStart(line); + RichBlocks.BlockAttr b = blocks.get(line); + int[][] atoms = richVisualAtoms(line, text, lineStart); + for (int i = 0; i < atoms.length; i++) { + int as = atoms[i][0], ae = atoms[i][1], lvl = atoms[i][2], img = atoms[i][3], ax = atoms[i][4], aw = atoms[i][5]; + boolean last = i == atoms.length - 1; + if (localX < ax + aw || last) { + if (img == 1) { + boolean rightHalf = localX > ax + aw / 2; + if ((lvl & 1) == 0) { + return rightHalf ? ae : as; + } + return rightHalf ? as : ae; + } + if ((lvl & 1) == 0) { + int c = as; + while (c < ae) { + int wa = ax + styledWidth(text, lineStart, as, c, b); + int wb = ax + styledWidth(text, lineStart, as, c + 1, b); + if (localX < (wa + wb) / 2) { + break; + } + c++; + } + return c; + } + int c = ae; + while (c > as) { + int wa = ax + styledWidth(text, lineStart, c, ae, b); + int wb = ax + styledWidth(text, lineStart, c - 1, ae, b); + if (localX < (wa + wb) / 2) { + break; + } + c--; + } + return c; + } + } + return text.length(); + } + + @Override + protected int[] lineVisualSegments(int line, String text, int from, int to, Font f) { + if (BidiUtil.isTrivialLtr(text, isRTL())) { + return super.lineVisualSegments(line, text, from, to, f); + } + int lineStart = getDocument().getLineStart(line); + RichBlocks.BlockAttr b = blocks.get(line); + int[][] atoms = richVisualAtoms(line, text, lineStart); + java.util.List segs = new java.util.ArrayList(); + for (int i = 0; i < atoms.length; i++) { + int as = atoms[i][0], ae = atoms[i][1], lvl = atoms[i][2], img = atoms[i][3], ax = atoms[i][4], aw = atoms[i][5]; + int a = Math.max(from, as); + int e = Math.min(to, ae); + if (a >= e) { + continue; + } + int xl, xr; + if (img == 1) { + xl = ax; + xr = ax + aw; + } else if ((lvl & 1) == 0) { + xl = ax + styledWidth(text, lineStart, as, a, b); + xr = ax + styledWidth(text, lineStart, as, e, b); + } else { + xl = ax + styledWidth(text, lineStart, e, ae, b); + xr = ax + styledWidth(text, lineStart, a, ae, b); + } + segs.add(new int[]{Math.min(xl, xr), Math.abs(xr - xl)}); + } + int[] flat = new int[segs.size() * 2]; + for (int k = 0; k < segs.size(); k++) { + flat[k * 2] = segs.get(k)[0]; + flat[k * 2 + 1] = segs.get(k)[1]; + } + return flat; + } + + @Override + protected int lineContentOffsetX(int line) { + RichBlocks.BlockAttr b = blocks.get(line); + int off = b.indent * baseSize(); + if (b.type == RichBlocks.BLOCKQUOTE) { + off += baseSize() / 2; + } + int prefixW = prefixWidth(line, b); + int lineStart = getDocument().getLineStart(line); + String text = getDocument().getLineText(line); + int totalW = prefixW + measureLine(line, lineStart, text, b); + int avail = contentWidth() - off; + if (b.align == RichBlocks.ALIGN_CENTER && totalW < avail) { + off += (avail - totalW) / 2; + } else if (b.align == RichBlocks.ALIGN_RIGHT && totalW < avail) { + off += avail - totalW; + } + return off + prefixW; + } + + @Override + protected void paintLine(Graphics g, int line, String text, int x, int y, int lineHeight, Font f) { + RichBlocks.BlockAttr b = blocks.get(line); + int lineStart = getDocument().getLineStart(line); + int indentPx = b.indent * baseSize(); + + // block quote bar sits at the indented left edge + if (b.type == RichBlocks.BLOCKQUOTE) { + g.setColor(0xcccccc); + g.fillRect(x + indentPx, y, Math.max(2, baseSize() / 8), lineHeight); + } + + // text starts at the shared content offset so the caret / selection line up + int textStart = x + lineContentOffsetX(line); + + String prefix = listPrefix(line, b); + if (prefix != null) { + Font prefixFont = fontFor(false, false, runPx(b.type, 0)); + int prefixW = prefixFont.stringWidth(prefix); + g.setColor(getTextColor()); + g.setFont(prefixFont); + g.drawString(prefix, textStart - prefixW, y + baseline(lineHeight, prefixFont)); + } + + // styled runs + int col = 0; + int cx = textStart; + while (col < text.length()) { + Image img = text.charAt(col) == OBJ ? imageAt(lineStart + col) : null; + if (img != null) { + int iw = imageDisplayWidth(img); + int ih = imageDisplayHeight(img); + g.drawImage(img, cx, y + Math.max(0, lineHeight - ih), iw, ih); + cx += iw; + col++; + continue; + } + TextStyle st = inline.styleAt(lineStart + col); + int runEnd = col + 1; + while (runEnd < text.length() && text.charAt(runEnd) != OBJ + && inline.styleAt(lineStart + runEnd).equals(st)) { + runEnd++; + } + String run = text.substring(col, runEnd); + boolean bold = st.isBold() || isHeading(b.type); + Font rf = fontFor(bold, st.isItalic(), runPx(b.type, st.getFontSizeLevel())); + int w = rf.stringWidth(run); + int ry = y + baseline(lineHeight, rf); + if (st.getHighlight() >= 0) { + g.setColor(st.getHighlight()); + g.fillRect(cx, y, w, lineHeight); + } + int decoration = 0; + if (st.isUnderline()) { + decoration |= Style.TEXT_DECORATION_UNDERLINE; + } + if (st.isStrike()) { + decoration |= Style.TEXT_DECORATION_STRIKETHRU; + } + g.setColor(st.getForeColor() >= 0 ? st.getForeColor() : getTextColor()); + g.setFont(rf); + g.drawString(run, cx, ry, decoration); + cx += w; + col = runEnd; + } + + // placeholder + if (line == 0 && getDocument().length() == 0 && placeholder.length() > 0 && !hasFocus()) { + g.setColor(0x9aa0a6); + g.setFont(fontFor(false, false, baseSize())); + g.drawString(placeholder, x, y + baseline(lineHeight, fontFor(false, false, baseSize()))); + } + } + + private int measureLine(int line, int lineStart, String text, RichBlocks.BlockAttr b) { + return measureColumnX(line, text, text.length(), getEditorFont()); + } + + private int baseline(int lineHeight, Font f) { + return lineHeight - f.getHeight(); + } + + private int ordinal(int line) { + int n = 1; + for (int i = line - 1; i >= 0; i--) { + RichBlocks.BlockAttr pb = blocks.get(i); + if (pb.listType == RichBlocks.LIST_ORDERED) { + n++; + } else { + break; + } + } + return n; + } + + @Override + protected Font getEditorFont() { + return fontFor(false, false, baseSize()); + } + + // ---- inline formatting commands ---- + + private void applyToggle(int which) { + int s = getSelectionStart(); + int e = getSelectionEnd(); + boolean current = isSetInRange(s, e, which); + final boolean value = !current; + final int w = which; + if (s == e) { + TextStyle base = pendingStyle != null ? pendingStyle : styleAtCaret(); + pendingStyle = withFlag(base, w, value); + return; + } + inline.transformRange(s, e, new InlineStyles.StyleTransform() { + public TextStyle apply(TextStyle st) { + return withFlag(st, w, value); + } + }); + afterStyleChange(); + } + + private static TextStyle withFlag(TextStyle st, int which, boolean value) { + switch (which) { + case 0: + return st.withBold(value); + case 1: + return st.withItalic(value); + case 2: + return st.withUnderline(value); + default: + return st.withStrike(value); + } + } + + private boolean isSetInRange(int s, int e, final int which) { + return inline.allInRange(s, e, new InlineStyles.StylePredicate() { + public boolean test(TextStyle st) { + switch (which) { + case 0: + return st.isBold(); + case 1: + return st.isItalic(); + case 2: + return st.isUnderline(); + default: + return st.isStrike(); + } + } + }); + } + + /// Toggles bold on the selection (or the pending typing style when the selection is empty). + public void toggleBold() { + applyToggle(0); + } + + /// Toggles italic. + public void toggleItalic() { + applyToggle(1); + } + + /// Toggles underline. + public void toggleUnderline() { + applyToggle(2); + } + + /// Toggles strike-through. + public void toggleStrike() { + applyToggle(3); + } + + /// Sets the foreground color on the selection. + public void setForeColor(final int rgb) { + applyStyle(new InlineStyles.StyleTransform() { + public TextStyle apply(TextStyle st) { + return st.withForeColor(rgb); + } + }); + } + + /// Sets the highlight color on the selection. + public void setHighlight(final int rgb) { + applyStyle(new InlineStyles.StyleTransform() { + public TextStyle apply(TextStyle st) { + return st.withHighlight(rgb); + } + }); + } + + /// Sets the relative font size level (1..7) on the selection. + public void setFontSizeLevel(final int level) { + applyStyle(new InlineStyles.StyleTransform() { + public TextStyle apply(TextStyle st) { + return st.withFontSizeLevel(level); + } + }); + } + + /// Removes all inline formatting from the selection. + public void removeFormat() { + int s = getSelectionStart(); + int e = getSelectionEnd(); + if (s == e) { + pendingStyle = TextStyle.DEFAULT; + return; + } + inline.transformRange(s, e, new InlineStyles.StyleTransform() { + public TextStyle apply(TextStyle st) { + return TextStyle.DEFAULT; + } + }); + afterStyleChange(); + } + + private void applyStyle(InlineStyles.StyleTransform t) { + int s = getSelectionStart(); + int e = getSelectionEnd(); + if (s == e) { + TextStyle base = pendingStyle != null ? pendingStyle : styleAtCaret(); + pendingStyle = t.apply(base); + return; + } + inline.transformRange(s, e, t); + afterStyleChange(); + } + + private void afterStyleChange() { + invalidateLayout(); + if (host() != null) { + host().editorChanged(); + } + repaint(); + } + + // ---- block formatting commands ---- + + private void forEachSelectedBlock(BlockOp op) { + int s = getSelectionStart(); + int e = getSelectionEnd(); + int firstLine = getDocument().lineOfOffset(s); + int lastLine = getDocument().lineOfOffset(e); + for (int ln = firstLine; ln <= lastLine; ln++) { + op.apply(blocks.get(ln)); + } + afterStyleChange(); + } + + private interface BlockOp { + void apply(RichBlocks.BlockAttr b); + } + + /// Sets the block type (`p`, `h1`..`h6`, `pre`, `blockquote`) on the selected paragraphs. + public void setBlockFormat(String tag) { + final int type = blockTypeForTag(tag); + forEachSelectedBlock(new BlockOp() { + public void apply(RichBlocks.BlockAttr b) { + b.type = type; + b.listType = RichBlocks.LIST_NONE; + } + }); + } + + private static int blockTypeForTag(String tag) { + if (tag == null) { + return RichBlocks.PARAGRAPH; + } + if (tag.length() == 2 && (tag.charAt(0) == 'h' || tag.charAt(0) == 'H')) { + int n = tag.charAt(1) - '0'; + if (n >= 1 && n <= 6) { + return RichBlocks.H1 + (n - 1); + } + } + if ("pre".equalsIgnoreCase(tag)) { + return RichBlocks.PRE; + } + if ("blockquote".equalsIgnoreCase(tag)) { + return RichBlocks.BLOCKQUOTE; + } + return RichBlocks.PARAGRAPH; + } + + /// Sets the alignment on the selected paragraphs. + public void setAlign(final int align) { + forEachSelectedBlock(new BlockOp() { + public void apply(RichBlocks.BlockAttr b) { + b.align = align; + } + }); + } + + /// Applies (or toggles off) an ordered / unordered list on the selected paragraphs. + public void setList(final int listType) { + int s = getSelectionStart(); + int e = getSelectionEnd(); + int firstLine = getDocument().lineOfOffset(s); + boolean allSame = blocks.get(firstLine).listType == listType; + final int target = allSame ? RichBlocks.LIST_NONE : listType; + forEachSelectedBlock(new BlockOp() { + public void apply(RichBlocks.BlockAttr b) { + b.listType = target; + } + }); + } + + /// Increases the indentation of the selected paragraphs. + public void indentBlocks() { + forEachSelectedBlock(new BlockOp() { + public void apply(RichBlocks.BlockAttr b) { + b.indent++; + } + }); + } + + /// Decreases the indentation of the selected paragraphs. + public void outdentBlocks() { + forEachSelectedBlock(new BlockOp() { + public void apply(RichBlocks.BlockAttr b) { + if (b.indent > 0) { + b.indent--; + } + } + }); + } + + /// Applies a link appearance (underline + link color) to the selection. The href is not persisted in + /// this model; links round-trip as styled text. + public void applyLink() { + applyStyle(new InlineStyles.StyleTransform() { + public TextStyle apply(TextStyle st) { + return st.withUnderline(true).withForeColor(0x1a73e8); + } + }); + } + + /// Removes the link appearance from the selection. + public void removeLinkStyle() { + applyStyle(new InlineStyles.StyleTransform() { + public TextStyle apply(TextStyle st) { + return st.withUnderline(false).withForeColor(-1); + } + }); + } + + /// Returns whether an inline command (`bold`, `italic`, `underline`, `strikeThrough`) is active for + /// the current selection. + public boolean queryState(String command) { + int s = getSelectionStart(); + int e = getSelectionEnd(); + if ("bold".equals(command)) { + return isSetInRange(s, e, 0); + } + if ("italic".equals(command)) { + return isSetInRange(s, e, 1); + } + if ("underline".equals(command)) { + return isSetInRange(s, e, 2); + } + if ("strikeThrough".equals(command)) { + return isSetInRange(s, e, 3); + } + return false; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/TextStyle.java b/CodenameOne/src/com/codename1/ui/editor/TextStyle.java new file mode 100644 index 00000000000..89d7bf22709 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/TextStyle.java @@ -0,0 +1,148 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +/// An immutable inline text style (bold / italic / underline / strike, foreground color, highlight color +/// and relative font size) used by the pure rich text editor. Instances are value objects; the +/// `#with*` methods return a possibly new instance leaving the original untouched, which makes them safe +/// to share across runs. +public final class TextStyle { + /// The default (unstyled) text style. + public static final TextStyle DEFAULT = new TextStyle(false, false, false, false, -1, -1, 0); + + private final boolean bold; + private final boolean italic; + private final boolean underline; + private final boolean strike; + private final int foreColor; + private final int highlight; + private final int fontSizeLevel; + + private TextStyle(boolean bold, boolean italic, boolean underline, boolean strike, + int foreColor, int highlight, int fontSizeLevel) { + this.bold = bold; + this.italic = italic; + this.underline = underline; + this.strike = strike; + this.foreColor = foreColor; + this.highlight = highlight; + this.fontSizeLevel = fontSizeLevel; + } + + /// True when bold. + public boolean isBold() { + return bold; + } + + /// True when italic. + public boolean isItalic() { + return italic; + } + + /// True when underlined. + public boolean isUnderline() { + return underline; + } + + /// True when struck through. + public boolean isStrike() { + return strike; + } + + /// The foreground color as 0xRRGGBB, or -1 to inherit. + public int getForeColor() { + return foreColor; + } + + /// The highlight (background) color as 0xRRGGBB, or -1 for none. + public int getHighlight() { + return highlight; + } + + /// The relative font size level (1..7), or 0 for the default size. + public int getFontSizeLevel() { + return fontSizeLevel; + } + + /// Returns a style with bold set to the given value. + public TextStyle withBold(boolean v) { + return new TextStyle(v, italic, underline, strike, foreColor, highlight, fontSizeLevel); + } + + /// Returns a style with italic set to the given value. + public TextStyle withItalic(boolean v) { + return new TextStyle(bold, v, underline, strike, foreColor, highlight, fontSizeLevel); + } + + /// Returns a style with underline set to the given value. + public TextStyle withUnderline(boolean v) { + return new TextStyle(bold, italic, v, strike, foreColor, highlight, fontSizeLevel); + } + + /// Returns a style with strike-through set to the given value. + public TextStyle withStrike(boolean v) { + return new TextStyle(bold, italic, underline, v, foreColor, highlight, fontSizeLevel); + } + + /// Returns a style with the given foreground color (or -1 to inherit). + public TextStyle withForeColor(int v) { + return new TextStyle(bold, italic, underline, strike, v, highlight, fontSizeLevel); + } + + /// Returns a style with the given highlight color (or -1 for none). + public TextStyle withHighlight(int v) { + return new TextStyle(bold, italic, underline, strike, foreColor, v, fontSizeLevel); + } + + /// Returns a style with the given font size level (1..7, or 0 for default). + public TextStyle withFontSizeLevel(int v) { + return new TextStyle(bold, italic, underline, strike, foreColor, highlight, v); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof TextStyle)) { + return false; + } + TextStyle t = (TextStyle) o; + return bold == t.bold && italic == t.italic && underline == t.underline && strike == t.strike + && foreColor == t.foreColor && highlight == t.highlight && fontSizeLevel == t.fontSizeLevel; + } + + @Override + public int hashCode() { + int h = 0; + h = h * 31 + (bold ? 1 : 0); + h = h * 31 + (italic ? 1 : 0); + h = h * 31 + (underline ? 1 : 0); + h = h * 31 + (strike ? 1 : 0); + h = h * 31 + foreColor; + h = h * 31 + highlight; + h = h * 31 + fontSizeLevel; + return h; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/ThemePalette.java b/CodenameOne/src/com/codename1/ui/editor/ThemePalette.java new file mode 100644 index 00000000000..a901d75ffa1 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/ThemePalette.java @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +/// The color palette for the pure code editor, mirroring the light (GitHub style) and dark (VS Code +/// style) themes used by the previous `BrowserComponent` backend so switching backends is visually +/// consistent. +public final class ThemePalette { + /// The GitHub style light palette. + public static final ThemePalette LIGHT = new ThemePalette( + 0xffffff, 0x24292e, 0xb3d4fc, + 0xd73a49, 0x032f62, 0x6a737d, 0x005cc5, + 0xf6f8fa, 0xb0b6bd, + 0xe51400, 0xe36209, 0x1a73e8); + + /// The VS Code style dark palette. + public static final ThemePalette DARK = new ThemePalette( + 0x1e1e1e, 0xd4d4d4, 0x264f78, + 0x569cd6, 0xce9178, 0x6a9955, 0xb5cea8, + 0x252526, 0x6e7681, + 0xf14c4c, 0xcca700, 0x3794ff); + + private final int background; + private final int foreground; + private final int selection; + private final int keyword; + private final int string; + private final int comment; + private final int number; + private final int gutterBackground; + private final int gutterForeground; + private final int errorColor; + private final int warningColor; + private final int infoColor; + + private ThemePalette(int background, int foreground, int selection, int keyword, int string, + int comment, int number, int gutterBackground, int gutterForeground, + int errorColor, int warningColor, int infoColor) { + this.background = background; + this.foreground = foreground; + this.selection = selection; + this.keyword = keyword; + this.string = string; + this.comment = comment; + this.number = number; + this.gutterBackground = gutterBackground; + this.gutterForeground = gutterForeground; + this.errorColor = errorColor; + this.warningColor = warningColor; + this.infoColor = infoColor; + } + + /// Returns the palette for the given theme id (`"dark"` returns the dark palette, anything else the + /// light palette). + public static ThemePalette forName(String theme) { + return "dark".equals(theme) ? DARK : LIGHT; + } + + /// Returns the color for the given `Tokenizer` token kind. + public int colorForKind(int kind) { + switch (kind) { + case Tokenizer.KEYWORD: + return keyword; + case Tokenizer.STRING: + return string; + case Tokenizer.COMMENT: + return comment; + case Tokenizer.NUMBER: + return number; + default: + return foreground; + } + } + + /// The editor background color. + public int getBackground() { + return background; + } + + /// The default text color. + public int getForeground() { + return foreground; + } + + /// The selection highlight color. + public int getSelection() { + return selection; + } + + /// The gutter background color. + public int getGutterBackground() { + return gutterBackground; + } + + /// The gutter text color. + public int getGutterForeground() { + return gutterForeground; + } + + /// The error diagnostic color. + public int getErrorColor() { + return errorColor; + } + + /// The warning diagnostic color. + public int getWarningColor() { + return warningColor; + } + + /// The info diagnostic color. + public int getInfoColor() { + return infoColor; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/Tokenizer.java b/CodenameOne/src/com/codename1/ui/editor/Tokenizer.java new file mode 100644 index 00000000000..8d75de4b830 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/Tokenizer.java @@ -0,0 +1,259 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import java.util.ArrayList; +import java.util.List; + +/// A small, allocation light, stateful lexer for the pure code editor. It tokenizes a single line at a +/// time given the lexer state carried over from the previous line, and returns the state to carry into +/// the next line. This makes rehighlighting incremental: after an edit only the changed line and any +/// following lines whose entry state changed need to be retokenized. +/// +/// Only the spans that carry color (keyword, string, comment, number) are emitted; the gaps between them +/// are drawn in the default text color. +public final class Tokenizer { + /// Token kind: a language keyword. + public static final int KEYWORD = 1; + /// Token kind: a string or character literal. + public static final int STRING = 2; + /// Token kind: a comment. + public static final int COMMENT = 3; + /// Token kind: a numeric literal. + public static final int NUMBER = 4; + + /// Lexer state: normal code. + public static final int STATE_NORMAL = 0; + /// Lexer state: inside a block comment that opened on a previous line. + public static final int STATE_BLOCK_COMMENT = 1; + /// Lexer state: inside a backtick template string that opened on a previous line. + public static final int STATE_TEMPLATE = 2; + + private final LanguageDef def; + + /// Creates a tokenizer for the given language. + public Tokenizer(LanguageDef def) { + this.def = def; + } + + /// A colored span within a line: `[start, start + length)` has the given kind. + public static final class Token { + /// The start column within the line. + public final int start; + /// The number of characters. + public final int length; + /// One of the token kind constants. + public final int kind; + + Token(int start, int length, int kind) { + this.start = start; + this.length = length; + this.kind = kind; + } + } + + /// The result of tokenizing one line: the colored spans and the lexer state to carry to the next line. + public static final class TokenLine { + /// The colored spans, ordered by start. + public final List tokens; + /// The lexer state on leaving the line. + public final int endState; + + TokenLine(List tokens, int endState) { + this.tokens = tokens; + this.endState = endState; + } + } + + private static boolean isIdentStart(char c) { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_' || c == '$'; + } + + private static boolean isIdentPart(char c) { + return isIdentStart(c) || (c >= '0' && c <= '9'); + } + + private static boolean isDigit(char c) { + return c >= '0' && c <= '9'; + } + + /// Tokenizes one line. + /// + /// #### Parameters + /// + /// - `line`: the line text (without its trailing newline) + /// + /// - `startState`: the lexer state carried from the previous line + /// + /// #### Returns + /// + /// the colored spans and exit state + public TokenLine tokenize(String line, int startState) { + List tokens = new ArrayList(); + if (def.isPlain()) { + return new TokenLine(tokens, STATE_NORMAL); + } + int n = line.length(); + int i = 0; + int state = startState; + + if (state == STATE_BLOCK_COMMENT) { + int end = indexOfClose(line, 0, "*/"); + if (end < 0) { + if (n > 0) { + tokens.add(new Token(0, n, COMMENT)); + } + return new TokenLine(tokens, STATE_BLOCK_COMMENT); + } + tokens.add(new Token(0, end + 2, COMMENT)); + i = end + 2; + state = STATE_NORMAL; + } else if (state == STATE_TEMPLATE) { + int end = scanTemplate(line, 0); + if (end < 0) { + if (n > 0) { + tokens.add(new Token(0, n, STRING)); + } + return new TokenLine(tokens, STATE_TEMPLATE); + } + tokens.add(new Token(0, end + 1, STRING)); + i = end + 1; + state = STATE_NORMAL; + } + + while (i < n) { + char c = line.charAt(i); + // line comment + if (def.hasLineCommentSlash() && c == '/' && i + 1 < n && line.charAt(i + 1) == '/') { + tokens.add(new Token(i, n - i, COMMENT)); + break; + } + if (def.hasLineCommentHash() && c == '#') { + tokens.add(new Token(i, n - i, COMMENT)); + break; + } + // block comment + if (def.hasBlockComment() && c == '/' && i + 1 < n && line.charAt(i + 1) == '*') { + int end = indexOfClose(line, i + 2, "*/"); + if (end < 0) { + tokens.add(new Token(i, n - i, COMMENT)); + return new TokenLine(tokens, STATE_BLOCK_COMMENT); + } + tokens.add(new Token(i, end + 2 - i, COMMENT)); + i = end + 2; + continue; + } + // template string + if (def.hasTemplateString() && c == '`') { + int end = scanTemplate(line, i + 1); + if (end < 0) { + tokens.add(new Token(i, n - i, STRING)); + return new TokenLine(tokens, STATE_TEMPLATE); + } + tokens.add(new Token(i, end + 1 - i, STRING)); + i = end + 1; + continue; + } + // string / char literal + if (c == '"' || c == '\'') { + int end = scanString(line, i + 1, c); + int stop = end < 0 ? n : end + 1; + tokens.add(new Token(i, stop - i, STRING)); + i = stop; + continue; + } + // number + if (isDigit(c)) { + int j = i + 1; + while (j < n) { + char d = line.charAt(j); + if (isIdentPart(d) || d == '.') { + j++; + } else { + break; + } + } + tokens.add(new Token(i, j - i, NUMBER)); + i = j; + continue; + } + // identifier / keyword + if (isIdentStart(c)) { + int j = i + 1; + while (j < n && isIdentPart(line.charAt(j))) { + j++; + } + String word = line.substring(i, j); + if (def.isKeyword(word)) { + tokens.add(new Token(i, j - i, KEYWORD)); + } + i = j; + continue; + } + i++; + } + return new TokenLine(tokens, state); + } + + private static int indexOfClose(String line, int from, String close) { + return line.indexOf(close, from); + } + + // scans a single or double quoted string starting after the opening quote; returns the index of the + // closing quote, or -1 if the line ends first (single line strings do not span lines) + private static int scanString(String line, int from, char quote) { + int n = line.length(); + int i = from; + while (i < n) { + char c = line.charAt(i); + if (c == '\\') { + i += 2; + continue; + } + if (c == quote) { + return i; + } + i++; + } + return -1; + } + + // scans a backtick template string; returns index of the closing backtick or -1 if it spans lines + private static int scanTemplate(String line, int from) { + int n = line.length(); + int i = from; + while (i < n) { + char c = line.charAt(i); + if (c == '\\') { + i += 2; + continue; + } + if (c == '`') { + return i; + } + i++; + } + return -1; + } +} diff --git a/CodenameOne/src/com/codename1/ui/editor/UndoManager.java b/CodenameOne/src/com/codename1/ui/editor/UndoManager.java new file mode 100644 index 00000000000..8193bc4b280 --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/UndoManager.java @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import java.util.ArrayList; + +/// A compact undo / redo stack for the pure editors. Every mutation is recorded as a replacement of the +/// range `[start, start + removed.length)` with `inserted`; the inverse simply swaps `removed` and +/// `inserted`. Consecutive single character insertions are coalesced into one undo unit so a burst of +/// typing undoes as a word rather than a keystroke at a time. +public class UndoManager { + private static final class Edit { + int start; + String removed; + String inserted; + + Edit(int start, String removed, String inserted) { + this.start = start; + this.removed = removed; + this.inserted = inserted; + } + } + + private final ArrayList undo = new ArrayList(); + private final ArrayList redo = new ArrayList(); + private boolean coalesceAllowed; + + /// Records a mutation for later undo. Clears the redo stack. + /// + /// #### Parameters + /// + /// - `start`: the offset at which text was removed / inserted + /// + /// - `removed`: the text that was removed (empty for a pure insert) + /// + /// - `inserted`: the text that was inserted (empty for a pure delete) + public void record(int start, String removed, String inserted) { + redo.clear(); + if (coalesceAllowed && removed.length() == 0 && inserted.length() == 1 + && inserted.charAt(0) != '\n' && !undo.isEmpty()) { + Edit last = undo.get(undo.size() - 1); + if (last.removed.length() == 0 && last.start + last.inserted.length() == start + && last.inserted.length() > 0 && last.inserted.charAt(last.inserted.length() - 1) != '\n') { + last.inserted = last.inserted + inserted; + return; + } + } + undo.add(new Edit(start, removed, inserted)); + coalesceAllowed = removed.length() == 0 && inserted.length() == 1; + } + + /// Breaks the current coalescing run so the next recorded insert starts a fresh undo unit. Called on + /// caret jumps, selection changes and structural edits. + public void breakRun() { + coalesceAllowed = false; + } + + /// True when there is anything to undo. + public boolean canUndo() { + return !undo.isEmpty(); + } + + /// True when there is anything to redo. + public boolean canRedo() { + return !redo.isEmpty(); + } + + /// Undoes the most recent mutation against the supplied document. + /// + /// #### Parameters + /// + /// - `doc`: the document to mutate + /// + /// #### Returns + /// + /// the caret offset after the undo, or -1 when there was nothing to undo + public int undo(EditorDocument doc) { + if (undo.isEmpty()) { + return -1; + } + coalesceAllowed = false; + Edit e = undo.remove(undo.size() - 1); + doc.delete(e.start, e.start + e.inserted.length()); + doc.insert(e.start, e.removed); + redo.add(e); + return e.start + e.removed.length(); + } + + /// Redoes the most recently undone mutation against the supplied document. + /// + /// #### Parameters + /// + /// - `doc`: the document to mutate + /// + /// #### Returns + /// + /// the caret offset after the redo, or -1 when there was nothing to redo + public int redo(EditorDocument doc) { + if (redo.isEmpty()) { + return -1; + } + coalesceAllowed = false; + Edit e = redo.remove(redo.size() - 1); + doc.delete(e.start, e.start + e.removed.length()); + doc.insert(e.start, e.inserted); + undo.add(e); + return e.start + e.inserted.length(); + } + + /// Clears all recorded history. + public void clear() { + undo.clear(); + redo.clear(); + coalesceAllowed = false; + } +} diff --git a/Ports/Android/src/com/codename1/impl/android/AndroidAsyncView.java b/Ports/Android/src/com/codename1/impl/android/AndroidAsyncView.java index 0eacbbee2f8..3c5739aaf48 100644 --- a/Ports/Android/src/com/codename1/impl/android/AndroidAsyncView.java +++ b/Ports/Android/src/com/codename1/impl/android/AndroidAsyncView.java @@ -513,12 +513,19 @@ public InputConnection onCreateInputConnection(EditorInfo editorInfo) { if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return super.onCreateInputConnection(editorInfo); } + InputConnection editorConn = AndroidImplementation.createEditorInputConnection(this, editorInfo); + if (editorConn != null) { + return editorConn; + } cn1View.setInputType(editorInfo); return super.onCreateInputConnection(editorInfo); } @Override public boolean onCheckIsTextEditor() { + if (AndroidImplementation.hasActiveInputClient()) { + return true; + } if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return false; } diff --git a/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java b/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java index 1b26a84c9cc..83b236ed1cc 100644 --- a/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java +++ b/Ports/Android/src/com/codename1/impl/android/AndroidImplementation.java @@ -288,7 +288,137 @@ public void uncaughtException(Thread t, Throwable e) { public static CodenameOneActivity getActivity() { return activity; } - + + // ---- low level text input source (pure Codename One editors) ---- + + private static volatile com.codename1.ui.TextInputClient activeInputClient; + private static volatile com.codename1.ui.TextInputState activeInputState; + private static volatile com.codename1.ui.TextInputConfig activeInputConfig; + + /// Returns the last editing state pushed down for the active text input client, read synchronously by + /// `CN1TextInputConnection` on the IME thread. + static com.codename1.ui.TextInputState currentInputState() { + return activeInputState; + } + + static com.codename1.ui.TextInputConfig currentInputConfig() { + return activeInputConfig; + } + + /// Called by the rendering view's `onCreateInputConnection` to supply the custom input connection + /// when a pure editor is bound. Returns null when no client is active so the view keeps its default + /// behavior. + static android.view.inputmethod.InputConnection createEditorInputConnection(android.view.View view, android.view.inputmethod.EditorInfo editorInfo) { + com.codename1.ui.TextInputClient client = activeInputClient; + if (client == null) { + return null; + } + configureEditorInfo(editorInfo, activeInputConfig); + return new CN1TextInputConnection(view, client); + } + + /// True when a pure editor text input client is currently bound. + static boolean hasActiveInputClient() { + return activeInputClient != null; + } + + private static void configureEditorInfo(android.view.inputmethod.EditorInfo editorInfo, com.codename1.ui.TextInputConfig cfg) { + int inputType = android.text.InputType.TYPE_CLASS_TEXT; + boolean multiline = cfg == null || cfg.isMultiline(); + if (multiline) { + inputType |= android.text.InputType.TYPE_TEXT_FLAG_MULTI_LINE; + } + if (cfg != null && !cfg.isAutoCorrect()) { + inputType |= android.text.InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS; + } + if (cfg != null && cfg.isAutoCapitalize()) { + inputType |= android.text.InputType.TYPE_TEXT_FLAG_CAP_SENTENCES; + } + editorInfo.inputType = inputType; + editorInfo.imeOptions = android.view.inputmethod.EditorInfo.IME_FLAG_NO_EXTRACT_UI; + if (multiline) { + editorInfo.imeOptions |= android.view.inputmethod.EditorInfo.IME_ACTION_NONE; + } + editorInfo.initialSelStart = activeInputState != null ? activeInputState.getSelectionStart() : 0; + editorInfo.initialSelEnd = activeInputState != null ? activeInputState.getSelectionEnd() : 0; + } + + @Override + public boolean isTextInputSupported() { + return true; + } + + @Override + public Object startTextInput(com.codename1.ui.TextInputClient client, com.codename1.ui.TextInputConfig config) { + activeInputClient = client; + activeInputConfig = config; + activeInputState = client.getEditingState(); + final CodenameOneActivity a = getActivity(); + final CodenameOneSurface view = myView; + if (a == null || view == null) { + return client; + } + a.runOnUiThread(new Runnable() { + public void run() { + android.view.View v = view.getAndroidView(); + v.setFocusable(true); + v.setFocusableInTouchMode(true); + v.requestFocus(); + android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) + a.getSystemService(android.content.Context.INPUT_METHOD_SERVICE); + if (imm != null) { + imm.restartInput(v); + imm.showSoftInput(v, android.view.inputmethod.InputMethodManager.SHOW_IMPLICIT); + } + } + }); + return client; + } + + @Override + public void updateTextInputState(Object handle, com.codename1.ui.TextInputState state) { + activeInputState = state; + final CodenameOneActivity a = getActivity(); + final CodenameOneSurface view = myView; + if (a == null || view == null) { + return; + } + a.runOnUiThread(new Runnable() { + public void run() { + android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) + a.getSystemService(android.content.Context.INPUT_METHOD_SERVICE); + if (imm != null && activeInputClient != null) { + com.codename1.ui.TextInputState s = activeInputState; + imm.updateSelection(view.getAndroidView(), s.getSelectionStart(), s.getSelectionEnd(), + s.getComposingStart(), s.getComposingEnd()); + } + } + }); + } + + @Override + public void stopTextInput(Object handle) { + activeInputClient = null; + activeInputState = null; + activeInputConfig = null; + final CodenameOneActivity a = getActivity(); + final CodenameOneSurface view = myView; + if (a == null || view == null) { + return; + } + a.runOnUiThread(new Runnable() { + public void run() { + android.view.inputmethod.InputMethodManager imm = (android.view.inputmethod.InputMethodManager) + a.getSystemService(android.content.Context.INPUT_METHOD_SERVICE); + if (imm != null) { + imm.hideSoftInputFromWindow(view.getAndroidView().getWindowToken(), 0); + imm.restartInput(view.getAndroidView()); + } + } + }); + } + + @Override public void setDisableScreenshots(final boolean disable) { final CodenameOneActivity a = getActivity(); diff --git a/Ports/Android/src/com/codename1/impl/android/AndroidSurfaceView.java b/Ports/Android/src/com/codename1/impl/android/AndroidSurfaceView.java index a3867695bd3..0e3629d9d83 100644 --- a/Ports/Android/src/com/codename1/impl/android/AndroidSurfaceView.java +++ b/Ports/Android/src/com/codename1/impl/android/AndroidSurfaceView.java @@ -214,12 +214,19 @@ public InputConnection onCreateInputConnection(EditorInfo editorInfo) { if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return super.onCreateInputConnection(editorInfo); } + InputConnection editorConn = AndroidImplementation.createEditorInputConnection(this, editorInfo); + if (editorConn != null) { + return editorConn; + } cn1View.setInputType(editorInfo); return super.onCreateInputConnection(editorInfo); } @Override public boolean onCheckIsTextEditor() { + if (AndroidImplementation.hasActiveInputClient()) { + return true; + } if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return false; } diff --git a/Ports/Android/src/com/codename1/impl/android/AndroidTextureView.java b/Ports/Android/src/com/codename1/impl/android/AndroidTextureView.java index 6150d0ff3cd..48a29611f13 100644 --- a/Ports/Android/src/com/codename1/impl/android/AndroidTextureView.java +++ b/Ports/Android/src/com/codename1/impl/android/AndroidTextureView.java @@ -217,12 +217,19 @@ public InputConnection onCreateInputConnection(EditorInfo editorInfo) { if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return super.onCreateInputConnection(editorInfo); } + InputConnection editorConn = AndroidImplementation.createEditorInputConnection(this, editorInfo); + if (editorConn != null) { + return editorConn; + } cn1View.setInputType(editorInfo); return super.onCreateInputConnection(editorInfo); } @Override public boolean onCheckIsTextEditor() { + if (AndroidImplementation.hasActiveInputClient()) { + return true; + } if (!Display.isInitialized() || Display.getInstance().getCurrent() == null) { return false; } diff --git a/Ports/Android/src/com/codename1/impl/android/CN1TextInputConnection.java b/Ports/Android/src/com/codename1/impl/android/CN1TextInputConnection.java new file mode 100644 index 00000000000..b32c54e85bc --- /dev/null +++ b/Ports/Android/src/com/codename1/impl/android/CN1TextInputConnection.java @@ -0,0 +1,234 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.impl.android; + +import android.view.KeyEvent; +import android.view.View; +import android.view.inputmethod.BaseInputConnection; +import android.view.inputmethod.ExtractedText; +import android.view.inputmethod.ExtractedTextRequest; + +import com.codename1.ui.Display; +import com.codename1.ui.TextInputClient; +import com.codename1.ui.TextInputConfig; +import com.codename1.ui.TextInputState; + +/// A custom Android `InputConnection` that binds the platform soft keyboard / IME directly to a +/// Codename One `TextInputClient` without a shadow `EditText`. Committed text, IME composing text, +/// deletions and key commands are marshaled onto the Codename One EDT and delivered to the client, while +/// the surrounding text the IME needs for prediction and composition is answered synchronously from the +/// last editing state snapshot pushed down through `AndroidImplementation`. +class CN1TextInputConnection extends BaseInputConnection { + private final TextInputClient client; + + CN1TextInputConnection(View targetView, TextInputClient client) { + super(targetView, true); + this.client = client; + } + + private TextInputState state() { + TextInputState s = AndroidImplementation.currentInputState(); + return s != null ? s : new TextInputState("", 0, 0); + } + + private void post(final Runnable r) { + Display.getInstance().callSerially(r); + } + + @Override + public boolean commitText(CharSequence text, int newCursorPosition) { + final String s = text == null ? "" : text.toString(); + post(new Runnable() { + public void run() { + client.commitText(s); + } + }); + return true; + } + + @Override + public boolean setComposingText(CharSequence text, final int newCursorPosition) { + final String s = text == null ? "" : text.toString(); + post(new Runnable() { + public void run() { + client.setComposingText(s, newCursorPosition); + } + }); + return true; + } + + @Override + public boolean finishComposingText() { + post(new Runnable() { + public void run() { + client.finishComposing(); + } + }); + return true; + } + + @Override + public boolean deleteSurroundingText(final int beforeLength, final int afterLength) { + post(new Runnable() { + public void run() { + client.deleteSurroundingText(beforeLength, afterLength); + } + }); + return true; + } + + @Override + public boolean sendKeyEvent(KeyEvent event) { + if (event.getAction() != KeyEvent.ACTION_DOWN) { + return true; + } + int mods = 0; + if (event.isShiftPressed()) { + mods |= TextInputClient.MOD_SHIFT; + } + if (event.isCtrlPressed()) { + mods |= TextInputClient.MOD_CTRL; + } + if (event.isAltPressed()) { + mods |= TextInputClient.MOD_ALT; + } + final int fmods = mods; + int keyCode = event.getKeyCode(); + int command = mapKey(keyCode); + if (command > 0) { + final int cmd = command; + post(new Runnable() { + public void run() { + client.onKeyCommand(cmd, fmods); + } + }); + return true; + } + if (keyCode == KeyEvent.KEYCODE_ENTER) { + post(new Runnable() { + public void run() { + client.onEditorAction(TextInputConfig.ACTION_DEFAULT); + } + }); + return true; + } + final int unicode = event.getUnicodeChar(); + if (unicode > 0) { + final String s = String.valueOf((char) unicode); + post(new Runnable() { + public void run() { + client.commitText(s); + } + }); + return true; + } + return true; + } + + private static int mapKey(int keyCode) { + switch (keyCode) { + case KeyEvent.KEYCODE_DEL: + return TextInputClient.KEY_BACKSPACE; + case KeyEvent.KEYCODE_FORWARD_DEL: + return TextInputClient.KEY_DELETE; + case KeyEvent.KEYCODE_DPAD_LEFT: + return TextInputClient.KEY_LEFT; + case KeyEvent.KEYCODE_DPAD_RIGHT: + return TextInputClient.KEY_RIGHT; + case KeyEvent.KEYCODE_DPAD_UP: + return TextInputClient.KEY_UP; + case KeyEvent.KEYCODE_DPAD_DOWN: + return TextInputClient.KEY_DOWN; + case KeyEvent.KEYCODE_MOVE_HOME: + return TextInputClient.KEY_HOME; + case KeyEvent.KEYCODE_MOVE_END: + return TextInputClient.KEY_END; + case KeyEvent.KEYCODE_ESCAPE: + return TextInputClient.KEY_ESCAPE; + default: + return 0; + } + } + + @Override + public boolean performEditorAction(int actionCode) { + post(new Runnable() { + public void run() { + client.onEditorAction(TextInputConfig.ACTION_DEFAULT); + } + }); + return true; + } + + @Override + public CharSequence getTextBeforeCursor(int length, int flags) { + TextInputState s = state(); + int start = Math.max(0, s.getSelectionStart() - length); + String t = s.getText(); + int end = Math.min(t.length(), s.getSelectionStart()); + if (end < start) { + return ""; + } + return t.substring(start, end); + } + + @Override + public CharSequence getTextAfterCursor(int length, int flags) { + TextInputState s = state(); + String t = s.getText(); + int start = Math.min(t.length(), s.getSelectionEnd()); + int end = Math.min(t.length(), start + length); + return t.substring(start, end); + } + + @Override + public CharSequence getSelectedText(int flags) { + TextInputState s = state(); + String t = s.getText(); + int a = Math.max(0, Math.min(t.length(), s.getSelectionStart())); + int b = Math.max(a, Math.min(t.length(), s.getSelectionEnd())); + if (b <= a) { + return null; + } + return t.substring(a, b); + } + + @Override + public ExtractedText getExtractedText(ExtractedTextRequest request, int flags) { + TextInputState s = state(); + ExtractedText et = new ExtractedText(); + et.text = s.getText(); + et.startOffset = 0; + et.selectionStart = s.getSelectionStart(); + et.selectionEnd = s.getSelectionEnd(); + et.partialStartOffset = -1; + et.partialEndOffset = -1; + return et; + } + + @Override + public int getCursorCapsMode(int reqModes) { + return 0; + } +} diff --git a/Ports/JavaSE/src/com/codename1/impl/javase/JavaSEPort.java b/Ports/JavaSE/src/com/codename1/impl/javase/JavaSEPort.java index cd310f49673..969e95bd806 100644 --- a/Ports/JavaSE/src/com/codename1/impl/javase/JavaSEPort.java +++ b/Ports/JavaSE/src/com/codename1/impl/javase/JavaSEPort.java @@ -3088,11 +3088,43 @@ public void keyTyped(KeyEvent e) { // are taking action when the key is released... so we need to track whether the // control key was down while a key was pressed. private HashSet ignorePressedKeys = new HashSet(); + private boolean isPureEditorFocused() { + com.codename1.ui.Form f = com.codename1.ui.CN.getCurrentForm(); + return f != null && (f.getFocused() instanceof com.codename1.ui.editor.EditorView); + } + + // True only for keys a pure editor actually consumes: real characters, navigation, and editing + // keys. This prevents modifier / function / home-end keys (whose key codes overlap printable + // ASCII) from being delivered and inserted as garbage "tofu" characters. + private boolean editorHandlesKey(KeyEvent e) { + int vk = e.getKeyCode(); + switch (vk) { + case KeyEvent.VK_UP: + case KeyEvent.VK_DOWN: + case KeyEvent.VK_LEFT: + case KeyEvent.VK_RIGHT: + case KeyEvent.VK_ENTER: + case KeyEvent.VK_SPACE: + case KeyEvent.VK_BACK_SPACE: + case KeyEvent.VK_DELETE: + case KeyEvent.VK_TAB: + return true; + default: + break; + } + if ((vk >= KeyEvent.VK_A && vk <= KeyEvent.VK_Z) || (vk >= KeyEvent.VK_0 && vk <= KeyEvent.VK_9)) { + return true; + } + char kc = e.getKeyChar(); + return kc != KeyEvent.CHAR_UNDEFINED && kc >= 32 && kc != 127; + } + public void keyPressed(KeyEvent e) { if (!isEnabled()) { return; } - if (e.isMetaDown() && e.getKeyChar() == 'c') { + boolean editorFocused = isPureEditorFocused(); + if (!editorFocused && e.isMetaDown() && e.getKeyChar() == 'c') { Form f = CN.getCurrentForm(); if (f != null) { final TextSelection ts = f.getTextSelection(); @@ -3118,7 +3150,7 @@ public void run() { } - if (e.isMetaDown() && e.getKeyChar() == 'a') { + if (!editorFocused && e.isMetaDown() && e.getKeyChar() == 'a') { Form f = CN.getCurrentForm(); if (f != null) { final TextSelection ts = f.getTextSelection(); @@ -3130,15 +3162,28 @@ public void run() { }); } } - + } lastInputEvent = e; - // block key combos that might generate unreadable events - if (e.isAltDown() || e.isControlDown() || e.isMetaDown() || e.isAltGraphDown()) { + // block key combos that might generate unreadable events, unless a pure editor is focused and + // wants the modifier combos (word / line navigation, clipboard shortcuts) + if (!editorFocused && (e.isAltDown() || e.isControlDown() || e.isMetaDown() || e.isAltGraphDown())) { ignorePressedKeys.add(e.getKeyCode()); return; } + if (editorFocused && !editorHandlesKey(e)) { + return; + } int code = getCode(e); + // a pure editor needs the real Enter / Space characters; getCode() otherwise collapses both + // to the FIRE game key which the editor cannot distinguish + if (editorFocused) { + if (e.getKeyCode() == KeyEvent.VK_ENTER) { + code = '\n'; + } else if (e.getKeyCode() == KeyEvent.VK_SPACE) { + code = ' '; + } + } if (testRecorder != null) { testRecorder.eventKeyPressed(code); } @@ -3151,12 +3196,23 @@ public void keyReleased(KeyEvent e) { if (!isEnabled()) { return; } + boolean editorFocused = isPureEditorFocused(); lastInputEvent = e; - // block key combos that might generate unreadable events - if (ignore || e.isAltDown() || e.isControlDown() || e.isMetaDown() || e.isAltGraphDown()) { + // block key combos that might generate unreadable events, unless a pure editor is focused + if (!editorFocused && (ignore || e.isAltDown() || e.isControlDown() || e.isMetaDown() || e.isAltGraphDown())) { + return; + } + if (editorFocused && !editorHandlesKey(e)) { return; } int code = getCode(e); + if (editorFocused) { + if (e.getKeyCode() == KeyEvent.VK_ENTER) { + code = '\n'; + } else if (e.getKeyCode() == KeyEvent.VK_SPACE) { + code = ' '; + } + } if (testRecorder != null) { testRecorder.eventKeyReleased(code); } diff --git a/Ports/iOSPort/nativeSources/CN1TextInputView.h b/Ports/iOSPort/nativeSources/CN1TextInputView.h new file mode 100644 index 00000000000..7ee95fd16f2 --- /dev/null +++ b/Ports/iOSPort/nativeSources/CN1TextInputView.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2012, Codename One and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Codename One designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Codename One through http://www.codenameone.com/ if you + * need additional information or have any questions. + */ +#import + +#if !TARGET_OS_WATCH + +/// A transparent first responder view that binds the platform soft keyboard, hardware / bluetooth +/// keyboard and IME to a Codename One pure editor through the low level text input source. It conforms +/// to the full UITextInput protocol so iOS drives edits by range (typed text, dictation, marked text / +/// CJK composition, hardware keys) and can position the IME candidate window and selection loupe using +/// the caret geometry Codename One reports. The view keeps a shadow mirror of the document text and +/// selection (pushed down from Java) purely to answer UITextInput's text and position queries; Codename +/// One renders the document itself and remains authoritative. +@interface CN1TextInputView : UIView + +@property (nonatomic) UITextAutocorrectionType autocorrectionType; +@property (nonatomic) UITextAutocapitalizationType autocapitalizationType; +@property (nonatomic) UIKeyboardType keyboardType; +@property (nonatomic) UIReturnKeyType returnKeyType; +@property (nonatomic) UITextSpellCheckingType spellCheckingType; +@property (nonatomic) BOOL multiline; + +/// Replaces the shadow mirror with the authoritative Java state (text + selection + caret rect in +/// screen pixels) without echoing the change back to Java. +- (void)cn1SyncText:(NSString *)text selStart:(NSInteger)selStart selEnd:(NSInteger)selEnd + caretRect:(CGRect)caretPixels; + +@end + +#endif diff --git a/Ports/iOSPort/nativeSources/CN1TextInputView.m b/Ports/iOSPort/nativeSources/CN1TextInputView.m new file mode 100644 index 00000000000..e3b31945df2 --- /dev/null +++ b/Ports/iOSPort/nativeSources/CN1TextInputView.m @@ -0,0 +1,719 @@ +/* + * Copyright (c) 2012, Codename One and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Codename One designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Codename One through http://www.codenameone.com/ if you + * need additional information or have any questions. + */ +#import "CN1TextInputView.h" + +#if !TARGET_OS_WATCH + +#include "xmlvm.h" +#include "java_lang_String.h" +#ifndef NEW_CODENAME_ONE_VM +#include "xmlvm-util.h" +#else +#include "cn1_globals.h" +#endif +#import "CodenameOne_GLViewController.h" + +// Codename One string conversion helpers (defined in IOSNative.m) +extern JAVA_OBJECT fromNSString(CN1_THREAD_STATE_MULTI_ARG NSString* str); +extern NSString* toNSString(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT o); + +// Java callbacks (generated for the static methods on IOSImplementation) +extern void com_codename1_impl_ios_IOSImplementation_tiReplaceRange___int_int_java_lang_String(CN1_THREAD_STATE_MULTI_ARG JAVA_INT start, JAVA_INT end, JAVA_OBJECT text); +extern void com_codename1_impl_ios_IOSImplementation_tiSetSelection___int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_INT start, JAVA_INT end); +extern void com_codename1_impl_ios_IOSImplementation_tiKeyCommand___int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_INT command, JAVA_INT modifiers); +extern void com_codename1_impl_ios_IOSImplementation_tiEditorAction___int(CN1_THREAD_STATE_MULTI_ARG JAVA_INT action); +extern JAVA_OBJECT com_codename1_impl_ios_IOSImplementation_tiSelectionRects___int_int_R_int_1ARRAY(CN1_THREAD_STATE_MULTI_ARG JAVA_INT start, JAVA_INT end); +extern JAVA_INT com_codename1_impl_ios_IOSImplementation_tiOffsetAtPoint___int_int_R_int(CN1_THREAD_STATE_MULTI_ARG JAVA_INT x, JAVA_INT y); + +// mirror of com.codename1.ui.TextInputClient key command + modifier constants +#define CN1_KEY_LEFT 1 +#define CN1_KEY_RIGHT 2 +#define CN1_KEY_UP 3 +#define CN1_KEY_DOWN 4 +#define CN1_KEY_HOME 5 +#define CN1_KEY_END 6 +#define CN1_KEY_DELETE 10 +#define CN1_KEY_ESCAPE 11 +#define CN1_KEY_COPY 12 +#define CN1_KEY_CUT 13 +#define CN1_KEY_PASTE 14 +#define CN1_KEY_SELECT_ALL 15 +#define CN1_KEY_UNDO 16 +#define CN1_KEY_REDO 17 +#define CN1_MOD_SHIFT 1 +#define CN1_MOD_CTRL 2 +#define CN1_MOD_ALT 4 + +static CN1TextInputView* cn1TextInputView = nil; + +#pragma mark - UITextPosition / UITextRange backed by integer offsets + +@interface CN1TextPosition : UITextPosition +@property (nonatomic) NSInteger index; ++ (instancetype)positionWithIndex:(NSInteger)index; +@end + +@implementation CN1TextPosition ++ (instancetype)positionWithIndex:(NSInteger)index { + CN1TextPosition* p = [[[CN1TextPosition alloc] init] autorelease]; + p.index = index; + return p; +} +@end + +@interface CN1TextRange : UITextRange +@property (nonatomic) NSInteger startIndex; +@property (nonatomic) NSInteger endIndex; ++ (instancetype)rangeFrom:(NSInteger)start to:(NSInteger)end; +@end + +@implementation CN1TextRange ++ (instancetype)rangeFrom:(NSInteger)start to:(NSInteger)end { + CN1TextRange* r = [[[CN1TextRange alloc] init] autorelease]; + r.startIndex = MIN(start, end); + r.endIndex = MAX(start, end); + return r; +} +- (UITextPosition *)start { return [CN1TextPosition positionWithIndex:self.startIndex]; } +- (UITextPosition *)end { return [CN1TextPosition positionWithIndex:self.endIndex]; } +- (BOOL)isEmpty { return self.startIndex == self.endIndex; } +@end + +/// One rectangle of a selection, reported to iOS so it can draw the selection highlight, the drag handles +/// (at the rects flagged containsStart / containsEnd) and the magnifier loupe over the range. +@interface CN1TextSelectionRect : UITextSelectionRect +@property (nonatomic) CGRect rectValue; +@property (nonatomic) BOOL startFlag; +@property (nonatomic) BOOL endFlag; +@end + +@implementation CN1TextSelectionRect +- (CGRect)rect { return self.rectValue; } +- (NSWritingDirection)writingDirection { return NSWritingDirectionNatural; } +- (BOOL)containsStart { return self.startFlag; } +- (BOOL)containsEnd { return self.endFlag; } +- (BOOL)isVertical { return NO; } +@end + +#pragma mark - CN1TextInputView + +@interface CN1TextInputView () { + NSMutableString* _shadow; + NSRange _selectedRange; + NSRange _markedRange; // location == NSNotFound when there is no marked (IME) text + CGRect _caretRectPoints; // last caret rectangle from Java, converted to points + CGRect _editorBoundsPoints; // the editor component's bounds in points; the touch region we own + id _textInteraction; // UITextInteraction (iOS 13+) driving the system loupe/handles/menu + // UITextInput declares inputDelegate as a weak property, but ParparVM compiles under manual + // reference counting where weak is unavailable; back it with an unsafe-unretained ivar instead. + __unsafe_unretained id _inputDelegate; +} +@property (nonatomic, retain) UITextInputStringTokenizer* cn1Tokenizer; +@end + +@implementation CN1TextInputView + +@synthesize markedTextStyle = _markedTextStyle; + +- (id)inputDelegate { return _inputDelegate; } +- (void)setInputDelegate:(id)inputDelegate { _inputDelegate = inputDelegate; } + +- (instancetype)init { + self = [super initWithFrame:CGRectMake(0, 0, 1, 1)]; + if (self) { + self.backgroundColor = [UIColor clearColor]; + self.opaque = NO; + // Interactive so physical-keyboard UIPress events reach us, but pointInside: returns NO below + // so the view never claims a touch; Codename One keeps owning the canvas. + self.userInteractionEnabled = YES; + self.autocorrectionType = UITextAutocorrectionTypeDefault; + self.autocapitalizationType = UITextAutocapitalizationTypeSentences; + self.spellCheckingType = UITextSpellCheckingTypeDefault; + self.keyboardType = UIKeyboardTypeDefault; + self.returnKeyType = UIReturnKeyDefault; + self.multiline = YES; + _shadow = [[NSMutableString alloc] init]; + _selectedRange = NSMakeRange(0, 0); + _markedRange = NSMakeRange(NSNotFound, 0); + _caretRectPoints = CGRectMake(0, 0, 2, 16); + } + return self; +} + +- (void)dealloc { + [_shadow release]; + [_markedTextStyle release]; + [_cn1Tokenizer release]; + [_textInteraction release]; + [super dealloc]; +} + +- (BOOL)canBecomeFirstResponder { return YES; } +- (UIView *)textInputView { return self; } + +// While the native text interaction (system loupe/handles) is active we OWN touches inside the editor's +// bounds so its gesture recognizers fire there; everywhere else (and when no interaction is attached) +// touches pass through to Codename One's canvas. UIPress (hardware key) events always arrive regardless +// because they target the first responder directly, not via hit-testing. +- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { + if (_textInteraction == nil || CGRectIsEmpty(_editorBoundsPoints)) { + return NO; + } + return CGRectContainsPoint(_editorBoundsPoints, point); +} + +- (void)cn1SetEditorBounds:(CGRect)b { + _editorBoundsPoints = b; +} + +/// Lazily installs the UITextInteraction that makes iOS draw its own selection magnifier, drag handles and +/// edit menu over the editor. Unavailable on tvOS and before iOS 13, where the cross-platform Codename One +/// drawn selection UI is used instead. +- (void)cn1EnsureInteraction { +#if !TARGET_OS_TV + if (@available(iOS 13.0, *)) { + if (_textInteraction == nil) { + UITextInteraction* ti = [UITextInteraction textInteractionForMode:UITextInteractionModeEditable]; + ti.textInput = self; + [self addInteraction:ti]; + _textInteraction = [ti retain]; + } + } +#endif +} + +#pragma mark hardware / bluetooth keyboard (UIPress) + +- (int)cn1ModsFor:(UIKeyModifierFlags)mf { + int mods = 0; + if (mf & UIKeyModifierShift) { + mods |= CN1_MOD_SHIFT; + } + if (mf & (UIKeyModifierControl | UIKeyModifierCommand)) { + mods |= CN1_MOD_CTRL; + } + if (mf & UIKeyModifierAlternate) { + mods |= CN1_MOD_ALT; + } + return mods; +} + +- (void)cn1KeyCommand:(int)cmd mods:(int)mods { + com_codename1_impl_ios_IOSImplementation_tiKeyCommand___int_int(CN1_THREAD_GET_STATE_PASS_ARG cmd, mods); +} + +- (BOOL)cn1HandleKey:(UIKey *)key { + if (key == nil) { + return NO; + } + UIKeyModifierFlags mf = key.modifierFlags; + int mods = [self cn1ModsFor:mf]; + UIKeyboardHIDUsage code = key.keyCode; + switch (code) { + case UIKeyboardHIDUsageKeyboardDeleteOrBackspace: + [self deleteBackward]; + return YES; + case UIKeyboardHIDUsageKeyboardDeleteForward: + [self cn1KeyCommand:CN1_KEY_DELETE mods:mods]; + return YES; + case UIKeyboardHIDUsageKeyboardReturnOrEnter: + case UIKeyboardHIDUsageKeypadEnter: + [self insertText:@"\n"]; + return YES; + case UIKeyboardHIDUsageKeyboardTab: + [self insertText:@"\t"]; + return YES; + case UIKeyboardHIDUsageKeyboardLeftArrow: + [self cn1KeyCommand:((mf & UIKeyModifierCommand) ? CN1_KEY_HOME : CN1_KEY_LEFT) mods:mods]; + return YES; + case UIKeyboardHIDUsageKeyboardRightArrow: + [self cn1KeyCommand:((mf & UIKeyModifierCommand) ? CN1_KEY_END : CN1_KEY_RIGHT) mods:mods]; + return YES; + case UIKeyboardHIDUsageKeyboardUpArrow: + [self cn1KeyCommand:CN1_KEY_UP mods:mods]; + return YES; + case UIKeyboardHIDUsageKeyboardDownArrow: + [self cn1KeyCommand:CN1_KEY_DOWN mods:mods]; + return YES; + case UIKeyboardHIDUsageKeyboardEscape: + [self cn1KeyCommand:CN1_KEY_ESCAPE mods:mods]; + return YES; + default: + break; + } + NSString* chars = key.characters; + if (mf & UIKeyModifierCommand) { + // Cmd shortcuts -> editor commands; swallow anything else so it is not typed as a character. + NSString* lc = [chars lowercaseString]; + if ([lc isEqualToString:@"c"]) { + [self cn1KeyCommand:CN1_KEY_COPY mods:mods]; + } else if ([lc isEqualToString:@"x"]) { + [self cn1KeyCommand:CN1_KEY_CUT mods:mods]; + } else if ([lc isEqualToString:@"v"]) { + [self cn1KeyCommand:CN1_KEY_PASTE mods:mods]; + } else if ([lc isEqualToString:@"a"]) { + [self cn1KeyCommand:CN1_KEY_SELECT_ALL mods:mods]; + } else if ([lc isEqualToString:@"z"]) { + [self cn1KeyCommand:((mf & UIKeyModifierShift) ? CN1_KEY_REDO : CN1_KEY_UNDO) mods:mods]; + } + return YES; + } + if (chars != nil && chars.length > 0) { + unichar c0 = [chars characterAtIndex:0]; + // Only insert printable text; ignore control characters and the private-use arrow codes. + if (c0 >= 0x20 && c0 != 0x7F && !(c0 >= 0xF700 && c0 <= 0xF8FF)) { + [self insertText:chars]; + return YES; + } + } + return NO; +} + +- (void)pressesBegan:(NSSet *)presses withEvent:(UIPressesEvent *)event { + BOOL handled = NO; + if (@available(iOS 13.4, tvOS 13.4, *)) { + for (UIPress* press in presses) { + if ([self cn1HandleKey:press.key]) { + handled = YES; + } + } + } + if (!handled) { + [super pressesBegan:presses withEvent:event]; + } +} + +// Arrow keys are otherwise consumed by UIKit's own UITextInput navigation (which relies on per-offset +// caret geometry we do not provide), so claim them explicitly here and route to the editor's caret +// navigation. wantsPriorityOverSystemBehavior ensures we win over the system text navigation. +- (NSArray *)keyCommands { + NSArray* inputs = @[UIKeyInputLeftArrow, UIKeyInputRightArrow, UIKeyInputUpArrow, UIKeyInputDownArrow]; + NSArray* mods = @[@0, + @(UIKeyModifierShift), + @(UIKeyModifierAlternate), + @(UIKeyModifierCommand), + @(UIKeyModifierShift | UIKeyModifierAlternate), + @(UIKeyModifierShift | UIKeyModifierCommand)]; + NSMutableArray* cmds = [NSMutableArray array]; + for (NSString* inp in inputs) { + for (NSNumber* m in mods) { + UIKeyCommand* kc = [UIKeyCommand keyCommandWithInput:inp + modifierFlags:(UIKeyModifierFlags)[m integerValue] + action:@selector(cn1Arrow:)]; + if (@available(iOS 15.0, *)) { + kc.wantsPriorityOverSystemBehavior = YES; + } + [cmds addObject:kc]; + } + } + return cmds; +} + +- (void)cn1Arrow:(UIKeyCommand *)cmd { + NSString* inp = cmd.input; + UIKeyModifierFlags mf = cmd.modifierFlags; + int mods = [self cn1ModsFor:mf]; + int c = 0; + if ([inp isEqualToString:UIKeyInputLeftArrow]) { + c = (mf & UIKeyModifierCommand) ? CN1_KEY_HOME : CN1_KEY_LEFT; + } else if ([inp isEqualToString:UIKeyInputRightArrow]) { + c = (mf & UIKeyModifierCommand) ? CN1_KEY_END : CN1_KEY_RIGHT; + } else if ([inp isEqualToString:UIKeyInputUpArrow]) { + c = CN1_KEY_UP; + } else if ([inp isEqualToString:UIKeyInputDownArrow]) { + c = CN1_KEY_DOWN; + } + if (c != 0) { + [self cn1KeyCommand:c mods:mods]; + } +} + +#pragma mark helpers + +- (NSInteger)clampIndex:(NSInteger)i { + if (i < 0) return 0; + if (i > (NSInteger)_shadow.length) return (NSInteger)_shadow.length; + return i; +} + +- (NSRange)clampRange:(NSRange)r { + NSInteger loc = [self clampIndex:(NSInteger)r.location]; + NSInteger end = [self clampIndex:(NSInteger)(r.location + r.length)]; + return NSMakeRange(loc, end - loc); +} + +// Applies an edit to the shadow mirror and (optionally) forwards it to Java as a range replacement. +- (void)cn1EditRange:(NSRange)range with:(NSString *)text notify:(BOOL)notify { + if (text == nil) { + text = @""; + } + range = [self clampRange:range]; + [_shadow replaceCharactersInRange:range withString:text]; + _selectedRange = NSMakeRange(range.location + text.length, 0); + _markedRange = NSMakeRange(NSNotFound, 0); + if (notify) { + com_codename1_impl_ios_IOSImplementation_tiReplaceRange___int_int_java_lang_String(CN1_THREAD_GET_STATE_PASS_ARG + (JAVA_INT)range.location, (JAVA_INT)(range.location + range.length), + fromNSString(CN1_THREAD_GET_STATE_PASS_ARG text)); + } +} + +#pragma mark UIKeyInput + +- (BOOL)hasText { return _shadow.length > 0; } + +- (void)insertText:(NSString *)text { + if (text == nil) { + return; + } + [self cn1EditRange:_selectedRange with:text notify:YES]; +} + +- (void)deleteBackward { + if (_selectedRange.length > 0) { + [self cn1EditRange:_selectedRange with:@"" notify:YES]; + } else if (_selectedRange.location > 0) { + [self cn1EditRange:NSMakeRange(_selectedRange.location - 1, 1) with:@"" notify:YES]; + } +} + +#pragma mark UITextInput - text + +- (NSString *)textInRange:(UITextRange *)range { + CN1TextRange* r = (CN1TextRange *)range; + NSRange nr = [self clampRange:NSMakeRange(r.startIndex, r.endIndex - r.startIndex)]; + return [_shadow substringWithRange:nr]; +} + +- (void)replaceRange:(UITextRange *)range withText:(NSString *)text { + CN1TextRange* r = (CN1TextRange *)range; + [self cn1EditRange:NSMakeRange(r.startIndex, r.endIndex - r.startIndex) with:text notify:YES]; +} + +#pragma mark UITextInput - selection + +- (UITextRange *)selectedTextRange { + return [CN1TextRange rangeFrom:_selectedRange.location to:_selectedRange.location + _selectedRange.length]; +} + +- (void)setSelectedTextRange:(UITextRange *)selectedTextRange { + NSRange newRange; + if (selectedTextRange == nil) { + newRange = NSMakeRange(_shadow.length, 0); + } else { + CN1TextRange* r = (CN1TextRange *)selectedTextRange; + NSInteger s = [self clampIndex:r.startIndex]; + NSInteger e = [self clampIndex:r.endIndex]; + newRange = NSMakeRange(s, e - s); + } + if (NSEqualRanges(newRange, _selectedRange)) { + return; + } + _selectedRange = newRange; + com_codename1_impl_ios_IOSImplementation_tiSetSelection___int_int(CN1_THREAD_GET_STATE_PASS_ARG + (JAVA_INT)newRange.location, (JAVA_INT)(newRange.location + newRange.length)); +} + +#pragma mark UITextInput - marked text (IME composition) + +- (UITextRange *)markedTextRange { + if (_markedRange.location == NSNotFound) { + return nil; + } + return [CN1TextRange rangeFrom:_markedRange.location to:_markedRange.location + _markedRange.length]; +} + +- (void)setMarkedText:(NSString *)markedText selectedRange:(NSRange)selectedRange { + if (markedText == nil) { + markedText = @""; + } + NSRange rep = (_markedRange.location != NSNotFound) ? _markedRange : _selectedRange; + rep = [self clampRange:rep]; + [_shadow replaceCharactersInRange:rep withString:markedText]; + _markedRange = NSMakeRange(rep.location, markedText.length); + NSInteger sel = (NSInteger)selectedRange.location; + if (sel < 0) { + sel = 0; + } + if (sel > (NSInteger)markedText.length) { + sel = (NSInteger)markedText.length; + } + _selectedRange = NSMakeRange(rep.location + sel, 0); + // Mirror the composing text to Codename One as a plain range replacement so the document stays in + // sync; the marked range is tracked natively only so iOS can keep composing. + com_codename1_impl_ios_IOSImplementation_tiReplaceRange___int_int_java_lang_String(CN1_THREAD_GET_STATE_PASS_ARG + (JAVA_INT)rep.location, (JAVA_INT)(rep.location + rep.length), + fromNSString(CN1_THREAD_GET_STATE_PASS_ARG markedText)); +} + +- (void)unmarkText { + _markedRange = NSMakeRange(NSNotFound, 0); +} + +#pragma mark UITextInput - positions and ranges + +- (UITextPosition *)beginningOfDocument { return [CN1TextPosition positionWithIndex:0]; } +- (UITextPosition *)endOfDocument { return [CN1TextPosition positionWithIndex:_shadow.length]; } + +- (UITextRange *)textRangeFromPosition:(UITextPosition *)fromPosition toPosition:(UITextPosition *)toPosition { + return [CN1TextRange rangeFrom:((CN1TextPosition *)fromPosition).index to:((CN1TextPosition *)toPosition).index]; +} + +- (UITextPosition *)positionFromPosition:(UITextPosition *)position offset:(NSInteger)offset { + NSInteger idx = ((CN1TextPosition *)position).index + offset; + if (idx < 0 || idx > (NSInteger)_shadow.length) { + return nil; + } + return [CN1TextPosition positionWithIndex:idx]; +} + +- (UITextPosition *)positionFromPosition:(UITextPosition *)position inDirection:(UITextLayoutDirection)direction offset:(NSInteger)offset { + NSInteger idx = ((CN1TextPosition *)position).index; + if (direction == UITextLayoutDirectionLeft || direction == UITextLayoutDirectionUp) { + idx -= offset; + } else { + idx += offset; + } + return [CN1TextPosition positionWithIndex:[self clampIndex:idx]]; +} + +- (NSComparisonResult)comparePosition:(UITextPosition *)position toPosition:(UITextPosition *)other { + NSInteger a = ((CN1TextPosition *)position).index; + NSInteger b = ((CN1TextPosition *)other).index; + if (a < b) return NSOrderedAscending; + if (a > b) return NSOrderedDescending; + return NSOrderedSame; +} + +- (NSInteger)offsetFromPosition:(UITextPosition *)from toPosition:(UITextPosition *)toPosition { + return ((CN1TextPosition *)toPosition).index - ((CN1TextPosition *)from).index; +} + +- (UITextPosition *)positionWithinRange:(UITextRange *)range farthestInDirection:(UITextLayoutDirection)direction { + CN1TextRange* r = (CN1TextRange *)range; + BOOL toStart = (direction == UITextLayoutDirectionLeft || direction == UITextLayoutDirectionUp); + return [CN1TextPosition positionWithIndex:(toStart ? r.startIndex : r.endIndex)]; +} + +- (UITextRange *)characterRangeByExtendingPosition:(UITextPosition *)position inDirection:(UITextLayoutDirection)direction { + NSInteger idx = ((CN1TextPosition *)position).index; + if (direction == UITextLayoutDirectionLeft || direction == UITextLayoutDirectionUp) { + return [CN1TextRange rangeFrom:[self clampIndex:idx - 1] to:idx]; + } + return [CN1TextRange rangeFrom:idx to:[self clampIndex:idx + 1]]; +} + +#pragma mark UITextInput - writing direction + +- (UITextWritingDirection)baseWritingDirectionForPosition:(UITextPosition *)position inDirection:(UITextStorageDirection)direction { + return UITextWritingDirectionLeftToRight; +} + +- (void)setBaseWritingDirection:(UITextWritingDirection)writingDirection forRange:(UITextRange *)range { +} + +#pragma mark UITextInput - geometry + +- (CGRect)caretRectForPosition:(UITextPosition *)position { + return _caretRectPoints; +} + +- (CGRect)firstRectForRange:(UITextRange *)range { + NSArray* rects = [self selectionRectsForRange:range]; + if (rects.count > 0) { + return rects[0].rect; + } + return _caretRectPoints; +} + +- (NSArray *)selectionRectsForRange:(UITextRange *)range { + NSMutableArray* result = [NSMutableArray array]; + CN1TextRange* r = (CN1TextRange *)range; + JAVA_OBJECT arr = com_codename1_impl_ios_IOSImplementation_tiSelectionRects___int_int_R_int_1ARRAY(CN1_THREAD_GET_STATE_PASS_ARG + (JAVA_INT)r.startIndex, (JAVA_INT)r.endIndex); + if (arr == JAVA_NULL) { + return result; + } + int len = (int)((JAVA_ARRAY)arr)->length; + JAVA_ARRAY_INT* data = (JAVA_ARRAY_INT*)((JAVA_ARRAY)arr)->data; + CGFloat scale = [UIScreen mainScreen].scale; + if (scale <= 0) { + scale = 1; + } + int count = len / 4; + for (int i = 0; i < count; i++) { + // Java reports absolute screen pixels; the input view is full screen so its coordinate space is + // screen points -> divide by scale. + CGRect rc = CGRectMake(data[i * 4] / scale, data[i * 4 + 1] / scale, + data[i * 4 + 2] / scale, data[i * 4 + 3] / scale); + CN1TextSelectionRect* sr = [[[CN1TextSelectionRect alloc] init] autorelease]; + sr.rectValue = rc; + sr.startFlag = (i == 0); + sr.endFlag = (i == count - 1); + [result addObject:sr]; + } + return result; +} + +- (UITextPosition *)closestPositionToPoint:(CGPoint)point { + CGFloat scale = [UIScreen mainScreen].scale; + if (scale <= 0) { + scale = 1; + } + // point is in the view's (full screen) coordinate space = screen points; Java hit-tests in pixels. + JAVA_INT off = com_codename1_impl_ios_IOSImplementation_tiOffsetAtPoint___int_int_R_int(CN1_THREAD_GET_STATE_PASS_ARG + (JAVA_INT)(point.x * scale), (JAVA_INT)(point.y * scale)); + return [CN1TextPosition positionWithIndex:[self clampIndex:off]]; +} + +- (UITextPosition *)closestPositionToPoint:(CGPoint)point withinRange:(UITextRange *)range { + CN1TextPosition* p = (CN1TextPosition *)[self closestPositionToPoint:point]; + CN1TextRange* r = (CN1TextRange *)range; + NSInteger idx = p.index; + if (idx < r.startIndex) { + idx = r.startIndex; + } + if (idx > r.endIndex) { + idx = r.endIndex; + } + return [CN1TextPosition positionWithIndex:idx]; +} + +- (UITextRange *)characterRangeAtPoint:(CGPoint)point { + CN1TextPosition* p = (CN1TextPosition *)[self closestPositionToPoint:point]; + NSInteger idx = p.index; + NSInteger end = [self clampIndex:idx + 1]; + return [CN1TextRange rangeFrom:idx to:end]; +} + +#pragma mark UITextInput - tokenizer + +- (id)tokenizer { + if (self.cn1Tokenizer == nil) { + self.cn1Tokenizer = [[[UITextInputStringTokenizer alloc] initWithTextInput:self] autorelease]; + } + return self.cn1Tokenizer; +} + +#pragma mark sync from Java + +- (void)cn1SyncText:(NSString *)text selStart:(NSInteger)selStart selEnd:(NSInteger)selEnd + caretRect:(CGRect)caretPixels { + CGFloat scale = [UIScreen mainScreen].scale; + if (scale <= 0) { + scale = 1; + } + _caretRectPoints = CGRectMake(caretPixels.origin.x / scale, caretPixels.origin.y / scale, + MAX((CGFloat)2, caretPixels.size.width / scale), caretPixels.size.height / scale); + // Never disturb an active IME composition; only the caret geometry is refreshed above. + if (_markedRange.location != NSNotFound) { + return; + } + if (text != nil) { + [_shadow setString:text]; + } + NSInteger len = (NSInteger)_shadow.length; + NSInteger s = MAX((NSInteger)0, MIN(selStart, len)); + NSInteger e = MAX((NSInteger)0, MIN(selEnd, len)); + _selectedRange = NSMakeRange(MIN(s, e), (NSUInteger)(s > e ? s - e : e - s)); +} + +@end + +#pragma mark - native bridge (declared native in IOSNative.java) + +void com_codename1_impl_ios_IOSNative_startTextInput___int_boolean_boolean_boolean_java_lang_String_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_INT constraint, JAVA_BOOLEAN autoCorrect, JAVA_BOOLEAN autoCapitalize, JAVA_BOOLEAN multiline, JAVA_OBJECT initialText, JAVA_INT selStart, JAVA_INT selEnd) { + NSString* startText = initialText != NULL ? toNSString(CN1_THREAD_GET_STATE_PASS_ARG initialText) : @""; + dispatch_async(dispatch_get_main_queue(), ^{ + @autoreleasepool { + if (cn1TextInputView == nil) { + cn1TextInputView = [[CN1TextInputView alloc] init]; + } + cn1TextInputView.autocorrectionType = autoCorrect ? UITextAutocorrectionTypeYes : UITextAutocorrectionTypeNo; + cn1TextInputView.autocapitalizationType = autoCapitalize ? UITextAutocapitalizationTypeSentences : UITextAutocapitalizationTypeNone; + cn1TextInputView.spellCheckingType = autoCorrect ? UITextSpellCheckingTypeDefault : UITextSpellCheckingTypeNo; + cn1TextInputView.multiline = multiline != 0; + [cn1TextInputView cn1SyncText:(startText != nil ? startText : @"") selStart:selStart selEnd:selEnd caretRect:CGRectMake(0, 0, 2, 16)]; + UIViewController* vc = [CodenameOne_GLViewController instance]; + if (vc != nil) { + cn1TextInputView.frame = vc.view.bounds; + if (cn1TextInputView.superview == nil) { + [vc.view addSubview:cn1TextInputView]; + } + } + [cn1TextInputView becomeFirstResponder]; + [cn1TextInputView cn1EnsureInteraction]; + } + }); +} + +void com_codename1_impl_ios_IOSNative_setTextInputBounds___int_int_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_INT x, JAVA_INT y, JAVA_INT w, JAVA_INT h) { + dispatch_async(dispatch_get_main_queue(), ^{ + @autoreleasepool { + if (cn1TextInputView != nil) { + CGFloat scale = [UIScreen mainScreen].scale; + if (scale <= 0) { + scale = 1; + } + [cn1TextInputView cn1SetEditorBounds:CGRectMake(x / scale, y / scale, w / scale, h / scale)]; + } + } + }); +} + +void com_codename1_impl_ios_IOSNative_updateTextInputState___java_lang_String_int_int_int_int_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_OBJECT text, JAVA_INT selStart, JAVA_INT selEnd, JAVA_INT caretX, JAVA_INT caretY, JAVA_INT caretW, JAVA_INT caretH) { + NSString* nsText = text != NULL ? toNSString(CN1_THREAD_GET_STATE_PASS_ARG text) : nil; + CGRect caret = CGRectMake(caretX, caretY, caretW, caretH); + dispatch_async(dispatch_get_main_queue(), ^{ + @autoreleasepool { + if (cn1TextInputView != nil) { + [cn1TextInputView cn1SyncText:nsText selStart:selStart selEnd:selEnd caretRect:caret]; + } + } + }); +} + +void com_codename1_impl_ios_IOSNative_stopTextInput__(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject) { + dispatch_async(dispatch_get_main_queue(), ^{ + @autoreleasepool { + if (cn1TextInputView != nil) { + [cn1TextInputView resignFirstResponder]; + [cn1TextInputView removeFromSuperview]; + } + } + }); +} + +#else + +// watchOS has no UIKeyInput / UITextInput keyboard support; provide stubs so the symbols still link. +void com_codename1_impl_ios_IOSNative_startTextInput___int_boolean_boolean_boolean_java_lang_String_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_INT constraint, JAVA_BOOLEAN autoCorrect, JAVA_BOOLEAN autoCapitalize, JAVA_BOOLEAN multiline, JAVA_OBJECT initialText, JAVA_INT selStart, JAVA_INT selEnd) { +} +void com_codename1_impl_ios_IOSNative_updateTextInputState___java_lang_String_int_int_int_int_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_OBJECT text, JAVA_INT selStart, JAVA_INT selEnd, JAVA_INT caretX, JAVA_INT caretY, JAVA_INT caretW, JAVA_INT caretH) { +} +void com_codename1_impl_ios_IOSNative_setTextInputBounds___int_int_int_int(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject, JAVA_INT x, JAVA_INT y, JAVA_INT w, JAVA_INT h) { +} +void com_codename1_impl_ios_IOSNative_stopTextInput__(CN1_THREAD_STATE_MULTI_ARG JAVA_OBJECT instanceObject) { +} + +#endif diff --git a/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h b/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h index 93a2dcb66d0..0bf67a46500 100644 --- a/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h +++ b/Ports/iOSPort/nativeSources/CodenameOne_GLViewController.h @@ -45,7 +45,6 @@ void cn1RunSyncOnMainQueue(void (^block)(void)); #import //#define CN1_USE_STOREKIT //#define CN1_USE_APPREVIEW -//#define CN1_USE_CODEMIRROR #if defined(CN1_USE_STOREKIT) || defined(CN1_USE_APPREVIEW) #import "StoreKit/StoreKit.h" #endif diff --git a/Ports/iOSPort/src/com/codename1/impl/ios/IOSImplementation.java b/Ports/iOSPort/src/com/codename1/impl/ios/IOSImplementation.java index da7451cbee4..89c3130de55 100644 --- a/Ports/iOSPort/src/com/codename1/impl/ios/IOSImplementation.java +++ b/Ports/iOSPort/src/com/codename1/impl/ios/IOSImplementation.java @@ -1380,7 +1380,227 @@ public void run() { } } }); - + + } + + // ---- low level text input source (pure Codename One editors) ---- + + private static com.codename1.ui.TextInputClient tiClient; + + @Override + public boolean isTextInputSupported() { + return true; + } + + @Override + public Object startTextInput(com.codename1.ui.TextInputClient client, com.codename1.ui.TextInputConfig config) { + tiClient = client; + com.codename1.ui.TextInputState st = client.getEditingState(); + int constraint = config != null ? config.getConstraint() : 0; + boolean autoCorrect = config == null || config.isAutoCorrect(); + boolean autoCap = config == null || config.isAutoCapitalize(); + boolean multiline = config == null || config.isMultiline(); + nativeInstance.startTextInput(constraint, autoCorrect, autoCap, multiline, + st.getText(), st.getSelectionStart(), st.getSelectionEnd()); + return client; + } + + @Override + public void updateTextInputState(Object handle, com.codename1.ui.TextInputState state) { + com.codename1.ui.TextInputClient c = tiClient; + int[] r = c != null ? c.getCaretRect() : new int[]{0, 0, 0, 0}; + nativeInstance.updateTextInputState(state.getText(), state.getSelectionStart(), state.getSelectionEnd(), + r[0], r[1], r[2], r[3]); + // Push the editor component's absolute bounds so the native input view can gate its touch region to + // the editor (letting iOS draw its selection loupe/handles there) while passing other touches through. + if (c instanceof com.codename1.ui.Component) { + com.codename1.ui.Component comp = (com.codename1.ui.Component) c; + nativeInstance.setTextInputBounds(comp.getAbsoluteX(), comp.getAbsoluteY(), + comp.getWidth(), comp.getHeight()); + } + tiKeepNativeCallbacksAlive(); + } + + // The ti* callbacks below are invoked ONLY from native code (CN1TextInputView.m). ParparVM's dead + // code eliminator does not reliably retain such methods from the native-source scan, so it stubs some + // of them to an empty body and the native call silently does nothing. Referencing them from this + // reachable method (behind a guard that is always false at runtime) forces the eliminator to keep + // their real bodies. tiKeepAlive is never set true. + private static boolean tiKeepAlive = false; + + private static void tiKeepNativeCallbacksAlive() { + if (tiKeepAlive) { + tiCommit(""); + tiSetComposing("", 0); + tiFinishComposing(); + tiDeleteBackward(); + tiKeyCommand(0, 0); + tiEditorAction(0); + tiReplaceRange(0, 0, ""); + tiSetSelection(0, 0); + tiTextLength(); + tiTextRange(0, 0); + tiSelectionStart(); + tiSelectionEnd(); + tiRectForOffset(0); + tiOffsetAtPoint(0, 0); + tiSelectionRects(0, 0); + } + } + + @Override + public void stopTextInput(Object handle) { + tiClient = null; + nativeInstance.stopTextInput(); + } + + /// Callback from native: committed text. + public static void tiCommit(final String text) { + final com.codename1.ui.TextInputClient c = tiClient; + if (c == null) { + return; + } + Display.getInstance().callSerially(new Runnable() { + public void run() { + c.commitText(text); + } + }); + } + + /// Callback from native: IME composing (marked) text. + public static void tiSetComposing(final String text, final int rel) { + final com.codename1.ui.TextInputClient c = tiClient; + if (c == null) { + return; + } + Display.getInstance().callSerially(new Runnable() { + public void run() { + c.setComposingText(text, rel); + } + }); + } + + /// Callback from native: composition finished. + public static void tiFinishComposing() { + final com.codename1.ui.TextInputClient c = tiClient; + if (c == null) { + return; + } + Display.getInstance().callSerially(new Runnable() { + public void run() { + c.finishComposing(); + } + }); + } + + /// Callback from native: delete backward (one character before caret). + public static void tiDeleteBackward() { + final com.codename1.ui.TextInputClient c = tiClient; + if (c == null) { + return; + } + Display.getInstance().callSerially(new Runnable() { + public void run() { + c.deleteSurroundingText(1, 0); + } + }); + } + + /// Callback from native: a navigation / editing key command. + public static void tiKeyCommand(final int command, final int modifiers) { + final com.codename1.ui.TextInputClient c = tiClient; + if (c == null) { + return; + } + Display.getInstance().callSerially(new Runnable() { + public void run() { + c.onKeyCommand(command, modifiers); + } + }); + } + + /// Callback from native: keyboard return / action key. + public static void tiEditorAction(final int action) { + final com.codename1.ui.TextInputClient c = tiClient; + if (c == null) { + return; + } + Display.getInstance().callSerially(new Runnable() { + public void run() { + c.onEditorAction(action); + } + }); + } + + // ---- UITextInput geometry + range edits (native calls these; geometry queries run synchronously on + // the iOS main thread, which is also the Codename One EDT on iOS) ---- + + /// Total document length in UTF-16 characters. + public static int tiTextLength() { + com.codename1.ui.TextInputClient c = tiClient; + return c != null ? c.getTextLength() : 0; + } + + /// Text in the range `[start, end)`. + public static String tiTextRange(int start, int end) { + com.codename1.ui.TextInputClient c = tiClient; + return c != null ? c.getTextRange(start, end) : ""; + } + + /// Current selection start offset. + public static int tiSelectionStart() { + com.codename1.ui.TextInputClient c = tiClient; + return c != null ? c.getEditingState().getSelectionStart() : 0; + } + + /// Current selection end offset. + public static int tiSelectionEnd() { + com.codename1.ui.TextInputClient c = tiClient; + return c != null ? c.getEditingState().getSelectionEnd() : 0; + } + + /// Caret rectangle for an offset, absolute screen pixels `{x, y, w, h}`. + public static int[] tiRectForOffset(int offset) { + com.codename1.ui.TextInputClient c = tiClient; + return c != null ? c.rectForOffset(offset) : new int[]{0, 0, 0, 0}; + } + + /// Document offset nearest an absolute screen point (pixels). + public static int tiOffsetAtPoint(int x, int y) { + com.codename1.ui.TextInputClient c = tiClient; + return c != null ? c.offsetAtPoint(x, y) : 0; + } + + /// Selection rectangles for `[start, end)`, flat array of absolute-pixel `{x, y, w, h, ...}`. + public static int[] tiSelectionRects(int start, int end) { + com.codename1.ui.TextInputClient c = tiClient; + return c != null ? c.selectionRects(start, end) : new int[0]; + } + + /// Callback from native: replace a range with text (range based edit). + public static void tiReplaceRange(final int start, final int end, final String text) { + final com.codename1.ui.TextInputClient c = tiClient; + if (c == null) { + return; + } + Display.getInstance().callSerially(new Runnable() { + public void run() { + c.replaceRange(start, end, text); + } + }); + } + + /// Callback from native: set the selection range. + public static void tiSetSelection(final int start, final int end) { + final com.codename1.ui.TextInputClient c = tiClient; + if (c == null) { + return; + } + Display.getInstance().callSerially(new Runnable() { + public void run() { + c.setSelectionRange(start, end); + } + }); } @Override diff --git a/Ports/iOSPort/src/com/codename1/impl/ios/IOSNative.java b/Ports/iOSPort/src/com/codename1/impl/ios/IOSNative.java index 58a714251cc..db6d882a07d 100644 --- a/Ports/iOSPort/src/com/codename1/impl/ios/IOSNative.java +++ b/Ports/iOSPort/src/com/codename1/impl/ios/IOSNative.java @@ -63,6 +63,10 @@ native void editStringAt(int x, int y, int w, int h, long peer, boolean singleLi int color, long imagePeer, int padTop, int padBottom, int padLeft, int padRight, String hint, int hintColor, boolean showToolbar, boolean blockCopyPaste, int alignment, int verticalAlignment, boolean returnExitsEditing); + native void startTextInput(int constraint, boolean autoCorrect, boolean autoCapitalize, boolean multiline, String initialText, int selStart, int selEnd); + native void updateTextInputState(String text, int selStart, int selEnd, int caretX, int caretY, int caretW, int caretH); + native void setTextInputBounds(int x, int y, int w, int h); + native void stopTextInput(); native void resizeNativeTextView(int x, int y, int w, int h, int padTop, int padRight, int padBottom, int padLeft); native void flushBuffer(long peer, int x, int y, int width, int height); native void flushBufferForReadback(int x, int y, int width, int height); diff --git a/docs/developer-guide/The-Components-Of-Codename-One.asciidoc b/docs/developer-guide/The-Components-Of-Codename-One.asciidoc index 5bc12ec18d0..2c01ac99b4e 100644 --- a/docs/developer-guide/The-Components-Of-Codename-One.asciidoc +++ b/docs/developer-guide/The-Components-Of-Codename-One.asciidoc @@ -1957,9 +1957,9 @@ This is discussed further in the https://www.codenameone.com/blog/phonegap-cordo The https://www.codenameone.com/javadoc/com/codename1/ui/RichTextArea.html[RichTextArea] is a visual editor for formatted text (a WYSIWYG / HTML editor). It lets the user select text and apply styling - bold, italic, underline, lists, links, colors, headings - and exchanges the result with your application as HTML. It works on phones and tablets with the on-screen virtual keyboard, and on desktops with a physical keyboard. -`RichTextArea` derives from `AbstractEditorComponent`. By default the editing surface is a `contenteditable` document hosted inside the platform's native web widget (the same one used by `BrowserComponent`), which makes it fully cross-platform and gives correct keyboard, selection and IME behavior on every device. A platform port may transparently replace this with a fully native editing widget without any change to your code. +`RichTextArea` derives from `AbstractEditorComponent`. The editor is implemented by the pure Codename One text engine (package `com.codename1.ui.editor`): it renders the document itself with `Graphics` and `Font` and binds to the platform text input source, so keyboard, selection and IME behavior are correct on every device. A platform port MAY still transparently supply a fully native editor peer (through `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(AbstractEditorComponent, String)`) without any change to your code. -NOTE: Because the editor is created asynchronously you should treat it like `BrowserComponent`: setters such as `setHtml(String)` are safe to call immediately (they're queued until the editor is ready) while reads such as `getHtml(SuccessCallback)` are asynchronous and deliver their result through a callback. +NOTE: Reads such as `getHtml(SuccessCallback)` and `getText(SuccessCallback)` deliver their result through a callback, while setters such as `setHtml(String)` apply directly to the document. The following sample places a `RichTextArea` in a form and wires a couple of formatting commands into the `Toolbar`: @@ -1975,19 +1975,29 @@ The formatting commands map to the operations you would expect from a word proce TIP: To keep a formatting toolbar in sync with the selection (for example, to highlight the bold button when the caret is inside bold text) register a change listener with `addChangeListener(ActionListener)` and query the active state with `queryCommandState("bold", active -> ...)`. -Reading the edited content is asynchronous: +Reading the edited content is asynchronous: call `getHtml(SuccessCallback)` for the formatted HTML or `getText(SuccessCallback)` for the plain text. +==== Text input, bidirectional text and touch selection + +Both `RichTextArea` and `CodeEditor` share the pure text engine, so the following capabilities apply to either editor: + +- *Text input from every source.* The on-screen (virtual) keyboard, a hardware or Bluetooth keyboard and IME / CJK marked-text composition all feed the same document. Marked (composing) text is shown inline until the IME commits it. +- *Bidirectional (RTL) text.* Hebrew and Arabic, as well as mixed LTR + RTL lines, are laid out with the Unicode Bidi Algorithm; the caret, the selection highlight and the rendered glyphs all follow the visual order. The base direction of a line follows the component's RTL flag, so `Component.setRTL(boolean)` and `isRTL()` control whether the paragraph is treated as right-to-left. +- *Native-feel touch selection.* A long-press selects the word under the finger, the selection can be adjusted with draggable selection handles, a magnifier loupe appears while you place the caret or drag a handle, and a Copy / Cut / Paste / Select All toolbar is shown for the current selection. +- *Desktop selection.* On desktop the editor uses standard mouse selection (click, drag, double-click to select a word) together with the usual keyboard shortcuts. + +The public API of both `RichTextArea` and `CodeEditor` is unchanged, so this engine is a drop-in replacement and existing apps keep working without modification. === CodeEditor -The https://www.codenameone.com/javadoc/com/codename1/ui/CodeEditor.html[CodeEditor] is an IDE-style source editor with syntax highlighting, a line-number gutter, light/dark themes and asynchronous code completion. Like `RichTextArea` it's designed for both touch devices (with the virtual keyboard) and desktops (with a physical keyboard), and uses the same cross-platform editing backend with an optional native upgrade per platform. +The https://www.codenameone.com/javadoc/com/codename1/ui/CodeEditor.html[CodeEditor] is an IDE-style source editor with syntax highlighting, a line-number gutter, light/dark themes and asynchronous code completion. Like `RichTextArea` it's designed for both touch devices (with the virtual keyboard) and desktops (with a physical keyboard), and it is implemented by the same pure Codename One text engine that renders the document itself and binds to the platform text input source. A platform port MAY still transparently supply a fully native editor peer (through `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(AbstractEditorComponent, String)`) without any change to your code. [source,java] ---- include::../demos/common/src/main/java/com/codenameone/developerguide/snippets/generated/TheComponentsOfCodenameOneJava117Snippet.java[tag=the-components-of-codename-one-java-117,indent=0] ---- -The highlighting language is selected with `setLanguage(String)` and understands common languages such as `java`, `kotlin`, `javascript`, `python`, `css`, `xml`, `json` and `c`. The content is exchanged with `setText(String)` and the asynchronous `getText(SuccessCallback)`, and `setReadOnly(boolean)` turns the editor into a syntax-highlighted code viewer. +The highlighting language is selected with `setLanguage(String)` and understands common languages such as `java`, `kotlin`, `javascript`, `python`, `css`, `xml`, `json` and `c`. The content is exchanged with `setText(String)` and the asynchronous `getText(SuccessCallback)`, and `setReadOnly(boolean)` turns the editor into a syntax-highlighted code viewer. The line-number gutter is toggled with `setShowLineNumbers(boolean)`, the indentation width is controlled with `setTabSize(int)`, and text can be dropped in at the caret with `insertAtCursor(String)`. You can query the caret with `getCursorPosition(SuccessCallback)`. .CodeEditor showing Java with the completion popup (light theme) image::img/components-codeeditor.png[CodeEditor showing Java with the completion popup,scaledwidth=35%] @@ -1999,12 +2009,16 @@ Code completion is driven by a https://www.codenameone.com/javadoc/com/codename1 Each https://www.codenameone.com/javadoc/com/codename1/ui/CodeCompletion.html[CodeCompletion] carries the text shown in the popup, the text inserted when it's chosen (which may differ), an optional category used to badge the entry (`"method"`, `"keyword"`, `"class"`, ...) and an optional detail string such as a signature. +==== Diagnostics + +The editor can underline problem ranges with wavy squiggles. Pass a list of https://www.codenameone.com/javadoc/com/codename1/ui/CodeDiagnostic.html[CodeDiagnostic] entries to `setDiagnostics(List)`; each entry marks a span of the source (for example the output of a compiler or linter) so errors and warnings are drawn directly in the gutter and text. This pairs naturally with an asynchronous `CodeCompletionProvider` backed by a language server. + The editor honors light and dark themes through `setTheme(String)`: .CodeEditor in the dark theme image::img/components-codeeditor-dark.png[CodeEditor in the dark theme,scaledwidth=35%] -TIP: The built-in editing surface is fully self contained and works offline with no external dependencies. When an app actually references `CodeEditor` the build server can additionally bundle a richer code editor library; apps that don't use `CodeEditor` never pay that cost. +TIP: The editor is fully self contained and works offline with no external dependencies: syntax highlighting, the line-number gutter, code completion and diagnostics are all provided by the pure Codename One text engine. === AutoCompleteTextField diff --git a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java index c945eba73c4..31eb21e7c46 100644 --- a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java +++ b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/AndroidGradleBuilder.java @@ -297,7 +297,6 @@ public File getGradleProjectDirectory() { private boolean usesAppleSignIn; private boolean usesWebauthn; private boolean usesAppReview; - private boolean usesCodeEditor; private boolean vibratePermission; private boolean smsPermission; private boolean gpsPermission; @@ -1349,13 +1348,6 @@ public void usesClass(String cls) { if (!usesAppReview && cls.indexOf("com/codename1/appreview") == 0) { usesAppReview = true; } - // CodeEditor optionally upgrades its built-in highlighter to - // the bundled CodeMirror web assets. Detected from actual - // usage so apps that never embed a code editor pay nothing - // (see the bundling step further below). - if (!usesCodeEditor && cls.indexOf("com/codename1/ui/CodeEditor") == 0) { - usesCodeEditor = true; - } if (cls.indexOf("com/codename1/location/Geofence") > -1) { if (!"true".equals(playServicesValue)) { // If play services are not currently "blanket" enabled @@ -4506,15 +4498,6 @@ public void usesClassMethod(String cls, String method) { additionalDependencies += " implementation 'com.google.android.play:review:"+reviewVersion+"'\n"; } - // CodeEditor (com.codename1.ui.CodeEditor) can upgrade its self-contained - // built-in highlighter to the bundled CodeMirror assets. We only flag the - // bundling when the app actually references CodeEditor (detected during the - // class scan above) so apps that never embed a code editor stay lean. - if (usesCodeEditor) { - debug("CodeEditor detected: enabling CodeMirror asset bundling"); - request.putArgument("codeEditor.bundleCodeMirror", "true"); - } - // OidcClient routes sign-in through androidx.browser Custom Tabs. // Pull the browser dep in automatically when the app references // anything in com.codename1.io.oidc -- otherwise apps that don't diff --git a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java index 0cabd385f21..645bd979d90 100644 --- a/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java +++ b/maven/codenameone-maven-plugin/src/main/java/com/codename1/builders/IPhoneBuilder.java @@ -107,7 +107,6 @@ public class IPhoneBuilder extends Executor { private boolean usesLocalNotifications; private boolean usesPurchaseAPI; private boolean usesAppReview; - private boolean usesCodeEditor; private boolean usesWalletApi; private boolean usesCryptoAPI; private boolean usesCryptoGcm; @@ -786,12 +785,6 @@ public void usesClass(String cls) { if (!usesAppReview && cls.indexOf("com/codename1/appreview") == 0) { usesAppReview = true; } - // CodeEditor optionally upgrades its built-in highlighter to the - // bundled CodeMirror web assets. Gated on actual usage (CN1_USE_CODEMIRROR) - // so apps that never embed a code editor pay nothing. - if (!usesCodeEditor && cls.indexOf("com/codename1/ui/CodeEditor") == 0) { - usesCodeEditor = true; - } // Wallet issuer-provisioning natives are only compiled in when // the app actually references the API (or enables the extension // via the ios.wallet.extension hint) - see CN1_INCLUDE_WALLET. @@ -2075,11 +2068,6 @@ public void usesClassMethod(String cls, String method) { replaceInFile(CodenameOne_GLViewController_h, "//#define CN1_USE_APPREVIEW", "#define CN1_USE_APPREVIEW"); } - if (usesCodeEditor) { - File CodenameOne_GLViewController_h = new File(buildinRes, "CodenameOne_GLViewController.h"); - replaceInFile(CodenameOne_GLViewController_h, "//#define CN1_USE_CODEMIRROR", "#define CN1_USE_CODEMIRROR"); - - } } catch (Exception ex) { throw new BuildException("Failure while injecting code from build hints", ex); } diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java index 7e3c28068fa..5078dd7e2e8 100644 --- a/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java +++ b/maven/core-unittests/src/test/java/com/codename1/ui/CodeEditorTest.java @@ -216,14 +216,24 @@ void testChangeEventStillDispatchesThroughOverride() { } @FormTest - void testBrowserFallbackUsesCodeEditorPage() { - // no native peer -> cross platform browser backend - CodeEditor editor = new CodeEditor(); + void testPureBackendUsedWhenNoNativePeer() { + // no native peer -> pure Codename One code engine + CodeEditor editor = new CodeEditor("java", "class A {}"); Form f = new Form("code", new BorderLayout()); f.add(BorderLayout.CENTER, editor); f.show(); pump(); assertFalse(editor.isNativeEditor()); - assertNotNull(editor.getInternalBrowser()); + assertTrue(editor.isEditorReady()); + assertNull(editor.getInternalBrowser()); + final java.util.concurrent.atomic.AtomicReference text = + new java.util.concurrent.atomic.AtomicReference(); + editor.getText(new com.codename1.util.SuccessCallback() { + public void onSucess(String v) { + text.set(v); + } + }); + pump(); + assertEquals("class A {}", text.get()); } } diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java index 1c333f7af51..6af22ed6637 100644 --- a/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java +++ b/maven/core-unittests/src/test/java/com/codename1/ui/RichTextAreaTest.java @@ -15,8 +15,8 @@ * Deep coverage for {@link RichTextArea}. The component routes every operation through the semantic * command/query channel of {@link AbstractEditorComponent}; these tests drive it against the * deterministic native editor backend provided by the test implementation so the full command, query, - * event and ready-queue machinery is exercised without a real web view. A couple of tests additionally - * verify the cross-platform {@code BrowserComponent} fallback selection. + * event and ready-queue machinery is exercised. A couple of tests additionally verify the pure + * Codename One text engine that is selected when no native peer is available. */ class RichTextAreaTest extends UITestBase { @@ -243,41 +243,41 @@ void testReadyListenerFiresAfterInitialization() { assertEquals(1, count.get()); } - // --- cross platform BrowserComponent fallback --- + // --- pure Codename One text engine (default when no native peer) --- @FormTest - void testBrowserFallbackSelectedWhenNoNativePeer() { - // editorNativePeerSupported defaults to false -> no native peer -> browser fallback + void testPureBackendSelectedWhenNoNativePeer() { + // editorNativePeerSupported defaults to false -> no native peer -> pure engine RichTextArea editor = new RichTextArea(); Form f = new Form("rt", new BorderLayout()); f.add(BorderLayout.CENTER, editor); f.show(); pump(); assertFalse(editor.isNativeEditor()); - assertNotNull(editor.getInternalBrowser()); + assertTrue(editor.isEditorReady()); + assertNull(editor.getInternalBrowser()); } @FormTest - void testBrowserFallbackBecomesReadyOnLoadAndRoutesCommands() { + void testPureBackendRoundTripsContent() { RichTextArea editor = new RichTextArea(); Form f = new Form("rt", new BorderLayout()); f.add(BorderLayout.CENTER, editor); f.show(); pump(); - assertFalse(editor.isEditorReady()); - // simulate the web view finishing load -> editor becomes ready - editor.getInternalBrowser().fireWebEvent(BrowserComponent.onLoad, new com.codename1.ui.events.ActionEvent(editor)); - pump(); assertTrue(editor.isEditorReady()); - editor.bold(); + editor.setHtml("

hello world

"); pump(); - boolean routed = false; - for (String s : implementation.getBrowserExecuted()) { - if (s.contains("cn1editor.cmd") && s.contains("bold")) { - routed = true; - break; + final java.util.concurrent.atomic.AtomicReference text = + new java.util.concurrent.atomic.AtomicReference(); + editor.getText(new com.codename1.util.SuccessCallback() { + public void onSucess(String v) { + text.set(v); } - } - assertTrue(routed, "bold() should be routed to the browser backend as a cn1editor.cmd call"); + }); + pump(); + assertNotNull(text.get()); + assertTrue(text.get().contains("hello")); + assertTrue(text.get().contains("world")); } } diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/BidiUtilTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/BidiUtilTest.java new file mode 100644 index 00000000000..eab33e6fe9d --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/editor/BidiUtilTest.java @@ -0,0 +1,138 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/// Unit tests for the Unicode Bidi Algorithm core used by the pure editor. Samples use unicode escapes +/// to keep the source ASCII only: Hebrew alef/bet/gimel = u05D0..u05D2, Arabic alef/beh/teh = +/// u0627/u0628/u062A, Arabic-Indic zero = u0660. +class BidiUtilTest { + + private static final String HEB = "\u05D0\u05D1\u05D2"; // aleph bet gimel (strong R) + private static final String ARABIC = "\u0627\u0628\u062A"; // alef beh teh (strong AL) + + @Test + void classifiesCommonTypes() { + assertEquals(BidiUtil.L, BidiUtil.typeOf('a')); + assertEquals(BidiUtil.L, BidiUtil.typeOf('Z')); + assertEquals(BidiUtil.EN, BidiUtil.typeOf('5')); + assertEquals(BidiUtil.R, BidiUtil.typeOf('\u05D0')); + assertEquals(BidiUtil.AL, BidiUtil.typeOf('\u0627')); + assertEquals(BidiUtil.AN, BidiUtil.typeOf('\u0660')); + assertEquals(BidiUtil.WS, BidiUtil.typeOf(' ')); + assertEquals(BidiUtil.ON, BidiUtil.typeOf('!')); + assertEquals(BidiUtil.L, BidiUtil.typeOf('\u4E2D')); // CJK -> strong L + } + + @Test + void autoBaseDirectionFromFirstStrong() { + assertFalse(BidiUtil.autoBaseRtl("hello")); + assertFalse(BidiUtil.autoBaseRtl("123 abc")); // digits are not strong; first strong is 'a' + assertTrue(BidiUtil.autoBaseRtl(HEB)); + assertTrue(BidiUtil.autoBaseRtl("123 " + HEB)); // first strong is Hebrew + assertFalse(BidiUtil.autoBaseRtl("abc " + HEB)); // first strong is Latin + assertTrue(BidiUtil.autoBaseRtl(ARABIC + " abc")); // first strong is Arabic + } + + @Test + void pureLtrIsIdentityOrder() { + byte[] levels = BidiUtil.resolveLevels("hello", false); + for (byte b : levels) { + assertEquals(0, b); + } + int[] vis = BidiUtil.reorderVisual(levels); + assertArrayEquals(new int[]{0, 1, 2, 3, 4}, vis); + assertTrue(BidiUtil.isTrivialLtr("hello world 123", false)); + } + + @Test + void pureRtlIsFullyReversed() { + byte[] levels = BidiUtil.resolveLevels(HEB, true); + for (byte b : levels) { + assertEquals(1, b); + } + int[] vis = BidiUtil.reorderVisual(levels); + assertArrayEquals(new int[]{2, 1, 0}, vis); + assertFalse(BidiUtil.isTrivialLtr(HEB, true)); + assertFalse(BidiUtil.isTrivialLtr(HEB, false)); // strong R makes even an LTR base non-trivial + } + + @Test + void embeddedRtlRunReversesWithinLtrParagraph() { + // logical: a b c _ H0 H1 _ x y z (H = Hebrew), LTR base + String s = "abc \u05D0\u05D1 xyz"; + byte[] levels = BidiUtil.resolveLevels(s, false); + int[] vis = BidiUtil.reorderVisual(levels); + // only the two Hebrew letters (indices 4,5) swap; everything else stays put + assertArrayEquals(new int[]{0, 1, 2, 3, 5, 4, 6, 7, 8, 9}, vis); + } + + @Test + void numberRunStaysLtrInsideRtlParagraph() { + // logical: H0 H1 _ '1' '2' with RTL base. The number is an LTR island inside RTL text, so + // visually (left to right) the number reads "12" on the left, then space, then the reversed Hebrew. + String s = "\u05D0\u05D1 12"; + byte[] levels = BidiUtil.resolveLevels(s, true); + assertEquals(1, levels[0]); // Hebrew + assertEquals(1, levels[1]); + assertEquals(2, levels[3]); // '1' European number -> level base+1 = 2 inside RTL + assertEquals(2, levels[4]); // '2' + int[] vis = BidiUtil.reorderVisual(levels); + assertArrayEquals(new int[]{3, 4, 2, 1, 0}, vis); + } + + @Test + void arabicNumberFollowsArabicLetters() { + // W2: European digits after an Arabic letter become Arabic numbers (still an LTR-ordered run). + String s = ARABIC + "12"; + byte[] levels = BidiUtil.resolveLevels(s, true); + // Arabic letters resolve to R (level 1); the digits are AN -> level 2 + assertEquals(1, levels[0]); + assertEquals(2, levels[levels.length - 1]); + } + + @Test + void reorderIsAStablePermutation() { + String s = "abc " + HEB + " 42 " + ARABIC; + for (boolean rtl : new boolean[]{false, true}) { + int[] vis = BidiUtil.reorderVisual(BidiUtil.resolveLevels(s, rtl)); + assertEquals(s.length(), vis.length); + boolean[] seen = new boolean[s.length()]; + for (int v : vis) { + assertTrue(v >= 0 && v < s.length()); + assertFalse(seen[v], "index " + v + " appeared twice"); + seen[v] = true; + } + } + } + + @Test + void emptyLineIsHandled() { + assertEquals(0, BidiUtil.resolveLevels("", false).length); + assertEquals(0, BidiUtil.reorderVisual(new byte[0]).length); + assertTrue(BidiUtil.isTrivialLtr("", false)); + } +} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorDocumentTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorDocumentTest.java new file mode 100644 index 00000000000..492c78a3c1f --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorDocumentTest.java @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/// Pure (no UI) unit tests for the editor document model: text mutation, the cached line index, offset +/// conversions and newline normalization. +class EditorDocumentTest { + private EditorDocument doc; + + @BeforeEach + void setUp() { + doc = new EditorDocument(); + } + + @Test + void emptyDocument() { + assertEquals(0, doc.length()); + assertEquals("", doc.getText()); + assertEquals(1, doc.getLineCount()); + assertEquals(0, doc.lineOfOffset(0)); + } + + @Test + void insertAndDelete() { + doc.insert(0, "hello world"); + assertEquals("hello world", doc.getText()); + assertEquals(11, doc.length()); + doc.delete(5, 11); + assertEquals("hello", doc.getText()); + doc.insert(0, ">> "); + assertEquals(">> hello", doc.getText()); + } + + @Test + void substringAndCharAt() { + doc.setText("abcdef"); + assertEquals("cde", doc.substring(2, 5)); + assertEquals('a', doc.charAt(0)); + assertEquals('f', doc.charAt(5)); + } + + @Test + void clampKeepsOffsetsInRange() { + doc.setText("abc"); + assertEquals(0, doc.clamp(-5)); + assertEquals(3, doc.clamp(99)); + assertEquals(2, doc.clamp(2)); + } + + @Test + void lineIndexForMultipleLines() { + doc.setText("line1\nline2\nline3"); + assertEquals(3, doc.getLineCount()); + assertEquals(0, doc.getLineStart(0)); + assertEquals(6, doc.getLineStart(1)); + assertEquals(12, doc.getLineStart(2)); + assertEquals("line2", doc.getLineText(1)); + assertEquals(5, doc.getLineEnd(0)); + } + + @Test + void offsetToLineAndColumn() { + doc.setText("ab\ncde\nf"); + assertEquals(0, doc.lineOfOffset(0)); + assertEquals(0, doc.lineOfOffset(2)); + assertEquals(1, doc.lineOfOffset(3)); + assertEquals(1, doc.lineOfOffset(6)); + assertEquals(2, doc.lineOfOffset(7)); + assertEquals(0, doc.columnOfOffset(3)); // start of line 1 + assertEquals(3, doc.columnOfOffset(6)); // end of "cde" + } + + @Test + void crlfAndCrNormalizeToLf() { + doc.setText("a\r\nb\rc\nd"); + assertEquals("a\nb\nc\nd", doc.getText()); + assertEquals(4, doc.getLineCount()); + } + + @Test + void lineIndexUpdatesAfterEdit() { + doc.setText("one\ntwo"); + assertEquals(2, doc.getLineCount()); + doc.insert(3, "\ninserted"); + assertEquals("one\ninserted\ntwo", doc.getText()); + assertEquals(3, doc.getLineCount()); + assertEquals("inserted", doc.getLineText(1)); + } +} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewBidiTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewBidiTest.java new file mode 100644 index 00000000000..c336bf0348a --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewBidiTest.java @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.junit.FormTest; +import com.codename1.junit.UITestBase; +import com.codename1.ui.Font; +import com.codename1.ui.Form; +import com.codename1.ui.TextInputClient; +import com.codename1.ui.TextInputConfig; +import com.codename1.ui.TextInputState; +import com.codename1.ui.layouts.BorderLayout; +import static org.junit.jupiter.api.Assertions.*; + +/// Headless integration tests for the bidi geometry wiring in {@link EditorView} (same package, so the +/// protected {@code measureColumnX}/{@code columnAtX}/{@code lineVisualSegments} hooks are reachable). +/// The Unicode Bidi Algorithm itself is covered by {@link BidiUtilTest}; this verifies the editor maps +/// logical columns to visual x and back correctly for right-to-left and mixed lines. +class EditorViewBidiTest extends UITestBase { + + private static final String HEB = "\u05D0\u05D1\u05D2\u05D3"; // 4 Hebrew letters (strong R) + + private static final class NoopHost implements EditorHost { + public boolean isTextInputSupported() { + return false; + } + + public Object startTextInput(TextInputClient client, TextInputConfig config) { + return null; + } + + public void updateTextInputState(Object handle, TextInputState state) { + } + + public void stopTextInput(Object handle) { + } + + public void editorChanged() { + } + + public void fireEditorEvent(String type, String value) { + } + } + + private EditorView show(String text) { + EditorView v = new EditorView(new NoopHost(), true); + Form f = new Form("ev", new BorderLayout()); + f.add(BorderLayout.CENTER, v); + f.show(); + for (int i = 0; i < 4; i++) { + flushSerialCalls(); + } + v.setText(text); + return v; + } + + private Font font(EditorView v) { + return v.getUnselectedStyle().getFont(); + } + + @FormTest + void ltrCaretXIncreasesWithColumn() { + EditorView v = show("abcd"); + Font f = font(v); + assertTrue(f.stringWidth("abcd") > 0, "test font must report widths"); + int prev = -1; + for (int c = 0; c <= 4; c++) { + int x = v.measureColumnX(0, "abcd", c, f); + assertTrue(x >= prev, "LTR caret x must be non-decreasing (col " + c + ")"); + prev = x; + } + } + + @FormTest + void rtlCaretXDecreasesWithColumn() { + EditorView v = show(HEB); + Font f = font(v); + // pure RTL line: logical column 0 is the RIGHTMOST caret, the end is the LEFTMOST + int x0 = v.measureColumnX(0, HEB, 0, f); + int xEnd = v.measureColumnX(0, HEB, HEB.length(), f); + assertTrue(x0 > xEnd, "in RTL the start caret is to the right of the end caret"); + int prev = Integer.MAX_VALUE; + for (int c = 0; c <= HEB.length(); c++) { + int x = v.measureColumnX(0, HEB, c, f); + assertTrue(x <= prev, "RTL caret x must be non-increasing (col " + c + ")"); + prev = x; + } + } + + @FormTest + void caretRoundTripsThroughHitTestForUnidirectionalText() { + // In purely LTR or purely RTL text every logical column has a distinct visual x, so hit testing + // the caret x returns the exact same column. + for (String text : new String[]{"abcd", HEB}) { + EditorView v = show(text); + Font f = font(v); + for (int c = 0; c <= text.length(); c++) { + int x = v.measureColumnX(0, text, c, f); + int back = v.columnAtX(0, text, x, f); + assertEquals(c, back, "hit test of caret x should return the same column for '" + + text + "' col " + c); + } + } + } + + @FormTest + void hitTestIsVisuallyStableForMixedText() { + // At a bidi direction boundary two logical columns can share one visual x, so hit testing may + // return the equivalent column; the correct invariant is that the visual x is preserved. + String text = "ab " + HEB + " cd"; + EditorView v = show(text); + Font f = font(v); + for (int c = 0; c <= text.length(); c++) { + int x = v.measureColumnX(0, text, c, f); + int back = v.columnAtX(0, text, x, f); + assertEquals(x, v.measureColumnX(0, text, back, f), + "hit testing caret x must map to a column at the same visual x (col " + c + ")"); + } + } + + @FormTest + void selectionSegmentsCoverRangeWidth() { + EditorView v = show(HEB); + Font f = font(v); + int[] segs = v.lineVisualSegments(0, HEB, 0, HEB.length(), f); + assertTrue(segs.length >= 2, "a non-empty selection yields at least one segment"); + int total = 0; + for (int i = 1; i < segs.length; i += 2) { + total += segs[i]; + } + // the segments of a full-line selection add up to the whole line width + assertEquals(f.substringWidth(HEB, 0, HEB.length()), total, 2); + } + + @FormTest + void mixedLineProducesMultipleSelectionSegments() { + String s = "ab " + HEB + " cd"; // LTR ... RTL ... LTR -> visually disjoint when selecting across + EditorView v = show(s); + Font f = font(v); + // select the whole line: because the RTL run reverses, the logical range still tiles the line, + // so total segment width equals the full line width + int[] segs = v.lineVisualSegments(0, s, 0, s.length(), f); + int total = 0; + for (int i = 1; i < segs.length; i += 2) { + total += segs[i]; + } + assertEquals(f.substringWidth(s, 0, s.length()), total, 3); + } +} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewInputTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewInputTest.java new file mode 100644 index 00000000000..769cb89dabc --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorViewInputTest.java @@ -0,0 +1,129 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.junit.FormTest; +import com.codename1.junit.UITestBase; +import com.codename1.ui.Form; +import com.codename1.ui.TextInputClient; +import com.codename1.ui.TextInputConfig; +import com.codename1.ui.TextInputState; +import com.codename1.ui.layouts.BorderLayout; +import static org.junit.jupiter.api.Assertions.*; + +/// Headless tests for the text-input path of the pure editor: IME/CJK marked-text composition (the +/// counterpart to the platform {@code setMarkedText}/{@code setComposingText}) and text commit. +class EditorViewInputTest extends UITestBase { + + // Japanese: NI HON (start with kana, convert to kanji); Chinese: ZHONG WEN + private static final String KANA = "\u306B\u307B\u3093"; + private static final String KANJI = "\u65E5\u672C"; + + private static final class NoopHost implements EditorHost { + public boolean isTextInputSupported() { + return false; + } + + public Object startTextInput(TextInputClient client, TextInputConfig config) { + return null; + } + + public void updateTextInputState(Object handle, TextInputState state) { + } + + public void stopTextInput(Object handle) { + } + + public void editorChanged() { + } + + public void fireEditorEvent(String type, String value) { + } + } + + private EditorView show(String text) { + EditorView v = new EditorView(new NoopHost(), true); + Form f = new Form("ev", new BorderLayout()); + f.add(BorderLayout.CENTER, v); + f.show(); + for (int i = 0; i < 4; i++) { + flushSerialCalls(); + } + v.setText(text); + v.setSelectionRange(text.length(), text.length()); + return v; + } + + @FormTest + void composingTextInsertsAtCaret() { + EditorView v = show("ab"); + v.setComposingText(KANA, KANA.length()); + assertEquals("ab" + KANA, v.getText()); + // the marked (composing) range is reported to the platform for candidate placement + TextInputState st = v.getEditingState(); + assertEquals(2, st.getComposingStart()); + assertEquals(2 + KANA.length(), st.getComposingEnd()); + } + + @FormTest + void composingUpdatesInPlace() { + EditorView v = show("ab"); + v.setComposingText(KANA, KANA.length()); + assertEquals("ab" + KANA, v.getText()); + // the IME converts the kana to kanji: the composing region is replaced, not appended + v.setComposingText(KANJI, KANJI.length()); + assertEquals("ab" + KANJI, v.getText()); + } + + @FormTest + void finishComposingKeepsTextAndClearsMarkedRange() { + EditorView v = show("ab"); + v.setComposingText(KANJI, KANJI.length()); + v.finishComposing(); + assertEquals("ab" + KANJI, v.getText()); + TextInputState st = v.getEditingState(); + assertTrue(st.getComposingStart() < 0, "marked range cleared after finishComposing"); + // subsequent input is a normal insert at the caret, not part of a composition + v.commitText("!"); + assertEquals("ab" + KANJI + "!", v.getText()); + } + + @FormTest + void emptyComposingTextRemovesMarkedText() { + EditorView v = show("ab"); + v.setComposingText(KANA, KANA.length()); + assertEquals("ab" + KANA, v.getText()); + // deleting during composition (empty marked text) removes the composed characters + v.setComposingText("", 0); + assertEquals("ab", v.getText()); + } + + @FormTest + void commitTextReplacesActiveComposition() { + EditorView v = show("ab"); + v.setComposingText(KANA, KANA.length()); + v.commitText(KANJI); + assertEquals("ab" + KANJI, v.getText()); + } +} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/RichViewBidiTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/RichViewBidiTest.java new file mode 100644 index 00000000000..097af5b1fdc --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/editor/RichViewBidiTest.java @@ -0,0 +1,130 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.junit.FormTest; +import com.codename1.junit.UITestBase; +import com.codename1.ui.Font; +import com.codename1.ui.Form; +import com.codename1.ui.TextInputClient; +import com.codename1.ui.TextInputConfig; +import com.codename1.ui.TextInputState; +import com.codename1.ui.layouts.BorderLayout; +import static org.junit.jupiter.api.Assertions.*; + +/// Bidi geometry tests for the rich text view, which measures per styled run (variable fonts) and must +/// still reorder mixed LTR/RTL content into the correct visual order via its atom layout. +class RichViewBidiTest extends UITestBase { + + private static final String HEB = "\u05D0\u05D1\u05D2\u05D3"; + + private static final class NoopHost implements EditorHost { + public boolean isTextInputSupported() { + return false; + } + + public Object startTextInput(TextInputClient client, TextInputConfig config) { + return null; + } + + public void updateTextInputState(Object handle, TextInputState state) { + } + + public void stopTextInput(Object handle) { + } + + public void editorChanged() { + } + + public void fireEditorEvent(String type, String value) { + } + } + + private RichView show(String text) { + RichView v = new RichView(new NoopHost()); + Form f = new Form("rv", new BorderLayout()); + f.add(BorderLayout.CENTER, v); + f.show(); + for (int i = 0; i < 4; i++) { + flushSerialCalls(); + } + v.setText(text); + return v; + } + + private Font font(RichView v) { + return v.getUnselectedStyle().getFont(); + } + + @FormTest + void rtlCaretXDecreasesWithColumn() { + RichView v = show(HEB); + Font f = font(v); + assertTrue(f.stringWidth(HEB) > 0); + assertTrue(v.measureColumnX(0, HEB, 0, f) > v.measureColumnX(0, HEB, HEB.length(), f)); + } + + @FormTest + void ltrCaretRoundTrips() { + RichView v = show("abcd"); + Font f = font(v); + for (int c = 0; c <= 4; c++) { + assertEquals(c, v.columnAtX(0, "abcd", v.measureColumnX(0, "abcd", c, f), f)); + } + } + + @FormTest + void rtlCaretRoundTrips() { + RichView v = show(HEB); + Font f = font(v); + for (int c = 0; c <= HEB.length(); c++) { + assertEquals(c, v.columnAtX(0, HEB, v.measureColumnX(0, HEB, c, f), f)); + } + } + + @FormTest + void mixedLineHitTestIsVisuallyStable() { + String s = "ab " + HEB + " cd"; + RichView v = show(s); + Font f = font(v); + for (int c = 0; c <= s.length(); c++) { + int x = v.measureColumnX(0, s, c, f); + int back = v.columnAtX(0, s, x, f); + assertEquals(x, v.measureColumnX(0, s, back, f), "col " + c); + } + } + + @FormTest + void selectionSegmentsTileTheLine() { + String s = "ab " + HEB + " cd"; + RichView v = show(s); + Font f = font(v); + int[] segs = v.lineVisualSegments(0, s, 0, s.length(), f); + int total = 0; + for (int i = 1; i < segs.length; i += 2) { + total += segs[i]; + } + assertEquals(f.substringWidth(s, 0, s.length()), total, 3); + } +} diff --git a/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/Cn1ssDeviceRunner.java b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/Cn1ssDeviceRunner.java index decd63df52f..97fa7e9f9a2 100644 --- a/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/Cn1ssDeviceRunner.java +++ b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/Cn1ssDeviceRunner.java @@ -141,6 +141,7 @@ private static int testTimeoutMs(BaseTest testClass) { new ComponentReplaceSlideScreenshotTest(), new ComponentReplaceFlipScreenshotTest(), new MotionShowcaseScreenshotTest(), + new PureEditorScreenshotTest(), new DrawLine(), new FillRect(), new DrawRect(), diff --git a/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/PureEditorScreenshotTest.java b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/PureEditorScreenshotTest.java new file mode 100644 index 00000000000..1e882dcf96b --- /dev/null +++ b/scripts/hellocodenameone/common/src/main/java/com/codenameone/examples/hellocodenameone/tests/PureEditorScreenshotTest.java @@ -0,0 +1,44 @@ +package com.codenameone.examples.hellocodenameone.tests; + +import com.codename1.ui.CodeEditor; +import com.codename1.ui.Display; +import com.codename1.ui.Form; +import com.codename1.ui.RichTextArea; +import com.codename1.ui.layouts.BoxLayout; + +/** + * Screenshot coverage for the pure Codename One text editors (no BrowserComponent). Renders a + * {@link CodeEditor} whose Java source embeds a right-to-left (Hebrew) string literal and comment, plus a + * {@link RichTextArea} with mixed left-to-right / right-to-left formatted content, so the golden exercises + * syntax highlighting, the gutter, bidi reordering and rich styled runs in one capture. + * + *

Hebrew text is written with {@code \\u05Dx} escapes to keep the source ASCII only.

+ */ +public class PureEditorScreenshotTest extends BaseTest { + // "shalom" (Hebrew, strong right-to-left) + private static final String SHALOM = "\u05E9\u05DC\u05D5\u05DD"; + + @Override + public boolean runTest() { + Form form = createForm("Pure Editors", BoxLayout.y(), "PureEditors"); + + CodeEditor code = new CodeEditor("java", + "public class Greeting {\n" + + " // " + SHALOM + " means hello\n" + + " String msg = \"" + SHALOM + "\";\n" + + " int count = 42;\n" + + "}\n"); + code.setShowLineNumbers(true); + code.setPreferredH(Display.getInstance().getDisplayHeight() / 2); + form.add(code); + + RichTextArea rich = new RichTextArea( + "

Hello world and " + SHALOM + "

" + + "
  • one
  • two
"); + rich.setPreferredH(Display.getInstance().getDisplayHeight() / 3); + form.add(rich); + + form.show(); + return true; + } +} From a5bf631a80e9dc193c182e9ad6c22a7958062d09 Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Tue, 14 Jul 2026 08:54:10 +0300 Subject: [PATCH 02/17] Fix SpotBugs findings in the editor + toolbar-layout test The core-unittests SpotBugs check (threshold Low, fail on any) flagged the new editor code. Fix the real findings and suppress a style-only one: - BidiUtil: use a bitwise odd-check (IM_BAD_CHECK_FOR_ODD) and drop the unreachable 0x00A0 branch in typeOf (UC_USELESS_CONDITION). - RichPureEditor.loadImage: avoid String.getBytes() default encoding (DM_DEFAULT_ENCODING) by converting the ASCII base64 payload directly, and use >= 0 for the indexOf checks (RV_CHECK_FOR_POSITIVE_INDEXOF). - RichView.setList: remove a dead local store (DLS_DEAD_LOCAL_STORE). - spotbugs-exclude: suppress SIC_INNER_SHOULD_BE_STATIC_ANON for the editor package (its StyleTransform/StylePredicate/BlockOp anonymous impls capture only locals; the refactor is noise). Also add EditorLayoutTest verifying RichTextArea/CodeEditor lay out below the form Toolbar. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/com/codename1/ui/editor/BidiUtil.java | 4 +- .../codename1/ui/editor/RichPureEditor.java | 10 ++- .../src/com/codename1/ui/editor/RichView.java | 1 - maven/core-unittests/spotbugs-exclude.xml | 13 ++++ .../codename1/ui/editor/EditorLayoutTest.java | 78 +++++++++++++++++++ 5 files changed, 101 insertions(+), 5 deletions(-) create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorLayoutTest.java diff --git a/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java b/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java index a871f7dd51a..86a1c0bae73 100644 --- a/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java +++ b/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java @@ -79,7 +79,7 @@ static byte typeOf(char c) { || c == 0x00B0 || c == 0x00B1 || c == 0x066A) { return ET; } - if (c == ',' || c == '.' || c == ':' || c == '/' || c == 0x00A0) { + if (c == ',' || c == '.' || c == ':' || c == '/') { return CS; } // Combining marks @@ -294,7 +294,7 @@ static int[] reorderVisual(byte[] levels) { if (lv > highest) { highest = lv; } - if ((lv % 2) == 1 && lv < lowestOdd) { + if ((lv & 1) != 0 && lv < lowestOdd) { lowestOdd = lv; } } diff --git a/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java b/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java index 911355da977..18d8d3a38a1 100644 --- a/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java +++ b/CodenameOne/src/com/codename1/ui/editor/RichPureEditor.java @@ -189,8 +189,14 @@ private static com.codename1.ui.Image loadImage(String url) { return com.codename1.ui.Image.createImage(w, h, 0xff000000 | color); } int comma = url.indexOf(','); - if (url.startsWith("data:") && url.indexOf(";base64,") > 0 && comma > 0) { - byte[] data = com.codename1.util.Base64.decode(url.substring(comma + 1).getBytes()); + if (url.startsWith("data:") && url.indexOf(";base64,") >= 0 && comma >= 0) { + // the base64 payload is pure ASCII; convert to bytes without relying on the default charset + String b64 = url.substring(comma + 1); + byte[] enc = new byte[b64.length()]; + for (int i = 0; i < enc.length; i++) { + enc[i] = (byte) b64.charAt(i); + } + byte[] data = com.codename1.util.Base64.decode(enc); return com.codename1.ui.Image.createImage(data, 0, data.length); } return com.codename1.ui.Image.createImage(url); diff --git a/CodenameOne/src/com/codename1/ui/editor/RichView.java b/CodenameOne/src/com/codename1/ui/editor/RichView.java index 65226b560e7..c77d96533ed 100644 --- a/CodenameOne/src/com/codename1/ui/editor/RichView.java +++ b/CodenameOne/src/com/codename1/ui/editor/RichView.java @@ -831,7 +831,6 @@ public void apply(RichBlocks.BlockAttr b) { /// Applies (or toggles off) an ordered / unordered list on the selected paragraphs. public void setList(final int listType) { int s = getSelectionStart(); - int e = getSelectionEnd(); int firstLine = getDocument().lineOfOffset(s); boolean allSame = blocks.get(firstLine).listType == listType; final int target = allSame ? RichBlocks.LIST_NONE : listType; diff --git a/maven/core-unittests/spotbugs-exclude.xml b/maven/core-unittests/spotbugs-exclude.xml index 720bb1c913b..f613d6b86db 100644 --- a/maven/core-unittests/spotbugs-exclude.xml +++ b/maven/core-unittests/spotbugs-exclude.xml @@ -370,4 +370,17 @@ + + + + + + diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorLayoutTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorLayoutTest.java new file mode 100644 index 00000000000..c12a41dd392 --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorLayoutTest.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.junit.FormTest; +import com.codename1.junit.UITestBase; +import com.codename1.ui.CodeEditor; +import com.codename1.ui.Form; +import com.codename1.ui.RichTextArea; +import com.codename1.ui.Toolbar; +import com.codename1.ui.layouts.BorderLayout; +import static org.junit.jupiter.api.Assertions.*; + +/// Verifies the editors lay out below the form title bar (Toolbar) rather than under it. +class EditorLayoutTest extends UITestBase { + + private void pump() { + for (int i = 0; i < 6; i++) { + flushSerialCalls(); + } + } + + @FormTest + void codeEditorSitsBelowToolbar() { + Toolbar.setGlobalToolbar(true); + Form f = new Form("Code", new BorderLayout()); + f.setToolbar(new Toolbar()); + f.setTitle("Code"); + CodeEditor ed = new CodeEditor("java", "line1\nline2\nline3"); + f.add(BorderLayout.CENTER, ed); + f.show(); + pump(); + Toolbar tb = f.getToolbar(); + assertNotNull(tb); + int toolbarBottom = tb.getAbsoluteY() + tb.getHeight(); + assertTrue(ed.getAbsoluteY() >= toolbarBottom, + "code editor top (" + ed.getAbsoluteY() + ") must be at or below the toolbar bottom (" + + toolbarBottom + ")"); + } + + @FormTest + void richTextAreaSitsBelowToolbar() { + Toolbar.setGlobalToolbar(true); + Form f = new Form("Rich", new BorderLayout()); + f.setToolbar(new Toolbar()); + f.setTitle("Rich"); + RichTextArea ed = new RichTextArea("

hello

"); + f.add(BorderLayout.CENTER, ed); + f.show(); + pump(); + Toolbar tb = f.getToolbar(); + int toolbarBottom = tb.getAbsoluteY() + tb.getHeight(); + assertTrue(ed.getAbsoluteY() >= toolbarBottom, + "rich text area top (" + ed.getAbsoluteY() + ") must be at or below the toolbar bottom (" + + toolbarBottom + ")"); + } +} From 90d406ea3f137e86d45eb3607b3ebec874e6a9c2 Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Tue, 14 Jul 2026 09:13:30 +0300 Subject: [PATCH 03/17] Decode named HTML entities in the rich text importer HtmlImporter only handled amp/lt/gt/quot/apos/nbsp and numeric entities, so common named entities such as — rendered as literal text. Add the common typography and symbol entities (mdash, ndash, hellip, curly quotes, copy, reg, trade, times, euro, pound, ...). Covered by HtmlImporterTest. Also add getVerticalScroll() plus EditorFirstLineTest, which confirms the editor shows line 0 at the top after loading content (scroll stays 0), complementing EditorLayoutTest (editors sit below the form Toolbar). Co-Authored-By: Claude Opus 4.8 (1M context) --- .../com/codename1/ui/editor/EditorView.java | 5 ++ .../com/codename1/ui/editor/HtmlImporter.java | 17 ++++ .../ui/editor/EditorFirstLineTest.java | 82 +++++++++++++++++++ .../codename1/ui/editor/HtmlImporterTest.java | 68 +++++++++++++++ 4 files changed, 172 insertions(+) create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java create mode 100644 maven/core-unittests/src/test/java/com/codename1/ui/editor/HtmlImporterTest.java diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorView.java b/CodenameOne/src/com/codename1/ui/editor/EditorView.java index fd3ee2d69f9..f8ead4b0d22 100644 --- a/CodenameOne/src/com/codename1/ui/editor/EditorView.java +++ b/CodenameOne/src/com/codename1/ui/editor/EditorView.java @@ -688,6 +688,11 @@ protected int getHorizontalScroll() { return scrollX; } + /// Returns the current vertical scroll offset in pixels. + protected int getVerticalScroll() { + return scrollY; + } + /// Paints a single line of text. Subclasses override to add syntax coloring; the base implementation /// draws the whole line in the default text color. /// diff --git a/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java b/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java index eca2faa53ed..2a9df8d96bc 100644 --- a/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java +++ b/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java @@ -430,6 +430,18 @@ private static String decodeEntities(String s) { return sb.toString(); } + // Common named HTML entities (typography and symbols) as name/replacement pairs. Values use unicode + // escapes to keep the source ASCII only. + private static final String[] NAMED_ENTITIES = { + "mdash", "\u2014", "ndash", "\u2013", "hellip", "\u2026", + "lsquo", "\u2018", "rsquo", "\u2019", "ldquo", "\u201C", "rdquo", "\u201D", + "laquo", "\u00AB", "raquo", "\u00BB", "bull", "\u2022", "middot", "\u00B7", + "copy", "\u00A9", "reg", "\u00AE", "trade", "\u2122", + "deg", "\u00B0", "plusmn", "\u00B1", "times", "\u00D7", "divide", "\u00F7", + "euro", "\u20AC", "pound", "\u00A3", "cent", "\u00A2", "yen", "\u00A5", + "sect", "\u00A7", "para", "\u00B6" + }; + private static String entity(String ent) { if ("amp".equals(ent)) { return "&"; @@ -449,6 +461,11 @@ private static String entity(String ent) { if ("nbsp".equals(ent)) { return " "; } + for (int k = 0; k < NAMED_ENTITIES.length; k += 2) { + if (NAMED_ENTITIES[k].equals(ent)) { + return NAMED_ENTITIES[k + 1]; + } + } if (ent.length() > 1 && ent.charAt(0) == '#') { try { int code; diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java new file mode 100644 index 00000000000..15aede2e0c3 --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java @@ -0,0 +1,82 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import com.codename1.junit.FormTest; +import com.codename1.junit.UITestBase; +import com.codename1.ui.Form; +import com.codename1.ui.TextInputClient; +import com.codename1.ui.TextInputConfig; +import com.codename1.ui.TextInputState; +import com.codename1.ui.Toolbar; +import com.codename1.ui.layouts.BorderLayout; +import static org.junit.jupiter.api.Assertions.*; + +/// Verifies the editor shows its FIRST line at the top after loading content (i.e. it is not scrolled so +/// the first line hides under the title bar). +class EditorFirstLineTest extends UITestBase { + + private static final class NoopHost implements EditorHost { + public boolean isTextInputSupported() { + return false; + } + + public Object startTextInput(TextInputClient client, TextInputConfig config) { + return null; + } + + public void updateTextInputState(Object handle, TextInputState state) { + } + + public void stopTextInput(Object handle) { + } + + public void editorChanged() { + } + + public void fireEditorEvent(String type, String value) { + } + } + + @FormTest + void codeViewShowsFirstLineAfterSetText() { + Toolbar.setGlobalToolbar(true); + CodeView v = new CodeView(new NoopHost()); + Form f = new Form("Code", new BorderLayout()); + f.setToolbar(new Toolbar()); + f.setTitle("Code"); + f.add(BorderLayout.CENTER, v); + f.show(); + for (int i = 0; i < 6; i++) { + flushSerialCalls(); + } + v.setText("line1\nline2\nline3\nline4\nline5"); + for (int i = 0; i < 6; i++) { + flushSerialCalls(); + } + assertEquals(0, v.firstVisibleLine(), + "the editor must show line 0 at the top (first line not scrolled under the title bar)"); + assertEquals(0, v.getVerticalScroll(), "vertical scroll must be 0 after loading content"); + } +} diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/HtmlImporterTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/HtmlImporterTest.java new file mode 100644 index 00000000000..835bfc5f0f7 --- /dev/null +++ b/maven/core-unittests/src/test/java/com/codename1/ui/editor/HtmlImporterTest.java @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores + * CA 94065 USA or visit www.oracle.com if you need additional information or + * have any questions. + */ +package com.codename1.ui.editor; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +/// Pure tests for the HTML importer, focused on entity decoding (named, numeric and hex). +class HtmlImporterTest { + + private static String text(String html) { + return HtmlImporter.parse(html).getText(); + } + + @Test + void decodesBasicEntities() { + assertEquals("a & b < c > d \" e ' f", text("

a & b < c > d " e ' f

")); + } + + @Test + void decodesNamedTypographyEntities() { + // mdash, ndash, hellip, curly quotes + assertEquals("a \u2014 b", text("

a — b

")); + assertEquals("a \u2013 b", text("

a – b

")); + assertEquals("go\u2026", text("

go…

")); + assertEquals("\u201Chi\u201D \u2018yo\u2019", text("

“hi” ‘yo’

")); + } + + @Test + void decodesSymbolEntities() { + assertEquals("\u00A9 \u00AE \u2122", text("

© ® ™

")); + assertEquals("5 \u00D7 3 = 15", text("

5 × 3 = 15

")); + assertEquals("\u20AC100 \u00A350", text("

€100 £50

")); + } + + @Test + void decodesNumericEntities() { + assertEquals("A B", text("

A B

")); // decimal + assertEquals("A\u2014B", text("

A—B

")); // hex mdash between letters + } + + @Test + void leavesUnknownEntitiesUntouched() { + // an unknown entity is passed through verbatim rather than dropped + assertTrue(text("

a &bogus; b

").contains("&bogus;")); + } +} From dbd197fcac564825f50f091ccabc3b785fe0e6de Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Tue, 14 Jul 2026 10:01:58 +0300 Subject: [PATCH 04/17] Fix pure editor first line hidden under the title bar setText() reset scrollY to 0 and then called scrollCaretVisible(). When the backend flushes the queued setText before the component is laid out (getHeight() is still 0), contentHeight() is negative once padding is subtracted, so the "caret below the viewport" branch fired even for the caret on line 0 and pushed scrollY to roughly one line. The first content line then scrolled under the form title bar on device and in the simulator (headless tests missed it because they set the text after layout). Guard scrollCaretVisible() against an unlaid-out viewport (contentHeight <= 0) and add a laidOut() override that re-clamps scrollY and applies any deferred scroll-to-caret once the real bounds are known. Add a regression test that sets the text before the first layout, reproducing the device ordering. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../com/codename1/ui/editor/EditorView.java | 17 +++++++++++++ .../ui/editor/EditorFirstLineTest.java | 24 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorView.java b/CodenameOne/src/com/codename1/ui/editor/EditorView.java index f8ead4b0d22..d8b70714c09 100644 --- a/CodenameOne/src/com/codename1/ui/editor/EditorView.java +++ b/CodenameOne/src/com/codename1/ui/editor/EditorView.java @@ -1191,6 +1191,13 @@ protected int[] lineVisualSegments(int line, String text, int from, int to, Font } private void scrollCaretVisible() { + if (contentHeight() <= 0) { + // The component has not been laid out yet (height is 0, so contentHeight() is + // negative once padding is subtracted). Scrolling to the caret here would push + // scrollY to roughly one line, hiding the first line under the title bar once the + // real bounds arrive. Defer until laidOut() runs with a real viewport. + return; + } int cl = doc.lineOfOffset(caret); int top = lineTopContent(cl); int bottom = top + lineHeightAt(cl); @@ -1233,6 +1240,16 @@ private void resetBlink() { lastBlink = System.currentTimeMillis(); } + @Override + protected void laidOut() { + super.laidOut(); + // Now that the real viewport height is known, apply any scroll-to-caret that was + // deferred while the component was unlaid-out (see scrollCaretVisible), and re-clamp + // a stale scroll offset into range. + scrollY = clampInt(scrollY, 0, maxScroll()); + scrollCaretVisible(); + } + // ---- focus + input source lifecycle ---- @Override diff --git a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java index 15aede2e0c3..d047a18ae46 100644 --- a/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java +++ b/maven/core-unittests/src/test/java/com/codename1/ui/editor/EditorFirstLineTest.java @@ -79,4 +79,28 @@ void codeViewShowsFirstLineAfterSetText() { "the editor must show line 0 at the top (first line not scrolled under the title bar)"); assertEquals(0, v.getVerticalScroll(), "vertical scroll must be 0 after loading content"); } + + /// Reproduces the device/simulator ordering: the backend flushes the queued setText BEFORE the + /// component is laid out (height still 0). Previously scrollCaretVisible() ran against a negative + /// contentHeight() and pushed scrollY to ~one line, hiding the first line under the title bar. + @FormTest + void codeViewShowsFirstLineWhenTextSetBeforeLayout() { + Toolbar.setGlobalToolbar(true); + CodeView v = new CodeView(new NoopHost()); + // set text while the component is still unlaid-out (height == 0), as the backend does on device + assertEquals(0, v.getHeight(), "precondition: component not laid out yet"); + v.setText("line1\nline2\nline3\nline4\nline5"); + Form f = new Form("Code", new BorderLayout()); + f.setToolbar(new Toolbar()); + f.setTitle("Code"); + f.add(BorderLayout.CENTER, v); + f.show(); + for (int i = 0; i < 6; i++) { + flushSerialCalls(); + } + assertEquals(0, v.getVerticalScroll(), + "vertical scroll must be 0 even when text is set before the first layout"); + assertEquals(0, v.firstVisibleLine(), + "line 0 must be visible at the top even when text is set before the first layout"); + } } From 8ed6f5810d25ece0688887b04252dcf1dd11fe0f Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Tue, 14 Jul 2026 17:14:39 +0300 Subject: [PATCH 05/17] Fix editor CI quality gates: PMD, JavaDoc package-info, dev-guide prose The pure editor code tripped several CI gates that only run in the full PR workflow (not the SpotBugs-only local check): - PMD forbidden-rules gate (generate-quality-report.py): resolved 62 findings in the new editor sources - add @Override where methods override/implement, convert indexed loops to foreach, split multi-declarations, drop unnecessary fully-qualified names / imports / constructor, make BidiUtil final, remove unused measureLine params, and restructure a break-as-last-in-loop into a helper. Genuine identity comparisons (cached fonts, the ThemePalette singleton) and owned StringBuilder buffers (document buffer, HTML importer) are marked // NOPMD with a reason since changing them would be incorrect. - JavaDoc package-info gate: add package-info.java for com.codename1.ui.editor. - Developer guide quality gate: fix the Vale findings in the RichTextArea / CodeEditor sections (contraction, cliche, adverb) and disable the LanguageTool UPPERCASE_SENTENCE_START rule, which false-positives on deliberately lowercase asciidoc ordered-list continuation items (matching the existing ENGLISH_WORD_REPEAT_BEGINNING_RULE exception). No behavior change. Verified: core-unittests verify (3876 tests pass, SpotBugs 0 bugs, PMD gate clean), Vale 0/0/0 on the edited guide, package-info check passes. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../codename1/ui/AbstractEditorComponent.java | 6 ++ .../src/com/codename1/ui/TextInputConfig.java | 5 -- .../src/com/codename1/ui/editor/BidiUtil.java | 2 +- .../codename1/ui/editor/CodePureEditor.java | 8 +-- .../src/com/codename1/ui/editor/CodeView.java | 41 ++++++------- .../codename1/ui/editor/EditorDocument.java | 2 +- .../com/codename1/ui/editor/EditorView.java | 33 ++++++---- .../com/codename1/ui/editor/HtmlImporter.java | 4 +- .../com/codename1/ui/editor/LanguageDef.java | 4 +- .../src/com/codename1/ui/editor/RichView.java | 60 +++++++++++++------ .../com/codename1/ui/editor/package-info.java | 33 ++++++++++ .../The-Components-Of-Codename-One.asciidoc | 4 +- scripts/developer-guide/run_languagetool.py | 6 ++ 13 files changed, 142 insertions(+), 66 deletions(-) create mode 100644 CodenameOne/src/com/codename1/ui/editor/package-info.java diff --git a/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java index 8228b38dcf0..19c8970d1e1 100644 --- a/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java +++ b/CodenameOne/src/com/codename1/ui/AbstractEditorComponent.java @@ -181,6 +181,7 @@ void onEditorEvent(String type, String value) { /// - `type`: the event type /// /// - `value`: optional payload, may be null + @Override public void fireEditorEvent(final String type, final String value) { if (CN.isEdt()) { onEditorEvent(type, value); @@ -352,26 +353,31 @@ public void blurEditor() { // ---- EditorHost (pure backend bridge to the platform text input source) ---- /// {@inheritDoc} + @Override public boolean isTextInputSupported() { return Display.impl.isTextInputSupported(); } /// {@inheritDoc} + @Override public Object startTextInput(TextInputClient client, TextInputConfig config) { return Display.impl.startTextInput(client, config); } /// {@inheritDoc} + @Override public void updateTextInputState(Object handle, TextInputState state) { Display.impl.updateTextInputState(handle, state); } /// {@inheritDoc} + @Override public void stopTextInput(Object handle) { Display.impl.stopTextInput(handle); } /// {@inheritDoc} + @Override public void editorChanged() { onEditorEvent("change", null); } diff --git a/CodenameOne/src/com/codename1/ui/TextInputConfig.java b/CodenameOne/src/com/codename1/ui/TextInputConfig.java index 84b2695be2f..8713cb2f3f2 100644 --- a/CodenameOne/src/com/codename1/ui/TextInputConfig.java +++ b/CodenameOne/src/com/codename1/ui/TextInputConfig.java @@ -53,11 +53,6 @@ public final class TextInputConfig { private boolean multiline = true; private int actionType = ACTION_DEFAULT; - /// Creates a config with prose oriented defaults (autocorrect and autocapitalize enabled, multiline, - /// `TextArea#ANY` constraint). - public TextInputConfig() { - } - /// Returns the `TextArea` style constraint bits describing the keyboard type. public int getConstraint() { return constraint; diff --git a/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java b/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java index 86a1c0bae73..ee9eeb7e1ff 100644 --- a/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java +++ b/CodenameOne/src/com/codename1/ui/editor/BidiUtil.java @@ -36,7 +36,7 @@ /// document line is one paragraph. The implementation follows the resolution phases of UAX #9: character /// typing, the weak type rules W1-W7, the neutral rules N1-N2, the implicit level rules I1-I2 and the /// reordering rule L2. -class BidiUtil { +final class BidiUtil { // Bidirectional character types (a subset of UAX #9 sufficient for the editor). static final byte L = 0; // Left-to-Right (strong) static final byte R = 1; // Right-to-Left (strong) diff --git a/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java b/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java index 9c7bc278e73..f72965e7996 100644 --- a/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java +++ b/CodenameOne/src/com/codename1/ui/editor/CodePureEditor.java @@ -104,7 +104,7 @@ private static List parseArray(String json) { if (list instanceof List) { return (List) list; } - } catch (Throwable t) { + } catch (Throwable t) { // NOPMD - malformed input, intentionally ignored // malformed payload, treat as empty } return new ArrayList(); @@ -113,8 +113,7 @@ private static List parseArray(String json) { private List parseDiagnostics(String json) { List out = new ArrayList(); List arr = parseArray(json); - for (int i = 0; i < arr.size(); i++) { - Object o = arr.get(i); + for (Object o : arr) { if (!(o instanceof Map)) { continue; } @@ -133,8 +132,7 @@ private List parseDiagnostics(String json) { private List parseCompletions(String json) { List out = new ArrayList(); List arr = parseArray(json); - for (int i = 0; i < arr.size(); i++) { - Object o = arr.get(i); + for (Object o : arr) { if (!(o instanceof Map)) { continue; } diff --git a/CodenameOne/src/com/codename1/ui/editor/CodeView.java b/CodenameOne/src/com/codename1/ui/editor/CodeView.java index 81d99e0bd63..7b0c2d45006 100644 --- a/CodenameOne/src/com/codename1/ui/editor/CodeView.java +++ b/CodenameOne/src/com/codename1/ui/editor/CodeView.java @@ -163,8 +163,7 @@ private int gutterMarkerColor(int line) { } int color = -1; int rank = -1; - for (int i = 0; i < diagnostics.size(); i++) { - CodeDiagnostic d = diagnostics.get(i); + for (CodeDiagnostic d : diagnostics) { if (d == null) { continue; } @@ -267,8 +266,7 @@ protected void paintLineDecorations(Graphics g, int line, String text, int x, in if (diagnostics == null) { return; } - for (int i = 0; i < diagnostics.size(); i++) { - CodeDiagnostic d = diagnostics.get(i); + for (CodeDiagnostic d : diagnostics) { if (d == null || line < d.getLine() - 1 || line > d.getEndLine() - 1) { continue; } @@ -421,15 +419,7 @@ private void autoIndentNewline() { break; } } - boolean extra = false; - for (int i = col - 1; i >= 0 && i < line.length(); i--) { - char ch = line.charAt(i); - if (ch == ' ' || ch == '\t') { - continue; - } - extra = ch == '{' || ch == ':' || ch == '(' || ch == '['; - break; - } + boolean extra = lastNonSpaceOpensBlock(line, col); StringBuilder ins = new StringBuilder("\n").append(indent); if (extra) { for (int i = 0; i < tabSize; i++) { @@ -439,6 +429,20 @@ private void autoIndentNewline() { replaceRange(getSelectionStart(), getSelectionEnd(), ins.toString(), true); } + /// Returns whether the last non-whitespace character before `col` on `line` opens a block + /// (one of `{`, `:`, `(`, `[`). + private static boolean lastNonSpaceOpensBlock(String line, int col) { + int i = col - 1; + while (i >= 0 && i < line.length() && (line.charAt(i) == ' ' || line.charAt(i) == '\t')) { + i--; + } + if (i < 0 || i >= line.length()) { + return false; + } + char ch = line.charAt(i); + return ch == '{' || ch == ':' || ch == '(' || ch == '['; + } + // ---- completion ---- private void onTypedChar(char c) { @@ -497,8 +501,7 @@ private void refilterCompletion() { } String prefix = getDocument().substring(completionAnchor, caret).toLowerCase(); List filtered = new ArrayList(); - for (int i = 0; i < completionAll.size(); i++) { - CodeCompletion cc = completionAll.get(i); + for (CodeCompletion cc : completionAll) { if (cc == null) { continue; } @@ -569,8 +572,7 @@ public void pointerHover(int[] x, int[] y) { private String diagnosticMessageAt(int off, int localX) { int line = getDocument().lineOfOffset(off); boolean inGutter = localX < getContentLeftInset(); - for (int i = 0; i < diagnostics.size(); i++) { - CodeDiagnostic d = diagnostics.get(i); + for (CodeDiagnostic d : diagnostics) { if (d == null) { continue; } @@ -647,8 +649,7 @@ private void paintCompletion(Graphics g) { int visible = Math.min(completionFiltered.size(), 8); int itemH = lh; int boxW = 0; - for (int i = 0; i < completionFiltered.size(); i++) { - CodeCompletion cc = completionFiltered.get(i); + for (CodeCompletion cc : completionFiltered) { String d = cc.getDisplayText() != null ? cc.getDisplayText() : cc.getInsertText(); if (d != null) { boxW = Math.max(boxW, f.stringWidth(d)); @@ -660,7 +661,7 @@ private void paintCompletion(Graphics g) { if (boxY + boxH > getY() + getHeight()) { boxY = top - boxH; } - boolean dark = palette == ThemePalette.DARK; + boolean dark = palette == ThemePalette.DARK; // NOPMD - intentional identity comparison int popupBg = dark ? 0x252526 : 0xffffff; int border = dark ? 0x454545 : 0xc0c0c0; g.setColor(popupBg); diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java b/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java index 58c632bb75d..9c69700ddcc 100644 --- a/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java +++ b/CodenameOne/src/com/codename1/ui/editor/EditorDocument.java @@ -31,7 +31,7 @@ /// what the caret, selection, undo stack and the platform text input source all operate on. Line /// oriented feature layers (syntax highlighting, the gutter) sit on top of the line index. public class EditorDocument { - private final StringBuilder buf = new StringBuilder(); + private final StringBuilder buf = new StringBuilder(); // NOPMD - intentional owned buffer private String cachedText; private int[] lineStarts = new int[]{0}; private int lineCount = 1; diff --git a/CodenameOne/src/com/codename1/ui/editor/EditorView.java b/CodenameOne/src/com/codename1/ui/editor/EditorView.java index d8b70714c09..1a98940776b 100644 --- a/CodenameOne/src/com/codename1/ui/editor/EditorView.java +++ b/CodenameOne/src/com/codename1/ui/editor/EditorView.java @@ -34,7 +34,6 @@ import com.codename1.ui.events.ActionListener; import com.codename1.ui.events.WheelEvent; import com.codename1.ui.geom.Dimension; -import com.codename1.ui.plaf.Style; /// The pure Codename One text editing surface. It renders a plain text `EditorDocument` with its own /// `Graphics` code, owns the caret and selection, handles pointer and keyboard interaction, and captures @@ -86,6 +85,7 @@ public EditorView(EditorHost host, boolean codeMode) { // handle the mouse wheel / trackpad (shift = horizontal) ourselves so scrolling works without a // scrollable ancestor; consuming the event stops the default scroll gesture from selecting text addMouseWheelListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent evt) { if (evt instanceof WheelEvent) { WheelEvent we = (WheelEvent) evt; @@ -196,7 +196,7 @@ protected Font getEditorFont() { if (sf == null) { sf = Font.getDefaultFont(); } - if (cachedBase != null && cachedFrom == sf) { + if (cachedBase != null && cachedFrom == sf) { // NOPMD - intentional identity comparison return cachedBase; } cachedFrom = sf; @@ -370,7 +370,7 @@ public void paint(Graphics g) { /// theme/skin change regenerates it. private Font loupeFont() { Font base = getEditorFont(); - if (loupeFontCache == null || loupeBaseFont != base) { + if (loupeFontCache == null || loupeBaseFont != base) { // NOPMD - intentional identity comparison loupeBaseFont = base; loupeFontCache = base.derive(base.getHeight() * 1.5f, Font.STYLE_PLAIN); } @@ -723,8 +723,8 @@ protected void paintLine(Graphics g, int line, String text, int x, int y, int li // Draw each directional run as its own substring at its visual x; the platform font engine shapes // and orders the glyphs within the (single-direction) run. int[][] runs = bidiRuns(text, f); - for (int r = 0; r < runs.length; r++) { - g.drawString(text.substring(runs[r][0], runs[r][1]), x + runs[r][3], y); + for (int[] run : runs) { + g.drawString(text.substring(run[0], run[1]), x + run[3], y); } } @@ -764,6 +764,7 @@ private static int clampInt(int v, int lo, int hi) { /// - `absX`: absolute x /// /// - `absY`: absolute y + @Override public int offsetAtPoint(int absX, int absY) { Font f = getEditorFont(); // pointer coordinates are absolute (form space); convert to content-local @@ -1053,8 +1054,11 @@ protected int measureColumnX(int line, String text, int col, Font f) { return f.substringWidth(text, 0, col); } int[][] runs = bidiRuns(text, f); - for (int r = 0; r < runs.length; r++) { - int lo = runs[r][0], hi = runs[r][1], lvl = runs[r][2], rx = runs[r][3]; + for (int[] run : runs) { + int lo = run[0]; + int hi = run[1]; + int lvl = run[2]; + int rx = run[3]; if (col >= lo && col <= hi) { if ((lvl & 1) == 0) { return rx + subw(f, text, lo, col); @@ -1083,7 +1087,10 @@ protected int columnAtX(int line, String text, int localX, Font f) { } int[][] runs = bidiRuns(text, f); for (int r = 0; r < runs.length; r++) { - int lo = runs[r][0], hi = runs[r][1], lvl = runs[r][2], rx = runs[r][3]; + int lo = runs[r][0]; + int hi = runs[r][1]; + int lvl = runs[r][2]; + int rx = runs[r][3]; int rw = subw(f, text, lo, hi); boolean lastRun = r == runs.length - 1; if (localX < rx + rw || lastRun) { @@ -1165,14 +1172,18 @@ protected int[] lineVisualSegments(int line, String text, int from, int to, Font } int[][] runs = bidiRuns(text, f); java.util.List segs = new java.util.ArrayList(); - for (int r = 0; r < runs.length; r++) { - int lo = runs[r][0], hi = runs[r][1], lvl = runs[r][2], rx = runs[r][3]; + for (int[] run : runs) { + int lo = run[0]; + int hi = run[1]; + int lvl = run[2]; + int rx = run[3]; int a = Math.max(from, lo); int b = Math.min(to, hi); if (a >= b) { continue; } - int xl, xr; + int xl; + int xr; if ((lvl & 1) == 0) { xl = rx + subw(f, text, lo, a); xr = rx + subw(f, text, lo, b); diff --git a/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java b/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java index 2a9df8d96bc..6680cb88196 100644 --- a/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java +++ b/CodenameOne/src/com/codename1/ui/editor/HtmlImporter.java @@ -63,7 +63,7 @@ public List getBlocks() { } } - private final StringBuilder text = new StringBuilder(); + private final StringBuilder text = new StringBuilder(); // NOPMD - intentional owned buffer private final List styles = new ArrayList(); private final List paras = new ArrayList(); private boolean freshParagraph = true; @@ -285,7 +285,7 @@ private RichBlocks.BlockAttr blockAttrFor(String tag, Map attrs) if (dataIndent != null) { try { attr.indent = Integer.parseInt(dataIndent.trim()); - } catch (NumberFormatException err) { + } catch (NumberFormatException err) { // NOPMD - malformed input, intentionally ignored // ignore } } diff --git a/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java b/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java index 62eecf04b7f..4d2559e5c65 100644 --- a/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java +++ b/CodenameOne/src/com/codename1/ui/editor/LanguageDef.java @@ -40,8 +40,8 @@ public final class LanguageDef { private LanguageDef(String[] keywords, boolean lineCommentSlash, boolean lineCommentHash, boolean blockComment, boolean templateString, boolean plain) { this.keywords = new HashSet(); - for (int i = 0; i < keywords.length; i++) { - this.keywords.add(keywords[i]); + for (String keyword : keywords) { + this.keywords.add(keyword); } this.lineCommentSlash = lineCommentSlash; this.lineCommentHash = lineCommentHash; diff --git a/CodenameOne/src/com/codename1/ui/editor/RichView.java b/CodenameOne/src/com/codename1/ui/editor/RichView.java index c77d96533ed..5d1eda70da6 100644 --- a/CodenameOne/src/com/codename1/ui/editor/RichView.java +++ b/CodenameOne/src/com/codename1/ui/editor/RichView.java @@ -23,7 +23,6 @@ */ package com.codename1.ui.editor; -import com.codename1.ui.Display; import com.codename1.ui.Font; import com.codename1.ui.Graphics; import com.codename1.ui.Image; @@ -82,7 +81,7 @@ public RichBlocks getBlocks() { /// - `perChar`: one style per character (may be shorter; missing entries default) /// /// - `blockList`: one block attribute per paragraph (may be shorter; missing entries default) - public void importContent(String text, java.util.List perChar, java.util.List blockList) { + public void importContent(String text, List perChar, List blockList) { setText(text); for (int i = 0; i < perChar.size() && i < inline.length(); i++) { inline.setAt(i, perChar.get(i)); @@ -113,7 +112,7 @@ private int baseSize() { private Font fontFor(boolean bold, boolean italic, int px) { Font base = super.getEditorFont(); - if (base != baseTtf) { + if (base != baseTtf) { // NOPMD - intentional identity comparison // the style font changed (skin / theme reload) - drop stale derived fonts baseTtf = base; fontCache.clear(); @@ -330,8 +329,8 @@ private int prefixWidth(int line, RichBlocks.BlockAttr b) { // text lays out, hit tests and paints correctly while each atom keeps its own font. ---- /// Splits a line into atoms in logical order. Each atom is `{logStart, logEnd, level, isImage}`. - private java.util.List richAtomsLogical(String text, int lineStart, byte[] levels) { - java.util.List atoms = new java.util.ArrayList(); + private List richAtomsLogical(String text, int lineStart, byte[] levels) { + List atoms = new ArrayList(); int c = 0; int n = text.length(); while (c < n) { @@ -374,7 +373,7 @@ private int atomWidth(String text, int lineStart, int[] atom, RichBlocks.BlockAt /// Visual (left to right) atom layout: each entry is `{logStart, logEnd, level, isImage, xLeft, width}`. private int[][] richVisualAtoms(int line, String text, int lineStart) { byte[] levels = BidiUtil.resolveLevels(text, isRTL()); - java.util.List logical = richAtomsLogical(text, lineStart, levels); + List logical = richAtomsLogical(text, lineStart, levels); byte[] al = new byte[logical.size()]; for (int i = 0; i < al.length; i++) { al[i] = (byte) logical.get(i)[2]; @@ -398,12 +397,16 @@ protected int measureColumnX(int line, String text, int col, Font f) { RichBlocks.BlockAttr b = blocks.get(line); if (!BidiUtil.isTrivialLtr(text, isRTL())) { int[][] atoms = richVisualAtoms(line, text, lineStart); - for (int i = 0; i < atoms.length; i++) { - int as = atoms[i][0], ae = atoms[i][1], lvl = atoms[i][2], img = atoms[i][3], ax = atoms[i][4]; + for (int[] atom : atoms) { + int as = atom[0]; + int ae = atom[1]; + int lvl = atom[2]; + int img = atom[3]; + int ax = atom[4]; if (col >= as && col <= ae) { if (img == 1) { boolean before = (lvl & 1) == 0 ? col == as : col == ae; - return before ? ax : ax + atoms[i][5]; + return before ? ax : ax + atom[5]; } if ((lvl & 1) == 0) { return ax + styledWidth(text, lineStart, as, col, b); @@ -444,7 +447,12 @@ protected int columnAtX(int line, String text, int localX, Font f) { RichBlocks.BlockAttr b = blocks.get(line); int[][] atoms = richVisualAtoms(line, text, lineStart); for (int i = 0; i < atoms.length; i++) { - int as = atoms[i][0], ae = atoms[i][1], lvl = atoms[i][2], img = atoms[i][3], ax = atoms[i][4], aw = atoms[i][5]; + int as = atoms[i][0]; + int ae = atoms[i][1]; + int lvl = atoms[i][2]; + int img = atoms[i][3]; + int ax = atoms[i][4]; + int aw = atoms[i][5]; boolean last = i == atoms.length - 1; if (localX < ax + aw || last) { if (img == 1) { @@ -489,15 +497,21 @@ protected int[] lineVisualSegments(int line, String text, int from, int to, Font int lineStart = getDocument().getLineStart(line); RichBlocks.BlockAttr b = blocks.get(line); int[][] atoms = richVisualAtoms(line, text, lineStart); - java.util.List segs = new java.util.ArrayList(); - for (int i = 0; i < atoms.length; i++) { - int as = atoms[i][0], ae = atoms[i][1], lvl = atoms[i][2], img = atoms[i][3], ax = atoms[i][4], aw = atoms[i][5]; + List segs = new ArrayList(); + for (int[] atom : atoms) { + int as = atom[0]; + int ae = atom[1]; + int lvl = atom[2]; + int img = atom[3]; + int ax = atom[4]; + int aw = atom[5]; int a = Math.max(from, as); int e = Math.min(to, ae); if (a >= e) { continue; } - int xl, xr; + int xl; + int xr; if (img == 1) { xl = ax; xr = ax + aw; @@ -526,9 +540,8 @@ protected int lineContentOffsetX(int line) { off += baseSize() / 2; } int prefixW = prefixWidth(line, b); - int lineStart = getDocument().getLineStart(line); String text = getDocument().getLineText(line); - int totalW = prefixW + measureLine(line, lineStart, text, b); + int totalW = prefixW + measureLine(line, text); int avail = contentWidth() - off; if (b.align == RichBlocks.ALIGN_CENTER && totalW < avail) { off += (avail - totalW) / 2; @@ -612,7 +625,7 @@ protected void paintLine(Graphics g, int line, String text, int x, int y, int li } } - private int measureLine(int line, int lineStart, String text, RichBlocks.BlockAttr b) { + private int measureLine(int line, String text) { return measureColumnX(line, text, text.length(), getEditorFont()); } @@ -652,6 +665,7 @@ private void applyToggle(int which) { return; } inline.transformRange(s, e, new InlineStyles.StyleTransform() { + @Override public TextStyle apply(TextStyle st) { return withFlag(st, w, value); } @@ -674,6 +688,7 @@ private static TextStyle withFlag(TextStyle st, int which, boolean value) { private boolean isSetInRange(int s, int e, final int which) { return inline.allInRange(s, e, new InlineStyles.StylePredicate() { + @Override public boolean test(TextStyle st) { switch (which) { case 0: @@ -712,6 +727,7 @@ public void toggleStrike() { /// Sets the foreground color on the selection. public void setForeColor(final int rgb) { applyStyle(new InlineStyles.StyleTransform() { + @Override public TextStyle apply(TextStyle st) { return st.withForeColor(rgb); } @@ -721,6 +737,7 @@ public TextStyle apply(TextStyle st) { /// Sets the highlight color on the selection. public void setHighlight(final int rgb) { applyStyle(new InlineStyles.StyleTransform() { + @Override public TextStyle apply(TextStyle st) { return st.withHighlight(rgb); } @@ -730,6 +747,7 @@ public TextStyle apply(TextStyle st) { /// Sets the relative font size level (1..7) on the selection. public void setFontSizeLevel(final int level) { applyStyle(new InlineStyles.StyleTransform() { + @Override public TextStyle apply(TextStyle st) { return st.withFontSizeLevel(level); } @@ -745,6 +763,7 @@ public void removeFormat() { return; } inline.transformRange(s, e, new InlineStyles.StyleTransform() { + @Override public TextStyle apply(TextStyle st) { return TextStyle.DEFAULT; } @@ -793,6 +812,7 @@ private interface BlockOp { public void setBlockFormat(String tag) { final int type = blockTypeForTag(tag); forEachSelectedBlock(new BlockOp() { + @Override public void apply(RichBlocks.BlockAttr b) { b.type = type; b.listType = RichBlocks.LIST_NONE; @@ -822,6 +842,7 @@ private static int blockTypeForTag(String tag) { /// Sets the alignment on the selected paragraphs. public void setAlign(final int align) { forEachSelectedBlock(new BlockOp() { + @Override public void apply(RichBlocks.BlockAttr b) { b.align = align; } @@ -835,6 +856,7 @@ public void setList(final int listType) { boolean allSame = blocks.get(firstLine).listType == listType; final int target = allSame ? RichBlocks.LIST_NONE : listType; forEachSelectedBlock(new BlockOp() { + @Override public void apply(RichBlocks.BlockAttr b) { b.listType = target; } @@ -844,6 +866,7 @@ public void apply(RichBlocks.BlockAttr b) { /// Increases the indentation of the selected paragraphs. public void indentBlocks() { forEachSelectedBlock(new BlockOp() { + @Override public void apply(RichBlocks.BlockAttr b) { b.indent++; } @@ -853,6 +876,7 @@ public void apply(RichBlocks.BlockAttr b) { /// Decreases the indentation of the selected paragraphs. public void outdentBlocks() { forEachSelectedBlock(new BlockOp() { + @Override public void apply(RichBlocks.BlockAttr b) { if (b.indent > 0) { b.indent--; @@ -865,6 +889,7 @@ public void apply(RichBlocks.BlockAttr b) { /// this model; links round-trip as styled text. public void applyLink() { applyStyle(new InlineStyles.StyleTransform() { + @Override public TextStyle apply(TextStyle st) { return st.withUnderline(true).withForeColor(0x1a73e8); } @@ -874,6 +899,7 @@ public TextStyle apply(TextStyle st) { /// Removes the link appearance from the selection. public void removeLinkStyle() { applyStyle(new InlineStyles.StyleTransform() { + @Override public TextStyle apply(TextStyle st) { return st.withUnderline(false).withForeColor(-1); } diff --git a/CodenameOne/src/com/codename1/ui/editor/package-info.java b/CodenameOne/src/com/codename1/ui/editor/package-info.java new file mode 100644 index 00000000000..053c1b04b2a --- /dev/null +++ b/CodenameOne/src/com/codename1/ui/editor/package-info.java @@ -0,0 +1,33 @@ +/// The pure Codename One text editing engine that backs +/// `com.codename1.ui.RichTextArea` and `com.codename1.ui.CodeEditor`. +/// +/// Overview +/// +/// This package renders and edits text entirely with the Codename One +/// graphics pipeline - it owns the document model, caret, selection, undo +/// stack, layout and painting, and binds directly to the platform text input +/// source (soft keyboard, autocorrect and IME composition) rather than +/// embedding a native web view. Because the engine draws every glyph itself it +/// behaves consistently across platforms and supports mixed left-to-right and +/// right-to-left text via the Unicode Bidirectional Algorithm. +/// +/// Key types +/// +/// - `EditorDocument` - the mutable character buffer with a line index that +/// caret, selection, undo and the platform input source all operate on. +/// +/// - `EditorView` - the base `com.codename1.ui.Component` that measures, +/// paints, scrolls and hit-tests the document and implements the text input +/// client contract; `CodeView` and `RichView` extend it for the code and rich +/// text feature layers. +/// +/// - `BidiUtil` - the Unicode Bidirectional Algorithm used to resolve +/// embedding levels and reorder mixed-direction runs for measurement and paint. +/// +/// - `HtmlImporter` - parses the HTML fragment accepted by `RichTextArea` into +/// the styled block/run model the engine renders. +/// +/// These classes are the implementation of the two public editor components; +/// applications interact with `RichTextArea` and `CodeEditor` rather than with +/// the types here. +package com.codename1.ui.editor; diff --git a/docs/developer-guide/The-Components-Of-Codename-One.asciidoc b/docs/developer-guide/The-Components-Of-Codename-One.asciidoc index 2c01ac99b4e..4ac99401faf 100644 --- a/docs/developer-guide/The-Components-Of-Codename-One.asciidoc +++ b/docs/developer-guide/The-Components-Of-Codename-One.asciidoc @@ -1990,7 +1990,7 @@ The public API of both `RichTextArea` and `CodeEditor` is unchanged, so this eng === CodeEditor -The https://www.codenameone.com/javadoc/com/codename1/ui/CodeEditor.html[CodeEditor] is an IDE-style source editor with syntax highlighting, a line-number gutter, light/dark themes and asynchronous code completion. Like `RichTextArea` it's designed for both touch devices (with the virtual keyboard) and desktops (with a physical keyboard), and it is implemented by the same pure Codename One text engine that renders the document itself and binds to the platform text input source. A platform port MAY still transparently supply a fully native editor peer (through `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(AbstractEditorComponent, String)`) without any change to your code. +The https://www.codenameone.com/javadoc/com/codename1/ui/CodeEditor.html[CodeEditor] is an IDE-style source editor with syntax highlighting, a line-number gutter, light/dark themes and asynchronous code completion. Like `RichTextArea` it's designed for both touch devices (with the virtual keyboard) and desktops (with a physical keyboard), and it's implemented by the same pure Codename One text engine that renders the document itself and binds to the platform text input source. A platform port MAY still transparently supply a fully native editor peer (through `com.codename1.impl.CodenameOneImplementation#createNativeEditorPeer(AbstractEditorComponent, String)`) without any change to your code. [source,java] ---- @@ -2011,7 +2011,7 @@ Each https://www.codenameone.com/javadoc/com/codename1/ui/CodeCompletion.html[Co ==== Diagnostics -The editor can underline problem ranges with wavy squiggles. Pass a list of https://www.codenameone.com/javadoc/com/codename1/ui/CodeDiagnostic.html[CodeDiagnostic] entries to `setDiagnostics(List)`; each entry marks a span of the source (for example the output of a compiler or linter) so errors and warnings are drawn directly in the gutter and text. This pairs naturally with an asynchronous `CodeCompletionProvider` backed by a language server. +The editor can underline problem ranges with wavy squiggles. Pass a list of https://www.codenameone.com/javadoc/com/codename1/ui/CodeDiagnostic.html[CodeDiagnostic] entries to `setDiagnostics(List)`; each entry marks a span of the source (for example the output of a compiler or linter) so errors and warnings are drawn directly in the line-number gutter and the source text. This pairs well with an asynchronous `CodeCompletionProvider` backed by a language server. The editor honors light and dark themes through `setTheme(String)`: diff --git a/scripts/developer-guide/run_languagetool.py b/scripts/developer-guide/run_languagetool.py index 4e38df80244..8c61734e01b 100644 --- a/scripts/developer-guide/run_languagetool.py +++ b/scripts/developer-guide/run_languagetool.py @@ -254,6 +254,12 @@ def chunk_text(text, max_bytes=CHUNK_BYTES): # "Word repeated at sentence start" — fires every time we have a # parallel-structured list of "The X does ... The Y does ..." entries. "ENGLISH_WORD_REPEAT_BEGINNING_RULE", + # "Sentence does not start with an uppercase letter" — fires on + # asciidoc ordered-list continuation items that are deliberately + # lowercase verb phrases (". gets X, . verifies Y, . builds Z") joined + # to a lead-in like "a method that:". Capitalizing one item mid-list + # would read worse than leaving the parallel structure intact. + "UPPERCASE_SENTENCE_START", # NUMBERS_IN_WORDS flags cn1lib/cn1libs/cn1-binaries-style identifiers # that the accept list already declares acceptable. "NUMBERS_IN_WORDS", From e623fd4f4bf581c12eb634894aee77bc68a950ea Mon Sep 17 00:00:00 2001 From: Shai Almog <67850168+shai-almog@users.noreply.github.com> Date: Tue, 14 Jul 2026 17:15:32 +0300 Subject: [PATCH 06/17] Adopt pure-editor screenshot goldens across all platforms The RichTextArea and CodeEditor screenshot tests pre-date this PR and their goldens were captured against the old BrowserComponent editor; the new PureEditors test had none. Re-capture all three from the CI run of the fixed commit (first line no longer clipped, HTML entities and RTL/bidi rendering correctly) across every capturing platform (android, javascript, windows, mac-native, linux x64/arm, iOS gl/metal/tv/watch). Refresh the tolerance comments to describe the pure text render instead of the removed web widget. Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/android/screenshots/CodeEditor.png | Bin 20586 -> 23684 bytes .../android/screenshots/CodeEditor.tolerance | 5 ++--- scripts/android/screenshots/PureEditors.png | Bin 0 -> 23132 bytes .../android/screenshots/PureEditors.tolerance | 4 ++++ scripts/android/screenshots/RichTextArea.png | Bin 25162 -> 23963 bytes .../screenshots/RichTextArea.tolerance | 5 ++--- scripts/ios/screenshots-metal/CodeEditor.png | Bin 135021 -> 173805 bytes .../screenshots-metal/CodeEditor.tolerance | 5 ++--- scripts/ios/screenshots-metal/PureEditors.png | Bin 0 -> 143512 bytes .../screenshots-metal/PureEditors.tolerance | 4 ++++ .../ios/screenshots-metal/RichTextArea.png | Bin 123230 -> 136498 bytes .../screenshots-metal/RichTextArea.tolerance | 5 ++--- scripts/ios/screenshots-tv/CodeEditor.png | Bin 136119 -> 252961 bytes .../ios/screenshots-tv/CodeEditor.tolerance | 5 ++--- scripts/ios/screenshots-tv/PureEditors.png | Bin 0 -> 220866 bytes .../ios/screenshots-tv/PureEditors.tolerance | 4 ++++ scripts/ios/screenshots-tv/RichTextArea.png | Bin 131995 -> 247683 bytes .../ios/screenshots-tv/RichTextArea.tolerance | 5 ++--- scripts/ios/screenshots-watch/CodeEditor.png | Bin 13205 -> 32942 bytes .../screenshots-watch/CodeEditor.tolerance | 5 ++--- scripts/ios/screenshots-watch/PureEditors.png | Bin 0 -> 34187 bytes .../screenshots-watch/PureEditors.tolerance | 4 ++++ .../ios/screenshots-watch/RichTextArea.png | Bin 12243 -> 29036 bytes .../screenshots-watch/RichTextArea.tolerance | 5 ++--- scripts/ios/screenshots/CodeEditor.png | Bin 128658 -> 130130 bytes scripts/ios/screenshots/CodeEditor.tolerance | 5 ++--- scripts/ios/screenshots/PureEditors.png | Bin 0 -> 109857 bytes scripts/ios/screenshots/PureEditors.tolerance | 4 ++++ scripts/ios/screenshots/RichTextArea.png | Bin 119361 -> 101265 bytes .../ios/screenshots/RichTextArea.tolerance | 5 ++--- scripts/javascript/screenshots/CodeEditor.png | Bin 12670 -> 38946 bytes .../screenshots/CodeEditor.tolerance | 4 ++-- .../javascript/screenshots/PureEditors.png | Bin 0 -> 20526 bytes .../screenshots/PureEditors.tolerance | 4 ++++ .../javascript/screenshots/RichTextArea.png | Bin 11265 -> 30789 bytes .../screenshots/RichTextArea.tolerance | 4 ++-- scripts/linux/screenshots-arm/CodeEditor.png | Bin 5452 -> 28842 bytes .../screenshots-arm/CodeEditor.tolerance | 3 ++- scripts/linux/screenshots-arm/PureEditors.png | Bin 0 -> 23043 bytes .../screenshots-arm/PureEditors.tolerance | 4 ++++ .../linux/screenshots-arm/RichTextArea.png | Bin 5193 -> 23822 bytes .../screenshots-arm/RichTextArea.tolerance | 3 ++- scripts/linux/screenshots/CodeEditor.png | Bin 5452 -> 28842 bytes .../linux/screenshots/CodeEditor.tolerance | 3 ++- scripts/linux/screenshots/PureEditors.png | Bin 0 -> 23043 bytes .../linux/screenshots/PureEditors.tolerance | 4 ++++ scripts/linux/screenshots/RichTextArea.png | Bin 5193 -> 23822 bytes .../linux/screenshots/RichTextArea.tolerance | 3 ++- scripts/mac-native/screenshots/CodeEditor.png | Bin 16858 -> 45214 bytes .../screenshots/CodeEditor.tolerance | 5 ++--- .../mac-native/screenshots/PureEditors.png | Bin 0 -> 38745 bytes .../screenshots/PureEditors.tolerance | 4 ++++ .../mac-native/screenshots/RichTextArea.png | Bin 15816 -> 44823 bytes .../screenshots/RichTextArea.tolerance | 5 ++--- scripts/windows/screenshots/CodeEditor.png | Bin 5086 -> 17102 bytes .../windows/screenshots/CodeEditor.tolerance | 5 ++--- scripts/windows/screenshots/PureEditors.png | Bin 0 -> 13712 bytes .../windows/screenshots/PureEditors.tolerance | 4 ++++ scripts/windows/screenshots/RichTextArea.png | Bin 4607 -> 14595 bytes .../screenshots/RichTextArea.tolerance | 5 ++--- 60 files changed, 80 insertions(+), 50 deletions(-) create mode 100644 scripts/android/screenshots/PureEditors.png create mode 100644 scripts/android/screenshots/PureEditors.tolerance create mode 100644 scripts/ios/screenshots-metal/PureEditors.png create mode 100644 scripts/ios/screenshots-metal/PureEditors.tolerance create mode 100644 scripts/ios/screenshots-tv/PureEditors.png create mode 100644 scripts/ios/screenshots-tv/PureEditors.tolerance create mode 100644 scripts/ios/screenshots-watch/PureEditors.png create mode 100644 scripts/ios/screenshots-watch/PureEditors.tolerance create mode 100644 scripts/ios/screenshots/PureEditors.png create mode 100644 scripts/ios/screenshots/PureEditors.tolerance create mode 100644 scripts/javascript/screenshots/PureEditors.png create mode 100644 scripts/javascript/screenshots/PureEditors.tolerance create mode 100644 scripts/linux/screenshots-arm/PureEditors.png create mode 100644 scripts/linux/screenshots-arm/PureEditors.tolerance create mode 100644 scripts/linux/screenshots/PureEditors.png create mode 100644 scripts/linux/screenshots/PureEditors.tolerance create mode 100644 scripts/mac-native/screenshots/PureEditors.png create mode 100644 scripts/mac-native/screenshots/PureEditors.tolerance create mode 100644 scripts/windows/screenshots/PureEditors.png create mode 100644 scripts/windows/screenshots/PureEditors.tolerance diff --git a/scripts/android/screenshots/CodeEditor.png b/scripts/android/screenshots/CodeEditor.png index 8708b0e41b171b54878db67bfd8bc2bbedfa0b6a..ac8f78faee793e3579c9b3b5a23ca2b3e4e0aed5 100644 GIT binary patch literal 23684 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
VR{e#&oAzK(ihMdBO#}P2deE=dZo_%e( zT*?H{#*!dyFNX;~YI%#Izby`Qc-EHkr?KPW1i z96$N{a`Au5=+P^$n# z?=l%fL#*38AA1L&^zTBC5<1(?B`3tEj0v><=%p%zc#%t0*M?Bdn|&K9YTEVn!_d%B z^kvUmgd+7a!@I#UX}Jl~d!V<7KfR@G1OWmS9X@AMSO|;akBQ&kJntvpgm`vq(6orz z+oMM3nIF%AC!h?JL71Dm`Aoz%6UsXjjHb&ew0F01zF?#GhjJ_u-VgLKJM%v3{DNT!NAckqo4WOMex z4C{BfGrh#+kqKbyKGTR;sq%9=zWQd?njZyIfJWhxLxLiff@xEeNk@ZVJfJ^=6`Ds4 zl#CagukUu~geb%bB0J7Jyk8k7zni+etT?Eux0tf}oTGfY(7RgS(1=6moGPzVdp5PN z;%MxAJULvywzFe8m0)8wKak7^LJYcRG^qF^=`LWzapT7ox_1|vq}AZg1Osy`a})Oy zs}q3`+Q;T<%!YKz6jz~UWasy50X#hMF1b3`jn2D+{Kr1MF5stMO-)27D8YY;g<>iU zQ(u4Gi|Ok{yYscOvfMd65uHn8ay1-NCHc$ix$(~9n(QlJM7cQhHxs#E9=&$$EAdbl zXQUi7C#lP&is)1WUk71~U!N|`%%~nZCYjeHCe>L-r=}__Ho{F5=*?fqOlD(ji*z7c z&VY{D!j3&6q(bOk7V<6`>ZC|7LlU7JWlOABHDK;Srj z|JFxO#p~+Qvi6VQ@lKD~q$13zm8iLO*Na;Vn`X%`dhVYkeq=cfegb_4iUOR2> z9F5ayHKr|Z;-)LI56it|?;QG(|M_U;Abbv$=%^v8JH0wf-|o=c9jhS0blLwUlS4z% z?|8PpNAr>A7b)i8Ta^bVwUFRYlj|o+30V0M9VPO!aqJbNZHsbnIE41{)!tj_klnR4 zF?DrkW3>*7OvCTNA&S|uLACA%`?v&Yy|d*Z8{6CCm2SAYdb;&QB%u8ov9>sVmk+%2RgjN_r3f#&GIL~w#UV|YqyIS|_Vnz3ZZBwJ!9hzSHY9h)hSjm_=#?e(Foa7RiO zmb5hQ+t;*`@BPsC><+|OY5hfAP5K9T_yKucvbpUobjJ0FfJ(U$mn4gu{2hY>^8v;7 zKW3bna?(!~rw3rqWS6`ax%DbDetx!GyAJiEn`IeNF^gZrc@B_+D2em#+*40QCfY+szPYs*Uml^;0KFs2$ zXHFF0M)3mQs+XqkESFj!?r=43CjGKfIm&0}=Wg54WnaJ%zO7PtVGretRivH8KWF%vxg=HQuUzwUse-t(f|(PngM?4#TVOEXUH~uK$&7zKSjDVli^YDK&RH+G$lv!WfwBX_GGgZc_4ryg( z1{MWy6BkFf5!N`;1*(6_!XegtcCp%_gYClC2nzDi4x4vO?$-yUN%MnUT?t%FNp^=n z>iae~BTJN44mN%{2;&eIsLCw*&SmH3X!Lrgq$Jl9;L0jja#@*F(fAGCAE9Y;Sy)az z{i#bKkCBK?hPyf*NAtb-D<{IDyR{cOUv06NNnfaJF5I4Ru`{K`eQpVOO%DEGgSx<2_xG=@5(2mGq^Q^A?&um~=DuaL%o^=Lish-QuBjPajVys4A=f*?9Ds)r`?GZ9) zzV>d2?H{&xM{4oBG3BO9RSWXzdX9IizExXJX+la`ZY;c-1r{nGG7ThdK|kbQIUO&f zhO^ZxF!>l9SX%Y<_GZ^Uw~qHR#L8G&S=l++aWyt)#uq|_fM(<4Tk0M+K3=}4sKoA; zj-K7~osOIPyOAs%TD}^Kq5CwSf!O`Jow)+NSWks^cU5h&^rR#P=3#|}dJJ}=O_Zn%tf2qe+vqMqws$x;oi9vSn(h`jH!>JwXLEYgyxgD4 z5N%RlfLicWT&O5sbWcsiIVHJN+Arc;T3YS^^AV_rpykvVVB`Xof$-(Hl3d^ka)btK znEt%RGCE~zsa|_1-a1#@%dls3Uv;L$vFeH|IZgW5vpa@$tr}}IgU1tg(6B<70QbRr zLe64?+(#4&FFYdpKTF}&c0Vrc#A|MxIcnEg{;(B-?osh?yuv~9 zAfB%--Yc9ywmb85PE(|&V^8~R@Ltj7q_a=|VF<4ZKANPsO$YZ*2rKWd;) zUlWKTYt7zV#0`0x_LH~a-d-!l=&e#4Ty|NexW|H*El&~hx|0({n?y{*rb~;zw*y{X zmiHrQY-1OmD?cbS^i-3vrs(edXSVP(iG-NHUhS6MXV4(w5(#P;xzzx3CCs3^yAPY6 zjAf$v*EmtF4F!wj?vB7=|j@bDADTPx{0slbSRc+q3V z=L9SAiwmH`!B;@wHwrrW()OS8m_33a{(@f%&h1_s10Bytpg>;c*^}|Rlcba00U{t%j@Cwcxxy8$j$89b=_)mLB!ZEI)uft?}bNUzEEa*y)|>@gwKLc{KHOJ1a- zIyyqX*%N`x#s+%%V6nLj5G72f-seAt-f?ZrQXDt%&$4ab28u7K6msY`Cw0XK)v)v1 zEH{J<7Bk*~N2gV*&_n_XEh9r z(v$n17SKKqL>UmQeT>dfF1Xzphuy9X*vypw$YIt=`~)-@ViJoVsBYk`OG|-4{HK%I z)q}YzNI2Lv?douj?Q+QF_Q#fEa>^xaI#0Ra3%%^sq&Y`7**gPA*07rk&oJFs+!bS3 z5NrbO>oDdsyOxb`z9}HlSjUZ)l2gd_fP}?1%%f&SSr35;(a`ZG)YrRS9fEt05!x}U`+RAj4;21^VQXtS1CDz$ z?ZuD(nH%q+`T}BMKzh3M^vF{M-XFl#XKgz0*MDXZxjs*Nv@o>EJKSTP-28wXn*kt7 z3(mbu%*SHv5y8XjT@yyg(?=K7!2WV8o?V?uL zAaQ_+Q-j;x>o2QsF9Qx$r6QwMj2eXaT@EvJrkO$TT$aAA2DdnhRx{NJMbo7a*XIgJ zk62`1LiBu2LQ66!*X8C~N?g)Q!>&_!Y*2vt3y1~)7c-hxM*NKH3&)X9;H%SaoXuIF zm&XOjI(3^J1Mr8Qp?(#{^B7So%J2BMco!BIkWtXb7f(RQC@8>j8VQ&2j`4B-i@$$y z=DA~>N_iX*Ghk2Naa!}Q>Yc$!Q)Fq|J0@1H#a*pVy-N8JbCc!#2LF7tbDTO|-Ro7j z)14!I0vh!9rwRffd6LFzIb&~^Zj^Kz17-Bj&PIW^UDJnqYqs=CL7O{UfG2!|t^zQF@H}rNbKUJaohT?FDIEg_KriEVAmF9t=&NFzWO9RUZBQEa-yI zwSPE@kVEOhJ-b7BCyT{%7OCQ~1^1VJ>1CbKt^R>>tjjgSTv#L&HA2hY*`X-*5}K9#OyoFOMM-mA9C|BrqVOf70ZGnNMItvEF74BZ4OLh zW*aOp6)z4|N*|F$+=A&&84@K_Sl`XPPx`J0!tC$s6K963Z*B&wYM)hYZEpj|rT!!} zC6ykR*T=-D0tn95#f3$blky@ zsVYY}?C>Fjhll5Ff?jU(SY<46Gvl^`GBce1mB4)8K=B0x?+YX`mtrnGt`&?+)6%`n z@RaQhb(a{Rx3_n_hhp{)4{t$k!Lhra`V))CV4$+)H`{k5$Urs1zs(y}RYIge8{62l zd*0{eaoYVH&BSm*%H5wi4|YG`LBb&UHZ{!-NTKnffd1e=lTLS8RRUiRI=AZki&x`Q zV%RvbeLed}BUjPqRM|;F{xyzzh5lo??@E4i?aX8dmdPczNv3&!J1e&C=pNE-a`p#i znVNbhugQUuYPe(I9A^A%OlQwIe?>gC@TOH|&#B0Nq3Khig<$HK5n_<0=e$gg^7%x1 zMj{Xl`%5Yev4o*A##dZpn2%WvQ|ol0^y~vW-l{n>xpZaB&=RvJ;d~lS1_K?W0A<`8 z>)%^7Ijc0&|5?)`5~f*VwPhY43*;zj&ft=Y9^jmJK9~TgWkTI)%>>H;k#pNJp+w-i z_lwU&Hmzm12O%s&g%Rnd!Jh1LMp@PihcA zp^eoZ(X2vpvH@)s8*ff;BYCroimv7E zQu{Fw0`;85FSPQflze^>$lw1*D*rVnewq3$EGzQciftW;tb52C)rI@y0E_`n8bDH5t zmcj|4w&b70Z_Ps!0bI*Lh~BcK&qJ6%Q`o3Plb2qfnS!Hlw@c4e%6w9t*z9rLz<((U z5a$5-OnRHjiUTQ5UwW{yvs`>Nk_(&I*vwM@Xp3y=+XJYY@CTx9VZqS?4@%s+q`eSj zY%?B>Cuks_lleGQhX6Vt8~wz_uPC1^koI{wv$YjK%N1sBM%x9Uxvd;(5RpI0#8(Hi zJyBo?Ak`cMrfEA&8hR>!wKLKCGl97xu=V$67mf?)2)v=W5*JX77{)V&l7+75kzTATSlh^|Np94g= zsGrrb0DMh6(hn)|Guva)YmrM*FZnywj$_6nPbYsTE1r5Kc>jHTfuDb7Ck{gUn4`;V zG9GvMP+`dnoM*6uh5tB7&qI$ZE2WbdvhrV8&;^=4kQGhqzvpO`YLoF{g<&bGct#bT z0fnz$MJLQT>ue-P8dUlY{D8AP3s8cNudREJi$ziZgjv+pL$*{3=c{?Nb+)JAW(glb z)2Mf5CpI8s(KGK&qyRJf4XT)+#9uaW-M|6tuiz7JroJ~?*XBNtlc_(AL2zhD6`(G` zasbEmxL-e?^4le2RK@@s|)nAf^>DHP&LCLUBycqK=F>FJQ(q^d<2E;*6joP!!VD{%_iu%eb}r?CR7lg zTv=_MoIcRzZTQ`#|F`iP`zMj}>unj74^P`{ zEvc6zz-Yj5Cc?yQywONQSYGCn`R}|uq*Mf2xUjIfWAPr0L$k?B@nHMhe&4Go!nVEw zBbQ!4m~ytqz%uT$@)eLQnAVv10ha7w*8c#|hevu((23r`i7OKxyazT5oO{H}ayxq} z{)^0`K%~#kJL2V$Ha?5@J*9c$ z6@Ki_wVV68fQ0IeXC+wi>R585;H$SmV=@Y^!REs5I(7e4_S>x3oD+5 z@g$BFNGY!RM)lAP5BugHF?GcajeK=DU$faiS+rRc9?X%9_w8)G=4M~))x3zZ)R1ze z5KpjEUbG|JD9$d66+ma)_I5m6Zrc=VUNtSTP4ae`YR!G7ugNkF*^+?C$;Sr&ZT45C z&yil2K&)H+7_D__2#Iw^)Et1ltc@Zw6Ces-n?6_8T1_r=CQd@8dp}4~adi$S25Dz} zrl{%IZ^*cjV|)Jb>hp1rd&SB0vXqR%6nff6CWkRw?YW!OmS40RtmdoeXEB5ahg8kr zatvIu^P-3g$Q|<~s#?$6EQ6tV{ah|nrBpX|}kz;PX}S}vaW(NoMxFkKW4n9SImu-4l8c?p|&=^*EOna- zwe?zbqAJ)I=o8Q-DBvU|6K31XXdsty6^~iv4F%WSg{~x}aKm-AsPT`WlYHs+CsxcfZEjOh8 zmspgF%vR40i%NkidIGguZ6d33edFCpJI-m7Sy)f1t0Hpb3LK|R`x4LG!$iBPp*~X zYtOA6tGj9q)MH6Ou`<+v9DCb!M5|Q4RsOp&FX?^ZH{itndp`R&#|rnq(^cAud0gWo z4fR(#6ou+~wM4||RM^yM@zk!za#N~R1^?vn1o-q+_8$~o$4~vq-}Y|}8p}Q`HjNef zU_R4TWMsl%x|~bxjVI7x;&k4nu?%FunL3A}BkY{tzoi1hNoDudncPkTDmLf5{}17q z0+|7cn(89Kqd=W1=B-X9>Hk)s;Yr(X?&dzu4s^_p6i)tZxQxlmb2vy_zi{8cUZg4s zeETf;m-y4)F4?DzlhG{v6sG)YfQjy=rHV|X$+O6FZuCT$q5>LL8b!~7-t&Y|LIgJR zPFA4j8vn=|vCzCgG0sArmu6@d;o4=Io|HUeY|^{FlDh_D#&5IkS|qR z6D^#lRK(f4Y47jkGxG9RXEWd1yYb~Iq_r>U%d`rG#msG&~~z{=EZV zxdBpuUoWTim3;wK)M&OH<-vg^uj9=}02t^CdW>YcIb>PgkQ>f}9_bYL>&$;g52n&w zKAzaK5Nei+cUP|OxKZJ}8_7aHOq{&0)2n)GDfCW6RSpOJwdXs|bRq?|b6RZaf!-hc zt4f*Qqw){;+arWhPOiBG8j331@ipS(9OiSKXkM=XB5-kUOw8OvM$0?^d42$c4Q#HO z|0owg+U!n)>zf+B+pug}JHBx_>Q3*i&=m^VE4A2GH~_o;j)|F|IQBVP!U7K(_X2#$C?+Cz1DJG_}LGJzv}@6p{@c_8eQd5H`Dw~ zxmieiBLVlzpC&$k#om%A?kVyLn7Ep(tgI%Zp}&5i&*IOz`J2z5f|3OZL~2Fa`&*~W z9j-|ixwcqt0u+VP+GDtvsqggPcwCcwJvkZGZS?FqaDO+CxT9#-Xm&&dVodl1$Gz>d zy{*$g`5XI~nTnn!QXWZUhwV;Qq*MY9iv%J9*>2gWLznCu?lWxP6Mf_AgmL!&v~#85 zP`>|u6!~kDA|*@xvdfZ4S!UXhtYPd+C9;!!Fi5Eold*-EBI_{r-3%dPmu0M>>}DF% zFoPL}^Y~roT<2Wp{NJB9zZc&(&-Fat`@7%wbALbg-J3nkym0z_;=TNYYaeQfpjFGG zW^4b-Cj2z?pBlp(Y4o7CDQs0YjSSc`hlD6V8~#b#lI+>3{F~DB;|kWFZ+-6kMVn9n z+GIwOKL0{A09{jAH=8?ODn9H@XgATid70dyDGx8d8D6I1SH^LfaB~3qe}LuyfFJE`)r^HX&avlVcdml~tjCju5B$J3i^F827fHWsyX|*9`*r7* zIr}BxJMq9sx%;>xW~twW=+7h@woZJNb@vwB!ieZR!+p-q9V zt#zZbm#q~VKRRP(g|3}(aGNf3B?U~{abVZ1l5Fpd9^$%m>{22;tygplamnTEeeuUZ z62G=sALnn1Jy(=h3QOy4+5j_&41S`#Jnl;mzkT-5kYd!GOB%JmxnSzT%Ga;E&cKe* z(Yf42tctmF?+3l=>gv^FcHOQQD^pku0h4^ac-J{oq$@GQ)aqeLOrVJA z!*>&Sf%rn@iRn-MLcH=IXD zpJY0u^D;ViNwf9@F@F0IYN(m3Ytd4cf8I>U{#~5}{#;;tMfI=6tsONv64*)asc!3{ zj|%{Qn5=gTMC>@DGHiSpjv7niDq#&e7r+xi+u`1vRW&ulFXtupNSaY!L}l&#%FRmb za&CQk@HORZZeHGIuu$`hUaQS5H(rYDszo(P-$k?9M=M{-Bj{=O#lhvlUa5JgMTLDX zAK`B+Pe(oLT#nlfPfSS9-Wd2;$S1PND%#Adh_DNSS9@Bj*UoD@1>T9og-qC#OjKE; z!PDpIl-f!F(W0H7b^ULOEv1xCFdMN)@3=p^b0>1%{FV=m=g|#8v+RNV z5uOAuLBv!^WRsxBt~*-bLdHVi_Fq}lpIbZrRL$A%-}vEo)%F;MENXPVKcUw1d-#4p zVZXXVJdT;nV9u267ZQoC@IQ!T0kHcAgEVDbq#tEEaCI#tEN{5kuO=R)^w76?R}9YD z<>*##FY}*xQHV#EHkRX;I}jpc)aGa5zh)alJ%`%41R$7CJ$M_rvD@+=EX{=L5f;7r zT9 zHawa7h$%r8IW!*MFl8+aOLq*l8>7Tg>l5rLQpad@`bybpYwygwDl-k9D@E*m5zWmH zWKGq>zl)u7zgcwH!t(t0O(8WUe_~R+_5+mK(m56lA6QUTtT(W`3d@9b2xfwJlwepp z?9Ses;N|Hp8o_rtaQA)!B%oLrzHliyIoXXq>CYUl93WBiQ&txt5Oi^I)?qy|#A=_o zw{vi}j2vns=r2U}`nt~!U4P29cuAbIsQjuAq${l1MlRI`-izn}R4gs!=>t^MmpqsA zvG*l}J`XM{*jj*_yNxDMZNdC~2#gM=fuoD_Z-LF%d7ZnzZy7$14rsV0fb9!V{Wgft zxcr*i1nM6*scQS8tft0JE;Z?Nn}iK#&QOJ-Y=e6=*si((zYHLE3%hSEcr83`Gxl5C z^`)iq+Yh${rj5@Vp4i@6 zU$Uk+Gh$RkrJQ^dIWrP}heC`OgxEhD-Isw_5w3Z_`Y z=>*P}-3rv8WgjH=A>|X3cBYtPxSg^TaCP>;l!OGsZ|lS|NrJn%*nGwc-AxR}VqIfB z8Q-ok`*WXZ@(tpEGCGm5R+(A;!H6ucjZRd3QfKf%Q3vHYlQ)M{thX^fYhb;xJruOwn<%P-g3y!Vo6m)UQNpZg zFaKr3HNtt{WnH8eLO9oc_qUxsI1KqEEAidd3_Mk?(Jw(=xYo0gWk4VhdgiGskx|F| zzP554-orMnk2M!!aJc!<5+Ij_e~&lLBJiX^*mD2a5U0pc5y4GVhyRMrClUr5+|r!7 zb}~Sa#TOfGqSN3qn6_SbhSt|8Y@!d(X%eo**eF<=%Y6_ckV_d%{^XxNt1(mIrNjm; zF|lC!OPT&b58Wm1?GLK4P7ReRna|V^?XO&w=9FS5@;W-iVc4vKff~r9T(mtDDrSBs z(pa0OE>(@g*o+>cb(qcY_ zOnQ36g*y0!e_Qij7H<>@+1g3-9aXp8rbjhw62&I%Eu|1s8b23nW(0`?Wsq7#SNkg4 z*Od3tMMNc4_;!SWEmzH}DtRL`jYo>58qK^<1W&<4B}_v?tQ~B^*8J*i9vFZdP#Yv& zFE?8Rq*@Q9=G2s@2i~rKie+ifg1g2u$4GG#8&BV;LO;VjD^$*(UwyM{v*kb`C%wIV zbKAE7(zf?wZ-ED(ppx|ZpZ&uA?JiFBAocb_^96{7BkBEK68T^VGx zPo3JJ77>`6Tb@vT{kX9G&bH##6OV`U^hWi^!gXsyDK$Ay=9E(QD1Ehb;yPb25rGH@ zb?;h?ZEU(h_HH{aE_V0F^wDXcc0(JH zj;gAvf-hBi4A|Xy4|_7dLV<$P(n-O-Ie`{i&2K&ub;%jml!W!G?P1a}8GhCGx>Fb0S<37H_R#F)_NlN8cnv0)Da``YPuyN1Ge(*roe*nIP-!TFS=GC#6eJQqy z)7O{o9EinFb6Y5!8#yt%hr#)7oB)m(!2gR;AU_`vy!vf#a@*(EIE#b4qNQaHtI`)N zsbF5v)t^BinN3bpYwP^TU7LIgvn;CZu}(~ICs)hQr65os-`c|m4=S_}eoH>%3Ef?5pJf|?6B4PJb>;mJE zNQ>=5@kieMrMWtY7dAI@%3I337TEc*?nDIi2IzJ9QBDx&Z4lcB&HqJ?;t{=8hgSNj zpc=pd-UD_X(>Rl;kjql?3vHuRJ1**da?AH8`n8SXMFK=-^^7d7Vpr43)pf4mh`=aNkgqXOrvi~aq0Rh4K za3@(dza?i-A}fqQP$?*pT{j7IbITx-NJ5P`;mQ<{D)8-@c%gi6$zpDZRgN-Ah4?ZV z&Fkqwc;$ds^VvVpvUd=~Y_iM!B8tY~Zu9LNc6D|)u9%fC#iz+&72LQ!UDLMbu)})h zq^D>2ufKCy55^un@{$?UC-Fd!Mu+9DSlFH<%|p@t)HxZkXh)Tnh}%?YZ(t?o`00Uz zZ>5@66i~D~mK@QFMg-FBj-!7|MbrLSQ&SV~SRFua4ybOv^PK(a!AN+mgdd)@T25bF z%zp`sN$e!2sNR7Rln*A+%h!e$sDg~Uk4I16dKQmq)z=8i22VFZFI@LDv$oCvOsN&8 zH?|Oc=D)212bbmVAcgV&QyYLfaUu<*=*D$%RFM0Tudk6>AY~BPriL0@VQM5x4F>>5 z7QVE5D@8^n&~%}1eSlZXh;JXe40Jd7yTXOF@Z^X+H9ca zpJ$NuJn}%)ThQdqlq6065WuhPNC!4|S5Gq!TWrUYQ=oeAg|q|=t;&=v8z<)s`0cG2 z{?Paj!6e>#QM1&;_q}C|phASPM}T>*+&tUzG#n{fm{)`A!OLu#Yq69+RI{Jbjpz7I zqPvcC9w*C9=CG34lsR8c);HcqCar8}(*N@n+|eI`$6bL#pGBC$WYOICb8-lL&LiDe zFvKmmwAQ0p@GRg!ro(qz?y}FH9~wW+m=_T#g%aQXO85Iwj-Ba1otxmvf_GRp{2tP5 zSW8F8_kLx&QFJ_g_|fEnLqGmDcVU1DBcoCwdQPUb4u6Y_<1#j%{nXG9Oy<7VzuzO0 zfv&3Jc{rV7sS7G!04l+nv@z^k*a?x8?5;#{NeP(-?eNop6i<4nAcM@%9}!+X2c{QL z^eS)!_!XZ>gVyDz${z4;KG87z=t!ic9_aAZ6@!;-5nm%fhZJJ}4Uyhr`7rf23(_Z5 zVHUEN9e`E9jz(8U@ypk;2tz#ZjFO)6A0%B59}$g#OQ zJCA6i$8_afw#yz*S{vtOHpcjM_nv`;Tma#}DMg^%CyQfP$pXrXcXgsQUeS;ibjsCvK`SPDhbzsHkDyP>4uP#iGW@84I2 zdc5sQwbRmaOszWlE z=<@494ZC_9BGtxTk{8*th{U(i_dqv#%0c3ybxBBMHjy|fC&FzCm6@O{^IQbsZ!*p5 zJ{Iedr|b*ou(_@$k3darvRTQ{?lrukAgDbihjRNuDk>jX|9DJR*m`74E%?+YC2DBR zA6x&ZejN0kH(&p~cO6u}uMem#LhDUm*T&h|6i#71BHI_G*@1*IKBvNY>Y2^SV-c3@ zr~aXTZ17JE{1XHJzcGM$q%eM#@)8sg^b;t7mH+xTv?o$O&|P`VY~u%TlQ>96)8HQF I&ZEfx0R22bbN~PV literal 20586 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�l8g$oQNg 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

3w!aq*Rn7;U4KHXq15 z3~_gPa}yCB{v}f)%9fspjBGgeqrOU=J&mKI<0%;8oMnBmL=-I!F)>&Gs7j?7J}|h| z-Qs4Wqvck^bN&GG4RHu*XGps@85+FQ0+GQ@KLdddk&isG7(hL zvAizK`*YR9mGeA@4eek}hXU~Fwnx&@ppyluV0#~1*5@q2)vX#k!Ty^p)UlNt4`=DN z|8il3&q9lj!3UU~k94Xm7bJksK%Z~^=Dy*I`|j=A*7?U-s^vz8RZGJHh(utt4}Oo} za=c@`H)5v7hT>wui449u*pKh|+d*@;mpaAZ`g8}Uz>uIp;QdWn8! z{)K;ND2G#)=V9Z;(dj9@^_9_J{P9k9O0@9U0Pqz0i(3_@W9S~&or{afU_IojEj1kv z=6g>z`Y|+`-Y?mmpEZS$@N8b8*f1Cy8z;l=T_C_GD=e3tEPb`iZUNzCBbZ|mQYOPh zt6ZdEbmMt8p^QP2s0-{UBQx_OIHz9_A0Xxy7O%MN-_KQ9=mYEIJ)hR6v|PGaf(;jG z)(2D$fgza8RTW;HO%|#HPn-&N(*9t+R&4Gir}dlS#&fmOb2o~z;=u>c;J81FZ%X3i zn3qJI_@S*m|_?d#m+p9QiWt? zWxc?~ZU2sfb_ou`!^^9nyD8cIq_@lr72>q$Vw~DetBcBm$pxyyw$bZ>M#x^JMDe=x7-P zFue!g!T(K3H@iGFH5Is1h*y?$0)b2YOsFq7S~w&mnyUvdJg!f5fn{~7b&rgE?B4Z8 z!$$sFW3%?6GPT0T$H(UKNEf08?6JUs4>)&l4Ckt?wtB)Su26M!msmcv|9bX{*ZBi{ zYj~@)n{+KgmVf2`=CC2o35JjK93>ASC}$|*aH+?wJj`EYP>0O{!Hn73A+pP#=3Lw^Na`jW>5$%Fp| zR*zc7-;74){u|iVC|G^;n{)B2M%RvKy z|Muux+t^Svxd;o$1ECgpcl=r9q6Pzje2?SR&KC>P!NI|g-$&I^0`zgZH#6prLjV4~ z9|(G!O|(dY;|L!6RZ-}ty_0p4mmmbKzlZu)#CiBMZYYtj6srW= ztl?tGogDBu3&LN}!#;uzd0j(8Lty}6A+a1*$--5tlVxO++Q7)dta|V&SxPc_PkJaI zoBXN5Q46pVi@B;ziiL17aq$OGDi!-7wFl8v#$zrjER2JXuejIF|~aC-K>< z>WUtqpklTR4TXTPR^oAUPHw@&%^g3?e}m~|ob0ms%kl>&CufQI3^SE%vc@`0e+sMI z(PK&S>M*wi>B-+hb&faChT1k6E9F8p!-E^6rvR?92;^PN+YQ_N8_)eRbp^o4L&zrL zu&hwwk?0#48M#%N`}q{t)JdOdhJ&7+I+3uW5yJ| zhKX9ctr~zk2StB#=v^MIK&0YXbH!r5ZVsnle*)0g0e7A1YbuKMa?AIc+FI~5EG@VF zO5V_-7cX864F4q9h+9~7-iT6m-cI%9bUUZV7P$S;AHzgVK|wKP3tXgB3V#x?P2io> zbh*g@T3VZTTJm`G=+WP5D{c6i%@n{gy1n6)_J@m&Dxr7y8367;29kIkb|M_@*V;*4kPJ#GoKDfneZG5u^+v`eAjP;WaapPnY!N|ckeAW&hggd1_ojPcM?Rx!`@v6 z(kXWU0KVnQ`+%u^2Z44ZLmZde=^!XH6#Mx2n3&i3Hy8_w>dJLHw!k_UtE#xOt81C{ z$`_Fk;@$`RQ}4*|Fb;>^NoN`Uh8a3Z?|HM& z0qi+Z|CNA%z#bfe+q!2;FtY2X|{z-1XO)^6qp zK+G7}8W_du%8E@pl1ja!1+c{jNDDIiH*elRyoQo^w$MNI)ERMlT-yWK(+;AbYNeTC zk?xLqrCI0EN;`-eC7n>a@qFcnw2j$nkr&{|9$*T+;1#F;3SicUfSm05FIR&ScfGlv z_T$G=Jpo$lVBkM(4(7SS!^1&J(m6Fn2!kP*Ed;^lZVe?-P*I_}xw*N!yXUA^AHY^u zt|BAxkdcx7f`U4RhOo%U$o>H{G85#^%*e3boBjx_$lBgMLnet^*!6&enK}F+*-1~g zadhnJ?)C-y5Hs^vfsj$-A+_D!HUZcpS3VORobNH|(1gD*T8OX^eeRc~M>se%(*Ixc z2nAA95$NfGes5=nuFmI9EWQ22YD+3BD;W;i{rn=i=%7&ZePZIidJ=MS!y)t%hum+u z4RdeF<<9{@aCUx7b7=IRw>>Z)QBhI&Rivb(8w*%CVYa%v+uJIO7SC~L2&<|b9XA$G z!7o!~yvS|G%B!n~?dp;r6a0@^6s7MAI-@N8d9Rk&|J?hL%iEfons#c5ivG{3mOg1} z7M6%+r~S7S>6kY*y)gOQ$2t-cv@1ArnUz<(Ne66^epXu>JcwJnwc6WzA^0xc4OW=_ zX^K2_`0R#`X=MecK&w2OY-`B)s&7K0!M;{ww$y3KGlZB=Dep#1LS}PkOUvL|xm--l zk7>fA7nUN7@_}VcNX&%u28+~iZfGG9qsgRqP+envURa1pOLcMZy<)#oL7GC$ffV8& z6pNU*)+B|WRLi3d;7MzfgcH)jvt1J?Dv)(C|?3IH9 zt-PCX1b-lwpX>VNQ*!e3qmzOkYp_3y*1_V3AOtFcuV51mAzho8qW)mH7s$(H%Q-oz z+U#Vv#k8JuA&}-$o;5$)pqjhK^WnW;D1VX|qN%a8p8MbB026i0^;V&9w6EC=XDZS&9l`VvRSH2Gbn zP1BvQkq)c7h>E{Y_VSfG&+bE}Yic*=Hdh%_2wsS^oi~eP2euT|Sxuf4F>YSbWP6KE zSB4H;J|ecv_1;vuU}2YS054H-a$Xuc6_zFM8bUiH>DQC(+D2DR9or7GFhN0 zn>1SqXdR=a??ebEReux z`pk#rvbnLit@WS=xp9Ss9U25WS+o`H>QGu)sS6%oT2_`OcvEjOUXtoUw&m?TQ(}tI zE8bfHo%+>BdXUKZszq?2Zu2UcNwX=a85Zm=01Jbvp5jfnFFaExN_bIBc7GG=CDeT(9uTVZA|E<9-=qw4K5q;eqzK zy=z^KTK#l2s-tku+%w7c8uPQa2yV3}T~?$)8bRS3lb)BOU)oMInrr&0Z!3LSP(;FN zpaOBGrb0vNZ8JDbzj0E2pJ`26yfwMBdq>9e+0}scVHlSi93Kr0@J#Q|?&q7li?Hpx z&g;A?N=tRy8ax9QHi-azl)U` zzp~+0a&$DH%6@*^w)@lL45hL;PGkEz?$|$ebTk(}CRLC`{4q1zPIrFp=kRT^#1c$( z`#M#jsjE~~-^~4-U5TCDfQr)YAUDSUc8Abi+vEOMOsH1HkG?zCRrsD5gct2%<1}5+ zAEA#%itR*s;`{j9&Ju14p$N+INIJ$=@)eo#IawAkWuKwpW7Vu|TvF1{Y)g4QO;$bJ zwzD@=>~M$j(lxDgnL@RJ_>cHJJUn{(`Yst4`nPrFTWy_!_eU1BM+xT!&(#A;VUR2?NsC8TID%V z9fj8D^sbM_4MD4{j7|jc%>XueQZsAwQf4f=&Pq(NGns#p1E>JH!#O! z?iq5PY3$Qc*{Sp3^F}uii>Ibv5d^<5NyW_6UIT=)d4v(_r*metd+EB#3P0lk`E#A) z&cHbd?D*>i8b+dk`}W#n&&ioK3i6}lc{&&kYxtmzoG*OC>^qJ)KIpe5dB&=;?5(boUdojtgv ziNZQZ6F0`~Anhc5q4eyScJvm?#W}4Hg-Qx_G#}3O_C9U?H-V&5=l-~~)CThv?{gk? zb&-&lW?GD_th;!gr?K;*r4Ikb8SOo7?04K@AybZ3RT)_s&vD`=EWsyj2a0zNV~in; z+O_cl)rT2ykE9&=Oo`IjH(iP=$VaYmy}b|>9jiCN7)JY}!lY84;uevD`}BuXcRsz><(J8maAm z{;_&79?n==SV#hByvIXKdEAvyxruJ-VV95))g`Bsi9;rJSN%t!y@FHO04 zqxIAJyu})aMr;HV{~HSa?;VY3U}7=Je587JzoZ`}V$mNpY8Pk0o)MFf_yq-|DGkPN zBJz~;Mb6Bce1_00FGYTaRueKZMseC-iiPZ`SKWsla#xy7W@s&N1J`aXctfz3^A*WN zy%R-21l7O(A|mX!7>HQ@iS@C4jihaTt)$sh!F~&uJiSQ9V%VYYuBQ|sDl-NoJw_?$ zT}2B*t_I&GuLbB^)|Bxs&QUrzsK^@Uzi2{NHRq$ z)K)z|8k6h{PaU=-V(<+wHC6Wk)!f}+%cuX+PTp0_`{rND#5=ssWL)CePNlcD%IS2^ zJKS{1EO5(N{PzmN7**yOiABOCVQy~zJ;g%{kp0dl{wq>R{1JuCRutsS;nM0=$Y1M~ z2HmIZZ0+esdRp|P@OSa1Ckdw94ykSvYTuC!*A1;rZfG?m4{%GLzCPom`TjYPBzeN4 zJyVc}wz8I?n<@|UpX6S=G>C731!sqceiviyffa7UINl!&4PNj%B4<_D7bGPe5%WVr zlNT(VUFdk!Z~2{*BoC$EnQXr-*fY;%{=*?N_&VaXJrwVod%ErhNg6(4WbXJw>1^@wW$`koZqp%ps5mLVzvz>9Zqz50Qp zaHo!;e$o~%ocVEqcI?199`ovIN#UMu6NN?T1`CULXi!&II|*HV0}RHjxAq~^*dU2^ z%Z65U`nCbkn1HhgE=*!jq*Z1-p)mtR1wgxjG?7ag*4DO}AVoz^P5};Q@5uMMn$^`c zacSw!{;>#bfvZHAOrp+W;^B$L`Pwj5nbQ(d^ewOK9n!O`KNJY4o1jMimn3BE{>gIN zrWHf=&h)=JbS8IgDm>geTWgvbM|9^Wlate~Zkt4&5cUJhX;-Boj(PNi6haW<@|4b6 z%O#@p9(x0#j-P+g<(IZDys)6)==_A%=91yo@FSeyHYg&ULMu6WPr&-Ob__!{@NXxY z#-Ey-5}%^$9sEcUmz8B2@$BTJHHQRLG_5&$YE}GHvN+g0aN~hbFYEG7Zy=#!yVEZL z7n(abs!d?M+96)_jxtJBeWN)SjGQ`!HyEsL5hID7MqFH6B0481LlLu?UCK48RkkU= z5Txy;vGxHeR#QRL(_riHj3xGi76UNl06p01b0u0(X78Hu|2bzpJC5$FcL9B-2zJ% zF-(1IeSsEtI@7J9u3iqkAeBkMGWdjO`gV4lx{H#;<#xdPThVWOOFR0gwL7KMegt`S zZ8eVB0u_a9S2T(?3Q6S%u6MBGT+IckHox;;aJ$%g<&_Up7rj&e7bdrD5A*{6r3HwO z?@Qrv)U&dZ&35DdT5PE~l*}`nHK^Xx)3Y8jXSH@drxrg&SCD8ZCicGB>L%iE$p^Db z#cau~p&BiQLDfk4sBDzs5_oa5e{gWRuJ`r))K2o3&;pd<#9k*ipUUbFHpj>2^A&N+ z7=*e1*4j~$4%_?3%6oPLZB*$Ye7y79?p8M%V-X7S){aANoHwIowr6VBr~mu|B{O-o zx3b04f4OsA!HLJB8MS+%hzqKR`6Wy`t;bHK-f7yKz?4HwOKoiIcSi!F@~8gh8)HL| zWzgcGDCpn~(Hh2w-+pY$9<(Y;3h98zO-r&6YIE{s-5np{Y4t3TH}oJs0L)7z>MM zyNkQq#~!#pM+5Ewn?qR{AouTpnR@E)Ut!^a)*Xsy@95PoTiF>bUT6g_#ZA13bgdgf(W;DV5oG_VHFLtGHp27J~U)~1N z++HqBv06pLJP2^!Zy?FFQ;_@n2d`BT7&=`iL`Qe6Qc7N#T}Se26HcXv@(%DE!a9y& zGVACq4K?+(BNgKMps<{~a~KNz4mAq0$=oIupmm;v`nAm6EVW4k)B7{lNCKZ%0=vDl zvqP_Tgj-cr1q1>kjmBh6vCP5y>KyWwdD!6GBZ6VxAfrj^ZePHlSLOl`bU^(GgF+Nj ze-C3A`Gfnm&g{|+{lk!Gw*gx*DJmIL_A^)Og-dpc?=&B$iparmp5WX_#U{#vl18h?Z6|F=Fdc45K#cAHzU(E>9CC zr}<<%g9G!&7RB%P89=;zzsq5+w|=C%sbEAz1Qp@?7?j=}Vt3gy@}>H1mlCZ&C{1qe zo`5}GjKmPD>9=N9$FO4UnBwJ9Pmcj_Pc1~i!3%C_*P!4>o^AL{NZp6brQrhviCmVK2EQT<~B1bUT3krV1t+Is1OIGgnW@{}_*A z*vgGVO^bz<9_j%@Bvwk_LdPL**8iOgpXeV$q=tKR5UuIcv$Lal!eh)N(Y&mzL4)d^ zTl-Iox320cG#i}#pISAFE-i+}3l`b5qYhk|lC~eZCnDVTVVgU@6?2IH=z2H6-kFUb zu}mE^1hn<3#!FEplks3#SuuGo)l9nUX90p}a|4}L@#)vGr4%dU;WywrJkYRC;7oy6 zHjBtg^jD9ym-1?(nN0rUfUvMs1&K9l!|j&GGV<9zmu&^Ecc*2y02B814Gjwm>)mIF z*Gm`{J{~P|yhA138=Y~FSh=3cGzA$FCNVQI8JX4nVI?9idr2Na06C~DX8RPqbl;`REW8N01G zc6|am<>HklnTw+t(Zj78H`QuK3y4yITKg5ewWFiU_T(D`goMESKxpZ#axAo8Q3-yQ zsaeks>T^dc)G1>{(nKH$^{TEW6hM@9xWDGR%P&R}V`#(WAtgO1&}{y0w>9+f9#*`( zdC;}V(2Qa&*;q$lb%@*Ui&xVG(2Ksddx(ETHbBy3g;veMxYQ_@%WK0gKbq%=ghqb> z{(o$2>}jLg`pwY@ZtW&VO(s?)bh2dpz?RGU=)>{T;|k~;_wbak&FZ?i2(M}bR_{ZY zZ36Y*+X!rz^_7E7tg#sl4O%%wwCgRa719G{3a#cCjAvijAWYc`^Q~VyNUr~N6#PC% zBNI5hF)CTT`AfuFtFPM%s6QyAC;!o$n-r!^wzRSut}f4lPu7#!YESt>j?T|l;j;W0 zrV(8PR#tMD?geC%lameC*N;}$aIHbz<1`0{m&Ns)|13q9?HHy%0)$|>ObNp--ZO*b zVo6D7=SN_HHtSF9{}_U#@Un9}5E7y{Q37AEIYRsRNL<{8EYc=;Vh;&bZb zXX$BaHg-<+sV@>wmNMht0F_)GU@+w|{~tK+%z@m*oNsvOpJ?o8scG?rb0a%3xnmRw zST0vLn3)9QfM95-+36UbMtNIysT@Lr$QGKLskagkEusm3_cv96a41P&cv+WXrW&E+ z!qHujRwYTx55Sj+^Uqp(BMo<65Z%l4r}*KQ=9vud-bHHNp)xzpL-%f>ghU(`sY@+y zAC?8K&ul#O=(s)94#V9Xbvfa1>jP{ht<2;c7LYDDX;+1BQP3DL%a}V&&;B~7*I+dz zBKx>t^>hEG^q}EKr-Q}exbjw32Jf)cCD%g~;Nw)9UAX``{z+;1?A3?ZEa}%Q<~=&d z-ajt4$NWzZ=jvO&LySDRYNgQZ?uxDLoKXIpObl12MdCI#X_5=;mO`W?WxMkw3~%r9 zw%!NstgdP-JG(|#KrggJLWy;;1ib1TcKjd#jjqPr*-C6OcZJJ9ZboX#hOj0tvALT+D!7elaFygtRBP%rA?$P3a6t1{( z`0+`eUhV>3&e?u-sqWY&F^m&Z+{}&T1rAXe;?pEsTDxdy9JE^|iQPLg@*7Y?n2zTl zdAMEZ9o+hSE7lq$_VS4eDIF9Mb#8v{7kd-#>4G z)QFOb9gD|}=igMJ=Ii?2jX@4A{f>y?znM1_r-xI%H{1(?`2^MRP}v}&8*&Cqi=o)9 z?vqv?EBV~fW``euedhNC{{Ct%%d#)w-3lzXb7_{vc$LCjUP_i*Rb8@;s7ByzfY0wAaNgl*vXTd9l z!L<-BPR_qMx`Hx^ym4FS0SYI~Zn5`JNqMDWr9qAG(XOs6A&d9sJy%3>qqb?))n*Ru z8$#t5O!BevPg@u-41J_E+>vjvNj5Hf$L41%p+mYRg!v34X25~Wy_ZTp(L@S7zs;aJVt7z`yC?|V+d*reMS8X~zibDn2_ny6y z?`z%}iqDo@PGu4!sGaVj-MAe~#2^Gwnf?9&cu}3mAK2NGHE*y+%Up2X8~6st##or& zzf-3tf5#fx+AeakFvYSneSbg1hyPeB$6x)}ZCGJ2`y?s)9M+dgG4#-hXK)&)Lv!phyY_MFyls*K?gV^~2-y zgyOLRaa?(Mg=v6W`<08>2}OsSh8(wh2>T4DB zMH+CTwfd$@Nz?+r9L#X@SiWlYjjBQDnpf|7+`EMV(+QMw4J~i^R+wzm&4sYv3 z9JDQIyz5&)cyK>DP=7$cR!wmJl@(P=?z`JO`1#K%mjZ1vh+2h-Onx-O%kvJC>x=zC z-@`_WusZ=R+eaW61d+mdApqfLX{TuIH5QpTiQ{L!Gc>J!D}Y~^Xd)s)l|NOm@%`qI zZsZ1M?R`|9^{ZE}GP1IO$W=^kn3F*hpAnQ`LG2Mh2-`uHI4L0^k=4~zz2g@FAoT)o zT;15|^-Xaf5}=m(U^V1Kups(hGvvr)?e|aSb4o_5JJUHkp{$cJc|)0tu1xFn-NM}5 z+O~`)Seh_S6e(0lRaJFk`y2Er2252-LpY8^mczw#S-(_XSn7)qe%~E}XM&(ri}ylA1WA8XRsR2~S*~v={20RF za>B{_B4H3+ofdsUpZj~7l{CRKK)hL#oRTkJeLG9Pbeya@g=Ux0Zrh!F4aOz9Hic!q zDleZ~@i~JxQVl{XU{hDYo>crgVln-C?lE?Rec|{Y_|M^ZZ<>-h@2^JUC80w%4u#;;2d-UOVps_=udWqDI?F_-sI@VLO3FMc2&cPxCJ z$mf&_@`&vJyQT=~D4P2rxS*yoGy4K@<5*JGwo$~+$=={Iy~O^a(EuMZBB{JKp7D05 zy1K`%K1@yyr0+hz|9-uNUXEPd-`EB*;}Vh$cS$EaZ32LnpP%>d6~A34m)8VzQodMg zff&W@VET$ME{=-3qB*}MJOP;RV0mPAX2CRJXIJ`1DPolb8;~JduiCyS6@SI+(abcn zq0ykZ@0??3=!n{ZLd!$Lfd<$kGc($3WbYj1Y^5;YwzA0WPP)?ke}-5spen7mzbCXA zWss=OPRX^5iL*4AJ-H{Ik%&cpWiTmcb|R2n(wG&rSqYc`W|M7P)*KiH2*41I zomUT3!*@y!*+lLrW18Vz{OS(MPxgA;!vkFHk=?sGc7rhv`OPfKP0$$V)t@80_$h1D zZ;tYoSOnNDFd5X+3&c+W)aCX<~(Ldngjcc2U;4_hEN*U~GcWr6g4?so(AbrI z)vC*?yG!LfK;<;B!qZvk(OlKxa`&N80u+OXi~D4fXwBa*2s9o@zr!o$+Y_x< zFPqINi?C%WQGsM-XWOlQdjksX)(*Wl?=yL878lsJ9uW~q(a^XsxhIvB6#OaJ+)dDT zbsPc8{_dYOT6o-fVW0Eh` zonS&8qx-b1;roqEy;2CT9eXUmR$to4pERnW!uz5M7;$+V_tW#L34>pcmyaI=bQGy6 znm59mjFj+ZL>*{yUC_e31t*{L%p9_)%iG$9T)C(=8ZlU?8RPHKr*8GnuU>JYIabm-@)QRR2B}b@To^IR{4I<3H8P z_=!ojq|zD<#1iHjybmi-pS3y#6R!L>VeRO+c@(D4YIb?}EXa^f3Fj4l=koVZkP~$^ z-JuO|@Iub_dAx#yE3dLdH~L5cme`tY@^w3KrF5Z@pgviRta1Mn$0Mm_601L3-RxU- zV2z3EdObEi>>nhBE7*kohM&uup_rp{Mk~9)7GA0XQ98HIE)yM6!v}7;qpMRPz0NAk z5;d}NkBCfM^uD#!#>2b_;~g-;WKzCxrYxy+t%W*P^RFp)XxJzBqA5pRmxz`1?Vf4E z6#dop-0_?h(OtkUcJxB{FE3d{Fp11agKHK03FtvJ&r-Ag>rA_MA;~#x8 zeK4&~$xP<;@w8VV&;H@u_9fIf>_i$<{~MtY{T&z9TN0KoE-v1>Fc?gjLL_)7>W2K` zsMHhit?+-lxPGCsEv>EJN76-(2DarkErMMBiOVE&cM9^AOW5&`7t$pi?tWW$j8>u< zzSRJRH5pw%^a0!5mVWA%OLkHLoFf_&G4}}n)1LPQbc$`WGzcQ(-d>uHt}ald+~CE) z%>1v)L_)oKQzkpe{y;v+ID(^L3PK2DR8nMs7~AIzse#11XCSk}->pj*GgW{{#C@F+ z&-J5~(zUOx<>GvQxxV?Q>Dm9JqblzMlJn`b4G>-R)xRRwdjq`D@4wbRm^Av%QhFn; zU{DAaDffUk_60LGf{|Q)mVOcEx+C|~=;&B!ljR;~^S`FYSi7f}e~>h=o^DJ`Eg7_1 z(XpU#E1uDw{Tbn4Jv7Om<2-0e$yn{99#J-MDK0p9>nGIkm; zuc)+*NB|W)1hk@57?cYMofrUSV?CdZo>@BXk#+;f3ESq%(PbWEvN#m(v8?|nCJ69T z`6V0*DMvZ_8wTUVwNH*fGM=t=BYT@FoZqIDX^RhG)S_RqjVIT`B;Z4~w{u99VSwc+ z!&Ae{S^kSf3xdf!Ufoyh)KFs+rI#`7bX$&bod}HPH!s^Ob^M(j29~> zNDQe~vV%muHdBTH2%Y_c`!(_2GhH~<#q_^@>wa`>9Bm%&C&rk$IMp#T^R%b#vwZCM z__t)Y9sI7QOJbyM>?p@Ep^jxB2|~jn)1O*QB#Fa)QTA_;n}-X(?!Hqp#y=n+OEY0I z+C17%EE&9Q!rj9!FqHbkHt&O3badf7cP3DdkpR$$pw1JZtWU|pzCuFugJ~R}-8~w_ zWn@-B2?W`D2uZcGIf27er6*oBJR;&dOg2GSNFt(>%qL&79JTTm`a3Z(s4|!h>k5ye zx4%~*8wk`oi|bM{6DY~UC3EqFfh4CVDWyCKopZ1vuH40QKp~Hvirg@*EwVGQSqG_! zpWps)QW52?pIB)wW66IZEnl_&iH-fIxi6|O;>~Y1ZhI+nV#g{+XQku!g$qFJ7TbyP z0kDv3)H1lQNxugNKb!FI04;#>Z&i6A*u?xpQFP)JCX+A8tYjsvw1hhJ=v|+EV5R@D z9jjt#F)6k}O^%-oj6m>9yN#0_XmSXFw-SDgYw7OBpbkDDC&&LSj3#&qz3>Da_D9{c z@N)PB!Z&)5NFmd4QLhIF)?y%K~h|DH(WLBf-0PU@At4vPLF_4C|y}s?2ZM;D|Moe6W z#iyVE7vROmp}{72_K8E8P!ALxHSH8X^7G@+(dB#-_X!co&?_~8Ocp76XJiETrQY$|E zX>H?=KE_Fbap)TxtFMy-g(pre4&~DpdD=kJ%+*bD`4v-6`u`JpDgSrw^ZftE_J2@Q z?*E&cRmNa#^r}lA^dHUaO9?$90X6UM|LaZ5O5f94K__37B9D-erI@%#P_KR%s=#O`4a1$7c!1xt%*KsiGS)fUw(Eq({&svyONg?$EU zo2UMdwI%&!{ivB~1A+zyh|CiGD9z`ZP?VJk|1H@{x^M{7#v-E$;nQFPbTkmhBQRx8 z1SOiE*T_}R#uc%7~(m$7TvgGW2B{|*5}APJAmAy6@`pNcB#>r3AR5w*hs?jcXe`; z;0`mxJW>+U)zxKt;Qj$HM&pGFL}+NfL`y~*#9PB?C||Q3EkOMNzfML^FUQQD*O_XL!-vxc+ z`0X6O_dkGhuBE|M*LwyCk%@|N8Fl}1Q&deMGY#HRSq6!+UPc$#OT`*#K9k?NZ z1h+zfE`wZp4uwkH+oD3ULr7TBG!MH`aq#R3mhu#5stoxcKu~;j6frzgc7_div@kDt zs8AL+oc_4lMqWPFrMTMa5C?LmSmqrTE%z%$d3pKR(-~3TlOw^$O~Vg$`15))P+3F! z1e6`urw6J9!?Z^OulTQSF+34#vT#sKk(G?uaWr6NFk-ss0?t?*iwX};nFf|7u-8+HsFKXdUflLf?X?wCYKU)yz;`+d6 z3@5IX`$urO(0X+?Gp@yrq}vucspk`Hn(iMqMJ#a?4VK;o4PXLM>)K%T(iYfB*llf6 z_x0IZ(EWNFrvV+?EQHuMA++EX77T&rf1RG8@*g8rAArosNzJkOY+2Nb zAlZXv2>6b*gu~6FF7-qCTzN{;f0LCeb5gRhTeUG-x;G)s&X=i{r!E!Lpd2bJ8GQok z0$g@felslDy800pIQ{#DYHZW29qf*a?jC z)dy$J6&#$}#a*UA*v3&$)U@qVYt#s1}DgcH*ILt~dB93qy8hLksIyJ;0+5MUelwL_#vZbj& zcltzgp*|2Px?dg}4^`N4pF1KtK`8QE0*^c^bU~H;r3G(SsH1LAr9loSLvNe#!gIzXlf>+-+F-%od z?sAlv_A7y2%>kk{gmLoXX2@JEqLoxC{)BR&j{ocO&cvBgky<;D@Q#2&)FNz48eZqL zFcWfY)zEtqm9JWF$%id4&Muqh+OTczu+(su45*^s2@I*X#AYWC*dZu>Jxl$i?Eq$> zuzYiCJ1Yf82(Y-~rHk@?1~(RHlG0w2E#5J13{%%0*45D!QW_gc?Z7Ags-*KYJnN3`(RRBy+kqI;lQ?sa`U(#0@mSFl!COkmJlT+pav4 zsb!508n*@-#Wy)FlI<*quz4KS`r}zGfAY}E8QdxL9}GdG7l_4yD916uQs1__`=WL&F`fM-TF1UyAUbaDdAw{DXpY_F_jGPG%8F z)mUC=BA9F6aoW)titPp`ybfQSn}-IwPZy`ZWo3;dvNGv0PAOiwd|Ho>moIQb>~(Wc zJ9fxPr&J)ez&%xRk(~mrHGs@D9|zAsCup0dEj+Jhl(jYX;#kUVZ3}S&n3R8m5d+$3 zbolM%QPwmh5=Z5#a(V}w-Rqtyg@V!Xps@E!G zs0r%tSL8y=T_od|%5JMtDf^Z1(7gp;y=pr2#g5^G@R4F`XIfFv=Fx&iHQI{%**b@( z*x1IBYHB!{!zN?2$&usId(*XnOP>8k`VzDdii74*rz~mX_Ab1#asYjJmR{)v|C`9w z%qP%>!5Nar+TCX>B#tlw!1Xl$G+}%Kd(*9;+QVsknxk!u9_cPM3wp{6yN?+XaEXb{ z`K+e@c>4eA**bF-zoAXCm}@pdeD?-72M|}!J-htHnN;{$LnGDj?b{}SxZ9yOUd7E< zzrYP4MYY%ezRXoyjB)>g3|MtT9Tg((2Q$cr%|(Dsh5@>s9{w;lOuOW>p9=(3!1C-wm2lBMo)a*BoB+34m( zIf=x+XEnAPeV)5NP)rzmhK2x*s}I}~ibGLtypeQ*e7dUx@8W8=+3XMV&Z7R9m>A#o zl?=-yXh2cB<2^TepA~{`Iz;(5FyOl`gS7N~Rpa8TjUh_}oy_QJ=0MyHk|64{2mQsQ zZT-Sj>uJaIu~)ILbK7MpW~07erL@r|PB;Nm=I1-kc-G05e}S5{_CLPmeEkkuyFuHt zm?XnIzshS}e7YB}U-y02JHR}4=G~iXP62oH*vT9%mVEa3A}H89IJlASBW^&-^(6^f zlm#yCu-_T=uQ)9P&a90)&~&EZ6$A)?lt{Wm37h&?z!epfYd_{t^W-n%&I@oI>zBA= z^4D=c567PIL#Hg3{kuh&-KY7KB0g&+`|hx8MY&^! zPSA~iKR>V70b5CWyL*RJsoYPdP2aTZU+M5q#VRD2hK4gq2AXh(hE=A& z#n>{{Yc2fkn<;igK6Ijj)N1iIlg$!G=Vr%ELsC!B799cv0Rp?hy9{Sd8}+&3`nI;V z)8+rIo%4)pGVAtu5FJMW5u`cNq)W97MXDeI(norYbQmB&LO@zzQ0Zkv5s<2k^xk3! z5E(jzfFJ~oA#_9t9YPD-!~JmYyVhNI-4E}4ykE1{lc$`s_xbO0_Wu{`_ZDgJT1M`j z_NR(n9HL=%K6TkU;NWS=V+^A4gik%EFEhYo1CO}kMQLI&W2Z=PycRd6RM8gOTD?p) zs!aDHT3oNzFW}!JwN%N?L7K9t`CT@JsqM_hhknN0^P9NOMwI5{FKa^`%PcE{O6v-g ziT2JuGkSFUJbYvPRcSGlcJ$PI2-VT(J&To2NUYQi43zf{skD_ZMJoR(BrMFM>JNeR zr0^|fEsE7G_mIO6$+RTClLia-?|e`9{p?Zu^W!}2cwybly^->j$@_QRwPk9S=!V0dO#);aD=%DU?zdtpO{=e8$=Q_@@_AeW3q zzV}GAv#$MJUfkqZ2b`C#&$#_I!v09Xx5#fTFOd3esbz;FeAc|oye|}S?%cUg^o1&X z-XQ~o?`z|Zl;V#Uv3lf|=dEFpLS7q>mYHuuwZfTJd2W|<_L${NcdRb9x3`d4SsEml9NbiekKz?*$Q(z)=kv2ZFzMi zNCk|fn93o?7PmBWN#5KmBZy%HP0gJ%K#KQc_bVe&*h%&+?@QHf$3MZ)*&imX^Kx(I zxf>;}+Jjgf7hN9?TkV)S!2a=LO@g)>GrqP?!eeq*-h6BW++>vk|;l93LcLF{OdwJnvoutLy0QKqq z^7`Q!^`dv3UE?m@ShJ7?%wlCz??FKA(a`AZ)!W;v>|>wM!6tQebx#nR=0!QHaUi?1 zNM|a>#>=(#g8|%MT7)K0@k$xP!={sYM`Chqo4*)jRJ#sxFaHc6GP~`J``|VqyZhWj zc0KV|+JaQ0Sgx57Fup_lXloqt2>zh)Bw~G9_t&^Yw>>%yj>sUO)V_NR5Y$J1YxF%N zK8uYttJgu!*!^0(WMt$?sWN)e`VAgXkFl?Eu8ts#g{)Kjv1C_QUa_HKp) zpyGQmZ|7Kv5^|SfU*hqG(a}%itAgg&HtV;ZsPd}5`eSeb%USiShc^a;IlU54!^*1? zZfr#~kf=E|Brpl268L)U`QZq}msStffZAHouamPIkI^1%?Ce@y37q|NPYwF5+TCmF zIcbM2f`I1sXk7nF)bD+qY%ZtUC;y3iJ0-m(owDHm&7bB~0=jKhY-|A3ry2t4@#5an ziwNFJIhW1@UxApCQf5+82d`>ioYcE_;8?W#Zm~FcjiaN1>Sr-Aa9^^r+ihB0oV~KF z9>m?lW9#5rJU;v6t$eDFr>DgIHJ-m+Qq|`avBZimh!A?RVo2~0J87HdoOvmY+Hv_3 zfu2{LiX}FM%~1N?OXpu6?{n2t^1a8P7`Vu6w<-bj`wUF~{9w-cvMFRiiPtcEgEP%c z@x^eR=#_4btLu0uh=N#MHA45CdFakcyD$AGe6sL7!_iHDM#LN2qRLvB&(nh=hPSH)v%L3SGE zo1gCt0g#&}m`rCIhJ@hpaE$%rOdFx;u~QnY`5?KX`Yu94qG51fTHh8lnxKT&_AU&C zZf$N>%)^57Xz{hPt;8|EIfth3_l-wTKa+aL>M3=My{sQ8MKNqy-e+czKxld`XII-F z=0Mk(T!e;qtszZvl%{=O4--hGq)Jq^lu$+t!tJW*oYlQt!7SaBoSh@jkAGx0xZZ%U zG7BsaQQW+|os7aU4C@_q=H?c^6RRvd>5a%` zc7A@s>xKrc|;m~?&`x0)guhnbv_T?#&@u~x$dp~9BvUvkNOUCFh%i9Y7gSN zqoelO4-iE3DgO(-auA^SCdWuy_AfZgy)a8I$JE$}Lsp3Y->B%R0zu$Nh#sB)d&&PY z8{2Q+p&M(!%N4h-f2u}M0|+?WUpW`B^tj%bbmpaZ0aD1tdt_xKAZP6Hr5b9>>dY&P z>lMS$b$*m%tpS{&O;3>wbhEcaJahfC((1tgbzB)sHr}$NGED5ygK+TEWxE)RP*E}z zC_D}b0Q9sR>j-TvMCv)_^(d#j4Q8IM)fIRL4xrsa4TUy)OyAtqJfqBr4^Yb7n~@SJ zh6%lOGZ0IPOpA+4%eOHK4?1I9oQPB3mVlVCi?i`^fY!3JGTDmf1?7?TP)HGM(pinr zt7K?s`0JF)L~>s#Ft~iasDUO8b`Idwo;;`Qa- z-D_#51=O?W`$aYOTV2ZK;c$IP`pGx$sFRh6J^&W{K7uK1L@m{E`WPC!4M!cTo~)dW zjt)nnVd)<~6pPh7S%OFq!+D=%f zRA!InMkDWpeipWmBzdLHK#p@fS6srlth>d2TUBrDjM= zjYe?2NVK}gz(aZWoU&!PAu|x@VJo`#!{AVoOjDD|&B@_aZtym!w!_xDQ$vmOj##2z z8D*DRQuSw?ml>uup6p3RTmx@f>VUO;+gx2~mjTMkroY~&FR3T?c1aaLe8w9tBytlL zyB70Bz1mel%;n%rA1%GnGVj-^zf_1S&s#NY+MI zIaJ(HD;{`GqKb(rH}^LCDqNEn2Q=_W{4#lXUa>uI~p!Et&;reY*R zPip?-u^&Ued8_iXj=JN8wtCr=oBWve{;su3T@Bw{^7sq()zIJnGU(81 z?Em7UFk`3C14Gw`4drR=tWIEBn^RlrwG1{KBW@+n*XsH=MABk6$gPo{}x>O6N`V)A@zR=o}G z6ETaO(<1#=p)P!l9PC{G1x0kZ@*+_eGkMX<6b6$8i^^Y*tVKbEogPB}?8+=cDj2{Y2m}ICMEI=?0)fJZK-_S@eG6XM z2u$>Ve^9Jsgai<|-9#(!1Dch9h}>=X<9u7^8v^kRA@Y`A&OT;+!cGZCh@^gpULy1N zZyX8ZkG?DfZ!iwOJ`Vkt#Bi#jwO-R|%6vFkRq&C&>FYlhhC>Y8Cc1R%|a_Z*1he8ys9V<)Q4Ce}OG{Wav|LWuYupgm2F@4xu~jsGv@3k1g3grc_y95jCY z?+A+9U%MZnNIyV}eRU(@*=0d5E~l->dxp?+-M_(D9i*eEPI& zbD|1mdAx!N7Z;a9?FIjX!l>)L;d+VxcfnGJQ8~)s-o1Op-B%}jOK50l(pd_$KmGhl zy2-f{6BBW0RdC$Xq~f(qOk#Duu!Dq~EQxIbLCq+7?bv@=7dhe$1>cMWe=%{mmQM44D+`x`9uhJ`Ln)#vg4>F&Pd} zq)Nrd_029~SXfx#P)I+M-CG|mplxs>Ib#%V5MHmRr#IgduengUy=`tfQQ4fM zTE=cUe;bjTn=2m8is|HZCb##~-+%Gq>;G?vHcGmN`YGE6U$2WuLvD2#Q8$FW(1SIf4hxkMa#RLUC3?SwfWmE5oG~ z(?3`p++QDIA`}g?aXneU%T=prm}&Ge7%#Vw#1nepZoGPPsK5WE*<`g`y7ZUlg5Ksk zv+p>qm-+1N*(a*(mb#+ZGECRj*E8}4_2GcG-N9ke5I1leDL5w zeH4q4`osYLs zu(7d!Jf?m>QmD(o+grl;zwfH8nLi zb^_sfHZ?UNM4mF#o2qgnU5Cn&8o(6ZOVxHvL z;YP~d%=9#0IGuXA&01KyNli^nK~YiTCG2L1WJK@hpL6a0A@AmOQvr*hTbxL%&d|KB?t1c-QEH@b_wjaa-dU%ptc{|gcdAnwai zWz*}4lbC7ndW`(}^i5c!4;GX2u{kcCn(&t!H=po0+h;mxR9b(Zta0j36hw#j=2%z2 zecS7G$F$8h`{Hw0l426FCfo1Ks)X_uH8(Z&7U@e##&L-RlSwF*n$B#tkP&#~UJo>cvkN8C_1TiMbuG_by8zM+Uz2|-hn=HK= zC#+*ZJcd1}%xnq?yW_aO9CTBN^tLj2>y2sH$w)Rc;y`9$1;V4v32n$_h@96>hwIjF zUabyfG`gdpBK{R<3q=_~l?c~!b=aLxR4p?_sFj=ZH~!N1Tk45tGMnUr3VpoS!`lWs z6SV@L7V)@+2@Q7|LO^saHYVl?gBDs)P|#0e?kG=BG_L~)v!%Sc%Z8z$Fo(TG-Q_s5 z>!<$+k*8ke4cjy`Gh@9ut~?_ng5AcF2b-Qck`*aaWxL^?+%Z1T8ON=fGueajmCt3xYq0?p?pu=g-1<8Z`)+jb8jWwlq_2S2fm@G3y6w!^o5^$ozMz zaog|Oi&^X80nV+hMX#O)20oaqcJP2;hQ*^KXt(;qhH_2#yhv^t8zXcllZZ;Mk%(l} zeZu_tfw#9ew6M@KXbUAO4$3MjH?A}7(W6I}&Pw8z55(^8uBOXp;Udx`V_(qG`Exn! zQe>Cq=YNE1!E8Dn0ncQ5e%`aDh8vq)k`$^SkIU)jVqX5g5{w&!PIE1oP%d&6MjyQr zeQh!OmeX!Cd*~mJ{EHVa$}JZ#0&xZgbai!`N!-qZ^rH6Zo(8Af!`<20fy6;YMXj)y zyS1I6m+3!WIt(RGKtLeBpx}e3Y>lH$s(54r#0@@#t*NQ$`bZJFlarI{)rDP-TRqzI zG~HD;)`e~Fo)n^676+^H;t~=}#d#rfx9&cs3Q4T4z11ewg#z~;sNnGS?c4Nw?g$Tb ztVOt947jr$v{6yH0JX5ud4h02;h{rhsR?Q%I zc6Pk;5|HYvvq|io zCwlr6|Mf?Nt*xz$)TvqBMQSg~%iEg2i12SiPx`#O(9sGoU}tw1$r(St+0N%o4D zm-o6K0dT0xoFQ~{bhKXXMRA8(qOVe`n5*{bbbkdNO#bJ-7b}U6pK@9!K(+%wgIH|J zTWx*Y`xLUY?qrd$C4dC09wOlT&z}QS@$>ZOEq;V4OI;~T;}ur*Y5EUcC4Ox+Pt>{b z0*+H~stV!$O9{eeQk6<9dGGTfY1GNiba`2?Zoma=Agv$vKRS zel?Ydvb~m9x4S*lXkEtPbVwtgDfdCyH;&th)oyeA&&Wum>%}Q$PFX?0Cuk>#p9Cya zU6V`mJ6;A|S1)dl(6-)4sHmtIc+Ti_Xbc}pmFJmj@k_E?XupnMK$JWCE3zrfjFCU# zdy%y+PLp+RJ)MzEj}4hLgM(fQ&CbpW@bMu4EiO*~@u2d-c=zsI0bo8gb@lJQzOs%4 z0cB-uV&Qbnot-}+hA1aqgl9`cv!3twOCiU*GW=ehU!HBD{3|ty9%6Cj|7*ec zdpAd=WESrDy6|PS1p)l|S7t`S?Q{q|{Us5HrRPwNs%)abO?co!A3r{WsB7)%!4j?v zfo)ULBN5I0WNh3C?F^sIln7qBZvG*3>QV41ZGC+qV`Cbrc%B7VFB&?!Y^AjUtMNa+ z6w%ORuIroYO%z0lU@=mtEF+MN=ZOWR4PC!2RU%q$2zRX1q$7sI>bfxb`};E+AkpsL zy-Pz&+waVp^h_s(2-6)Nv3Mk-7i`w`BX&JqAzvNJ$+F;qdvEUO@P&OUH0URzd_cy; zz>o;bx<|w=o%!9ltFyCHsnVJs2VsFlBlC?J3O##X1n^A0;Fr%bK0gBSBF(U6a={!i}_FnMIB8EZ$i6UL7BT_=5OLjYQBkL{4XO z4?F4Z*M#7EY%mA)>t4^M522NLbEx0qf8c4HmX;Tg7*t>(87}w$?fKXWiZ|}!B8U2Y z_`mhEG@nnOjMif4yr10`DDB6-o?q2du3x=8Ke4JLg4^b3=xu5uP3w4e`)lCKdzgMd zEi3O`zbr70LH>Vrte#_`@--P|+_sM8z zVhDKUk}OkxXgYIPb}-!eN{96I^$kudWn4%WW;31Cx@hU5>W|$%{Gf8UQ8p!AYm6Vd zLjIFbu+6O^!&=KrV{6r)TCp z>kNmT*;mk_RfYvB{rY@_8y@r{VPA}|b z8By@FWvY@fM1P@E4-c7CbYgyI#~kARVG5%{CH+8~ERW$JP#1q4BaycvVjp2+1E!;e zsrJRYA0Iyk7W8pKy~HB<3ax_F?eZLlB9J#&G^*&jj8`3Pq2w2o{%LAbO4@k&GU@jH zJMZbjgL&OtY4#TSGl^EKHNSuVj#lH;3Pp{9jVX=q%lQ*RBLxkKL-O0Je+v-HYfG*5 zI3=Xq+}x7H2lZzmSXP%xf3pUFYV8s{QdY1GPfVjAt1ZjGl-mgoOQx>V)3+ z@!vkD&XVhh4-BmTge7%YNix4$vWBsisgUtgm0WSO%p^zdY@X z_;@F&cpTuzd(7D7)uHc>Hft22vi%o+_`KiUWQhVSh_&x;j^*qMB`U_lM0~KqU0718 z*E-}U8Y|Z@Oy7FrqqFl@nS_5uX1ubgJ#tEVpF`x{RuHA^Q`Sjm?h>*YP;H{$r`$L@ zoNzj4b!M)qw9`d;77*P012_GgT}gLa?C_*=-=C6|PT`Zw$Bz%lCF5qx9wrHkhfo^h z5fXN6a-SV9O=Yc5lt}2B(7k^BjbG5);%t*UbfL;&jg`%8LhtH}N48pJ#Mhg5h1Zx} z>Yyn`uxhh99g#>^Pf9C}*yZ^>19?Yu}8(!#^XUmC-e zlG}x#elce(G)(C2TVzoWea5Z2kX-e;w&^MFv=Q4I26dYK`rRTd$1bL=xpn^vO@t~} zkfWM{I=Qo zVFfjf*<|(|{ptXVrPIgbN9)PO9yJZ8p+-YS2Rx+l9k9W@qlL~r*U;R-Y!tPl!dFo!qM1A$_|bO#RP2+w-|8S^3SK!R&thi`-SwvezI=IZ zG;9_UcJpS<%h#`OtBxgq5;mK0zG5xk@QUL=o@lPy8|Idxc$5-sgmxh^5E z?Pi1?_Ls~fqoX(%41=FPe@5^+-2$c!A(yH2<&L&cf7%p+QUV%oK>Tr<6ZJ=x_<*4t z74zA7%9R6OJbH)oCQXdenTHQ!uCf)DM{9FhHtHLOUn&kF;G3q){-9dq(|dV&alotq zz*K1M-1W@H9m!ZGnJZcoaCPn^zviM-7VmTRP_Tma z+<|s`r5^z$*o6%%`O>wb)U36cX%acb5kDuhEv9FtDMMLTpO7GT6gqVIYcNkyDx-f6 zxlosKbyedivBJfCl08JR9H#ad;bglOm2r|m@Xh4YCrQDyTNoXiQ*MD7XI-LtREAB9 zi;JQiGL!0-7cCNAHm}5R$m?`@fXBkQ>=c&>H5|XZM9BzyRdUqP&_HCg)_~M}PEE~& zhCa7;6u8D_YPm3#b?$T!g|xM>Feu|lJvzzHf1L)k8>2%q?$r8hF|ugs@sNCuOysXu zV#$$d+cq8Y;q@nbs(Kx+>+8mkHR_zMo~s^4$I6tt)EsBC9T?OzWe%mEosdy^dHJMO z($yTT4X&}RpBiBa`4b0w=jeEH#s?_SMp0V3URW(qk$m-NGc#zrvn7jRFjivGW*+HD zubPYDKC-Y!FQcNlo5%n8bNbL&i}Rs0x=k#*!;gpBEz|>Viv%~KSn`XDNon3;*H2xY zi$RA(L-(ObHW~lRq1r(<&%=q2c-in0M`NkWC`j;C8*%37ha3!CIU`jYGavD`;jKiZ zQnOhtWjno#>uwlyQ7_9DArB6WM%B_P+&kL8HuSTyhH+Tf@D%0UC;Acir!O@-U8wxy-zS0%DD zxNixK)@a7ueDx%7ZcN`XBgxLjL3JezS5Pi>o9PJ3;^b#kE&m}l77?M;9VcsiFHfmJ z!1ghvklfX!lh<(g)uqtPP<>CEP6k%7LMyN0rM&$_rf!jO%~j>-(G>N-CUm~^ZDUbX zRF@dSfu7Rc+ZDr#PZ5f_%6Y}>%LQ{VVpGv%DJMCmZVvbIRcJkZ{5Uk@toLn_w)b#a4{d`*=;&)LIv@mse}tv?Tw4IW4ku*sBn zN%g909=zHPb<1PaKIBqiHu?%gp<3}* zsjv>)yDhYbJf~QW-FF<;bjnc6cmaL*5eZ&EPh^q!g-aOH_WSocqfZksB%+zM7NTsZ zhD%Hb1r{v%kDLcl9(-IojK$dCk0)d~FS|Ek@>|pZ9bH`f=lAa?a*ewjF1Ydi`Y7A% z`E07F&+3~jk}4e5N*gxJ%eKaK|NUjiFfDRfGF4$U%iQs}G0s^*HSQA)t#{c1yMKc2 zyr?_lXZp6f!@5}L?Dx9521{&gZKAbIHZASK2}W&)i&_Zym$D`+DstLp+|5p@Z0iIl)cS8|y-T z1^4x{)=ln`f&#s>MNFCqwrInttoxo*ia8C?Sd^;_@x#JKF~x`b`?cGfEIOmP1r7YM zA%Yxjx7u3{vMko-GxIkgcvg76yvLRxWRp=DDty;3-l2KCtK0r^$I9c4-PX+Nki@6R zv$)vndJA9?`p`>8svloZ_GE!sH+K4AzFYh9#f#TWOmop@KlIKP%nX4;x^oYM^u-H6 zb=W^}DSxfRq5_)3qu1P>5q$0a{(T6I2G>}NI*;4V*Oo3`Zu23)p+;`;!>1wx4dE-k zPNc4SOh8epQCZ=*b)88{eYv5`%k5rU%hT-pILW?1OSzInp2v-EHGqoP^Z9aV-svNy zUiC85sZWimIT#%(hJ8u2&J)%!2`qc}_DYk9$8`f{tZ-S%ZE)X&J|~l77)nGF8%PM! znllR^jmN}pp~#4!#^!30ua6!gyz-*pyJX4y8w)fR@7vXAr`yhA~%gKqEdU(8-=(yTpQj9@sI-z=;`I79Z4Urfb}k@P3P@fQVFZ5 z$$6Ei=)K?zB-EA|)VjTGVF{#gn8_{r9p* z1io$$m*%$~H~H#-+1nIDmPj6}`y{-saz;*(;w^D5o6H6y-XyEc(>|P-pZgPw+I!r| z4EnJN38|YwA)+WL>!-M81x2sS#tQCMa1D|hpiIv=$er?%alQ{$H!xXmqCDTXa`S3U zT#}nqRt_7N3_D(lz{a-OI<9-mz))~L?)D7Y<28owjN$Pr%~AhXYsEH4E+J1H;N=_6 zV9{w?(PgGg zy0h$%mKg4U@V|NpvOBJ$pq66?_gpsEMyHMJiWah5fEhBZmb;?cg%?oCF)=X>#(N{T+QVNyf6kwH4qS-m)$n3)V4yox!OaP`XS5ynws@VV z4`ZvwVK?))%}YwZfBQBMKOdiR%axDzk-6+z0Q*3d19WgwF&*do3+g2Oo_MRdMOwJO zlwvwY#vhRIpw^REO zKPaJEit<`#`U+=JGh;{42C>PzJxFEZSZX{5xP(HLHJcwO)g+UW8^U%G|Fah$6Gh>y z7UOwhBIHFAB%7S%eofB>0`YXTY@xGaPjoFwTT7`}heNe&D^OBrvKsd%A@?JIl>})f zQyIPu=t-s8f{4o+>#*|^+4!@=?{&OZSI5Cj`n;ii4Gl3ff zh5Q!&_Gu#vVf(Zf3Y&3gwbBkwPSpb9Pj~BwvF_fr8p>8`|My)sc{egLl0kcv)NnYv ztz1Nw-EHPqvAW>Wt#b~yTmkL6v|$Ut)?L_cZU)M*sB=zpM2(Y8I8P@`IYEmH6IDjh z`@Z9qF8Y(VZplhJ<0IgXa~_*V z>Tc`VmLzst6Xd|gr%Dh|OAsGO^!-M7`jB7nsaLrMo7S9854DBj_miQD#Pwrpi$8=*Uy&1Aso7+GyRNT!ewqGk$cnw=(_!|F zPJ>|OBCU+#3HT4CA}z|r#f+nY8pngEZgnRB;YQ+dufrzB%JLnXAJtwg5<+eE9p1rK zS;#RxWtby>Nc5=v`h%tRC|%JkGnc5EdR>uu2PdLpIyyKLZmU@jVt9c7`OAR)xwkx0 zU>lX)Ws&H5rqX~q?epnn>vq!=iJ+h$U=;yP&3GWBU`&JQ_RRnlI_aR^=|17Jo4mrA znB5U9c#zvAdm<~4>DDWgs?U%4ktb(HTduCFW4wbZy(DgQAJR|iVBxh_giS?DJtd-3 zEh(YJo9h+6$g4kpp37_(6&EM#`K_)H5C2rQq73Ba^~LMf-)PrmHbQ=5TIy!f`6rxV zJ5sHTjo_;Br!?8JIVVN<#l*@?2<;Aj0e0!}+AqUi;Cc}=Kt?fg&q!Gz`_gBk&I@B3-WFMy)H>AUvac?iK|F%toVVOiWCrTjMzc_?GkO zc#M(vAiuy?@ZXoAP4c9jWa!(G`4dV&t?ezgcnNc%cS_2uyLj}WbT=XC^Gu%-uvq^t z_Tau=n883VWfz?@mK6Q(B<*AEZgIzh<@X1M^4CR+_bTGewf!Y^s-I=ymLyLa({~&r`?acX;R4gg1BNXh7T==U4-Qp3y*y9Truj2 zg=!Fi9Sbz-wHU%t23^31wfYlH=bxq7PQsn0jWLAD9Od#_o>XIncgOwy&?u$Z4Xe$H z6%zFgqgk2&-^l)IpI??+{1UQ4%7J(LK)d5Gma5ETS}6d&((+)JLv5_=<}c2hGIv*3 zQp}|5;`UwRw-3YUB(7?A^Fo9GrvS^8Wnj3D}1kTgVPX8pOMP-HA7M9hyCL_RY&WMB`&J%p|p4TMi^6AR;>pL zZ$0sWx!W{W4O&qv^o(R1VC{^j4)9>2Vjs#%VuUgrIH0{J8(@mjK}$<(uq+o3{((mi zw#Da)qX>HI=&?*SlVHO!I>d13ZzUAwykf#6In5G~W@cpkEz^tvUIhVx#^i-ahx@7G zPlRR!yg=DZl~_~2STh_vM}e9NgGbuOKR5W09M^Uby6_^G4)3cQQ~WDLp|rA5FbX3? zHUwr2OUqDx5?vB{WoLt6@PND0HYlvlVNYR$>lX~aR>#7~bPo`S8BF(Y0|9wmxz2fX ze_1P+o#nYudF<~~Viy3_ibVb@NO~{4BCkG^9?YXTSzTUie4n)B@np3Pp?eW!l*jb| zGF0G4!X!FVH~>tZ26r&eT}n3^PFrEatT!%)F~#c*ZYYH%Vjav!A1btN-owNkahnbl zpgq~;RV=qUB1Y)8hlGWxE_S3zlU=2uAVkB91DRvc6W;F3LdENt)ul!}Ij(a>GNLIZ-n;$aeMEsD3V5_n^7_~8-tnA7fHoJZ2PEh9YDzm44lifl)B`p)PxTBbiKT}7i z)kotPq0_0RdD)G*y*L%fR{%GNZ@vMo15Ie?XEJCvYZ{k2m03+EMa_k80~+PJ*h0k& zO!&jW#Qa)XIk%iyZ%0&uubycoyiOx_6oZ$Bm31hDQk?+G*JQOz#~Bt$a%qtc}2tM85;XOQh1jUEn5iJI?ds~A>F+gF&O;m~Uwz%(WXVc}}_-N@) z0Sp?i+*ur|57!fxbGGaGu3`(uE{GwN?Pm+&OdgUznBu9MBOw=RZcT3uz#Vjs#D9(2o{Woms{S*4P?&)Q5V%tf(Xi(6HpG0rs zfNO!9{MZ;3DwiXJ4@357Wu*woc#PJk9ZEhgPl_pyotZ}TPy<=)sM*cC*mDDQ#|9~E zEDVVzMtDGD`ld;tD%F^Jge>mq;YoO148Q$FZ>Hh3U@}(RFt)_Zqu=x4Z~G7ES#&v3 zS)ux1>--FyH@o2go;SmO5uTPEN8xl18^Yjn<(S?-y5t$IK#GKaMi`kylU@ z#fsEc+O``XL@}Fw)2(%0|961r6JReIOOnwCDAh2u-P6m9QjJrWIfwNZVc-O3h3n8k zywiI+{R0l^VHmfPN8cBbNgUT2K3=ipO7kG$%Xswa^=n~AEPA!di$%H`#Uj33Y%YQbr!+U8$?-zB#;ehxhLhv`}B8$`%{VfZwcGw zJ8L)%lA4(y)86-61wID-H~A`0qpG_jJnx&ozuuaDO{TKC|A3NG#Gdw&Bp*^bn6h90 zdLY}Jtm^r9Cpg)fyYeF4@~o|2Z?|bG-Y0-~@2s-|xf@0+XD62)ed)70MU6>oVKU4* zNMBAxJ)HfLlT*d<>C>mQ>WR$OGR9*}Y;0-jgm}4ALz;=oPHULeX#%{o##+?ec_ zZ&#Mvqz20K(_OjTjAzn!Pu8@pP@{8EVrf&2-jB4XEfkGJ-j~Z$2nCF}3-Ss9t5FK0 zI$%*~g@xHf2KcNxufwk@8v4^vU<%6KulFA?z@TLeGhN+3DCb&H5={SR>2 z_)L}&4cJc1BGEFiTHo;81ZeXZc3IB3av}$B-ZCvXxPuUxu3Ci)tY>+#VUVdKz~(So zmHPbW9uE6W@qKe-jIckYTcZ+r#OlhWpA+|Whe&Dpu4-#2we(vxosO7Xkps+TR|dl^ zULZ(44{lSgaHOs4i4yxL{lLlAbnYxuL@HFcwz!WO0#v`{q@4;3d^DQ7G}>a@xHG?cS@?0=;IL(4`D5uPvp5eJQWF z8PUho`8IPZ8MJR+u0*q${Larw4cHnjw4j~Bp=~I}FN$Q>5#C6zNab>f`Ck-g7}2^hiKy52x<<&Aa&M5kbQ@hB{5o(1YJIe(s2aqY=%bB=RKm=60b-} zA3S;T_BYK#puw5Zy)&b)-BQD5lOGMWGA(tgGWWlH;eSFvpk-tfY^ox$H$>{<$jqUs z{ECL==l1q(uqziXF#Yy}iVcQLpV}`dLtb|?T4Yw6Mf3_u|dFIO0r*x9{G4D0#2$XuZ}jATl@Dtw|P4IdLmog=1GmDP26; zS#lrqUVZ@`4d$B6yWnE{#MR4X9S&jyc(-x!@LJOguv5mUdhAJLIWB3LDoD6Gp+Jn( zI(XPW!ZJYT+j;w$|L=?7w65tupR|E5eYt*OVK?hwb?5Q7w(ExjMy#$9ESoVf!W+IC zf)`%^7YNW_Up1RCrWkDZztM~-!VI4?Mt<;hY-E(ttXmv>%Qms)XtvIyz+f9%JqQ&B!>HMf13ZR)`7pAWe}W;P(80nx3^~bc zHsty4?&2d{;_h=VUs;K>(=I|Nre1mRBtQXRti1q-0VbyW$?X_;+ya7v{V_2Vnzhx} zTm)Wsj7~H1-9SdpWisQ)f}r{9vaQL+;T|d7V196{!}$SZ<$MLHMy(?z-)AKXV5I)) z6yA%?E8dk4J?x%v8n1AYiqbr`>g($R@vb6WqHVt_33!}(m(`&DoQl( z;513uq+D#LE2A>wsf@dDB@rp|+>L*M1U9j^v9Nl2PeiGwbifC7&SOMZvdRJa0H$J@ z=|J{U)4Ic5oW;tUN+o*S|1Ch-v?;;@7V!3?bZ^?Oi3HUYkfz0k!$F6!m9K4DXl$g? zo_)qe08thJb*o!KmC^L~VLw;uJ1HqCL$fO2>x<7}9I@UU4W_=*&<6H>eX`bTkUDI8 zgKg@y_K=zZGIFu&SL(Ci6a0J-lHp=lQJIW-Ly?usz|yWlh?9kX5kt?RpJtWp-`XQbFy zp2!qkYOMV?|AQ#Dv61%Z&ygof40_NEip|D28&B?33MR4Ezl_t6Fe<~G%->|seUO7*FuJF^nK`>;vI`!6dNC<7DOLc*j|vq z>4RC&QEqIn9uS&NRfwUsIvPqiL_CCx=GgBwCUv1Nhw;l>QK36_(qxZeA zu;J_-RMQE^LhBQ%O6$#J%h?04fFQ2hC3MZ+zaz>~)jThksB@fA?mO9A&dll>JldGQ z|Eto*kjZpb2PUMi!v%B2wgwq188WlA`abqwD-sy|ZcKx4!s~SLT=s4-jl-tr^0L&1 zD(dNxF5J7Q!S&c(4`3@<_vxGBIiP7{c%1xU?73k+GyBS2{G>2t>026J(GqR1{hKXq zVjOw}@dZxcSN0DMLS4;iXgaU^$@P43;e$nm`q8m))wzO%^IpBXtIK0YAIy9E_%P(7 zW0B0%KM%N9NA7VsEQQ9)Pfc*MUWLVwqB>WW+KBTukE^&LAtQ@?jElzqVJ6kfl;WsP z6-n|IkLU1tDHI^0`FTq=jp21~YX$!W4W*SRaPhLEfB5G%vhQZav8%%cfb1|fF{aSb zO(~uPg5-ZllWm2w&TTr3U<(oX^Y!NSxs#Bga4O|TP`7f`YBFsqg26HRywTxyrAQJ& zsYXQ}yf$4I=(Qo#s@|fHixxeO7EPWZ6ew%gA#d&xvV?&sD*M}>AyYByJ$NZ}EEiZw zL9}PKw7s4yAOv2RY25ABtQH2IiBkI6ntlfrIK?74J;}iv4qo`|Yz#e>I7;2-lOGp( zovcHd^zm@Ei9$=iV~+f?skK!<{T8{Q+t*TNVsxdMs$FGHVP(4TIjhrqh)^n5a@wh4 z-8cH(ary(>iTi6~s+Gy2;voeVMV9D%W2`ybha7%ABUU(tg)bOBc#BbQ7>RIDLjMIC z-C!^`J-3rbldPo$e%d+hQVm_xWyGh~toe1zByDLw(n=-#-2<86HSa$$`-gvqx1LKL zJbi5VVd=^!*m7`;QfV<-2_8Rg&gR%t&i_nF7GDzSN_Rrk(%ed!)A9F2ly<87sXB^Msa8qD z^kR8Adsv9InG{&kLg8f0n7T}X*fP}*TO?CTx*9<=FXLHQ!!usp0HnMF=r_2&BBl^|dV+0D4p zq_y7gmLP3^Q~>h`2rNa~!^D_9Vb9Xx_{Xzn+&RgBra|wl4~SK_Fqy&y2|uNHW3>DM zF>yDHao0c?5lStu)6;Fz8N(D$$Y%C%dz}N+|L{_fS6EiAMp>+;XicKP6{j^=_=-lo z;Kzj1p~d$0Lj*9_TF_B}L#CMEIz8IxTBy64$*Va#0cv`6I4kP`qU8EEvhwnJNUZcf zN2* zFy8sfxer6BOpO;e+hJ~VYb*AXC!U~gfQo96>i6TvZ$rPz{pBIAjNlf1**irV;F^Gg zO)nt}aNzh*5_vx4*dD+HaS8E)QUxO0;Gn%wh1x)CMPWoXp<%=m_Tj9XEn{R83yJo(qrm$J7*Rqj!EZojkH0 zQN%-dcnE%;sKrJAkJ=f{B+He|ggNVcr*hrb2vuAPjN2NmQd$XlQZB8P5Q+zOuFh@n z$y!^35)@aPYnSfxl;Rr+k-jR}JP^z;Ler>!a}1XwZd-hD|!BR;p`PsH5< z);g%O6Eqa^tM^HEI)g4;F$*sYUfXR>HV)5)J*GXoad$RopZ{ zx=}$}r~)vWS|Lw2{)`{|Ft_>Oc+B#Vl^Lh)XY#nP-B3=qnMYQO^wVI1MaY3YGeee4 zM!9Q6Q?u5&85}v|oOYeac78-vH8Yvgd z_t3;TGSLElJO5XMhtd<*-&Vp6t_lIrtKZmOHG8)8+n=!pKKDSM7asA<-h%PLT0IYrJMi`rY-Z z`jc_~H}W&mQKBPAxivnjj9+9gG&#nv7s+T4Rs$^#v?)rkiGnh|H{0A{-J_@yZ*XjV z4h%8rf9Tjlj@PFrj(4f0OSRhhgldA(8>o1&HEn`nK__{2%Zu#nau&3pHrcZd3@}~) zdJ~dIL&9p9-G0CrDLz>%i&r6d(!Q&hr%9ddbUy$6JRHSi;r;@(n47%OK#>JYE!zl@cc_&UZqd80WQ7j zb2|!6Wml+X4nPA@$9QPox)+9C<3wI(e`4m)sF#B?Bmst|b8ugU^fbH^yZ+XWtBTz` zB+n`4x%__@162;ABM;n%lc2Z=-@@F^k3Vd# zdEjH(Xtt#5XjZO$B$cPVzdkAd+$?X79Od);ddO<+8{5x$mg-v7I>Wh3fAbs3W5Lc3NPpI z2#CP=GpuCkL;;#pZ93=(T+aIu9D8`%R$#dpts^{>NpVlMV%8F7pFo1zPka4)0S4Hs zT_pRf6tSY14TbIBvahik>wzQ;r1c!K&>@%W67+GUI)l4+FVzGR1r*@cezZ!(60V}OGQuy-ubkAH(W!y-!7^4f*XdDVY6lxY9!*GZ8MF0LBj zQa`mdoPge{q@n?q0F}}e_p?8Z#m19A!R7}>q@ZhhaCd=vrSa^4omx~_K3|pCk$@|g z$z<2lI?cfO=#m?{=&(J>VT!1hv2l!E6sTsD;>sh*7J@O+rKIfao?x`qIgj{&tOP+r zrtSk%wSR0cCxRH9E&%jEVSLraeJ*%lsHCF8XgvP}*7gJ#NCY&r=?$x>ct>0P+44Ra zVivb_$vIpTrE+^p2%RozdPjw)b)Yyec1CpPHNI!u9{vPp?TWNJZe_Y?%4b>TYSySZ z{&s}(3(S=Z4H^CV;HG~G7Gw9*_?4cDt&yPB{?TxHWr|qMR!5sB$7`><ERPFZL`h}72mLUi$3T*$~K6%@imu$8D1iK zTEB46Kx0nU{a+@jV7KowrFPcqz5bAXmZ$3+8MyW^Lm@)V3>~j)=g*P7bmcj8S2^wU zKY%FpdQ=m3T&n{dk~vC9>&-mSsj697SW5Hkk9aC)txOzwys)`Wb@vU^z8#2&74G$pa4i2r=GTpft9ApX-XTbuvW zE~_jK&u`MHRny$$I}-E>KAg(S6L19U;jR6xjz5h;?0~~os(uaC*2(>^<6M?rDlXYb zYd{|&B8ti%J)~m+tYqqj=l4NgBuJONpJ#wfe-1vCnZJEf;eRI6B(*;#(7W6oSlGG> zxxys=VKdVJE*HrtY)5jV@xMS_-zV5WudmGC^_-2TR(b1Ss;)hkyeBt0sbQc_oW$kn zBXqqtFuN}0)ofnV888&3S-jMDP1nE#ZBq2lDV)1N5bbWi1w!J}#Msr1<*|f>dpGN| z*)O-h-FCcUbgw$vWU}4AP0Y1DxBXB`AxF7q`pX51QjIMt6xbP{SaER;*v_04b7PQ& z^F0y*U$xQ#D&tplLa9=C$oeKVPO8b+q>gzdR*M7MbkxAT0`~m$7}ZL-wqFsEkroT9 z@_vUGDM$*00!&68XSP=0@n2{UOZ*ju`j+Kj(F7UZ+}6x6Wk^JZUWlktcfHwWSmXrRSv-n#suMy9=yscWdo ziFbB5Mnl-J=kO6F|2133FBcTBd|G|nqO%2X_B`MvSaER?uz*j?f&9z{0}q6w)afdY zESpzLsP-6{nMvtb=>!+re#~hC0s@bYJ|r_Zf60M91g!9*xkEuZQ|=BZ-7Pg|SoVZZ zJSzy!ko}5uNmNnJslf&+s2$P6H~3a({QP{uB!)t0G#IZ7{o=>Jk=^6(ywLnbSw`~w zTILYc&Wb!@=#Ji=3U(BVg9SR>%Sv= zOXuKW2OOq7o!6*TVf+wE?~Ch^80c(M)9%5J%)PeH9EI)QgD2r7WQmwQ0wx2c)1@1n zb{lOVPW%mLqlZjPaIN8_Ld`E_z7RKhNyEGn28RvzZhX`-{s}piH&rbksX-RJvpYx) zN>**V`%#4&)BV>YB4#Ac7sRu2Qy&s>Z7%CrxxnNS&+_XWAq$2wPf!6kbL|`{if$ckKLidH^g%&`iD8OiG(LcX zaPsRX0oy~cQMdRLC+36q=gfoGt>1Qi5;fuV6Wn_EH4(NZYUQqTWIkM676yYaCQ1o~ zPY+_bHtf1J%bVieI+JRX9QpUeKnKTlhX+ha<8~=vBlPD~LiGuwGY+6aMWwi5di z;vLD{4TMs$^-YT_v#svN%*;J@e>XH4{DVGbl$<`fPT^NfEJv>tn@l=O7;FYQ3tM*k z3T!gl256|6h{U=kItQ|u)%q+&jr1OsWm681n}4~h_t$X|YkuhQTe`2`rjFJeoLA${ z-fUO#oAq!Uja&WVwzH|5AkI0ti&y0)IoX}`jKyg5EhQzTN|C8Y>+Tx?Q^m$xc2y*7 zHOmrV)C(J1`wQZ3`l*kw-Old5Vqoa2c{P$cXx3WmG!?#cC(Ym?6PM&$DM`tpv3`Bw zUycWzm)7}f5{WK2rh}`(@)+&M@y}RUCHvmk8ctnaP(hJ-kt(^v{!;UoT^BSZlM(lUq$2_z8&q$Ds{5{eWF9g|>zK!OAaArK)s zoAdkLb?>^r{jt~j*2?$od~1L2e%`X5_wlM8T$$1450=t3J_K-Wp1G&TEAJLm4n0Jn zSLR^+_vAmdEPY!)1tr&iMWKZn^R^9Gx>22i)4;p2INcDfpk{LDbLq-F5zI#fk{v#b zc%cRbWFd65U+q~it>E2czq9AnVg0N3a_Vg`>AQ5`)e$ef&{Wp*_Gr6hMrN!eOPqj} zICZW1t@VWO&C@df8OIw^YsgTG9w>Tjx;!U>@rxe|9kZSCOv=;mstkcL@$!2n0dqf^ zU7I%DTTp5c?ZT>}BG52uLRh72@zo0*KL;RQQ?SB76^J?3J&)U5g9u4y+!*1`;L(vF zob?>%>T;IHN78*5T&Wh$4WVLq*dyAHZ&G3bHrX1bSgPl;7v z;JV!>FDgpv{5pqPJb2B?DdXx@m#)4(#L1JlEwgMA=8O1d zzmc{`BqEE%eFs{+EBcDwue}i|@7&oq*U5Hc;H6`My`=TbDYnoA=@bz`0*@O4v%0-y zOP+PR6-=am4)DO>$7ScBzYp8=p%?9 zug4;;APh$QP4Y(a61OQ2c(!T0qp-1qFA$8(7e=`-7z6@&Wa94IK2%lZEWq>ssdHGK z4TXt3mAya&{j+Q>3!l7Pld>W9c0AzCPhKs(l7=BJfP*S=>Ld)lSGBB#&n6bMn|U;Y zC@C)1_|l6gx(+t!K7iixkFW3kxN<|mF>TM^T<%;Gm_GaHyiar7NEDg7zxkQY&Hb^-pQ44Ejr=CnTw7Zs zqHg9hm%wgz6NNh8Sbw8b+!(VvtqN*s2@31yH%Vi<#RxbouX~DPgRoBJY!rZ|$$DN3 zeY{P60#8+iK&Ztn@hD(}`oI}S=w8Tz`)QjUh z#%{HfC!Ge!&Ij!|I!tBOz<{_7k~#ovN5Fjv-=O)vyi&$Q^{$I>d3u&vpDpA`Vfg>t z?N56X&TT5(yxzIrdXO%o-n-Y^or6S23=w%q3FVA)@oroHk|}JW>59bnha zfvT#a5Kg0PYS4lje_OSWFtVydo#`e|3^raoWFuMTdKeORzfw2yx?b zxoszrtd4`U_I%fb$rs@4#A|q%r<{Ump28PW*V8aR)wyWXRTuGRvNXtmY^S0X(^g;> zUfuQRjx~e6Fz^pHvI>7@Cxqlz<@GSPMtltOE@ymCz2lv2yIfna6Z#*2`&VdhNmZCk z_QVNf0t?TxkU0A2s(OjLn_I1p#+tX|z;bwW#|YEhyA1;TAsN6a>yK^eprkxohOix) z?t5A3IpG4#hIQ-Pw<@0;M(kTAYB9UqcUiU#AZ`C^^(bcyRCG5Ixitoa3dR8qr?TtT z%N~*3txo?iFU%9>blvB4=2U#>whhoGzIh`mfQQt=>!JlnWWAGG8hRtgt9t$P6>Y1^ z&={4pVRD%~MU#B!Y*up+dU^Ev*AMl6AhCA8eE9@rx+ZGlO!?Di{Qi%x3tnD+sHkYj zf20Hph^M<(AOwR%7Kaw>=mxrhYw5|smoMK^{NaaVF(*>#<_Wjq3H-_y!ASQCs`^rM z$7d%FSnzQB!NV$;$v(_=3h+t33tBALT>8o%grv9+t(^uDw|()%Z2(8ouVSAN*{V78=$fM6l}t9!5&n zcSyV@+gjJ1+!%$hCbQVVYdB`mSvv~J(?rgAM;dxqu+W8SlG#2!UcKhwS>>^ap^~yER<0Y~f9snKKF`?CD-y88K$tZ<*=|ol(hIzUM6AHGwsVW4TyEe{6qz(S zYGJm<&K!Xn=7X0Zvu7kA)g%Pn>~e5h^_i8x5MYE1wTzNQl9vpx_CR zEQ$bS1`L0US0Bwy$<(xhGsWYa31722cj7jZk8bs-o)N>_!14aqBi%9)HyY{)No|IA zTRqnUeL=FsrKdm^XnJUL{YKnWmk<7t{=>x=RG+dlcwPqA)n7>|jE&oY;^<4kg0sbf z@Tpp;G)gFGrVmGw{PYC!n6;0q_wEOd15vKVJiyLy!Ql>6^bn%olRc|u=A~lKCO2rg z)vV9(?(LP8;6o4Gt#pP1rhiwi0ogb(g}4$q!Dnd3rRFsj8imbec$3{6ROTtv_Sbh& z!$pbwiHbaIx2ctOrw)$J;^@A}-9jrFIN8 zr&&h-n2aQByYwyVfufD$*mW(3$nhhNBtPCR$&#gLUxbL~cWnCJMNG`hWyxYuUEK{} z$0zYr78w;5`N#Ov%D%RKXEj58W8;92#iEphA4W#b0{Xr5 zXCEMeZKG`w^9z@OJfFd*U5{)GRm?9bp@=ohj!k!ldDI5qJHi}uLart)v~B<^h56Qc zWY;Ejw0aQT_#88TZWL~qNuYS$ALNgF>O-pxt8P?%m zk$ts^PA3oWYQU~Fz%X6DPP7G1bv<%_GiX3MFqgQ{5{8SCMhK2)YMJ?NNSBA5)w)oE zhUg#b6JO}gE3wOp-l8Vzo?`n zjafT8{%vEohIr;slWpd-Z$BNSP7Y|h2#{xXkm$Z?GO|e__3L}9V+rj)o3&PyO2xC~ zKn)OUw&E65<>THGFMQvvs<)Y(fNWzUME8j;GR)7)GiFxplV#H~U^B8Hsy7KGd^&Q0eR zoWcrFo{pHy={whDF?4P6mJBoZFr9s6A#|>MCj@@U?`1L>_+iTC0PMz_oD9u5F_X3=PZdt?yjzvvx54Httv1oh0|+%gRnl?6VsX+L!T$V18Cp3 zrWy_+8#UE9xA56;<(=C*R-OuI_vx2F8jz)JXClv*DQ|DAb;r`sP!U6H&>~O_HXJnm zo7VX8u4e4U#kzWdxl=YA-NBw0zTMo$M?)xtZgUV}%}y7-D2Yob4}!(NRx$T~uf+EL z1h5*L;jaMGgF+oZae9y=Ozr>Ok!o1y5{V1AqR?@Jy%iKafLKnjKa&cU2l?2dwL{pf zsK4J~e*ff@E);4I`xUb$U9EHwJu~z+kr38__+RJj{zU|qq{!R0jN I)a8Hu8$oVRi2wiq literal 25162 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 W=?dwT1^0tE0M#+RQ*qn*@&5q(kZ6hk diff --git a/scripts/android/screenshots/RichTextArea.tolerance b/scripts/android/screenshots/RichTextArea.tolerance index b497bdd049c..e435316ce73 100644 --- a/scripts/android/screenshots/RichTextArea.tolerance +++ b/scripts/android/screenshots/RichTextArea.tolerance @@ -1,5 +1,4 @@ -# The editor renders inside the platform native web widget; absorb minor -# web-render anti-aliasing variance between CI runs (blank/black peer captures -# are well within this). +# Pure Codename One text editor render; absorb minor glyph anti-aliasing +# variance between CI runs / GPU backends. maxChannelDelta=16 maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-metal/CodeEditor.png b/scripts/ios/screenshots-metal/CodeEditor.png index 7e469b50032a019b7e5945baa941637bd8788488..11a7927a635f0609a37dd3be839cd89beea4a7ae 100644 GIT binary patch literal 173805 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

yoiiT^&r8! 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%0AFDz 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 Pfxo?4dYXh^j-C4-m`qc0 diff --git a/scripts/ios/screenshots-metal/CodeEditor.tolerance b/scripts/ios/screenshots-metal/CodeEditor.tolerance index b497bdd049c..e435316ce73 100644 --- a/scripts/ios/screenshots-metal/CodeEditor.tolerance +++ b/scripts/ios/screenshots-metal/CodeEditor.tolerance @@ -1,5 +1,4 @@ -# The editor renders inside the platform native web widget; absorb minor -# web-render anti-aliasing variance between CI runs (blank/black peer captures -# are well within this). +# Pure Codename One text editor render; absorb minor glyph anti-aliasing +# variance between CI runs / GPU backends. maxChannelDelta=16 maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-metal/PureEditors.png b/scripts/ios/screenshots-metal/PureEditors.png new file mode 100644 index 0000000000000000000000000000000000000000..68b2f1bd30521a69c10471529ace78b7e2401ef6 GIT binary patch literal 143512 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 d|6P<^29QJ5hC5Ns6}_Z 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≫=?}y@GmkLugRV? z!;FsW3?}Q{OpUFs-;)Lq)ZTt3msm0kl0H5X5^dUzF}K<0M!p!y2qktMUNwrR@nmFY zS5Qe|Gl0_|nZV1f`kRUnTZD!+m9oMdq5T6n&%&{4GKicBCX%+ch@KSL7RCkv-JrRn zxbqvvVz~$R_!y)X2qleo`g@|{87bV?y~7S}QE?VXeuimzFY#+CXrgJ7lc??H%*jis z8?Ck{Ms4}AKi|)D&&{BK?_R{msu)e`x$Oh&L;#DhT_)2s^EUH3K?h^9?f# z-C5S*PQU7u?G)oAAXJy8a;|EbhN55CcYg=rQ-`PVJ<@Ki+lZdjnAbvqqx6y6g?qiC z-R|v*DhcO8wpct$@b#yGFhmg0_p-wKR!=JGeXd7#fhZNma*yNWU^BklH0Z+QMsoP) z?C5s;`7!H+r#fF7UM$8r_HMk*J|4Vr-f#yhS!h)Y*c&`VLchHIJ9aTdx`>i}KxdY5 zDxagSsNQgiZL(U4UeO0at6JG<>q5p}z!okNrjf5?fpAFH)yC6#G0%#&g8(x}7GgQf%Z6+Hf7>OMknHzy2QH5G;RJ zaeqT{7wmb-)S-{^3*bR0ZyY55VT|QdQqv^I;pn}7)r_)6|BN33m8bS#w~1#jG1f38 zdypBW|KiqSSXWpvnZhRY=^^PzQxdggt-+RJwb+X=K=2zX%PG=T#AV)|@QG!+g21 zz#4^j{U6YsM|wrAwFmt`Dmz0je5%xg9%hEubFPa`#e)&L*)eP<#jK_!N`Dbsfvj}9Xt!EmZmSw=*xk|GPD3$Dzeww$-9KA*8(E6V8CfCq1qB)fv#OLA|y(GK50{8f(xD zU0P+J#RFP$m+B2vsGu4OArA08ImkheGTfocag}3yW$TB*#D^*5XKj z^fgG8{5cXJEfdroHAvSsu0 z?{=)){PTxm2Re7Iy?SE9s>4H(HsW)&8;x%%AEl}!oTiQj&@E=R|2nF2VcD43d_!@( zDq<{V9zQ7YQ;1m@MVh+x8#2l3ex(G!3-uK@eZLLu`~9to%Q@WZn|^^*@Z#CJ6WFbR zsNXXOA69QbYn1+qb_k;tahG#?%1H~yXZ;jGmF}}EvKP1CFJ0=rY6Go~cINln!Y)7B zDWSNOK3MqAv$FTu>O)2UM^Zs-Z-uY>m46cs%U5h&ew1)AaOq6LMI41b)Eb~Kw)E`_ zZTj@b-ikOec&OE<7cKW&a}I4jfu(&|%-Sqn3Uw9eh#IJ? zz*vGtl@O~!6A&yO&{`#2XQ5>ss(?$i83GH!j)1@d1QwR`90)8xU}1@0L0|y_3rkcK zqRYaLfWQI-7M8RiNLdhe1Oyf!umFLDr5Xu=1qdws<_kbz0RjsUSoqDDgTMj=79g+y zfd$BjhcXL5Zig}pLUaJdJA_3MO2Po*a32Z{ff)hitAyS>6h#BX0ZQ!&88ieIAg~~; zkq}r|64xNG0D*<2>@x%wAh58wG(uoup+-Pp0RjsUSXfe-A!T8yBOql#*bxv|fWQI- z7KA(!)JRBKSn3GKhJciXpECkd79eE-QWlnKwj;8=@1j>a9*%)*@1;C!rj#Hsf1%U+!EG&U=2rNKg zVM(Zhz=E(NAh7WN9V`r&Ig6Z$*FXH{Djc$J`Lk^iu=jY-xt>*j=a!?5J!eM^3q&_II^%K{wE0PSMYl) z=4AK(%$F?K>NQa{WzE6qW^y3;X|!|YcCew#cS<1 zp1`8$z53OmSAYI5u%!}2_i7(C`t@nxoq`oNhrXvze|oq&GWxd*MV23Z$o|;|;hkSN zbEp*^j**-kTKC)6=|9 Nv7_b&MMuv5^Is~;j}ia? literal 123230 zcmeFZc{tQ-{5LLXQA$xsM6yM;2r;%wWG{;BWXoO*lXa5hD3Wyy1}Rjw?2NT!ow4tG z)-jeD45qQo@1Ao`=kz?+_xD`C|9;o?T&J#@@$p&i<$b@G*XwnE!tUs*A3JjH2pt{W zF^$`*`gC**Npy6KJBR7Pk=7#EBk-}$Q(yfCU0ypU9{lja?tzBAjt-qL_!9Q^I-=F)__WgUu zH2Pm>GbE+$|Mi`5hjtm`f;%hiEM^(Lh;FHz~@P}a! z{CDZEPw;(TDCfpnK_MNT3Y~`P^?OhEEsY(ja=C9U9vD*vf2jR%jqi+h`e3@6&1UX?+${Be+0O#1=+AGg(gE7$F>5~)35)8!8K zsfwO+Sh>YyB4zY#z}(W1-!jo;+JS1HTit&&g>>^7-9CDT!zV7N(7xCmsY=5>ye$3O zA%?>Wf?bXb|C|E8T)MB4ez{~WHtF|ESx_>6-s0~QgY*yZq4k}0D;WR2HSPF?F30`< z-RPge{cnu^v!nl($bW9+KM(m&Q1~y3{1+hq%_{y2kpBh9{{rNH0rI~9`Cowit7`iH zp@OW#o_>Ia;&1Zq`uv;>^~5%D`7MPBraWEvl$GK$heZ0VN>$ok$?3)NMk=h$#OSpz z=`-I!XQc+BJ%Xet1M1uX&}Ys?mucpmC>`~{P`BY!V(l9OPRnwu z`}u*R-eX<^?<1AAuu>gWbBWG`DpI>2v0B!V54KWt)ZHoHp1MoUzlSk#&h^?Ha?o2g zZhE@Dm|t51p0qh29=Q72k5GX->ze$E7DMghpQ*|gE!=cGd}998PfO||d^eK1s%#+< zr(CmT;0RoFtV>(SGvnh&Bx`c+c{7UX34rjp1;(g%wj+UO>`bcI{R+eA5A5iqA|E zGcKIj+a_{raMYxZ`UYPKfjz;K6Tp2EK0p0C17(XefK*)am@Ecwjcsh^m z>)KEVvC7k)lYQ%)_D_%9=r_&xI5e@f5#jD{lUcJvK_1Ke>RKZ5U_hc* z)T~^>W?2{(fh4WPr0&=rmy}GyL*A+mj9R2SyGg%PxJl;JSb z1&MZ5#6$kv^B&DSKEFczM|gH1?^*KOrAI4$4p=Kd7S6)5mTfG zE@nQbR;Zon(RGWhElF0KS4Md?Om7Ljm{&Ftxc%6fhe<^y&zv7U*Ue(?nSEtRs4HUM zkkH{1XN$lX+dt0YRk5NAa@2qdO{Cv?9dGJZky0;C9&$(pKCO6Cnr~Ziqt^iG#-ogU zkYRnw<>?B3Oefu$Al@ZicCJ2!W$f%*)N{I^D@SibZ4ScZ=@|~5NXSz~TqJ;p8&9Sw z+80)@1~L2pXonCvf1I<&=Ygqt1-b~PMlZ~bsaf~>v$_N@7gvHI=l9X?Kdfz&u9ZJ* zN!_q?5R37ScXs_SEr#jIz_~udBt%qdLff40{~rcDB1|kp0skSU@SZt;*X)3H81nS; z!Se8-@@&^hBku+=^XnD4NhE;um_6|`$Jd#SsfjHPtyF_;E3f;gQe}8R?Uxo z4VNvVGLHX$y;Q&Rz|k{1o9>0dv`;OgZ*6&A^&$RkCMT7`0YawxH`Q z8Cb|4%lCjQ)lf<2U@h(e?RZgFEQmJHQ+u@^YQC@|Nzz8u$jR(F^I zTt0iwVtaVNKEaN^*R`lkhUT&l=RN)qdRyKXtPx@*u|{DI(T7dSPm)y?dZ`6vbQkKo z$*dUr$&OG>9?#kT1cVd^4Kgu+=m#6~GO}n{WLDmJocB=Xm=j7aOiZd=?ONM3&6c(a zl?X9&dFS{l_wkps@!#ZANjn9cYHXsuF1_bnD*-;V@^+E(c8TS7iDo)ja(!I>D_;|Z zeWt<$J$n4{;#4!R=Ey=s#DCFrVr!Baer;Z8YgzeDx|RaQm$`*SD_&&Ct#Y~MXM_0O z^2FY9>P}1Q&Ny+`;&C$r9*CgZh;PU3y(gT~p+&fmYaYlO^mU}++ z9OGX)l(u`TvL{nn-gbXoqdCX%DxV5*y{lXG$~*NFyJHi%d>t<`w0kM0wHu}wks|HJ zH}++to$g=09t3%fZvdyOe)!8Uv0FOjI#kn?+dHE;CB)%@0Ku_cO|coTe7~`m9Bv5= z36-R7&#|AZ=ID1~==t<@KEat<5{l^G=4=ro^R{tN2eom!=SIA__Yf^YP|5=+7|ZrQ zroMmS*}5IWNL|R^6F!9Bp$s-Dm6FH(n4c6ga!lSgGT#Uh_kTw+8)|1`&(5#eIu9F- zD#LBRe$fY?-_nReXF*j1dRJZYE)ibqU}-ih+6LEg zcfebUg_oY;jGzlb@?Pj_OGe*ep=bC^Gmh#-bK>XqfY~z==Irb@ABeg&5%KRie9|!i z3+xWb1yips&nbDOK{g0}{Z)#)GK^XkeO!4|+i$7}zX=Yva_hYvN{on;d=$&|T1uOH zsap>u{Phs0X}Z>g$<}P)A5&TuYtiLi1Ag^J`gWAfNrTj_UZJeyZvT(gH4YSzxs0Dr zkFM-CQM)!JE6TGQo1bu6$_XN6PxCXyf*a*taf`$+<)>YL`!nrTTIxdBi=HQg7O}A z{G%Pc1;#p^7)Y*6rS9M=@h>kw-m>rpDTsEWq}kq*kXie(1ru zlV5i}nRA8Z=~xHT1sRKj5#JK_4q`ZRCSg+*F~nv`X*Du*(<3c{RKiqwVD=HKc}n8Q zlcw`h*g_As5%VwCEnCw1jj9*!<8`siM3rM10$u#=DEJ zHCv;X&*o~`O^`+``xoBd_O<{S)8e7Z<4{JM5g(>7Fs*Zf`Y|G6h+ zk0-yWzGKa>f%!aTMMlJ+OHfyded1lSDN5NVXTDZ=uNFpK*h*)s zzJyo_)AN4_)*p71!vW=G*l26dXJOB_(+;bN@mp2c+Q7m0a6%gLJO&@y%gV|~RuA&r zBuQ6vF`?F)tmbukkmcgK%wxsxggMyB2|}h)D80m{Go~(4pTucd)_R*gJyu&RdI^&f2PKad#3dbZH&GA;)j!y3*!q@fvzAJxa(#^ON)_7=iIiXXNa*;6vDhpG zLH*vr8#psZ3cIv9#it1}-c|G-GJQ+xwYD9u-7>#?>Qxj}%G(lQ1d@3P4UkSmKO5J5 zR(I-%wqH6%)SX=Xlu=N2{He|EN^KM$I{9Kz0nV`uQL~;Aw>{mTUooQFOd-RmWUL=D zge97Djqm=}X(>zphk9;s&&VVnDlJnl>QI8j6gk|8Rm~*a?*X2kQ{{d@!qny7c*L76@1PdGY6|J_pr-9kq#-wk(TiIRjStli#eB} z0-=1m(Bc*>^?vq|ZUxELdTXYcS{hGvNzI2xu7)eT>UZM6H*4OJqs+t@Tz7|WkHDv8 z1K*p&mLsl4atc}=ySmie7R|_haRepNGlo)_7>ba&WB#GLN5P{Yt}bhQRg`qdM%QtAd^`Yd=%zqGvJh>dRVTu&=0F7eK#A zPdU*1vtV=S=&rC8UziyFQUEV|)L>1Sn>(LShNWHKeWSKz$0@sjQ0pT|NEZ{UPBCQW z?M)B8B@POv^`V)*0_dE!w`;aSA^lf8<6ZKL+T~e2yd*PY1Qnlh@6N0H zd4J&Z;6ogT*0l%gVK#gD(MQF~FO1z$d>8$-n@G!l9FCDy%eRi|wYDxrwJ76zmn-OO zgs(1(lHT_-%ebNVBSg=Ck@MsCwY%qfJY|-3@n{b*zYIirP_f_lxh?K0GWH0c;gV7k zy)LO*)V)V?&PmkU-;@8=LJ$-l#fL#s_Kom?;qX6aA05~XdY5JfGP_Zoub3U$o+UdE#> zi@C||IiBgrS=n$@z?>o8$nMkJVi5v|H(r{TQ=4|C0v3>=(y+g}TNbdIV{xrf!eogv**M z>PDYC=oAsk?pfeKOq}?QgZ%&R;VbmVrFD9q&GuPL{9YG$CfLm(|oMN5m#Og3KtJ4)Ao9W zfcm557?)HzbK&Y%xg}aSK{d`T8>k)WN9S?#IptA6Iu8uK;&^%+qo{b!6EI$YHdkp37wunuXjTz0{! z$t@v8-|rok4ik&Xx1DN@3V(&Yexpk<@|HXy+CgpV4jjo#S!`xC@1Gs9jnP5lFg|08 z76>1aP(sym)u8_oNqKTT_uk`KgSSvrIEwi;u6?)EAOLTQIoqzup(V2&3jZ03?d>K; zpz_PMwz`Xq4mabe6=LItQgc}kG3Z+kpQ0Sa>R~E}8YLXF6urju0o6st!xW9J9;pwJfx4d7;-?BJ4P? zil~XwR_Yqt?e_g98hYN9_xAc0C{FY%%yosge>N#wD8p&pNQn^%k^Oe#Am4lK%IlIE zYB62!ctu(|L(jRUYc&nfa`p%JKb5R!*+sm1e9XL^AS=La-`c96WF%))^Q4)Ldu*HR zpCSFCT(U){=1X(p8J|;MaHhlJ_Q&JI;S@~V*Nj}T8tmlIxNF+6Ft-b05Y`KKUOZDZ zQk53s3z8F-NKr*3{jjab87b{jDUT*yDO!*f-bm)LZ3llonZNEI2Mx^ z9q;2;G0*MCj8GZzi-^cYm^_ikc->p+2}4!*oZ}Kc)N)}w$K68iwui|<+x~E3 z+m<_kSYiBF+_xe(i@A5_w~8)wN#|UvJbB^HThRJDc0$5Ia)J_GVPZXW_Rs8|o3Y$W z!L=A@7z?IB)Jq80Jr^rlg|nHij(qP76ARIxKA0Vs%}#betxh&3=nOuRB-%A<7`C5{ zz#<-y##6$?^g8Wc*tS)^+%_OA6+QIguLq`d;KLswc(tT?$*kKKbuwz!9+<=@aK9?fw#C#hKgk^+h7q{rTBd{4rB5 zWnXJ{)Bj;(TGxi;9;*K&hQ?dx{FiTL#j#qD% z8MF$fmCNjP{irj;pM|I%bdLwam1IpJ&}4%e)LKcCGVsFdL~(W*Aj1_ zGumpz(o${k0Qur<}Uz6xir*!HVh08&1t}`Ox=gn%KdAqUgdTTg^%c zlMG>0nY+)wBuf2qQfir>URd79_sa~2W5q6X#aRTm>RHJg1*jw?dha~(sk%Vp*>yo) zM$hd8N9FGNJB$)2SOjXsSow$L-mGQ!$*c3-7WE)7-4rYO_Tc!nThger$QQ{xD5Tt% z-I$U?3plAIgiNi8*}s&|A*O6RhpAAL)|W7H9x1?Z_Wn4JzIg5#6VMu zrH?ubbS#Z}{^1(tcKE70kBZexfRjm8JwFv$mwX0Hl)U>|rW>Rz(&w2&=y~r)drM{x z_m3gweUDdQt4?Xe8En-(Ae2fmYtClvg^z`akv{RcKremN388Y2)G2z;jb9^g(7 z1p8>*$$%_Sbaj?Rg27!^wF@G)M!0P8NrmlbXX6Q~h|t}&y1r9!Qmh>IitDem1^Sgi zl9o9i&a1F=nAO}c?xTo*YFgYU@sTHwUNpFI3s;x>Ky&?Wl`BXgt+C5vi7v%w5ZPDP z)`#t;QkiyLy`(bpq)zJ2wp8bMzrA%_3R=`+yg-hcUkKQVqYGjI^&^Y34w4ajI_QcZ znu!j>s)_V|xQ4mPjF>OX-WCi*ls#v?(xr zISpnNj_u2S_E4{PbaF$Y)hV zg`VVA!SfTF3cJ_7b#E%%v;T~(PmVKyZx*FiFMQ7SC0LRkdN`(pm|BON7FO44dTMXl z!lV*6pTJe6P=xsOL@myQADuY7DoD?8L5HggG1LBNgWytdkC0MVvWn{45xN=?=6V7!8rQUX2^GkXtB zER6N{*nS*Yv?&t(KiD2v^BD13|CfFNULR8x=Hn_G33m`0Y?3D@4m%v>6ziH5`qb_> z>VlgrhGMXFP6S=3rH`;RB2r)xrkbV47HO+xU)t;HAB^;SCoFo@{5o$+LD8W4L9 z$Bm|quiN(M$Szw%rF*<8rYaa9xP~X&yGiCO=6YwuSuWfu1_1)PA*2vwEY>O2HQV*6 zB}Y7YWCF`&T=4{(Z=B@z;<7JTwEYikA~e57D@*ZwXUee;%k#+ycj~nhXs2|BD&2GB zp={WR`x(d2CUmDlL+7kZTR)LrI2^nw1DhX}+MP5qd(x1lyo+zW0uVo`3}o6ouuG0f zBT=DX)dAy^rHm&M&I1x)>7%;Qbt~^9AV0*svcT&s5HhvA(SUR-dQQ51DO3wOc14Jl zDRbJ5@7B5H>*&{?BlA*MKC+Af7IOI*U>hI60hQSd^pY@3 z$9#Jjr{9LnIO@^IVqW{17#MIbjKDGRQ;jU_8h22t-LgmaT1y{q;koPR(IPH$Sb^nQ zGy>wYh_sa-Q_US8UT^@0Qh|tN72h=r2r`y<#SIIgo`RhUg+Ae#Z#sLHqk%O-r1^o6xnFWiaxHeQkQ}lU1?y- z!oE5{eA)y-=U?>f(7j76Rvq}_y`=U`ZrLC?=!&mE{jjEjh7K;ix4G53?*t`5_k=)fe+1iTk8=0#E{?7&E*mP@5 zhXCI17sx^yv@pDu@G9;s0J?PsQb63g2;!E$L92$9*b!~>bWFV*{)ASR8Tr@~t}&nW zE_J~cMKFlPfpKfLYOg@#cZ&`|zA6LA|9$nidEIN1FJJ)1i#xMM!=eH0sjW`<34a6d z3G9iH(RYOo^7U+@Cih63=3K6AuNHWXxeH0XEaq7+T>%Cf3NTQ}Lf8Eh2`G94#Qc=k zT8p5=coacMe|+VotnFs3hIbDzT0?WMzSi9>Nr3-aeSOaUpc2qCn(X(}O{<zmT87$_??D-%c%>xV8ZA?fmXh>WlBTUR6KzKvkyItH~upXU2{@_WL zF|o>}ZXZa}vdGt+ijDxcgZ;obs`S<3=JRUzw)6tmV!)sa!q)`xW=<9f$S)3(eE`KH zqX(+OO*fr4l@x1w5PWf^oJWB`SilEPDUD5jL@|5+N7R z1ZU6$V}m%c7j+`1&fZL~1PrMZum9|vq-<=AS&LP&~tc}#}jxc6B;z0g60tiM^pK>wo zM&`hkU}KyWUkGAe?c4kXpn$jppfI)jq2EqiSka=lxeb+@pb_LGpOlsyTi`Yz+e<}o z94s))1C!FiWB=oed>8>?;h13>T>+>Im(N-C2UuBxVZy=P67t1 zxcexAXaJCZ@`qJiInrtN`BAZ-&FV_}lv6XFtAI3^BvcZ)_C}TAS%7w9q^8mZ4bhPC z6f~5d!9KO_DT_JbrRU9|>K{)DLQ)4^%Kw}Yn)jt~fAMJ7gDSM5z^X-uOnNC_N9 zLHa5wU(kI+X&0|&3Am^>jFh>bKvW8B+=mFKZeP~Rv;Q%#3t5g$>k}UA&d{Pk)tUdLQxfY_|+>Q)nE!6_O%)xuMzrr2`PfoRSX7 z`5Ko&8Q&$qsK!klfZI>aIOWuSsjKhDy}hg7RAIzw^4@kW)h|PtLYo}+*Til z-hA=|oC*{+cPZn1)1pON-zsn^rb14Q78Xw@L&j{xS*c1?N{7*u!^Gy|r9zBhV=%w*v9jo|kHf?o%6HZyLwK+p*bA@76w1Yq)t0~>A;)k|Ct6T1?^@?(sL%+j6p?KXK-(nJ9Em9wR9 zLhq?%l^iBks3A1AYg2LP{6qfWcdX`H-2DI^Y>jYlOq!*jnZh}JHUxQ+J=^7c-hT3E zlm#S^hOy1u3Hh^X^fZ2{c9)=`Rcql*2THto+yyvDFH zqs<|1|Ht)N!xw2BWTs@W-SG`~Kti!Qj{4-aFDJvQH~O=yF4xX|8Zgk6%kb<7D&yWqaCa7`GTSMwHW%+~Ud(GQ8BJTSfdIki`y*EK+8_jy zRr)I)D5IP$z6ki)Yo<_0IHUMTt?8X9w%P=wu7JV~wRr02@oQ<6V-vP4W5LWy<$#9tnz)%YO_=7UKIQUDI-57d z)$);ja!9fBs#YGZ;?oxJrW;Bq_<7fKOjJI4;q#xtDy6Tu8&)-a9thSR)U6bGbTe9Kiq*0}&i~kd`uv2*&H z)`*00foI3d5uy7j^NWO66FxXpXu|$alN!rvpesV4WXOyi_zJobO9R|qC7JeNU+Pzc zwB@(RO;Gp9i+*{-Mi2nG8Tb?ZCNTAWV|KTdwHqytD~{)wSGn+2+E>kDEce!0jXlax zp_$Qu6d;Vp&!cs=swLM{5f+*CKuM769^jloD3nl%wlJLMy8jU)6@NMB%MCK;m(-u% z1rrted`4W$X0MmG!dMw?@XwW~JEZL=_buEbs{wR_xNg5F3+j;J|k{jN(SYhb(CN(fc05$>yH5*Za=wx}l9{wOGeB-UkURPw` z)yRNMMrm&%*R|Dt#h7{o) zG<6_T4A<0TH;vWK7kQ0f9>yt=D-s<|&|y_Kz~KKc9B)tby#62B2Uck^qUg*uXLNJC zh;g^A+E)z$bS%$1XMiWnr(EQJcR5De*8UFx6yN>M)ZG*zJ;~3clKcQy@`1U}MNDHa z-s3&ahUI0scCck#?3z_|q~qQmY!cpo&L9h4r71XgQl0b4`q^(H9Y2@d;gA*y%9rlj z-6e73)6RJnnYg%8OKm}G^bryzm&pygk3?s&6*}T4Guq7g1*{E5D|t+eGqp!~w}*#I z%p6EN&@oP2o0Y(8tMye6t)M|NP8Spf_z+%e=n0^2P_;sX@Vp?Im$PlUGpe(&}+E8ycUo-cCtR}z zJryVgJ0G7-QXMcvJ+^tpV*Z>Qbck!vGdhwlRpB@qPz)YXK^H^%Z+0q8l7-A0R2E-{pZwV`e?U^~6w zb}??0KO+2{kgcC~H9>biod65uM&A|26K5mpp#11qB}FDAI>c|lyy+Ph7&5PPWjv@jO&HL* zGO2lx7YNC25)4S%_cF_uxXcF7+-)dwAx4bjqey=;*Gq--i0h9WQUf;m5oXbc5e1&x z#9BB3)-#)MXl9Mc0;bmXq?-d-gYfK7l&xQ0Sa?6}&SHM3ks%4xFf0m^I_*GIggo6? zNz$;;@N!7A5y;jiI=?(;?-N`c%21`ii>N8|w|u-*&;-)Jn#G(V-QmH?@r}GdW3f+oTB!`FVh7@(R^s#h^^&MTF_jQJ^M2zUaZUB?nAh+ywD}2aFFOS z&pz=<(P`m{&C)WvPWw#ZPwqTEe%|eeI|O`aDnQIB-nh=V)p&}CrT=Qf#vRr@X&Z6R zw<4jPPUvOo-212&iK6nU7wV6Qk3mUFUK+t(At~zS$#z_tyCLZf1*##6hhTkf%<2oY zOxiJ!FUEp=@%`tU)O-Cy4(W_OY zV!y?#9yOsEaiwl7_v#f%#h~EQf|M-hh-&Ogv!0y(=cAs-3?fR+HWE^PeD z>f2&l`S)-f7I8i=THz)(+|WgC4S#{DO<&}TrqjQ(A2(k2k1_c z67z_yAz(ebE^GX63P`_nEn}%ck@LoJew8~Wwb5UjS$1Tw5;gSu-=M#bu%~ zL%W)4R`%(eoHOaK#S$OKzYZ+n@7jpL2Lhps7_RLDFFX5Fpj(@LS5A0SNQmzw#)Xe- z@5h*I`Xr0ol;=1ujZJGJ^quM+l+2Vxeo3;MH`)S2`*V`7c+LhwI`vR;#X)&{h|zDs z84W-Jx4r=hZ-1C1Np;RnBM;+$7CB$&6RPcdu4vTrOd)1T2zhlDpdU%t z7lG`PhWmUv{KjLXJAIwB_ZntiY1coHv+2J$0%{*Y_{t}x8~TP94Kr3~+5{>0nS06d zyN>MdllrPzTh>099Xz(FgFI>OMo#F3ul_yr!h!?L1`kW8?T)o#0WF1SV zno$o452Ze7;PeQQp=T!sSuZuUNR-l)>mOothe4U;NlXbvNiu8NtF`F(5Ohc}rxK02 zZvxsIFxcV_-{*j4Tk6TJ+Ec?vcrG0J^)3LCs)fkC3lqM4(RRA1?@Kx7Qo9mpaAzZb z=6$|R+mF_B)Z5M4Q<|mP(=FNw#vVUt`wy^t_#<5D?`Y!t7kR1B=Mj&q>>SK(C(Da* zt&CDjQqB@gr&K+$X6`l9&1L)9&nH^cT&f0*(396WWRteW=Xyp`L#Dkc*BWN$Am<9C z?p90ysrggP3&dFbZy`i&<0wD!sN3A8qHHJLyyf{JiW~_mMbab`6`7cCG36FY-}jOz zicESMW4BoN*#D)HebB29X}17j3{X2!J`59I3m<*PDxji7*`GrYtXh(fl>{iw$$&Sp z1lsl@&KqiGS=`dqDC23K>^pPWZ(E?w9ZUA;_W1K{tP$D1iVWtio(N z5B2Lx;42EjvBE_?{BN%_NWg$$G0O`W(EW9#$}^QAP(BT9WUc?(lEYX#fO&`w)Hwgv zmNXYo5-x2S`2N=9xk6x12@aNkx3>H@eDweK44?S5A?Dxg0xS-pmFH9(t&;h7%3Du8{R%{Vv)sQQ zJRE!JLKkE4zi0jPQV-3YJr(3{hIKagnW|vd$$wXeO4>bOy1j`Uu7$9xzdc72Kv;Z0 zht)1$=+Xeb;h#tRdP9j?($e{ee@BDH3Cf4P`S-v+`V8=l zjDEAQ3GPc$zdh+ac+mgYnfE%IZ$N4C>r|C6dKQ$b`o9P0{@${j_npWbi~Q$2x}dKA zx6X74_^I>$<9k%nRQHAHrvG-}naU@6-rG=W$NxIjOqW)kvxQ%H6Y=B3{xc(l-#dR{ zg~}%%@mrgIbu-!HH_xJ?lHPOhw;}sA3qrELI!9|gpSH{!JLF4eEQK8xPfY-pp3O*~9i=xp4uluXD(+HT_ zFY^sbKVWa2?zcz5)uI=694X|L`pEDqX|pGNeak!j)vIy$=f+lcIn)EYSGgYxn9XTl zs{c8Q`lr!pkAjAf^XQn4rxwUps<1VotbVq@RbvOXF$U9+R7QjxYpcZ3&)xk0Bx>OX zD(Tru$%fpi3sm{jVFU=y@(#RP3t=YHen#pRE^)?A2>{{j0mDQbKoVT_mo(zvwFm)q z??1y-OcN34L1Cj$z}98}>}{)$2xQJaim3wI@wc|Br2Fw?_l|0^v&Y>Sk()6Fga0PS zb&o(vhfJ9Vls;AdN7~J;5OjT{!d5N7meqdU_R3A-}IB(q*VOy|rgz~}vX zx`YWR>@o$>z2s>_Kusqd$b^^aTn2ff!dSH36_s18_1)66Zdx9o52p*-TF#G&D`)}jprUkFa^4H zw~5ma*xwvkfIr zV;ktj8Zy`ru2=Y0XIzPL)Y0S2_Ahfi2d3@4HgsU(alO5%TMyCl49BAZO@fYi<<6^o z*P1>j(tw56M#--=PR)~n=c>nxxf0_e4srW_oY-fY?~oVUzH2(trqw-6rQqPuwNI~Q z2A}r$IPd8D=$FPyT!y)$8~PddcPLZ+$rWmAt!W73E5ULW7+sSDCPSg|6SZ?AK}3ruvu=J% z)mw?ifdR|yQkexMmthel1CXDc_0bZCT9@0zt9+b^J`rGF=n`#YX1XQ@AH}oV7=36CTbmn?--S?ej49W;uv^*|Zo+{i6%9 zq9af-9|KgPw2`ahJPBSBft>ds@5J3VB$D0Ry!zcsKF_3&+T!xA`jr}}`%O=(bKzb5 z$>T7~+Wn;#Z~)TFligiqMKqjo9PVhx*SVz_*C!oo#Yf_mGwP1Y3||f4HHca~SdD$9 zVVXaoW=GvYQ{qSNjUE)OPwS=WM8>zzUvu9ZZsFN&MGhF0_BO~LmC<~W7yE^hkI$8N zoczS$R%qG{I^oNL#>J|sOon~vyp|0`p2K3dz$ zV;oJW#}7MXegAfm3B15v{lRM9cHY7FM)&8ni0!YTTo#@&W2kwjH%R3TEvPinDUL6s zWenHV#F;cQF)Gl%G_hykjagm;Gbp|G#8<;$xoCa#qnUk2z(L<9z<1>NHy;wcxwzc2 zUmE9XkhSQQv<%DnL|(XVh(t)lcO`(0(D3`Ma+9=uNT!8m0jl{aZnLRk(@|UIUK`Rq zyz8Cy%z97b1=y4xITID|I zwoJ+l92l{RA&x!1x$Bd}@b0>)-*)(b1w7!}ifvxHm)t&ul^^xp0|QDPLV>}%s#nH?%WT(rxa zTFqgIG?LxPFS-}EJi6{)vb+f-ZqFU6O;R(4Q1i!?*8g}{uOX@7^tpvP_2H(-Nkx=N zT_V1WLTW!;{{wCWfqulJK1yfjiUO z18}TVUCCr;|5E9~4*JOXt1IN2EAoFua+*d>wqF&&$R$u!#I2X^x7Ly+Gx(?{1y*;= z5*y+_ozxWZ8Q(FbifGT{k-q_Pwtk=Qn(|hHX9M`Nt58*ts8aPV+t;{0R1O$uXCHKis@?1w<#a4ub(f^rVTOZtV5w_rm_TCz3tbYvO!TiQXyI zewEe}CiaT>K=5r3frgBRN+ZwOfVa$8YDi{`1KV((5SJMm zbnU2CUkhTt+T~ilYLB8ys(#5VW-sfn@O1VgE0RCO`gckek6UoN=zk{6BnL&Y$C2ai zbF``Tpz~1PW7Yb@?Uqu0t?iWr3*NWN0bV7PZSJQlzzKSRZTyOxKc|6$xub8u3;S z=V^+8*i5o#ZBJPLc*?7z8lA(oMWW8HiW~YzN{-$sDrhhq>F1m=olyETSG}kDS8jnl z3BqPhSRQFk=2e-Z6$1$9*+H8!+sO{flLZvsF9MM&}AGgJz)N2 zCDwpgP6`ESpKbr1$=3XP*)e}lLNtlN2Wn6eMDh9%5-FmS@M|4%l^|k35SLcn8NFI&ZMB{fdHmM`yIt+X;sjzh7zyscdhoT zlnuKsvTR*SVKLcrak|Ie)Fo!T*K7^EMkS`7)sEt>uYLvtRC%GWQM)p4o=RCmW7h}} z{;Rip+r$-`Tn2}W27O`shVvN~3Nf`DRSNGA)*pr7d*UM%ueOQs3#q8h6h&E<0-(>$ z*KP=z`64K;P~vdKM0{=}hH>C#2lbSHi8srzh)XBwRTW_JXa40HnAUhqHr#+cq5DV&DPe8 zvQ)jf{dQF-r?;w(9Bjz7V>3mXqdxAPHP@h5WOWhU%`#7m3h*X^A}bXgiYXkudPsId z#9!Dgrmgg&kDq`*+b76k8R?pjqSWY8!9b0)dNT_f%H7dbwrVBFWIGdN4EbmAT2=Tt z(=A24LG&wzfk5|;MSSL>+=_>=7@sPuOqP~-WtC|ODGp@7hMsbkBmNj3!_s+$8X()H z#ZoJ8;I*c8p`eR`Wpfpg?t{++s>E|ddi&*F>XUk*EFfDZ?P^9>&Zu)4gFM1(y2hia zV(%aaS?lQTo6+5^$A}@Nb|yV2o^J`sZ!#M>{ytJM-XbS)guEkEe{^JEq~gi;G7QSR zS}vEE@;5ofjZ%xy8ttLq~E+YQ=BhHF+* zIA9Z=dVaV~;DSGR&D>k;A0c!Woy}!qmRoA}X7_co4NWYAZ+{3;oS6MGd!(-TY{+F{xoGW?$Xzn;7AmP4ps!+~FM~ zBXh^Oqj1hRsdA!rTR>7fiuU@hI713vAHTZ?Vqr;KcEYQpj;R-Usw_3ue0Pm_K1FTF zd^E++Y0>W*Li5OwT|R{-;WD1o*iAe?69)EgGuYTsQYt@JI&pt`nzf=!=LdN zF{fhV%Jc>s54tYj_1&XzZ)^{Im*6-1VhxXo!t38C?2qGQItU>?a?Uya`^7 zF@9{DU2SD||6=9xl_7TV&`PZLT?dbJjPKC0N58ws;JmYRJMvTE_A;{Q!(0s<_IaCP~k-$Jh8L~VbEgwNLyHW;_(f*9Wi2(i>bxw|T`UoOC? z1(WJDp5SPN7N>34`ZFaQ1!O^E;{40Am!!>lkt+flymGHWs2 zXF0}&+ettWouS3;iYN-?)jHKX`kh!w4H|RrQ2iwBF1J}eT{)poYL(r}e~k*+5T1Pe zO-4r5IbX=MURmc>dJ;Co?D6C+>C?qc*>snbE{{UJ;{2K+(OlZv2ZQ9sy`u@Bt-3(sKH6^u} z(%ZVlYWy>gQoFSw%mv>GYhMHN_wvy)s);z>jy}L>geO(~NPkWGV_4%T8-F2}@Atdg z1bC-d<#GW?wA>2uXQUP53(n_7x=FIF^&05eQN9NDC3>Bbnsg<{%{6EX_YlpKTq|_= z&0*YM{~1A$R5yZ+Ozj&d$kz3@P>jSXpspQ$2=d2d3_o+!ynqi6rFlR+c7RkF$Kk$nUFU$P!bY*%C7K3^ z=8!!B%fn%r&M`k%Gj=ibwfqKb1b^)u)Febp%v|5|HB#B`VWc-Qbnq-eazrq(C@e3~ zabruEV?BSsVq2@nyuYjf@xNKL?LBTNlpi&)}*$=9K?rs>mV`zr|9nnX2`En=aMWAXcuz+ER+>m_SzVs+P zK@7VlMPR$UjN|tpwYM3<6^6V(GWNr_iC+cjt7^zV!_VJa{MW);zJDu!4?YUA{KQis9u}`}K+N zbGmBv%`DV`E!KAOKwr;{bpWRE)A_@p23 zbXOV+{xQ2gLI42ePT9vob+KpwVB1YI@#xV3UGjFnR5tSZTVUV{sl{R59$#2o$*-Gb zNuZ54)SIfNq%nbR^=v;UnyQvkb?!rGGN}xFX^7_s`_WtBPfu>iJk(}TboyD=IvAfdZVTpFn zx<#*oln=|V`v0`y{PEEL+2>(HxB9hb>1grUn$tM>th0&em`k9UYC(6W3%r`cXSa8!`tED?upylq5uP{KXN1{9k9?uo;?pQ)XA7FZ*#g{TgH76?rnReeInE^s)Yup;={>s|$HNhI1+RG^9rp3>s_yX@3LJ z@dkWBoA&84_V;(wz?>7l--(0V5AkRDsWzkSUfy8q;B?y1CXJ5&DE&Y3V4XeOYCsh} zZW#ImdG8S34sCldId1|4qjVm+3T=mvkliI`(@ZhXJWqPYK+ON1Y`&QlOl*C+Vq?(2 z62Y_pbg+GuMVx&){4np;AsoyWx{^FrbDBm#JI?#NEBvE1dCM7r>z)>LAB5=I%KxGA zYtT)3@&$|Z<*eXI@|KKEwzL`RgK7IP-@y+>c>yDZ_I3t=%j28grN6b(D+EWts5LA2cn{-Z$O#(XT?=sl%xOUCCF&v8$4x5GcEN0d_~x!$~m_~mjIx1odR-yIC&PKLZ%NIASF2vEQtLZC2nk z5L;`C;p=$h3dE+ldn}Qz@favh^WKihONM*Sa6h$bZ>{}@Bjg;T`ESIY2%>*&I$>L; zX*cjfTB_MqKJys++g`KJXH=OgNEpxcXXQk5*XhUWNV;rrtG5a7tJ$4kt7v$Zf}u-$ z_eVA^n}gIEfl}QM8(N?O9g7@Uj?@ZJnNymXyrbTlUA7T)DRE_W!MZ@}!6_FsAO2_B z5MX|N8>xWx^@=4@c4Aw$m_2w^w#FbN@@`QHmpvsEm$y1oWG4UF^%)@I=H2}1iNgy^ zbAIeaugq1fH+VV^MJ4Fn>r|jK#Tr`PxZ4Ckvv@r34i=36ZlC4M!ubK8o;;X z{8&(SSGz}tuc@{|G^4G>Ed=<^kD(*bZl9fF!!vDZJLD})*V-2=KF-4`p}Sz@&H zG{9Tk0SpISQ6y|wuvYcAMoG-)8E4tw8L1M(4g;p)88;Jxk}Eb}FX?U2gx?3=O#V@Q zKs*zdEdiuGymVx3JMIa!YB|74XH>2;5y_Tz23ur4(ZUtqvFEV4Qyq@=+5Gb!oxkeI z2xJ}2u3S;f62UhmjqxRS(@n@6O(%d=amnEZ%EK2mu`I7@Q&?1<*&fif4%rYSiTH)& zReHA*y|j$9MeO%HxZ{6k0Ru^-9hwdjG%jE4F=B4*g&WSaCux`Cw|N^xRSX(y%pG%M zpljhIYC5~hlG1wfJgi)Py!g)!{3XAflX--EKzw)^QlYqmX5Xd5352PeAx*rk9_jRE zvCDDtjx-%W)Nc~xyIZEqM2n&IHUpSe2Fyz`1(cqwYBW1dm2!8A`j-xm}{pWZoIKyIW;h%l%=^pqD4WrpuP? z)3x)Sj27YbZhPvHjX%UdK>wvv{UAhTjQ{j;&gqWvZ!cBoXJ&^c;OM_~DY_|m0(%Q~ zj?Gs)fIBn1njH3mmK!xnd3P1%uUqbjuB>_CrCtooyie40TV(Dh@&=3or0GHXPn@r^ zpU`_(ZO`!O9G=MK3~0qWZE>FG01!;5xw)8?pix1-SK(>@kARbO>&OE-n(?^D3;=K-vJ}8S3HJG6B!zhuX;`L zM7AorfgoJNFyz;oD4O6!1BRSt)%FEEk=uu6qrHsLUwfevE*t#Ond8Pw+rU^I=j+*d zs)awfqys*_^V~Q9xDV3TgMomZyy4^}B&z3%dmbl$1iY7WhqNY`3Xu;KEr!40v>KhfQzj2|=XW-oTYZ0E+Vw?uW5}msZ9e+}f-Ez&!uT`CY z10kQ~QNOYQZtZ!7%)cC<2uZ*Vi@t0aC!37aSh+)RL|n1kOINEqe}*UeGu0f>un$l8 z-e;vYnJpVssq-?zGf~caI<^Y)=PiGe2TaN&1^VfQlHnMo9IJn#Yl$4dN_sxwtC846 z*3JzhxnIt!+W-b_G_6ucEzcThPC0vchTYY=;%ZpM>mOm^1Dr6Iw0=*lQ0tY=G0C6O z>l5Tr=Fmp=HC3zUCD59u{CwyC+zzPly>_N~`W9Mtg{SnaMgp`2Yk16YXZ%cst3CZ| zIJQs60)WUX6{4@j(7~#W=@CMVzP=dXkC$@%Cn#I=?rLuTRQ>G(m4VlJH1}`*9w%2V zs{2z6Iy<|Y>HRFexpG|SrUEqK0neb11_+WUx_j)!?)RCT$h^8oV3TpwQFFTXgbJR` zY1oW!9(YD=8~wc;A0Zte0m~>m=?!$9mI(xA62f9oG=1B(s#?SfCbYW(GAQ@Q)#Gl? z*3L>z#eZ|z7BE|@&qg4MRR9>w1_XzJ5R?OuFW^GjAb7P~Cxn&5`>=AF27q`;Vuxc= z;415+!6sWhadLk$Eq`R>83;=Q6In9dA>3-#)|?nBe-}Vg0SlB>wl!`Ogoe116s(Q^ z9$(d{n2&MSSiOYVBW&RE*c%&p0)cqYSXo&ecxLpBfzM%2R2-MCG4#P;{mR`p!&?3*B=Ba4LvRUI82mHzREt)dLWlE07AkdR0u!iJ!e{^#U>k9|OZ)pvyR z)k;SC&&j~0{yO?qNGO5Uq!H7ykr@QPyw6e(l2PycrlK_A4?)269XnVpx&Xo4AdC_c2{`|e3MQO9T4fr>Pg5Kx$qo?>D?Wy&r+f;cu zm6wU`&lI4V5}Mp;i;TZeQPXQ!kMjAFkWjS2oriV zR&J=;Uh@fDK#xy1T{KPYk?i#_Oq@J<-o5J8!kyNPHvA)? zETW^F{~pKW_G)lV*3oFx+YNqJxF(GIeyIx2aHz`^Q0*jw*476B^&>_VNqy{e_)=r}pH9A%kEZDvDku zL6#hi8pAtAu=}D7#7{gO-g;?dk?Q*ku;QN4XAu>NbxFcQC!>+LeGaF48EExMAgAS0 z8pTO{sG{m_T>Hu;_1*G}v?+t&wuRTj7+Ar8>I%XcBLD5o$gFj`G$b#=>t%42T^#&1&{1&B&S)KzwV zf0q-RYrjRn<+u=w;girH&->Q+++jD(wM^#L0rA^C00*7SXFVYi&m|66M;h5ak)jbc2Txk61gax)aICqyhEbh|c~K0!XNf^HVG} zr32=JDB5+K@bwOF_z|ZyGm(>yZBRrnCFR{1XX9fROXlNFhTz~}r7ZvMo0}9?+qLH3 zFX~LPD26;OT5QKxpHv>}^0P>HJiBUZooH3c4;D>?m?YN-`|eqd$4iTfK7XxtMNg$T zD&$%Q9ouIGbPvC^BH99N(>xX&-L%>+)`BxZV)X2i{ z#L4~Uwqv8$mT`Rn$zwW8Q*FD=&vK|&fCKDCs`yx3Y-89{XOP=k$^Aw8yBv8BEf%sf z?ZGT^iM19dUU}9DLRx9PWcg?N@yzY0jkM22#0TsqPv+N4*GcS6I<#0v&L?2db62lB zlvuOfYiqv}!(o@+@ROCDknVg&>o1=JMBk~AB>r)@I`{Inqd6NxMq)41GVSIzgFS0H zL0K3q2d}jXnqpXBOW4_-3HcSU zQL`4_^<-}$I3#y+@qf7DDC$#9G{ahaM%?55{rwwaK^C5Ez9#uhL69Y_oE-P=`^Jh9 z>OYFoUhXU(|4!0vR6dO-l0NVH4A61Lw1nE}<`x!rkL>L1=lL_U^D0Wpt8EVO51iqP zIr6^?#xqRdI6^(C?37E?UrMoVTw>F^-t`wB9;V#ia}Z9z7bi<87HAO6cwJnnMF87{ zA7>CNiHt>GNv29tke3ChqvtD&)Mf2B+pXPEipJnRwOZr!X5;z2c()MWL%B+s`&M__bdyn+c%l8JD*e?smiuKS*oOVjRF+IqS^I-)!V9z6>szeV{ zhKEyWhcu=vF!db+4IQuSuo<-=s@2AfHWlITbB=J5q`vNaZjBwFkSo*o&dt&m327@g zjrh_$GnJO5@{cN6{P}R>OT5c&V(^vNWY=zH0r9M`&{d`o`~?3799Wg?u-oqwT|e@R z)z|@H+pl+cQyyv2`|LaNflcxJrV8tAM%Tn@J0m`uWA0>9_>BZN)qB&umZ2DSa@_El^A;Wkp}nom-5GwW`X8&YCKN6s_O`>w>d{Ik`UvzKet{` z%n>GTpN1!WaTR}vdi#Oya!?0y7pK`V^rWYKxp>JE^{ndsuoXQoOtiB(g75$sz8mpw zG}a+R(vga_4${>s{7H%EOeIB)qp&Kbk}38|jk?YHqC<1{L*z3ne!Ig6nlp=W0fpuR z;7$eda*1Dd6bz`{hPKw=3}9#nVvT6y!Z#N%rA>XK?(7Y|nUCCZ#LK*gY54-{WFK!I zmi&D(S%yuC=Y`q7vjFaH&!+*Akm=6wgm-)L-~L9IdiXRMCtQi3G)C{XH^)QXnc2F2{xoNwLr-#^o6JL3LOxvZD%V zqdBVa-6=UT906HCCuV{120MdAmm_%v<(nf$xuGr}41=tiKK^t=fkFkfZ`X%T%<+Eu zr32fWC`_&px|ttso*D`YF%|1~acS1IyA&t=x{fVfkU1{C_5Nw@H)NmEE$&@z_bb2b z*IBKZ5evX_{a#N;jpTNRz=jX{Y0rf+@nEQ&eBe#t3q_?D=}HYoBZh%5uSmOqkCiaW z`i2^(G4n90QLzvvx&U$at>MdHer<&DSO#{Vw^?d&2D{~x zz9Hle1IztDd0Dk(14t@CI+lOre2guVzO|(d7F_F0;>Ig|FJa!lDvyF-+Xj9N2C5 z&+>*^Sjn{C1Nzi^f+?4odlVUVv6`Z@WAPHZgboV< z0vpEo@K9BC!V7vs%x>KAQ*XZ`+5jREMI`9Gq3@!^G@S;aFcBzI?eNu@Dh!GwV6`1M zV_Zj(s8lu#iooIb+5`Y$Sa@~w)kw-i>Qp^fb`pod&AJ}BM&KJF0gvqkH3#f8Zjit( zs`%^-afH<7Dja?X#FQ+kJm$#Sygihl~0w%5%6kPbNvQ@hciu6XJjx)q4X{i#{G^ z3Rpkzk7qepxIB-bb9_@4Gn!Pr&p&)T2=it4D5FBe4-7BzzkD3dS4T_onG z7EF0&1f_F5q^)F6O7Xu@M|-WdCCBv?%Mq40d(RiNmoOk3I3apgjW$@a4w!9^9@pNX z8oYOZ-V{Fy0`#JQF#%G5fqtLN?T!IF(`!gtzsL*r*KY`YkHp({6l7OG?W|M#7Zu6p zUf^`aYQ$wv#v6QkO*mAa4OW~Jp7!PL?ziw$}eC@^!ipFcUyHpMm5Jq(U zTE(jGFUp^g%XHr#0>_H~Iq}zo*F>7a5vSF!qR%x$Gs#ORBG?Y_HMjYWR2s-w48E61hM&fIXr_|_(8gf=(b=2zrsrH(df0S;2d zL7Y>1Davg^hp~VgiBs}f{k;QfTM1aYX;k-P{>yBW2EQ^7?oac{>w7kCyEU3S^*s#S zNn4FgBrluOeyS&{L!gR5M6FItkKRglz(xt%o;Eam^%=slTe(HuFFP;;XQPI0#Di5} z5E1nzFaAe9CJ)6rY86!fG51%7TghfrI#;rkkO0Q&zMp&&w{R!ocS>A7N5cxSES5%Y zn+^RwGmqPr#B^`hMcj)>B3@F*3$hQ%yx(m-`o2aN!Z%AWvr%-w!x?cY_Ux)9A#m`k zm7&BZOpl^PH>2-P-By+us{W46dQ$i9zGrWfX9LZtD&H6{BvR<0b0oAP8>{?29(>?d zTmw41SPDVsK197wVPOwWjF7b)L*4OMQcvmr$lDex3=fv1iB^p9{gffWdNYBVwbU4Y za6l(hP3h)DTRnzE0?L6RONEM^_Z7`Y+?irS)3qt)?vHOyZGKs>a$)DtqU3a2hC=&~ z1orvmGX(HUdJB1jqY0|LOor#u9jlyi$MqC%+U(|7TAt3r}i%&0vOxW_*_7U3^v=&BP~k#wIsoO z-%A+AYBBb>E|SL>UO0@iiy_lx8sVy`6ehWFm1`apO$2z-+amf(5JR!@Ufo_XxR)JW z9@D?3P5j*KshtK}kV_<9&#r6!`U2OIT7n55r&~lAN3k1o$_`JNZ){o&Ca{ULc3vNU z8`&0>RHnN0vAn%kW}nDk6pjwD_*6(B5-@c`mMkw=b3iic$ zwv=pTRDcwz)wqiD*Gh`bo5vQTtZY9{(D8~Dl1$PHhi$#7E4sx6?^~D0+fYxqq&7C} zyM!U*=U)iH?yr@ozADoXxxtj z2DENzuBybVRE#d2mdEZ*UD=NGZpkQ-8o#GpW}Xrc;4m+k7nBVHGKG0(am`^+4K%75l41zE||?DvG!D}pf(x8 zq&LKt8iuStd$)u#6w!z=WNr;^+#1VIy=Z%JjLcZxAcVu}6?>|%Pl-ub+v0CWc*4i_ zZA5mJ1clr`?+73p)3}L~O3_{HoH+q)H)C7w{UxI8@R7~#*93PDA5MfQPj>xvqIh0- zwnkYVD&&vIIXOS;?!FT&i2*N2!x;fXbQ$rKGMp&Fzbkh12E5yN_76@@85}rOHhjoo z;q<22yzaN3<=pC63hBk=HugYg-=$YIlwvxSiKV~^-f_ebS&ufIp3qef3CPRSy8CQ+ zj>}g4>Kx*^Xo7}pCdhKRDdaDUCO3eGzZ|(LBgf=JUrb5B;*rZJlF@T-FXe?O5LYmI z_I}sm`Rp7+S{kGW7rGQ<8q@khIX@vl4JC;c9_k8G4TFkDHTA@rPE@?p{@8~zuG8Z3 z{1_NY$Zjn%vQPHe_~L=kz!9R!P5mLrc+WtmBzHr!cWCD|&&a;%lz(s}3tAsMKUWYb zc~gjN<T1>Qw+0^dPLdfR@s+rQ5)rSKI4^L@YPwbhfWuW zm0BZqXiIXXKsHmbHIqMHoI89S?(@AfHs19FD4!r^@D|ta`z`7 z#?~OuSu?b9eC=@1Ggpic?s*yIxmX$iy1M;b-CxBZAJ-)H|%) zpeSI_FAu!kl_EhTX{Q3==Iq>H{QZQsdr3P(P-G@wFArnn=~J}{W6N4gVDhB{0ssrX zKe8UbM9nmYygE5RSa`elB_fFSIFyDzurcY+sN&P!I)=1I z=nHfzp}@I3i8_qCIZRZ<2-^;jv4OZ+j+O+9ZC~>U*K^)|A0dtpz7w>y2u^Pva3v?4tPkL>Z3{M}d(TNf>z#NnIDiMr7cN zu&yE4*F2ZLqLiRZ*tucT9n`!1Y{d0nrjNOEDR~;IHHM3^MmngD-ZY0Jcv^e?T7$Id zmn#tq@1f6>GXYcabGKO~4Is{F1mUoh;pG#G#|F3LW;T^NUFYjw2f7$`&&Q7Pjag#$ z`SO-bPS)-mx92M_2%Ab9K7=o)I{`gomtizMis-A|w$M|!iL8-P>Bm+N1*dzi;=t06 z*Y}N<8);DFy(G8zezeB>_Y{vR=MkI9-kObWqesHG*e29cZ})nuDL8GwR8r^?{XhE& z$#l;`tw35@t)re(54v!^o`DwG{t7UxR>GxUWBT3`HoALXohpCm(y^(3B32?9By2OZ zj)4+#eNw9sulywpiy9fZvQll+zB2|o2WCH03Ce$VmMGEqVAC6~=1TXB%j+h-rITN5 zVQy|_U|Ck3y>aPZ8G<g; ze?nnoxzFnwMwhwug%jQiOrSI(zOAZhI^7gl z8P^8hp^#%V+iE=RjCPknv5g@=ZLZL+PA*2m2ewz6Qi3?tS7@TD^?FQWXpsrmRNCdo zgay}Lk2BU+SeXC@P<#z*la0?UuMeiPN9yiad~s?fZSqZh$(r+BrV}lK3DhV)f(G7# zOBST;_vU`duoZ1CXBv%YhhwSRb{ zdf?7Ir(f<$9r=>{OI4xqDGSf0J8MxYhfT1sp7PM7^QW!yF>Y2KYKi%e)d9GSFM#x%9rZcH(Xx1tQ*y(`YQ6|{I1GyctSv|wtqL)I}uQad=G5Q@J>u?r-I zHig68Qid96Kf4Tgt|&5UB&BsLWpJ6t3@3~jlot#J5Mn}~W;3d6N*k-PXA#4C%}V`) zjDsTJZ&cY#b4?(o_H+}j62VUe%{)-Mo!ESNV(vtOJ#ni>-D(w`HL+Ri<&e*|O7#fw zlD+!^we*W>rMWn^?zqvD=MuGJIUbATJzZ`eJnb=clgwB<9e-%sq{dI`Wpfy+8VBDu zq2d=8TWD5d<@au`z98HCB^F&lSy7T%#>RN$L4eZH(d)+lNhCrV(M@k&XMc{c8RaeK z_cxR=nZ*Ehkc2sC$cZ?>y-T<4qnt6eY6|;>d+91WO_@w4(X{_ zs(B%&&wQrK%bW97z)R+9gMcnQp09Lb`7IkWIc0cX3*FInt&@{+o45@kvw*`*T5n~? zj{{auSU{P-9hSVG+9|#onW5_4K;6-3HaQgl#m?GCt65*0?Pv$FWRm3gPdACeFe*ym zl)PkOF;Eg_>@@Wm3+^SpEif~Jk)Sv}w5z5fNNG-dmCB%;^h=-!J=1dAZ&v7sk$t(> zOHb(^uCWnTrSSu>GHka)J6a;EbWw1cTlEu4%$%O(-0p+gZEi+6%sL_;cOb3q9Ai26 z9M+46eT`mEL1yu@XH(aFGI`DR_DGk{>iMr0@DeGw842e~twqo%72H1wlUgo15}-_x}9=#LM1T_ zJ*ko`8A~pY`T0FzNqye2+GD;>mjL1zJGs%B=c3D~c+fos$22k#(Xgng7zvdQKZfhs zXTeHR=y2L?TOM|aKr@5%?Q}0X=hQ`=wM_^ ziaz7^8&Jy;@j1=_rLku(&BqFoOQHpdgW)3=UJ9mCfth5F+@SVq}YlkeF&Xe)PiPvZILYE?G zE-4xtZe^*a%Ui8yvb04d4JC@Ti-bibMQUP!OdJ7}U2;7pr{AMIh!J!8ZQ6i7(zF1$ zPX@eLkr89@BM*y3D^42Aqh%ITM;npxml(9Sv-`6t#)Xu@_Y;j|s9M*ONk$j;mlo*NS9kMY9Z4?=D;S)gO*)B+~qR4_*HdIH7rLtSH`_s^G8rm0CjOg+#D$ zwP%N|D|(uBB~lK?_RiHRXHdJ$o_ll^OOv>C;_^{swYoqJ6)RiEe%R`$bQfnweJ7)q zSq5xlRmzuIPfnWrhduYh<{s)S;qB_m%A~t5=o^h;0DN6`4q~KE8GEJ4x#D;QA@8~? zl-0rN9R4D~X)(qJLNWivG*?w*_cH0X8Ud&7YZ2>h`sK%r={v*wXAuV|#q#$7Ll%Uy z)}nMh$Fo;I?4F)JqN>`ry*$jWj+Du@j z@SdyfgyZcSc$yH#NKyGn6=|&UNd*ZEXu~zx*-;F z^_fmHAwtf3>fqX&<y@V6eEZt3~$*wB|v6D37`Vhh`8lJH__DHsN{!rCQ+_?K)H z*z{^xapE)Nxf`>K0h+DO{2z_?J?Vn!=_Tvb)A&N!@3`T<1R1=MmA{d(dnwYuA5vkR#oNVY}Tb- z;-p&JIZVV2P?+&Zc8tQKLQI^~UD)G^hc^~K32t+sR*C}WT5O`cq>UQC3VIWltoAPW zi7KnKE7uh!6YLUwR)Idwz_IA%RX3c_trC@*g`H3?E+dwlQv0=DG3wQYqCMD{JG6#9j_o0-({7>8J>jg#O!i;YAwhb>4)bH zPfiGjJ1a16m1QEQ^0C~Cq|7R~h;$Nhp!Tx$TdX2cw9J;thdah8OtQ}-bN%fb@y2r) z9MqUkZNj;zh|K4CvqI)bvfj3fNT~i|zK16Hda87J*@`%uN2dM{b4Y!gi!qwBuPhke zr5#LX(qat_4@QyN^zxC!}?=L*te%-hdr=l=b3JQem6MQq#9ogA^!q00efCx<+_2? zdymRtvFPdI^&_AL0`i&krBGA>M%ZK1-&|{zDKq4dhuW+TMVf7B;%dbn;9q`wS=45r zwfdvYi8^WZM?wk}Gfa~mFDY&^p|K;g+ACs8To9Zh+$md&hxPUzI6|ruVKp68%}SMs z_~tqa{oC(--<=SH*a=fW1V_JpgG4nn!7oa>?N3})jyUCz{ZSs0?6xc=PR_`QbZ@K( zR?^rx4MZ<`>>_~JV3_o0OIkDzrZzoOCGGxn<}m4(Q}M=)dqd`Qdg{LLZ-_N8JtQL- z1_#?EqloIW?@&GiPhO3d^2eljX(Q?ANLUGpC2duuA0zLYW)1)ta{Pt5m@AAn9hICT z)|*54DIjM{j%Tf(0on+PcW48(V#86F=#C08n&`fnlKfD-!_nGDqQ1ubIAPtCfha3Q zFsS|tHmi}z8HF2}cugPPz~IFwUHz#Dxkj zgCP2D&j;1moHnbgp!JT}9a_7-EzIOv66Hfpm106(m@Yy({VDWnSYkTZ=5R1Gv%gDt z9Cam?psUYa!-#t@js4Xz5q@6@k_X>fqL!;`ASOXUxHWcvXU3e1ZO@MMzLs{2$083c z+D}o@@LlUM!|4+6xMGJV<%ZeA8zQ7NsMN&=* zQcLu!A)ISvCz2!2D;Knh(x_HdOFG6|Q}$W#nrQEi#M<=kS4B5(I^AU0=dUbF8SsS# z(n>r3gi~bqdeo&#%)^kVWpi4gAlh(>z8u~^)M;bu8|Xyjszglqur22R#7-0vzC@HU zMMRkqEjRmZ#Z5?A&=r)H6A0QB@oI*cIC`L+T<2G7SDMSl5>xFam;?FAIY)pk^xI)_ zwlsSCao|0V1y`y(_m-~l6U$Wt%|>gI9r|Qb{9;<;K}tO_vaVlQR4O4~7)@Uoe^-C; zrdOGbIA>VVN_|ej_lpEJtM$=j|EW|vP)VlHrB+{ap-vJsdEV)Mf5lzKh)t)-V!gTD zDJoe-XauD7l4@-YSs7u;@#D5$dl>YLF*UiEyo8u`E0TCeppBbZm%3WzvN-QutYTmB z{aoRr09u)UbgH|2Ei?Z%&nMz$Mf8<4~cNxBVh z?;lxbl-D=-5$aZB^IOhUyYXdRnim+JS|P7b)~ zpe`4ts8cz)2sG$S+jdrB+18gjfhIeynrU++#jj8Wj|C@*c&wbG#|Bz$6L)pjTcM!A z8bPD6aK(c(O%=O|)1swq)t|qzTOgDEhv9p)XeW$ojn~upPQ)sVzbg!%AGoL2Y)tq-4`0IW2G>S!EUb^|Gmcw~;rA>`y`)T}dXqkR7-_?tszTW-j>0bwG?n0Fpy zhb1jtMusnC7}ptSSvBmeXB`~>LCR!5!ezmE@R_x;u?kN*iM;~^0itdwa|a*p3Uz1w zX>F-|l564MgODvFDo?Xj4o^cS&wmYsz1XwUu)4?5$}ndw{=5+Z>GUrQxHE91d$;bF z8AI9q8Bf$!xbG+O>#v56(ClF}DmHbX0K&jAOOk4xm8!_R<$?|B?9EYn?h`9?HUYePRV?v%zD)cSQZkTR)2zJ6o}O(Q~U$(nsw@$C7)K3oApk{=Pq}8 zv*?u12zj9m^4w%AL??nS3!dA7-fInu+5w|FXg{mDOf905XdI};=;WGU5+|AG6U4Y^ zrz}@$(cT93%OnxhydC4rksd%-;es%DMvT=Cbyh0JR=L}0VnF3sn%?(oAztsa@n)5-Rd?9Oa4+{V^!ws*+eB;(XP~>W^a>dD?ldS zZ2mV3rJuA+JQA2PQdMH>TbEMmA=rDthK>e(Mrha^A2RseiN3|JdL|&#Rl#|L^JTTr z_K64Y?BCZjZInUl9;GDUfd zYTV>?8Nt3b&WL4m&)lHQjL+7#3g2+aJoR|DvT_%|?|NhT)JLDzWF5Z`w?G-*JQH3j z3HsqqEHK}1Hjx}h%Rx1g6_qggh(PGfsq`wTqk}sU7Mw$UYx`EJ;nfhPBEWXkGyIayB!g!Q4{t|JWpW1omH?v0Xnus9T>9Yz#_Ijqsd67;J4%A@inkES9Ad5Xc zxVZ_(Z$qbSam3YPuyDj3FCZxa?hIXtiJa$jS zoi&4uT)qY}xm>7yVyh2(@vuJ_7qx?oQSFw@ZzF6^S_;u_CygkrOY1RKU>H&s)&(u}FqZZ{n3 z0yEzg;_v4ne`&YKED=mq^Yt}+5Cu70rkhsgWaG=O3AqjxvS!0ChH$4$IntghMu$eI zGn#F>bRls);M@3usO6lL@C_474t*nDYpy+FRT)@7Ok2}g$}A_-qTA{38oWmL2sJ*U z9hdRAzE?@cq9=}sauSIn-jSZB{~0J~9toMASL_A*!2HnfI59frwk0_UR6e*S`XKRbibJsGbGwIsF z8U@mVD}R=y??)^jx@y;FIi>r2dz0=ym*^>(p}^B9kyx-)V;+h0K5ddY)Rc8d`4nXf zi%#7h@)$@hpHbl%eo{ibSTJzTv$HdDuEBf?B2oWXKdUT+Y^WuL+#AfVW&ILi zM@!)}h0^13JNcI$3Xb`!d=opHfOo9JuP zg~Qc*TQ`$2VHhh`8u>PdLjv+83LY}LV}yC4a}O1ExA?6L&eja9P;_fhORCo*bH-x# zuK0SdAvRmTM7dVI?>yT_-g!q>>f+&V7ISLS-4x5v6rjRSiN+6_C67U6!k3a#H289! zY|OLsO`Rum<Z{o=K`?mY4e<&s0vW+Z2`z!cday}^k0zA^+Fq|kpV&q^YJNUDX zym4*R(uB^6Dp5>VpGNGHwDge~48Qk<%X^J=fwG5E$bmrwcdCH5by=ZlS&?N~nR(f- z4HrAKs^VtQGLDLXht}Nc;BgM^s2MT%>q*WLUPP2lDl=!>FOHa?@jPqs))p1V-Q&i# zHz=~K8Iz6Wpmt&I;|dhBEAQvzGPYqdCkg1;2Khr@N8GvT8*x+-6Qqhy`suneA6T6z zTUUTORJ3cJ!Tk%R)F5-EpX(6}Gdbk$YNYo-rE8}%i&LMa1rgSn_yaQzVcA)U4^{`J zp3*lrsFvjCgrPkM|hdUyINTsXB~%#IrMyce7(XqC_$Q#h7}Y>t+-*JEFDhr5)pIXkj<1xE*fQO+T^MF zV4vIhkwSU?VD%2WCMRm7Pquxqb0h5ZYTyHZR(P3-*5m1e{;pIBV`9>99JTynK_rbj znxXuK#&!ws39s!3rRP9t+;*<;E)Q$}AmJgNEb4%69CxVA^8OK#kcrxv-||s+iiwh^ z+M^OIppCiws`PITc{>W^fd?y-xXv^k=EKRQ^G<|u5#LgJI`?D&PfMUrD{Dyt{8$62 zFaJ@ZvDII9Ks3L7F};LY8axK~d`KiXQZjb^`0M_dX6%irnKhc2WwQeG%u5?rt9uxm zD)Y&mK5BX4Lp*?PSk*<;w6I1Fr;1Tl`Q6_zE1g+4p@oPDo}5RZ*~mGozqg??iSOYI zxh**OT-{=C#Gb(PvBJd0I0ZE$Z5FlOB4RtWsgCZe%2Zt1ALoBw>W|E_^<=}snK%-d z8Z)L~|4G5+41Nj3jXBeT_U=t_+JfMxv2d|Z1d>FyAa zE)nVOPU)2H6j*e3cZYPRbV@I}Sv2qCfA4+98E1cfKQUmfCzw6&`?`Kppyt#pPP!xT z1!uu-)tIN+Pe4lel9CHS985AF2#-o?OQ_rF7^SEcFKl1;ji(J2=hQ_$2iik{hWkBy z*W&J_W%KH=;E##gU*tW99Gx^Zlo@Evn!BwM`;C4%6iIywZqBUH z*h2^UWDY%~$$XFRYBD|>^@eryJf$iaq!K-BvKH`Y>xHCtykYciV?1>x{-pkg7jkX<9=p~p_FlKNT*C|n7@TXrYmASCo<)f(V5)E8$Ji{^b6R1#D%xX8fWqT5 zRa=tQ0Bc43^lk}PUG51g$uT`<9f-kM55)3ebOEXFnA{A;ngWx14s95$9%EQlq9xap zj*HIDw9#x*#w-N-4IL6MdBHRhPW$c(Q-OXfpUqV^akuA%zA0)~v33`Vy=k@M4L^gs z_v)te(X*|%sg{8SKd!yr)myP(NqO$(o{bJqyE1NowZ7tQX%Os64BAiZImS4Cdgl^j z7-Ad8kNYRTYTX;&L-^eMu+u?OEyt=Q)_=`cpV&H)6tMkMpQ&W^068y>&8Dz{2?C~8tU2?a*6Bz}NzPN` zNw?8DPPAI^;%Da{0AI46j+6-gDVf17Sszb5EZA*-8&d(~dqo4k_>rkqu}DDNj|QfA zPRB1Rh!}l@@JW!u&i2Ra85SG&_egOn1zd*W{~EGc^71mR(O3hd_T~V|uSr&cP8%dx z)mR{pV%TEPS5V<;=`$|fU`LpmD}NkT*3fC5Q-OQD4t?{|6>jU2GsE%2Z9kS=J36(Y zj<1JOB$G20zpBfl|K;2PWuBOy*Q}|)vH&Abo{?FXcU{MuGW+!j+N?|Ke0D8!y?C)h0NQm6w>}SFnF;7yB6PZ9~C|-846clW1wl2 z-Z#FYogv_kL004Aa=S@e%;C29pjm_!rXxyo6>keM55Dck{cw|${x3Zxier84B%deD z(f$e9>KIp!MF*|n2q(Crd4^&l@TTxuRUX7herS(`qY(DIU2T$p>~q#dH`wYI2?9>nz`@Q6C*CU!$tpBKsW8@7P+H2f?7p-=yM25Ff=RGBm0YEdL; z^m5H6*si;tY{3|Rtq5f^VlfFZV2oSrk-&8XDev)0F}+P4w;$SrE9p+qJXuILyQDPN zsqc-fC}4~~kF2b}uJEo|q-62BRzG6RJC*>nta6;zJUtNS{*k%P?&2yFdoEgBX5^wf z2e(SQd0rh0-T6w$cOJ8L4d<{F+$`|S-SqivVQKlf0tKBq$r;nM|`#)Bia8#>|h z?h>GwW#kGBh-o*$+AP8Ma(B14gm0K8?1KzFW)MWP@jM_ZpZxWE+o^p zyW&XXGna{dWg0Xw?8V4_%JxV)m0Ihtr!YA6RZ-W_HJcB!tuQHQ>I&)s+zW0lE)rgk z_F~sE``c-Q0s>iWNHQw2B`*%6j4$C85HzS*s$(Pm4wvU?trl*W=X7-%5S$?(lB14X z!_6v`LuGa|Cl=5d9Y&`|2PEqIe^Fq2#V>w9KDxcaWokUz+q2=%y%tH8_PN~(V%CFT z7JVF5dui0az(n;s-Wihu)Oe%9x+tW4J@x%g0&YWhKvVg2bMV`YiL;*!^Cqa`?ZEjr zCSNzX7Uz9bBI=F+ln_8@?(AXO<~E4`cV@RmlE$?4dc1X>%n~&0E!k2jQf!P%&lKkF z40B>t>GTY7crTDq&%r6aJ9mArOi*T~=Up62rx=OK7hWX)`|#OcW1Q1KNT-uFyr&|6 zb~+r`VF#HxIT?T7W4?UA7Gk-L(x`XhWi~LU7##sixjl^W9u=wUnw^hGa?_$*;d`ma z+{sW#`}Y@C6)C8t7C}G0l@kmfo8QT{K1QzP+5oE#B zte@ALKla69(kA2gEZZMmYq+ft0m54_At4tmh*=NGMU}N3Ns55*Lq>sP`8aFGccPZJ z3O`s8Cw9G27<}W`B1r|@z?PWEy>aK5o74w#i{d{_q|XW1tg+!k;Z0`hGK4(W8`$tU zj6Z{+Kn1(>MyJvxpVQ8aHmQQiH7?8FTKb-x5uto2CN#SWtn{Nm^a#@lw$hb-J@af? zCD!2UrKgzd?z(`>wcF@uQr1-p{=n|H8-CfNUN(`=K6yvU8k5C?6Cjq^2Z!_hOuN%@ z4i3yic<@O!?Tmyur!gArNJlK`S)lDH@ zF&I7Q#^-K7*^I^XRmg7R+D!I4OWwfDR~S>T;_Ex2lFL4@I#v}=Gk2a!mMwAf!j2qY znn(GBw|ZTBvmIo9NN%D`2(uz+9E{UL{x8C`6GaNhZa?&Ljq_bImNKvx=KS!-*Y2hoEK&`o8Q8 z|5g%v`=Q zJbjOK656}W+9aG-a;%Xy^LGq??kM}TZCBe1N`_x^{tiiNY<(dg`@z8}%JxtDGD9Da zJNNLIb^TJN$O-($Gn!&`<9h8Dod@p1fWvRfg*JH8^$3k;J69Fcg-94iClGpl^p+_> zQ3%p%*i&I~cH&8dlyVrkoHm#3raMEEDhc@=6yB=L%Cj@aTjW)4A@8s3nGGhtEOgQdTRA(Hm z6NRpcjwKjiN`#!(qLJ~h=cFR8$3%^(@dq*#Ae@tq z0oH60G6_1l1qYtw-86wulM&y|j(TVbzrQ9V7!bT5lb0c{YDu1~g(qh^DVnm|z3ptj z%%RlSp_?Z;Ea(AGyLOMZ*_dHRG!o%LtG+e>G#B>JQ6$UtDeudBxxHTF z@JUqQ4604iY3=`Toe#NI<|Y%Y932ub<*`SWIg=b4aUtSDG>|1CNvN zM!JbknBu0F*iRS1&cg!CQWHvP`4R;zXj&3huR@&Dhw|bkeoNb1a!`^fN@{4Ff zcE1<~{8o1U?2rb__;-B*VNrBQ@S@Aah*)w;RqEdy&t4{UQYaP<{Ji6I20~qBHk8}S zOG-H9+tvPzzI8&u?Z*4%Ho1=NCH0Wm3aW(CjlXj?<+fotj&6t@SiycUqU%;8W>H!+<`mqk*RkiTT&%M=X2acAt~+?v{<+XjVSQzru*})pA!J z{>pq`Gzu;lnFnXPN@R^JS8>j#i(IEC1X)-d27=Z7@$RhWf)(KK;)Tn&X6? zFW;OG)z{XZG9}HzIoknouur~)_!~}{;A$^8lz|zWXAnD9h&bGAp558aogTw;W zJh)iaE2!mcJk#BNdjoA58VS<-t6WZKP{kM_os(rS0EN&^pRlKp!KIFAQ zPFsF53k_@MLgR`g`gOSL>H=XadZa=Pk+pXINF?5$>v&!4pw0#2c$d2&*2uhE>_0*s z1Xj#BLX7^YZyvV_PM#8tjBNi=@oU9<&z2`ku;s54mjPp-fW_eVm2oosgnsEC6383qa=A4GxrFNTQxg#o zKD)PEUAINlM=`W8lv4T;yuECU2(OndstsibrX(Tm&o?BZW}101(=GAay>d6CLLSFg z`;!T?Dw91MczI$rx?(|Lm_teXi?Tx-_rt=oOW?21`}MTZsnr>-r%zB2Ff+!xw*NMI$0y+xm$u{A6%*yo6>%79%dL}UOM!+NzAEM z$gmP{l88c^T$#DI!SsXK7$$Vk$KIss4xN|)PRSv3GuvD7eOWAF8c^)C`>s9|X28M5 zf?cimj4k|Nvi|()eUt5)=>h|Z$b4=QZImsnPfs?w75v7pUGI>2@R#+U(!w~`8*eIf z>W%vW>qUwarKzX{2#rd9GSH+cSfsz8A3WvPg>Cg43;(9-akqL85=B7L+P!n1&pLQ) zWmnusVtSNK{2#);3Rlu`@g%uf-BomwE}C9BQCb+}uogZH;3Et<)ZY5J@iV zb=T~=;g{`9uk!Yy+4t1|zS(e}D(zDD2h%jkL@Q6eLWqAA@A!?g1M7ak%6)F(n+=5Z z5?~3%I&*$N{C&7m;O8fDa3%+}O^@U(LkG7I#HK7WEf3GM#Qx*~qL0RoF(9H*$LB)Qzu)RB77;5`ownQ zpmtf#SlAW}2V2_V-AmdJ%d-FSba0gftOf7Glqa)tf^L{I8)h3P_`LZgBu&j#URoZu zcvUx_G;i*R=-r5;7qpd5l~h?;}1KpqT%a`FqF0X zlhL4s=F-+wv=d;9YtJ6l#)3-M>~uc@RCP;OJg>LL??ega-jO%r1K^0Y6~G8e85^ke zFap+Pqbo=YE)-3UD%)$#TR(QC()*eCKUVDfHbq!JCbSz_PfjHJ;SUqPuCgHo}pI@^> z9iC{_N%_%^Yg$2yM)XMai0S-!_TMy}B$^;+!s%W1VL|hN1e?XfbaJyDHlq4Y)EDld zonK=`G2tl?Vxi+i;RQ8cxiOS<36Kt|;r&Dekl5;Ln8EiDGwQf>ni|`A+kLFV$+0M6 zte2k36*!#Em)|Gs!%PwgG3GS$QRj#KlGGFttJo(XsP`OigcPqk>dhYf?$m^Ylrvk6 z7?sI6K1~iJDd6tnV^a~_*9WkU$%}vCZk>{wH$YY6C&yAXWvh9MYP#&luUuq?y47ZX z;0RCIEUno^SQ6c)y{XZA9AU-aX(!B7M_q&9b)G7eFt^^R;{5Qr-%rr`S6PQ^+HRX_ z+jy1DV&bF(zw8lQDlsgB0X0;FogM```*-0Fvol}Ns;t~D+V=+L0HO(f46#19j?u+Y zp<>qROiq5-Zt^99!N%!rOnc1fN=`BZ4WE4QwAar&iceiX8FbvroeHMAC}O+nJFlHm z<@D=53`!#4EtZ7J>qw(50mkvF#?UtMEW?%1p?st@TN~1wo04_}o#JmLrBI(EpX_IT zO@#=uXql%UHv3n&hZSH3bvzddedD8L5ThxG5?kP-2D)kBDc9Lqf?EE7^0 zR9E)Csvf7*MTD0;ijwmJKKbFAuX6t)Jq_VOF??XHHP}ZkT)uO&&p0M3F*4*A$BVnC zlm2wNRJT7qx{-YGGerjN^E3)@NvA9fOZG37#2Y19P(@@@%q|PfEtcjJfZBLHEiCRF z^>{#{Wt4#66&vFy{l$w-?PBQTMD&i>H^=A{9F_J33&HSIWbU>x=_R-zZebN{{CKY# zjs)6DM{krZLHhduc$h}(6$55B2&s4BWO{E(uX?4W*v-(0c#{t3Am+}w zI;~zeZE3j=^MB~N`haIr1FxV-LGmAHW0HZO`U6To4Vw zv$~Aq-k=(FTGVy?nvit#v$rf+`Y#pIKYr`qjmHPWo`6JE7WitP{xE-cq%!ekn(Oim zFud{wUQN>|=(c+80;~gOz0MJHMJFbkWGY1jCq|g_u$~mp1>4otTIa{HrSA>_J0~cl z?6x21-A2_a0YSf)#lgzR2%WpwfhH$J%$!03BK9p0@gMr<-2}$34;TFrp!B}+_p|9o z;|{|(I5;Kg`nM;3ADNk79g{9;Cj7Rg43|{BAL+hCi)Md8;NaleY6KaP3;R5L79LpI zSZ_H@$9s*M3}nED8fp4JT+b79{h3r121ersXmPy%Q2j9f0!ZIbievoKCf@!n%zx85 zoumOGXRC38)W`qz$A6a&6z~z|k9^wy+~q&lAowwb0o+YcIqpZQ|GCk>uK9s3^_M^j z6^kwYU&PQUDhvQU5B|#mwER;W$>Se{(r12 z#K2!^Gc$l-(;dL&2;)j2nXH8W%HWr8vTb-KB-DhF(L`wXn6v)X=}U&nfPu?cs#TkR zy4hP;f0;=9pF(yA;?YcszhuhM@0c(an@x^>boaJz3@e*;jzHKH{Gev%yJJ>dn#d8zx(NX^`S_+`Iq=3^q7$p`+V`eJ>F+B z*5^c;AO;t zh)4*&&O!+~E1-1}SCx?LjBRy2)AZ%!%>C|O3Lo|_Brq`Q1N{j_=H21e-*#I<&e}>z z>z&49=;YqR`wmc9&STQU{HrOGll^@Vw94>t_&;C8`Cnhv_;*GB(;Kl7fzlCuU**-s z33NMYbUa`nooNcAkO0x7_k%BC%KQGsF#eQ-erG_SBdeqHTt~BBwHX6q0t^i|H;QCx zdIDOVW`p}SMD#Iar7aEx2ix%63O)AQD_?iM5wBjkuk1~xEr8C}G@Q50*Ph!LQCjXL ztSl@`JujON`)V!)`GxIXI=uGh!^Ix0D)lVrUemu|F>8kGdJ#1XP`!=HRmtR$VHLJp zlaelD&MfnMLfEat<&sgHnO|?wa6g^`h2LeQ-sE#8b~KrOX>`jx$)otIppZ4PRlzN_ z1jg*TeWv3jSAAev3=qwcsmZ!p?!t?_&B03#s&<#T=6>K%+p!>rGm+}%wY zU2#1#bgYrAG@OlFgFq=Y1hakeK0jB|>^URi0v^L3<{`AH6j@oYJ4vIMs*q*d=Q+65 z@0`ZXO)R{AcdT){Fi5k(q}OFDLCEw;wX*yQhE#Cb?a>APn=MXQJ%uFUl+FERt9ZoW zd}YN(L)qrTO<`;6G11Jqh~t^=Pe@*5p@GqM7Kn+{W@Y}zSP;_De0fPssZC=C#`nq0 z;0>QLip!U06mDA%@0V4kqw>h;W4S1JG&aj*AtevY&He~ew&!Pv#|SC{jUtzj$Ly@% zxZB(uBOY@juJK$cU-W01H^H3&d$KaA@{?#}%Zbz9#tB0|BB{7QY_S^N{gDOD+ia}c z@5xbkBGru`OMvCd&ZYAXr!66;sukwQ^s4opP#pSXJe}VTa6Hs+{p>kX+6KL;es;C_!FGW16oh=B#a3+w5I3j-JVD4u5Yw@0AYduNg{dm> zd{uO|Kk3D8d5*{15v#n~h2SUU$?o+FU>oGn%d6mM6o@F%p^~|An`oEG1U%N4&UO_8 zY=d}_4w>LvdJ@6wZGeL4rbDy4LsY3steN^=hfIyp2G+)0_(yJX|FdU(l9QBP_^a(6 z_MN@539)&O$Gmpis%BB|0|;5vR7?EV%5a?_#H9-5+|HrvgOO9& zbWO)H`P~+WI-%hphy2-+XD>j!^X8a68&KQ;Spy5P)QyVH2blNH^oW_e%^g_s7_;oEU zu+jBS_cEX0-u^gQYV(a@{&7vhV*KmRCO{ep6n;b~Rh&4e+h+iwq;WlF2J0$ha`ncy zd)zGJ(bUf~>9p`Uj5uYVuGwWb!0g3&S=0fB$JR$k+CX&0{eo}B1KDfdVb>F=)c0v{ z-uK;ivyp`5G;T4l2jr-fI|8^zaI>hrEwNU85VsPrwgCApCh zA2wCgBbdut9c4x;S~auY_hnyoSn6oKBemPr-JO`s?WO(R_w|hK445ApKzIQ+o!(Y2 z3$G*Qp=0F2pC>D{h&--~srP&z0r%<^#i#kMr>`hP9GZ!V)7>a?QNE8&rTTGVH-V$_ z>5H0PY~o@~mL4~yLas~}bM~nM-_V=O$wMy@FMlh}X*C*q+4Wq@DViI9nWS_T9qlQ9 zyHlapWx1oArt45V_(S$e}N|=Aw;W3w;=qJbMS@rAn(RYsB zY~FO&xdeeV5&NGJ+6m)tgI9YUL?Y@0MH3>gGB$9MB{BQAcbwkT2|7Z@`pvM4S=pKp zP}Kq44&O)F z=Z|eaBcn|+E`AnjGI`#f#4L<^dTee{$+8*FE=nXxEx#%aY^YWRP>AP2AQ zT}cE5tc$ARyIm(U=bCKAWjvpnmz?gpUYinSL_Qj%y>1HM^*;cqW6-$w!?!#emO>C` zOz0mRO8UG26$z~xS>(dWH2X7ceP1Do z*{-`X`GzG3VayGg|4iYC{=f8sryJ_M9=sD}Y5o{dJ$u50JeF6_X?LQl5HNshIMmpx zLCgly8>dvyt&g^%?Ca4a>*^2G-!yxV)a+;?ua)AsdmlQ|c<)d0S<4qp@^2mpD(Fx{ z(4v*&w#{TdcJJa4N6gpW*R4{qRhe(9OdXlIIiHMMN8n0VqVg594X)&iZ8Bch~n<)p15q0ngV~^fcG+c4~{&HY)gC zf(>`qye=+xi)*$6VDhw->_8+K2FHQY$^0(y({TrJc?9!)TgH*Lx8~isRI2qEZMVzb z%;%figFwU!_99Re?*`R>6${nnTFcDq^?K)P}f581Z$EX6Ts56le9r?xzc=@A5uUWi5^u&#MFk7J|NXS}g3JzsX(!W)N$O%I1a1W7;y`i^#+ejWQhG zv{qh_#)qdA*Pnwav`LpNH`fs|($S*{UjvbBv{KUmSOER$+Bl;BM~nMz!E)Um=Mw*5 z&}12N26VxKU{__v?bAEip#kpqg|3yEZ!Uc{trZz$3r%GAL1!x}-)|fNVr=3dTGL6M zr%U9yAgm!cxnpam6g5*X6t> z8W{UrC-(O$Ds$zS9vAOB{+PxfaBy=^YBdkR67)2hy}niD*NQm5WlT=z_qEtNzK>n! z8gIivAr@%gksp$i(Ip^h;PRY+QiLBf+-KIVwSov8MtH{noa(b*g&eNmq6FWU$sudy z&;m1sPU~!FjkbdWyA`V0Bv&+<-u5K{xGzU6j>|2!gVo4#wZ9&iz%0j})cHJbN>!*I zI~OInz1*Udkb=+3QEE~5RHK5X2NU7c1njflCIuOg3g6~r@J#a{j+0{_#*WvOgHK z@6Be5HI+?Q8e?;O0Y?%atAQwEkpCyB{{D!lWIYd-T*kucB)qq7cG!`|hzsJ;{e$P2 z#~Ze-7^G(hT#xDv3r)znPV?W_5VI#Dr$e4~-`$oF!2ec|LlEb&fw zsUwgxi-)JMos?uLt75x{>l&{O1qzma?^f7x1S`9Zp;$oAQ-@XFQW`&9w!))s;=hnn z7xqwXSVQDzuj!~=n1HLDS*l{D&@7ur=Bu@Q{X!y48qrNQp9nH`Z_BgieGzm8}kN z*h-3vS?K%ra1j@N$t(kdq;`Cr`N3uOr_*C#ccha6Ai0;?T+eFstt~CBEX>ulw6s)j z4FIi!Iao^*$RtP=FW#kL`>ywlr4soVZf%Qspriv>+`M?A*S?b9188AzY0sL0jhlqY z)laZd0^WP+MBf2)y9j2Yn#4YBOsqHA?DzlD}E<5$RQBa=jsX}z6Z06oFT#hyI-{Eu6Suh7ju{PbD;n+o11 z!##~`B^%QgwEYM;p?c@gcyU8zeliz3FhnF|YW(IB%X0Xj7D?hf)BEFu<`nuQSz=;^ z?AepPL*W}CDQzx(hukh6u-sFVU7CZ6KUBh+3Qq#UZXb9GD+T2IWGZIKQ<4Ee5tggD9`vt0d`lU;BAtq{RcZc#if_B`9P(IO3wmdqdeGz)h z;CO#Zl47POy1N2+qzxNUr$k@zD>~f<5Hs-ztQ7Ue>UZjmfZ1ByFO`n28m}QfiBW4& z8{=RA-8S;KYy`5__Do2)-ejgQ=xk$6CK&6fz{lgQ*Kjccz1`gO<5Fo^84X~PjB7eu zCYfC@ajIZ#!y(~uqXcVD%OZqm04F}aGmeTFhRGVMt*u>;hW!KNglcxK`)fu=MoOKJ zxKlqdPXRucu`;!)wBqt$5P*el7y=q2XClHcQ(%j1sR+brakt^HfOEE)wX26%_P^sX zway^yCr-z49tAd2!piA&lC(Lw<86OCM$-UQV>BvK?{t&Y^`O{`ZAJ7_B|xWf5Z%-^ z9!8ahcq+u$nsjlxH}4nJG`W{a?Ry;e*V;u7Uh{iU55 zmdRQGC#^cO`V}3OQL0#|Gfij=L!2`)$&{ysS%{y7+j?k6fnLzFam^C{;WKtd7pECSok;Olub{54zPWbW#$Fl@nd-MCmI}|stx0q zg&wD|v7>3o~Y*`9RV1CapN73x;bZ)QTxl8^^XRlOzh_pXe zTW|bnvY0VQ)ywqH8av!#t$9rQ55>utGPS;QOTFb;0umn**83};v(eh-k<|vXtT+?~ zI`3A810$yhP(^XcyR1>jOeYhQ%L($5_1;hS>%MoRanGjx{r#N?ow9eNjs8i2p8$Np zXY4cb%wo5{+Fnd5?@YSM%r1TEJZp-`Wq)&6Kk$TB^-%Z^h?3_H?BzH(>9sM{nOCon zr1P4Uk4FqU$YEk4WBI76iEc%%n*cMMLKGgCuwHBSZ(maHOz;pn!1km z*yLtWUXiSn`%RGI098eC2|SEm>>OSZwNGF-QKS&lkKs5KvoSHwXLLebd@KjQMjHY z$zP!xh#WpQP++jfS?x9p?Q+04lev~<_sU8Gs(Dyv0NRwov*XWmgaH@@5(Rgm`A z-|^c1~}lL8aJmb0#z3kiyG;kMSSgeU{{5ksTP z{pSxf^<9VdCj%%(gjh6+j~@J2T`|*Z?cV%X3=DzJhFyLsH)W4#PguC8FC7hCRS*q! zIPtGAToWnrFaW|2y>njUB7(KuNuKF1B0a!i;t5$$tII%n{zL59PnyYc1pK&%B&w@% zaHfzqDNJLptG2`-t#IawTT6A$&^&E6`f>Z^?y2qjZ3br7p`!>35CSV=po~zh$bKOD z8J;3Ey4$I?X@8a7209TuS=+fy5L+U{4@unLHtX%j{UTz~tksk-qG4YuBcpAi3cs4a zDeO*SABF6VyIhFGR7Bn;;8d4O#YZ5SeiIQ*yjZ(7n5eBdQM>VvZr3{1uv0Xy?tg zrn*^KE}E&s>2JVo1+kzL)%HUK(oaBc0UOE}M?wv&dIPBRXN!zyxGZ^b<={7p(?10^m0gbMN;cK%H^{hY_5%DdzP=MadJB znQ3J4E=<_j04u<h?3X)|T&e$i{*x_R!I`?6$u)XKi)udwlOgBFEp; zsQ$eg$gQ2Sr-Y!nwnth+aqu=jBkX}|ks1}mHS#>)Ey?xkvSGR1Smti&E1H)jLJX8%>%xk&_ugs3d%j z*Ud!xyJRW9PtG678ptN)MU%x@CeI3rEY0vq*0pI1X=p~yF`>l)EQJ2hdF$fUfE_7E&iW-?QDF}R<3hkFMu~l3`zg;r&NXDQP7K}wZuNg;t8Ip zf9F(l)kdFQjoLeIt-Pap6wG5sj^Ay9cML(2us_q+gS^&3GS`$SbXIO-ys{=ILmqwR zIicC9X^4>Fetw_e-B0h{NzWUmCL)3!2-EMmA(g0ZV37XmRxAM-_v?$F5MC5P%v_{`eVRNUn0(Zm z;^oIS#@`5mWmoR29dD⩔5>kQ?O0tq#BT9(XKK2Ji=uAf$ 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 diff --git a/scripts/ios/screenshots-metal/RichTextArea.tolerance b/scripts/ios/screenshots-metal/RichTextArea.tolerance index b497bdd049c..e435316ce73 100644 --- a/scripts/ios/screenshots-metal/RichTextArea.tolerance +++ b/scripts/ios/screenshots-metal/RichTextArea.tolerance @@ -1,5 +1,4 @@ -# The editor renders inside the platform native web widget; absorb minor -# web-render anti-aliasing variance between CI runs (blank/black peer captures -# are well within this). +# Pure Codename One text editor render; absorb minor glyph anti-aliasing +# variance between CI runs / GPU backends. maxChannelDelta=16 maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-tv/CodeEditor.png b/scripts/ios/screenshots-tv/CodeEditor.png index b0ad1f0e4d4688c494e151a56008570cfd536d66..e3b940616a123d344f3839014c59ff21f6fefd83 100644 GIT binary patch literal 252961 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%0D}`pt<$qAxVk; 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�SyDQ+?x} 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 RP{6+{m*g%cU-;wC{|_6Z#V7y( literal 0 HcmV?d00001 diff --git a/scripts/ios/screenshots-tv/PureEditors.tolerance b/scripts/ios/screenshots-tv/PureEditors.tolerance new file mode 100644 index 00000000000..e435316ce73 --- /dev/null +++ b/scripts/ios/screenshots-tv/PureEditors.tolerance @@ -0,0 +1,4 @@ +# Pure Codename One text editor render; absorb minor glyph anti-aliasing +# variance between CI runs / GPU backends. +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-tv/RichTextArea.png b/scripts/ios/screenshots-tv/RichTextArea.png index a0597d6a690a51121a84222c49235a68a88fdeaa..f275d4f118636e7ed19c468ebffc2c237bdd7613 100644 GIT binary patch literal 247683 zcmeFaXH-<_wl!QJ2#Sh`fMf*(1%Xy_E?b}ol0`C@Ndh7{6`;0c5Cc(yAd*2qBvUF; zkqnYSat6tn`qu8#=bRqb>K^UA?~m_?eMTSXqQc(KUTdzo=9gxDxRIx!NQsW1_8?Dz z|DlK&P^7>AjzTFBG5+UwO`=nOJO|#>#~elS$8+@IC-RR1{0p!C&&nYv~#7i8@R%Sfbm#5ccc1JIGp@@h{$PXV!|Fd7b1If2B@>7>M zf9O^4n^NAyHQ6Q9pK`*q)sz3{NtTe5$CO22L$lKPLVJA4*N{OrG$4pb^|*gK@?$SNjQgC5u0h^QUC-Q?mH;3jCBT{)7^LPt#<{vro|5ma$bH@z z4L7mwEwo)4tA|H3$3-jzLntaLKV=w|IJUl02^u3UxZU;G`TgvM{m$k}kbHl@_h<%> z9H&O+r@EYS1m>q^C~wxC2@HP41izBm;=xxklN)VQzOlPCk8jV$uCyrgm*ID}l*7*G zmAktnc`6O&?l^JSke zwBq$)epg(t>A9}Xh}jNR3a;I{_L(QU6j_JWHxAQZDjpuJdyvLP&=}EV218B8dQDd< z0v~>oHpK^JFPE0Dmv?K=-UEd@t33m*)0xkBbiz3HGTTmx*^OO{m2~;^^far-vWA}n zgS|M>gnvxyS2E(JgPU64?htrSlBg7LPf!~kH!zF_<6*nyv})_h|!)r13nL-@d0LiJx|wcVi&Hsld*n16V2j-|PKf zIv#)5TWL>ID7Uro43}o@;zMU&(HJ}h@@Pk3$* zv!<8x3k(QuqLxi|7sESwlQu8i_UgT_snY*SCEBi0N<_c_L)e#Mb`+v4=o)<)$@d58 zEq*vf5LGrF>vrhaFITSA%TP(rwWsTJWEnYi-3(Wa5zn_7kk%iUe=08WB+9cl&$N+V z;MVQl!W{W|) zb))vtZxnRaJ#TsOt4i6u&ci`|?<_YaiO86KaakNuvibN$j%Z?e`Xnl*KaE8m3jnwv z@EPv{m&5_mdPUs}L+GQLM3Jnn5qG5^kby~bDRC%!m%ad6-r||ux?=mumJGeT?K?LN z>Ba7jv?M8O-HK0Ei!1Lib~`y{-keZHZ~C0-$y4LBe$%5~s%m`yI+XqBjy<`AKHO|S z#F@&~XJzc)ua5UMk|_Zc^NL*IMl*(W7D5b=oVsgNH0a9m9!kmA)_ui-Ho2}VQ$8%N zW*tUOnGwku88Z>rgCoW4Zhazmh)NdxdJNWMow#W-bL#3#l)cn(H$w6J>iBU~-_grm z5(E(blze>bo~F^08g1qhwAS}7eSCXeN2sAH$cZZdR8!5MXEp~TCyr2>z7Ws%(oAploRM2OwAg9*S1S(EW={mE2)?5G&*SjFhO8y%b)C19b_Qognnzz21&8_3}L)kw!cI>(dMUi{VgP|EY z2fF|3Iow9MLbbWS_aHY9kMfQ9635wMv*v{VXUAUw$3FyoqR6V}tsiRnki^U{HvOf( z7`i2;pivgMz&xk_Z|TJ#iQ3s-YIK@xIZ5Re+={?-e`!&Kj>VZZa&)qZ;{P#*z7kD9 z^>>{9!YhN4GH-e5t3it#d8{UBd}8Qo7_R|?lY|w~#H>XJ1=>cZ?!_?zm$-`t3iMoe z>T?1i+_zuQ86|F-6}ehN&~@H3d^h1 zUj0yD$!k`13-1g9uTtK1eP2aTYj#DUR^D+1w z%<^hxL4Ps4F+Z?OYBk9mwK!>s`BFQVLdgdbjx(JFHUlRvJT$beqQPyC@?YQ|Dq6Uw zP4no*^uc3Z!L(xnrVY=3x%%sj_tlDrr1J|ktgJokSiKq+x0w#y?uwSG*h$CQ5J1L( z-PHoB3n35en_p9zhR`30)2$KTKU5R!Z=yA1Yr6?A#C(wMPuT9DO7>GbgW1-;Fhs|k zj9ahbhocNX_S}u3Xgk5SSK;58{HNST4^snbxm!*J{n=9W#}l5)UvVQxV*(510%-jT zN5saTQwN1nl#a;kE`+3K6{n5jJXd>caB=wUand=Z4eb%XM2~qJ>{4`kcDeYqj8Klb z{xUb8L(E6c&(_k0KYKR&rd2gY!f6h`{6N6=G;cxg;!prTt*TA(Y4)2aaiyR$&h}2& z-Hq`^SVRR$E)E{4Ai6H60S}w9l`rHMF%d%3XD2o((U>R0U3sRMxW(E^R^Vk@GkIz= z-kpIP-StsI0nE8@J=W&>B(T=Vx^byQ9Zel&6TgFb;QH+%c zxBh_JnYE!aakrhz8xp;X?=ZBhPmaSf6kvK~a{H3UJQ7~MwdxtuI>03QZRCks1LH29 zzfxTI{ll(yz6V4EVl*lP==BpLSANy+7dxK8TR~9%fe4j$pmj|%V_}qp@|uJF$9hV1 zoZDPc``&mU+l#WJ5R+^7DW!FzTRtT=HXq-BMU(jIwTD~$6c@{-c5{+|68p)!P3Otv z_#B}Z%Qwfwa6&vblfRG#-W3{9FOrc~+dJJ%yO|Kchot1o6wBc+uh+hqqQp1Z$T}P# zrPl|2Fd0QHO?Fv#=4?5}dh#th(siH<@1drXaJ4g*)I2v^p&_BkX<#5V zSYnU0b+ac8zHQ5)6)@dkV1*J-NLU(g!~;DvsMAc8v*mc}xmGgpELoo-!luBa-2f#n zE`sS8KYxF(!&KYp-o*~7(Pz53RZCU3rO?~IB=$LP93XCLS0a3dR#2cV6UU7Spl*;}{QEskREL6} z-?Xn*k>#~19DFEb`Q>OlzY7X*s$ETTp;8C8+0N|LdsgG3ZSsO9lqjjGl*GBB@mMzf z^K^&M7}g;`g={)w=d032w(at!0}$x*0sQ5s__B~ir*VQ#5X4@{0{QiW5|z-^GJWQ z#pe2ONJuvKD;lq?_&Wrzr4iB={FWw00Eq?ndhew~^P7~rhe)j|yc8Q==91a?*qv`l zaX4HURR(l7ZfC}njOh-VZ8_3JS0(!?00W$4bB1_J0;w?icE1#q z)5z{y(vOu-E3_FXzg`m@#2m3#jICk5d~5FY)rupHK~}VSQ;_**>p6a_Ib&S9{wmtq z-{`5c?6x>|CEcW|KfTZhRebLQ(f2%>h}Z$z3?sUiHc7+cQzV5V`V&dP2)U-f$Zp*cnBq=0|xY6^h#*G|8SqvfKa%59)=;D6Zj<=JoVNuK}(QW&=)%bSe>-+tz85jV3H^m zhA)I#FSRl9WCQmb9LLI7w2d+3`yB5=M(2jln8zXM^{+}jDQh!bOOGxb`iNle=NO3s z4wVeM0Q-yI-%6;FCae1;uZYB40t8AMnml)cDWftrNZ}Z@#H>q z4ZHOAw~7G1VzY1~N5wXEEW==1Es4q9k0)^(^)_RlBdO2#Kz}ITF|{(?fl(4|Nub)d zv)rmS02m!^g598l8jG}N`-Znu+3qlf6plq%Y6@=#(PeX^m?Otnx4)9ngq#YIUYl&? zT1*AV_tJHziCh#Ja9;u?D@f8(+jdqVyBrj%-xerjl6G;KC8%Yfajz~$-tD!m8FiB7 zGr8Bv0>XfGWsGTk6ph|eCkv36fS?7C;=<;G%$_h6^&?l7HpLUa3*;+Jx5WQ`C(Bti zj!CVz`%H@Nj(V*1g|pTM-L|3Fj?Z@eF6g=A-@434ahmqu+_ho zHu}lq+MC0{yG>j%_L@mnuIw)u&(1NZL`b;YXX-FQZGvPM!ddg|SGgNv#ja{G;ww;O zeJkw-=|a>OAD>ia<748jNYt@MTH+pd)$6z*MiD+ojltBRp3d9N{SvXU3fwhs&Thbx zY0VyZc4!^=Ko)Ly(^q2r3$5E3eL)Q6%yRPxxjgHgcSJ=`p0fIA&y*>#&ax5050XWQ z*d-Oi6W<3c`l}}?cRec-V(ojyl|P68k~G9fjFX)N*-P6>sc@BOqW0P@5YhoqcNQsp zkDKGLJHQ!pkVO%iO=h$YwF?@t$65&Iz69}Xpn_87xjerNs;p6ZOZLkKv?u)hg&7$c zAjcr;iVDvePgf4J#5@PKS$%0c5S^exu+oZHMd|QtM2G`qrO%@VT*hOToD@jhYXa$? zaMH(Z<%XUJ9;>Ii$|`PehUJ-15C93XS>V>^+Onjy;q_r}vo%=n#Q=4O@SVdF8q~HW>bNhAs1it+ka@pe||wf zIc)Y0Wj_*vlum#{4&v}o##j&!Abwa2x{?<2t+cP;4+8yHd29vPwu|Ai`-q z_Yq(H`p(-1x8tb7bvtFj0h&DK#Y$?m<=Gw)Pal#7e$S1%B<1i|HvZ3fs5icXhQoVr zW+StPy_|_>5qSD|aQ2kwuELd}O25#{YTNg&#Q{Xfq-bQ1LI>0kCB(BUqELGKlJjIz zxcvN7nnlWTG0Hya3?Bi~bX;8v2vw9nz1sKd7N1HkcnKxW_5o^*GgM0Iu6j`faKm{G zF3%FTokQ&a6c5>X20Iq#uik3X8#ji+*i`YG9XR>p68c&?7mcw^pyf<#8B{(vcvl&8whNs4 zr^naKStOmm&12U}Kxk|qQ%Uq(Dw!{5WG-A1Xlk|c!jv>{gY@Y1zvXPIscN z6HN#zRTEMn)iVK|^JVuE_?uY*@d~R~uq4uJbU>3jp%qPTD1T%bN*nMtm#C@~6_o4y zd!*xWo>*+paIKfT!NieQSoVG5K%gPVIQs=z1mSEyWb0`I`~C=s+w$Qz3W|Z)-JYrd zx)25-ZmNo)dz4bkO-KstNFEf;9U+>4Lbdv>f>JF)Hf_DzGTZ2lnMP{A;M*F|9uL2m zs$4}_2150L9wfP_9|*wF*A84aDz+~ge8`vTPhiO55SV`FW3dHy)j=i&_`1 z1)}VUD^C+b*{XfyXu9z+K0!<(vMoeMyZzg}^d{XX`#0L)n zLwZzAAvkJX}x1G3K`DV?Eu4(%w}&6_t(V_j~&^bUx49cyzM8aBal;8&d8GEUQ9te}aV zTr*YjUR>Uw!Z3xt3!$9^-Pe9oajYT64Hzc}r=RXp(~Aqk>1ktnWv(mGx<9QguL)S2 zAMo5~|!A9V3aF zUAFouggG1|%$~Y2fZrJafm2BhSqXo?xjMfTgh=uiPb8cY@*tYTltaIT@QoqA7YlVJ zySeW;fSpJ6orj#49TC|NSa`>tj?cPbvo!q;(F7t+grZb4I#QEk z#X$%vc24bF1ybo!S#KA2%#-rlleq00Fh)HccT8*xG*@7t{7#QWgAdx(3w6N6fYUS9 zEPr=g2JZr*m!Cng6X0y0Qw_feKJ2LuNxast^zz>q1~2qgh=~u<0VL>YhN1|KmY`eR@ z46D;>K(9z>b%%oTyKi25G|KEusx2{UP%?@B!kM8#G)ab;5+@#g z!lj0l9AAP(FW;O>C*@2PMD65fdt}Occvd?+c%C`82sF{As9-{DnIBLhyckMdHf_C>6n-mct6*~1i! zEjoJ9Pl$OHkR;Z9@#DToX^+jeQ}+#8eZnl<;Y77wUG(d8`Y_n0rRK3zFQTk%wJX`Y zyZu<1PjO^1@x)pqb~W!Hqwq*b_S7fnHWS`&#Gk)^WCdd|!IM?U_G{y)NOiT_LKPh) zjP5I68<)8vlgS*l^eCB82cn6m>JO<1VJD(BzYeh>(Dn!#dG7_08qN)D4=|`6LHgu` z*03rN;Tvs%KT{VqPB`zp+e3NVCi=Jxst+IrTnVMYQ`=wfQ$mMd`rtE&5L+NMe`%&x z7PW$NgqC`)Gv|8Ng^|aI*6F`|XJ1`b1h?x0n2+`~i%YE)*-8SU+^h@JKA>#(`c{3E zA2k=Ju*>p;xvsqNLfhd_(YiJICU@SGF3^z|g-o|3)j>5YxK`yasCHUX{;y8uu)=A$ z>%fsuzYxMlRir|~%>VX4xd(oChwEa5y5aD+KMgk@YUcw5Kjs=WHns>^am^CTC8uD-i8sR%SyXWVvoIGnCgR4gM5pXARBk~ zV-$_g7Y+WG*U*&$JzqE+-27}68k8vLO9WFh%babACX!=axkJwey_x>{{yuxI-qvF! zi3?a%F$|-T^i|$^>fgmCuVX%VjXto zpt3WH-nlZ=4E@d=g7{I=;@5ifZq+jYoxJwetOPsw8=W-Zq~A-2WuLi@>;a^`OnX!S zeRcR}X9Aangd65JSx>9v2>oqW+Z+mZmArA$gxbhy>W_7zQuC!th%T&o^33&7e+o3h z8vMEwPOn6o#uhPK|F(@wG61%5m6OhRN0-u4=|QEdDwMrPU_~T zr{dSLBUV9lKn|8VBsl9csBBrsp6p(M;eY5#$iXKPS3w_Luq#zf5L*WFLv?md-|`Y}`p1_F&8OFDumca%fbgj~tCt%YMCht_apBvF@Q|*?!+Z#}V zd1%bwS~VwP#^rw8VIX*>7sEZw=sCQgi}ytB3DITmSZvAmz=eqzsNZ;@Ri2z8aui;`hTB?D*&^g{0g?xHU- z3D{-c6I3+w;ie#2L9uRx0PmJ}F*%xF_w{jCnsE{D;FN{uVs^j{G>SL3%LrvQI!nuE+gCf#%5!K*BsbCtm7XcdCUT0Is~@UV=pS8FVs)Nv_!xF*M-*VwHA>(f!Hu z{Cp@6_)yNYss6GpXff0uLng!2+O-kJrJhUC15EZ!=lz&lypo$;Hi2EM%s-O3TjfvF z+*Ah5*M?1Vs#Y>I{l%AXHN6;6C@e%dzo!N0cr&0336q3|Yw@8JZ5k-?YvFKxpjx=F zId&z;1x&Uk+jPH4UCn@cK}N~){FFJ&d$Mj;zgeBvoP^=Rv)oIrIhTkg5DOG=8MT>5 zdnJPc7eU1_oa9L^MM51k+!dshcm{x0_C;gf4j?f7IzcgMjlu?)tI!)Dl z89>8u=?e(#G9d9F_LXZspvkO#F|Y{|9$dk@EPmt~Z;XrUKXLY)ekShQ2MP#4f%? z-6N&2=prdDL@hg&FU827h3RKGc(Zsq%$w3-H8+se1jfA0c0_{1H4KposHQUUji8%D zem#bxUEEn4keSZN`}FD45t~c447mFBv+{YX$gv(w*>gxVe&{p}83++UB59)|gco@d zW;G%)`Kzx8s3I1e>d8bCzM_;|66zK57t(OQKNK`JQxR$ZUJfXSiBXrE(_~G}6>=wczwHS?dn(4G{crKPd zX>DML+Jq=jCP71e_JEM1IcE_+513qmKoEF9pW9Z`Lz07|%FO6_dBp718?uj*FGl9V z9B8au87gtHJNhshN|(;o$c!zt}i;-;j>f|P$k`acfZo0AW`O_d^E9Rwm; zJqc|@21g2_$E>Qv?9*Dq>d9||6^QJ1^JcpT7$sa=UMl)2MTyu*+fOu2#eP8zP@t1B z{MsnjkB?8%8QwX6%}4g0=i?JVF8WD% z>|Uk~=n^Fn4#v{BFiy6I>`-7m>u*+FxuY;Kkb!ph?!ejLVJBN?A^44o->gV#SA(JGo!eTWJm&R}{{dWzJX zi3o#l<_EteL8V%TN;T{U!^>GPQe5+SZr30NacjNl%3yJWq!6mQ%Sb3@?sdhXqHLsv z02cw*-H)Tcfp|0rj9THr%i%B>ZwoxE;>gc1`QO1X%#>^L*za_Ks@d5&NaHEKa+Gsl zMQt|1i~>q+Oy>!Zi(}8-R2q8GGdKy#*7B^4C!!J;trS@GIIe#igaM|x_4{TQDJ*%; zk{zbn{6R7z$4TV+g5t^6)Jt$$P!1qc?#Dyu(rjm=%Shv)Ym#Yb>;a}Iub^1%@TCZIr@c2;OY+uqEts{-RgOh*-S>XKO!S4uwE(wF?Bp0OvNNc^d zHXnD&4TR59#C~uuPDXL0D3RX{TsYJP_P}6U`h|9+#u@-O(g!2HKLM0?0??FzS9XLv ztMYv6aYPgGf$BEcwb5FWKj@uME+0s=eOB2pfs>uc%gDIh6n{RnB1_|-`Cd%?>N6eV zN$3rR{K#Nn5x2XX{HM!h|5@^Sb>O-Y#}`Xz-(nVp@mA(st0v z?;wp&KY5OTvV`&$gh`h9(?9|fzow(4Q(`FQv-M?b{Svr+ziT3QB6GW}HpFR|z51cM zM@A@!Gem@&p@v!9zHllnovlQ#+vD*2IXFussMl=4`y>G%rjuo;_f?O$iS*79lV>o2 zRd$5yQ^PRIr+2$q;TUG?TVJqHTn3v7uINyy5T) zLfs*U&-`*>qzLSQh&N=c|5yzo~l>Ztd%pV(v{q`(5r_eGM3coHrsVUaD~d|#U# zO8kyZ(P)_2MVLEOPeP-e$T|x$i6$SqnP?&cpY6Fb4LV?C$_e5`019xuc*f*+>9nu@UI{ks42Nk0!`VcusmGF5mkVvg|vgcTUz1IKvf-lUd?4A6r-k0yubSF+sbW zFNV(B>TEwfLS1bxX$HKJrh0SWZ%eq;Vy92?50 zlWVP~WpDiTF~qrM`rKAN!N%##5HOwJ6~7}bMQYjgw#!$rP!|Eko^+l7&WQyON(oq+}KsT)1xmqK;tBF5p^A8*RxlcwfMATbFsFUn)uy^G3Y>fZtgSZBTud7|W1J zwB?r!#RHB6@8am41}$*(8WX*x&) zEDM7^tdP=@xQ7#qZtdDSJ4~KXn}-Dbzkteq=G&%}Kkl&mTQ%ltSou z_3ej)L^u<+Lydy>j)TmvpHwhn5_ouZrYkQoQ1&2IZ%BBIj3;)Nx80at&`cfc?hZ_* zE}TDm)p!pfVs%^{xS$mmpg)}Y~bK8oz>1qzxfnc__ z3mW0Y2hxdFR^fa`d{9AZ+b*ky%}qh{RtGcpK;&<4BnI4xx|4>o7oWs4YcHbgKNsEZ z$|au}<62?IVOtcrpuXGX{MMoqA#+Z19THX&ngv9k@8qD03XwUI@|JNE{*yf^23NBR zdo$pJ+fz!R#;L?g76D85QvwTjxPf&MlrY@qY}~hJPt>HvJ`DMFAwnhic#oDh7Z9qa zhf~1r{ulPJces79l}DUA;@r(oPz|GMp?nKo!A@ruB%GYZY3p?*BE<*oE}DeL!3Bs!$tR7nLIZqlfh`B1)}s_(*UP=kmC>}5)>E-hP@d#u&+zN z4})|esZplm(hUSvtsqU%F*Nwn!wJj~)QPmT-A?Hq zC~*tlh{-O~xR~hm3{lvUGK(03W9$(n(IO!A*lU;pIYAYN@D5zIV~b=Ez}#5{O&p2X zs&!)6^MycuI|vSUrzmB%@4#4-$5F28Jjrk1ws8Yl7Na1p^1LkJYo`MU4*f_ux$@3S z*sA-|MP1upz&$phVr+#U>%{9A+RCw&vkp#zEe(oF`jG7;kA6>vwdPO;KpNRL(0;cp9cGxMtXk09i*=!Ek-5J0m=np!b@`KBDpFZVYoCIMoM%4CN zTT@W?I}NmWeg*ksa3XF1+p5nY&O+JK&b|z>09$yX?CDW3l`NXyEI4u3Gwa4aNNbIRa2R*E;%}*qj8se^(N)E4;<%w(xz6rgY1+< z#y?|mJ3W`o@zw+tmSX_h0awE_L%-)^Xa|y2*iG_^@niEvxjS@cbRS8vMTP_RoVXT) zz-C(^Sl29!1@zfcHUY0C<5fX*NilI7k8wgAHqf9(2wUlM!~(wTfKDYZDY#!B#2Y*- zet}hsy{}oZtvL8o`4dhRZeHGc+c=VVy9fR~7JMjXpF7ai-zTH|z2L7pS32THxMak@ z{G9OC2?~}?@#HH}%1|FHd{Dv>yUO1Uya>Ys7kRM27vN|Yo5v@%MZmlVzQTO4n$A#! zunWSLRngmuOB<7Fo~|%YzO?DQ+Cax=c+5u<``}Thi@Ok8q}1J!+L=a9Y%z9cGcj14 zI~DEV5~m@CIw}`;d4**ZpCGz><{FC%6{sz`xiY^xr<_F*CL&n>6?&=Qm9SvW+Bz3pmp=% z>Y!m<=vbgq0sb2${?Xfb8y89q#bV&!Fe|#8bTgB>1GrF1=uYt%antB9A9z_|w}J;W zl;@I0t|zh!GEt4xiqyFHO4{FuVHC2sRAAi)dr9YIc86th;~qInTC+&IJM%4!@|Uj< zL2zCCbP8W(vMuKxo~#-Z#hlin1`Lxa#(utEYT;XrgS$|%!}KcD?aSR4stzJ%pzcpy z%?8^uC%*JR6RN8K$g{OFO^5qU6b%1tM|k%b5ls--FolBqU6>N2%FD!V!0POZVTV|v zm$hd1xqg@pmV;?hC5)}f;WJe)v?^Eh9(9}E!lf-o^w5Cp|4=~^kn2&SMo~U7@ zIRlo={>Xwt_Ka0sNqDW zEx-M9RP>1M!=1UuNcs`VKKQjY`}d-bItOA+%xw-MU?hnDL=25eCvJBdx9d58FM+NY z5wAzf)3)Bhh?>n}17LG|D{piMV@Q!L!0zk-r^7C6%Qw+@CRQ$6wDzPfMq_Rh(r_E<%`?GX#JL4B6=rbN zP~6XLi05$8>^gUq4KLg$-3xYySrG~wSqK{i;qG$;!sciwnuLdaxoB|9lZvbU(%IrP z!RAJYRq4%%MC5>+a9c*QMkNl@j?mn|W^7#G0ZUo2Vg6rxnvbkFg@EfAERAd6$w0Ud zqO4zhF`L%#e#b2jy{&Nk$Y(@Id)bm*G!_LGyL>3Q$Tp(q{tEl>?It_z$a!KoC5S&! zRRveHf;S49pfykxHlUs*G&u_$vN$U1d3Kav=}gV}%zY^|JeMn7R2l9-zW~oOes;I# zY=N%LHplS~%ivh@XJ~n`jNC_nYAkrMooEG|JtJTpmy`WCJRNrZ>`atywlskiINaF- zHG1tW^I29xg3x~XexHW_e&mz|0`Z?@<=;+%9aeYi z=34?+=dWKy;{Wr){m*>+dEvg#ou3)^eOmp@xbM*KCscl~5B{ui{}W(g1oXeHaoRDZKB>c7BIlICd(F+AuH`{!iZbKn`!oOBM@ZpIy^MY_&_3+#`h>t%;lH~SiEt^1n|^Fj$p0NML3;-s2pDPp?ou3w zOF6fg997`oGazDy$<-_P-5YtshzS^M7yOyYUxm>)~tQ{*705t;qiqL4rjNl7$; z9}oGlL?R*uZ2!PtpQ27}u-#76DANd(7KSPCJV0>TJe}>A>Q27}uumV35;r~C0V0r5i>;<#w zRL{Muy`9N-x~mYTnNjq~$K7~&cnsEN3+i+-bn|XmnVU~$&6oGMh2^*`g~2`Wcn!+g zc1v99!pcmq-TIL}qjQUNzXYlbyYo;kfUeQx^%Z{iXHTEbbmyl(R7EetEt=Li)pjZ_ zuxFKFzpdQ2ad95G-fCKkpDmcSv~FV1SMD$AgS(2rtrJWb1y&nM=1XQiSw1{awlirO zhu@5jge^21)@n8J?0M2QyZ7kigIHX*UI*}(EIK*$t_&&j!zZdcOU>7yeg0>g{nst= zJ4)^N*L#}yahtAq@9^hcd27b&3?jRk4BT^!RO1^ zKdBr(r`;ZGxe=WQ_X!G-*;u|ubpMb=)0sd(8#&xk%3;f8}uE)QI4i=w%@2@0s?5ZfmmLl2{vhxO+MpWj)WR1V|oVV8>s zH;(I=*!ayT-8S#JuC47;R55g9G2ba(1a-xKwSw4ph;B#g)vvC3gnrN;JLGmG{ zKsUxnWUCEO(^PQ zf%F|edIEN{?^(qkkNiHIh4YFPvvh=eH|1i?`Aep{e+!_c`*Qws-EA(l$S-L|<1?ZV ziT0CY^)B>TN-=@-5`0^gSUdIm3pOelnsL@YqDdZo0fMVHX*^gwcb;_^;^w_q1d_~$ z6R$e;8EEF_kgF|$0YQS*y;GX3t?mJ}cGy7lIR~&;cG06`Z zx$IKmF|b6{l`qKDsY9r^1AVri_a)zOmD(K< z2$ju#6IaRj*1E^B*Dv{2l7gGIQjhr92#{(fmRVQaf*43uZS;(4q~I^Vq^}>vUB1N|5Pqg?vzT#O$U0Pf#A5|fO^=UCm>ZHIOUTJrvqnY8Rb>WFe(eO@#?5VhVNA(FP>f9|6X ztB1SXOQDsa!Y8VXXBTrUmJN4nw@E1q<~u`aJ=PdywzdQ6vPxg6_+*6+_OHEj-D1&& zBziR~;e^9}2!#c7bP~d?@d3{rQ7aBG%2bP3%4)$BJx+ zUm1p7rY4#=CbIvM41P%2hspN#{a3u#FWZi=r7%aXi2CpcGQ`wX_7d1tPN1>>cd~R6 zP4so)6cS_Y`bkrZ#{I)~@AE~9c)p)Ippn>^rB||AL?>_L+6 z?&g4TU!hpXAxDVLOZE9jxMv9UK=F?x@!?uTDg3&pspxi|TN;PD1knVy%E$VDUK-(W zM}Jq}%PBs>&yQ^VKO)7hg2&H{XrgTFmpLJ7DzARaw;yEx3QP$t8S;_vp{5_){=yzf z=taoMz3%vZ<};t~V;7=w5#<`v%t&aj)nC0_J<=86w-EiEm~5{?{FkJkz$oM!cL*b2xIh~qj^3OcLPJat=#+o$h< zsSNJC{rQR(0A?6it+HBTEul~Z*KlmgAn>Xau+BC zlX~1) zpAC+henN>$3t)lV7$%hxyv(#H+Jj$GxjittOXiaeckyYV${Tp? z(DRmtN5@0JZp<{!GskRU2)vi0k82zIO^1@-N8Bt6bsZ>nFc{i7y9tKWdHl||*s_Ls z$J$W5ov?mE$o=N|4*`(GCfKD9asixbkztcU4&8yGSiio@TjJYvyvC2sakpZ}+73 zoIe<~I~Kopi%ESRw}!{*^ez%WHSs|~FzaK*(+DKTz*xJVta zdLcwo_->?MMU}(TgS%fVLN+OjU+PUCIvDjvGTwOjrD8S7s?_UUA_vBH^UgQtTQA3y zunI4)N{sXCK5A3rEiIew-(nQDdPe@(*<(;HJZl5{5LVGD^nK8!n?sf@67#XnQ;~j@ zoJJ=0lQh(vzja5dL0NVEbtg?Vor}lco)dn9eG*1xI`4tSE85^nVE;=ccF}=ZS-1Fh z*MyF7P&_`>ba|#JA5&>nC$L=4X4~^tYkbZp_Rc5zJ$sGLjeO}bcAp$QrCt_&p~hF_ zK>10E?urmehLsOI@_uiYgGBJc=Z0(p*V3PCtCYIbHi6~wa_{pxxk?wcdtWGrkiUxSNuKY6*!`Fs$F(EK7Ort*o?hna zwXhZW7AXr!onF@S`1O3W`zUaP94MTMCQ}jL!c9DkuuFFQfffTBUmw=%CwmB4eAz6x zU=w07L?flM#fB}VGI-?pbg_DA>tNuFbN<%a@xMa2Kg~^k52x*45FXEOVHhgUi}NkD zd7zh`Qy=OoiNn8p*?(jp*m-$j@%0rFL6c)bo4(goeJAWRH(w9!_B?E4BiGr+@9JoH@L>@z$k3lk?KZLf?Hoq_wTnDOh_Y| zfLt@*#rb1H7P9pPJA7;Q&|I!q%q&$w4S ze7t{ zqZb8g(Yx5~Vf7$w+-`N@nQ5s+)A`Xlou^KWq`2X@)OD!~59V8??|wL)3^!i8F0FAy zV%BOj$aHP$Nx0$Nqfdgl*CY4(r&fph-tZKyB-DNY75@|^HOpAOxS8)tNK=tfN|1V{p%uP+Il&aOj?CAz-?#2?reQpA|pi&WGET%gJcy zitlI9IqlEf>ifo0Hp$@ablcXwU5yp@3OwgCyEyb5(S%cfG!tn^o+q{4J~YOn=*DpM z7AsT#+v}J5tf|E2)2z>Dh%XLMMY8|`1kj%BxRz}{D+YJDz#IxUa#5L42%9_!UsiH? z`Ky6-{aw2nYaiL>Ii+Ns$%7iqINK%R$h{T=MO%4|INdTc=cEfI1inytPK|8bS>fRG`FJsdGS~W;wO%@*s>D*;SKi!KA;&yi zjHaf^26C?qCUC28)}ZWI zkZy;$*pq<~r}sy8m(LTeu!*}2?D6#Ft`+hq3;-m+Ry<6O^C(|>?;|%M=|Gp(y%@b` z8X*E&$&D%fVRAu(mRYR5ug%j-nO;P=x5<^q^#h$@ycw9f*U+fV7gX#J z2`+u|_2=Yvj`Uc{pmv~U8M#%c=sgbhYpvT6Ki6a>;TZkP!Ysp1E{zpxGtJUwqSfi0 z_X_^c2Ql-@o(684l0j@V@JvYtCmr z&$H%=%9!A_9(R}^hZ!H6F26s&0zh=ae&pXD;r*NT_*EikKU^PSh-}Ywq@UV{97I`w z(FBh1l+OD*h}n(Uw+j|Ehy14-5ci_`t!A*d`|}kWG+%zmD&#b#iWsM^BPDd>vtlZ& zV%O=rmP*ELrIr0A{-t|{E1u{^PI4Xlr;iRF&0JGv8YUh~Wz=y&OPQt*H{8!J`M7zo zZ0;wJ2V{CX@21%=862+eEuQ%gc+5%4;G(&kCwKw7Jpvy11J_c){2vaFA3q;b4-RF0 zBH=Y3b~$PcRjs~UBZhU+?eGqiNGgPlOBz?arMGmsll;j_xLi*&%{+`ekeEH!AslK0 z3NpNBUFea@veGqlx9ir;O+=6R?^?9H4Zx*2(^oK8PUN*;q;hbqjbs^)fK7f1xLC!6 zo%34fJ%DRD?T0r$y%XJ=ys45Ue>qZTuFB1DBjK{!pPTm|X-RQA8H5htBNeM5pxv1} zlO73Uvl)`5!Ev2 za-}_9JW*~csEo6l&Jf0adsKc=&Cb##g54qXp9PPYmE`GcIH0~+P3dBE2{HJlPba_= zW)v~Bqa?8fR8k&4^xhrJX3}=rJYh2@G<6ZSawS*~4zEt}I6RK$DK;iMuQVpRs5CDA z0E(tNs*ceeM>kS-YVIUh=cmAAy}N6Z5vQKz=qtO4uQh8~9dGEnzJj&{fXb8JPf{(l z99!w3=}Sk;N~FR8_);%~?jJ_cIi%M*@WUZ>bOUnj6JTdcy*>VRGLx@51+ZfWyngGL zSU+CSsyVT0Z!Uq~;xG{Yg<(psJ@{I zWGxDiyqCmOSHqcJhKCMfHTLACvh2@5Ax9yaj}dgA_jz401SjVxQ+_7TC$=C-4CpvA z;q~WqcbY-3YbZ8H8P~_&Q0;ac@ber{#ph@-;l#{#z=5O)?`*>EQ?{K6w#&k{l8bBi z-$;@3S)b}up_UYWmp(mu1126Ky)hgNFgVhB@a|CF3mdzh4Nm3p$Rv88vKv~h!3@yS z0?YOC&588KI|RdK7=laDs&^}%MnqT4IHN%SB*SN;5HEdPkX8&Po*V}d_S8Mev&y#i z&zG&cB&76QAKrV6{7JaDQw@-2>w#qJ!MaVow3~dA=zQcrk3y20M2E2kgv+@d@l%Sa zh?rgLeob_B+W0MTDeU8{$Cnf6YY+(TX89yJ%dtapA*u%=yT$Z^FfoLI9+Z7fSQh|X zsLGVTh*ZjDZvE*t;H2C)dhnTg3lQ{SWmB(|FWY@Ep|0uHJUcIyf|A=!A~x-ZIIAC3 zx?3TVg7y6OIzn*pmp?n`K{2Wg)NSweEys=~R@noZLGGMxYm$VOV<=;f(msUS{?NIZ z9oK-BJ=lYGZahqUrqbV_P9GmpyTqcQ`QX&4L0YkNhm%qa zpB>^}V5ewf<(s`FRwcJ;!;0tkU0>FT<~$vcg;xr?+6-uQZAuQ#x$-EAywQ?Rk6NOW9LBW>Wo2D$_igEo*_kQw z&o46?682`nec;i2n9pacpB8h%_kTB`o(&2Vm>00X1+!m92&8!f^sPpV~@ z?X#W8jI(hdZdzGod}iZJOo|#%3uV9FKLq?lUZ9Z7PdnS#5xgr}bIvQnZ~!0#v}l5B zyGx>t3=hd}jO6SlFm^oH3=7`?u?a-0#c8W87?CqZwRQTE(kr(!-`i2whM8Zc6YMuq zQ(6psu>d!!wAU+5Rn3JB27bDOSA(8*363{iqe=S)!1!jtn0;Ea^V)naYnYQ>vE3p$ zY9QUji=5g1D9{ZI$_;V{JYxGvGFZ{B5jvhU0 zBRr$g`x%a`UOvxBNIu*dY|i=qkmRz0&>Tb@@wOK$#vVDXl@hX6flD4Mww`Qkp*aa1 z;44g z(uSavGhNM8;8Lz>*mUi2Rdz~8SqzJo3qYRtfCYeNOoAWoi;hpvzQJ>jvn?>hnlQ$ji2p0`j*#Wi45E@5Bp_T~-zx@#=>b%_LbQtb^nHrsi zF0aZ?Gls!YYpQG|M@KLYXb5c$CSGrqFvHsjOixupO4}r2AX;_ZrDAHGm@Cgi`03iO zXfPV-hLAj+HBEN?qEhj^#BwZ{4-Z^nEunq-l1XfLW&Urq+BBsCUbbd6T8FFaiHyO_+kwx3%Tu4! zUu^=3k9saKw=qZKGUEdvP}J`+`9BGhf9xNcfX}@SOdtun=XQ8Z3}#j4!Me>KV@wsO zp&w+9Gq!!I_Bd~fk=HKoA}|jM_yNikL|NG<(kMi|>7iGM*+zI~huue+YOC%^XAxKZ z&(Manv)%k6y{~VT`c)Qf(iQfA7?+akPgI>hAT8C z*Yzl(UppHfVmNFl0f{m1tkHM(@mz|}Uri>u8#+P}Y?|ac4H~>;<8Wz8`DD%mpbm8m zPB5D8Cx%tE!jv_pf4kER18(xm`j2`ZnkYK|!Mr8V0t_)zGohxfa$GN;I=)jd^K~}s zF-gZy$x#m68im;X!>wCkhhu5C#Ye0LPXX04S!{2r9W6t~7a4i0c41fU@t_$}Y$aT) zbU9;lxvotmwCCY#kz+(@mO_fs<^Tn?$I%WwApN4C)}FUo>o1;;`>T<9ZP{(lMoc?b zxY!4}?E(FJr@sT9RSy9~Jb+F#n~_XbLElhQDACW*;;>QCqp#^D4&fpgQyIoJKvmYM zJD|IB0v;vN9@1Rt=Eo)id2paSccxWj$O-gBxyG!*el~&o6ZhV-=gNqzvKSu!c1rTN zJbnUtk15YzwBVxX{6msFP)O64tSCHpSIrgSr{96ALkhudl~Y_>3`t+&yG>G^ke(q5 z0krb*Hz8*iWOcJpQXX+ z{_+C-hFRYPU!!`r*jL216XJ$?c6~huuUUWoa@S^K z@XF|&N|v%cvx#_s{ME=0mmen%{drjTco)8 z6%6EF)X=K{RL&p{>U9UWKLF_O(N39*!5~Yua@K*~3(#=T@%^>z1?J{pa{ovtV1F=; zH%+O(V$vP2XX_aqh$nh_v|rlYHP|y&ck-fa^^Xdc3Mg23*r_%Rd&%JDL{;>+A%KtV z+OiY-xRhguk|9kW)`#6EY<@Mxr3K%M+qC`3LCCkfo@NGacz*_|G^;474O6uS#Xjpy zFx?amVul3i`EHFwgiFNnv@KgPnbQ%)$H)1dKGDr3OX(WK?HCO2RgnUhF}Uy9_!VhZ zaUOgZ8NIJx$2gE>strXT6);W!tUX#=x7jVJ9Pw)q&$dF znCS6vB)vuAG69B8+O4+yKDJc-*KQCwot2W2;Z;W`g7>ZVh#HC5WGk|SR5|jbWHb3k7NH!yR(zse-*&tYEb5?dp2@Si& zSh*D%=_ls)`iu_Bw+J}Z#`69dB})dzs)O=3N{vER^m=zhH!@@NgUtt=J+ zxFsUmobn~xS80Ex<&bP*u+_@hH1Letc_ zG_a4|c^-OA*Sn+VXl1iOj{sP{7o#WR>o|C|M?{mTN9X6ck|?N<&+W&olvM++R$ zkIX02tkO*i)7|VYm%{p5YRob_xX*J80G}$+0aa=;kvIJlgsx$Sb3-G|4jbdtR(Lo( zW}F*au2-IHe)zk|Fn^0DQd7R<18VX{ydAGUMT_H&{ zom9ls`2~jHO@+hIJYp{jQ3E3Y4oWucSltH8TJFK?&L!8@4#5z*YkHM$`wSI@9lM>~ zC%{wH%D2$5PVia|=RxL|!Yo5x907#6sgeD?9%pz4IMs%}jk#j=7WV^sMzCZRs?nDU z&Bvi64Xb7(WCiya!9cKFTFMT00Kww4QMp6NSMxVC+CLyCf3T%z0x#$!cYvU11XOl^ zO#z4$+xF@C75o~RYKmfF4KHgz{cMcc+v!3xD_Auv8C1S;$i?4s zPNues6l~Hp*p$8J!TVZi{eUTFvdo_;?&nQE%Odq#_Sx#@)>uTAi?Q~>eDn%1^iPVy z{S;B!4V}(<{(+8_dL_|##oQBt!cM&cv=Wq}=-CFs!e7PqSZ$<8yG+ngzg=f;Chq(S zyENL88v=yAKqB_;{es_iiZK9}7%)K~Zy+{D9al??k5ANDv`P@5|BB-bk=I7J&o;&E z@~AtDfy;Cc3&8y(2#3ATIyN1MhO%J_iBD3ZhcDKCSb$q7+|eP$HX&l5H(lq0R_Q1C z@>FlvF=5nMPgQ{O9}leqZk8oLqp6@WYZtqA@Le8yIENSMu%sw}*DwtacokdZ#j% zycM?I+7a^LSQ9+-V+``=EV_ssqz^HV`81tu@t$zWh8pHdjw^W!U3+u3-fPt#9)Ph> zM$u}6dyIDc{3IW0!fnTKLIq|c0nNky2Yba!93aY@;+~4B0FMAiX-W)I(&+i67XyLW zvfKQ?VtoHJNR8tS<_c~=9z>NIqYjvl61a#lx=Rj@&vHO9aizf^-B0fGFgqG|oX@K#YKpmHj@0A9>IL_OKXe+Y zlb(n_0>v$O4T!^Ncy(|*Qa^hZ^PnGfX#u?4td6rh+L(gZNYpFnc4ef1$L&Pf0l0~A?qCjmToRK9vMvz|u22HgLF^_q(XXmLSNEbSJt zX%M{4RVY$?mU6lFbU6N%STCC2R{_Zr7B7lLYve;9#*dp=%o){ z|LrL?rs@`iD*0yhl>kQh5UGzpWgi)*}6 zJxFuGTmgGG3!3jFEu^yp7y(~^$G_xpwT+ws=NIt!v{drV1e^>LGRwQ(+gV}oJ_X!v zM+{sOXno**ggMzuqZq(E{KraEA~I$zG}L!>ix-R^Nd;1aZ}qWo?@y$=#H zuCBU2y#O453_YxyxX^EJY@}0i{?D*Ac6|2Y`2< zKC@{}YYHT*FpGE@|Bk%LR#9wya*C2R7YB2N=JVu?Iy;64V7>1dDNc_4Tn8qUWGA^Pl*1(u=E#8_QN`LZp5IO0cVGT>np}a%3_zae)D-d} z%xdOi)m9Uud@V?O@j3)Yi&?=)WmE5jpIUB@t~HTYw*=#+$k5Hd6vdA!3O$I97Jv)E z(`S(v5s?C`nx4A46Z&fn7puT{0>Vtl>Llnv9jQf7C(uOMO;_EJx5U|X%1_%ZiWG%5 zb8fjWPodNZqJU1*2n-R~XEBf4O=j%YtpE#=>zg3;yZJFS2kfJW`36FgdQgPO%i5AT)>USXE=~VXxq+#0D4kX$Y~>II-nf5&Qb1oMr*?3sBR30S7N~9 z5FB5jAhd`1fi2ix`OfYt=MwM%@W01SLUm!2uf}99N z3G$u*7b;x4uDZX^V$PQoI29&=sDrN{T{CSK^uDEWtGZ&m!{6cHTOfPKpfduQgt?+= zMI*{ZJL>oNE!NxaC@|8~)b&!vAA@u4lVILFAgJ1}rJOqX< ze%82hH0T#&g&nmIzc8OU0K>SAd?Ghs+xqJ->1=6fX>wM~H-v;{qeh|$U>nAO~FEJ}#l0JpyZAw1{q%j!=*kHI+?V6i(e7%4&) z)h?Z6WZ$1@1|7>wd@O}cCKcJTE4@G)B6Vn6^pB9P4SBr|_Kk!f??7c0qT%p_%#Xs^ z@{EpEMgLwAsBcpsL#m*2tAHcprJ}CkoFh0xk?g$XGuXD!UjoGP8l?N9b`yH1Scf{W zHq6|Qr8(cKxj3!(dCUh5xK@N~Mb*sZ&|Dh- zOI4=HQiYu=5S+Z2n=~baoqJvB1>5l5ukU_TM+vxU)BV6O3aUeq(|2TRyuSU}FNE=j z^b3aOQ(#NY*sS%%>IH7v0B)zOCdqv<*JzP}Vlbc^h;^4f7#B918H+2u#YKQ{*qs!0 zALwqVy?X>QA53h&6~TAwfy3$#pFqx8v)`YLciE?4^^#mov$g=bu}$4($mRr$h9X{W zB+P?iuep-QO2~x$jSgIC57@s8C9PKF=IP3pX)lcn<(EwZ*#L`;F!DX7z9$!#?W7Fc z^BdTfXkZVy16*u!21+w08<1sBz`8^+Wlq0RSLX$UE$g^L=isq)cCrAlhYsSTXM&do z(=dS@y@NYNa|0YTK%_H?k$uXQ^g>^lB3UQ%D^EN(FXj{XlJ|smRr`KzZAB_i>fsXL zB3?3XZL#?%f2phyiY(WB_W9#o*hqcKS9B*=XJ_<-&kIZA8Z{=Ir3(-XBV^SG?Ah~1 zLC4i|@0RTzrhRv!)QE_P7#4j-EGPcF!{#oXk%E~c=_;AS2K5|W!=dp5=Xi_R(fNXp z7}$?6Ft3YaVBPiltv`AzKf}NrFFe<2rxvfFk;v_g${QjI(5XPa z_G8DTJcU-O+;W0rVTc*8if}>Ehf2IdlALc=M=Er{C(}Kfjn8_zT}4E;9D|&YP{i=C zHnihpY)XBEv`J!X%BFXbd8DM&-ffwPn7G2Kr5n6K4Vfxs)IkE5%^O{}TEk=s8u9Fm z3^zXa=$dGA_bQp8m_p4>P1=?yHnf&=Q3?z-%Y)jI`e3IHk*)118x{iu$bHqDO7{+23-N}^t*WQyu(AW}Lq4Msk@mm1ZBASrEE z%`s4&2xnN1j;rgUc$f=vqba9GQC>|fIjj55*##qhFB)6=#l=rjji*lq_73Wre zTwGjsPvSrU#!m6VeC3ho&0cfEZxP@63|oYTbzLfi8eLEMBAz$?n0jm=@`sTDmggIY zjg#AFBO9Ah-Pe1E%!g(wo%4fCxo|V}NF5eQ9W4f}MuCN_NCbVjA@o%`ke6qjH&3|~ zqScTG88S7dYAU@*ebdIs7_FrFDbR;j96nQ7Wl|?ebbYC5cvFa6(2hkwV63G*#u8Ke zZpPJ%qXBkcPUTW5$yjVqFVwR6_G{J^Mfq6}`AOk%+6R5#0^QOgt$e3LTeI%%0bDgA z7H!g$&%a_r)rrC|SZ4%Q4=Qn@4i zaymM3#vW6_;LO|yLi41HFdg4XZ$)(crovGzPc<&s8rC2 z`C+Y30=NRT<|0*e!f7M1;;nQF<_BY?7`X0KKEAN!LM#p*W!24#f)j!;jKV|}6_rJZ zj_*fzB`jF5;BA~+B%+?P;hSO`{i)S%i{suO{J`ElJnIyoN)?lx=S4E`gU5LSFV47J zsJGoo4ZX8_MbYN2nj7QkJyH21Wz-jcmSp}~Ez$epULMaccywGcxv(6PuF0ohi{5^B ze?{wp=ff^XAwRsv=^`;MZgsx5bH)S&i*JM$!qXf?hf9+Wi1FCjRpV^Rk27SD7XP4d$W&2hZHs_QyI4 zScJ?C<@;{*wvUPZ0;zMz4Vs&1QkHKJ6(6v#n<+Up!dm!6bJVF(#|p{yy0vYR~QN2de&ABpD=k&uv> z_9P)E3pF5Bi%>LRWszewVmz!}-D9;`E7)dHY5lN`Qx5pkUJ-5;ts!Xd!ubck7&v6_ z>lm6{{3bd?uZCF-KL3TVImLX$reqHoi9YV|!Wf``P&fW#19$~uVC|Egz`raqDw$J@ z%X$s}da0<`;I?Rf*4))4w;L8ctOZvpjmYlFavo5-xfsjBf~g%AUL=vr}GaUS|U?Mp1{O9Cl9kFx*}{r}?=#lkT|XvLE%9sf`(uQ@$~5 z`fVax0aX}<9B;v|*{VYy_is<1;jD`@M;fNc{c&uj?%x&nlJxTU;KhuESjYGrc-)fW zc|ghCNgUQ^n}8=;*ju0`bR%hXmBeN_mFWehcEDyic?~Hybas>*#(Xbzs4w8r`Nr|y zYUz@Cf%X7-j$6USSGlHScbw#gw{22!^)IiQ@u=K!c=2N4^KANVAJHCLNeUs=*=dt3 z2}xW40R#(sB{p_c%YHdwVkP$ctDH}q{SrMreM3^jmCWBS<^SHq#*=2HAjCaIUwD6thVbv%DnHn4fx#2+q?CHnDcVeFrq^d2itgJ}LMr*(a zzFD{i-@cow=gxY}&&gzdmIaOs@NoSipi!!M8j;zdA>z41Mct?oSD$m$tZZ;m9IjcG zRiIyXTBaZ+gPK0OI9;#L*Q0&zMHDUKin8GKF{KNRFB>m~rSN)KEaTw5|KkK3{xntf zX0JUl%Xyls4J;*-S>31BB`VZ9+DTxegM*^8p=-j4hK_ED+H{0XqezcZ=sZC|&xPNE zPW}w?CPBogsJE74%_Ib4v;BpOfwG<5uL08zjY80)Wcs=5d7k7H=ud%>L_iKTVV}~BNJ`q0* zyZF6PDu1L1)Qku@eOR0;gdNlUM}-O;QWF*#NfT5*GRu0sH!mnYxAAzbY@J*bxmNW! zx`AoCbcwJ)w~md8Nqf5VuZ33EaUde)cF4$Vi*EYfSUoHn}{*l=c7N(S&o4fQZ&{2?0^nC4rtbY*@DfD#{RJPhgQ#X3A z(x;kNk|}AY#K!Uoj6x{K*22QVwgNu+`|pVCmk8_?Y*+?AY`Q0Aw{i3}%#cY9Zuoe~ zdIwZ}0GWKQP3WU2f6~(!Eis2wX1s;5w);d|s1hq2y-{Nq7M^SEn>TEh&rz)_uaT@8 zmd&ymFWHPgAp7wC!`0>6x>{O)r9#)T@!OpfI{kuM!U&Bdv)JKi@|*5E#h%~5PYZJ| zMC?Wpvq7ShlOZb-5s&{k*+;&^y537$A6R(1GX=wHfvQiX-Ne#TSJlDcg;7RE&!bZ@ z;tw)D$l~gkSY{Rsqe=;pU)4F!Gpm_S%c;&OMC~l+qpeDpSsxq>9kGd=a9fTmH@_Xy z2I8AdhelTL|D6ReRcv1Y3PM+`h|P@m^H2&jGk3`~9d&hzG|`4e-n^Ab-sTnyj8lLx zgN|+S=?_SrWXSvV@bH3j7=!7s3xF+|2P+JqQj!w1^g=CC8gvviCc%xc2}w#>F{e4B zz2Qxf>%E|H;&)hx4Xr9B`QybC|0V}|61jBMjGGMNF}RZ4AeI?0yfZQuK=yII6T?P) zdK{RFMew8OH=CUQ3h`GiHy(+{RM$&+u{r7~e0aR=bVIk!Dcz!{p5liX^Dh*@fu*H^ z@|MVoj?n%;E+pS>f(p;>B{Q9JFI5(j(oc20Rt!5lB0{4;8x8egqQG7ez2bXW?a(Tw z=2-vrRKMA=HGyL5u(Jk#mcxqW@K~G%7#qcd)1NvBt*6K#zgm2;8EK&Ru!xwKZBbF=oF!6CtQ_ z`;QR=LkMWL0uAAWIiRDs`lF@$u9sJ^*AIaiuqvGbdt`hzn`0hqpmF*>m+9{>T`sJN z`N!*YcRLCL3jxoN>2w0Gk;M$Xjy)~v?H5YXqxbdQ&y`{T;$nFX4@Y-q4oRL=N+g7+ zSqw9SmBUF<-@c31@+5s?bd=&b)zjAIjONLH@#pWz0p3woPUB?!F1DGzbTRl4uc_ZI zZ`FZa=dN4SpG}yzvL}7q4%*+nHIbTvm22`k=ldPW1qCcRMFqdtxBowjvfvE@gW`2m zkUWSxNwI$1>$Uh;u&wiH*tfeqZ<5I`w7cQs1ywiG($Z(7%NPm%xHQPz$HZOMzNfh}^ANN82=$oN>zfeuuNn+J&_A@z$Y1Qi(Tusd0s^Bw z$bt@r2Y@-z-t5SemD~Pqay884x zJG*{WHSFT4R<~e8fmX#+|1%uCl!kY!a5Ubt#vk|Z-&Y>!F9GSYh;-rB{}YeDgIP1< zz(YW{+{f?y@sIv1%DfFEF)*uR9Ulz&{P`06^@QS3Ih` zkV`r~{>>czKX=Hh_{)N{G@ZTqKmW_`{tp>UE;Fi@pOW4mC#wHQHIXJ@zhqXSphADV z)&Ap42atgLU@-hfmG}=M{y)Fmzr*3L@Bi;`_*dBfI~@KU4*xA7{yQB09S;9bIEYK% zO)UlgB%UuWED%VHFzICXm#7A(F@y-qa$&X<>%F*A!)@<@H&FyRMB$AV@3qi&sBfL_ zWPi(643uriPd>EG=RuaAGtGERv!yZBrC+mDu-nvA15bg z|G)qj7uQYE@?c?Be=0$v&cY`#IgP`UqiHW|0`R$sMKD!==;E|E+_T*-_GUT*7+aI_YBXhbst2Dn8gAnbQ zbLkK5gtHW;s`KP00pWDKXYlD$=e%6c3f zV$Ui#%qGZ)9?{9&3#BU(j&N9%uC9*t{BNuEKmIt4y<=fv!HZrUOL3Y9b7nmyl=Z`V@^00g%pLbkj6h8JE`g3CrmCg;Z^XVg-m@QJU|axN&cjGhXWtU|4Zo!&4*&(q@(^jkh! zQTFGMsVa2M`k?Jjzj4w>fPeFNX7Am*8fG`>)Un!HmScIdB2cgDYQrsC7KJk%f~L5= zT2~|@|f7Q0#Z=+CrXJLMe| zG17B!8T2KZS|teQYAi}mwR_92*Tz2)xsaOeZ0sypXIvW6St?U+xz=&Yp$3 z(0C#Q(EE(v<+GqvkG@;~`h1Tv2HgYQ1Y)Ug=!wkuB)VrAHe<)5S@c=cZi0+hTks%A%r_656gl=zR+HX%dK~jj6gP3}d`bqX7sV1Zme;4~{F`amF2vYM(`s z8lUBPXnzR^u-~!$&Ztvtek?PjQ-+qKFxS=|pYSt`jE#-uw`yh?>f$UP3f*m53?b85 z;_0h&wvbIOY9c9JCj6Q2RN&jZ@Tt#`JaB!wCS{(@r?NyQxH?3_6~cH)z=GjJc|Bg= z0jFK%ve}&9+Z!1<_^cqdrl1JY(3jqWu?GuKY}X(an$_uAv#q$f{`i$RRxWDm8r~+l z@<&5w3Yd@@N3=Z}Zhv|%;w^6>R&?ZDoauQ`(zmW5{iWPeOEZwY+R<$T^+hT1zIWHU z@yA-00^rL9P~R)?8Tu*r)D#KR7@k#*BElrN9O@Ee0!%d|dRRr0%d7c;ZE5oL7ypPGzeQyl$e7O9g&+78UP;yHjSau6(woKF#+q9}bK1=sPPdFvGc$`$&!R zP{ND%)n`y10wO^d9X99g$tmUK;dw%($g`v8WnIhA{xwC-(Rb z*8eC6yU$Z;ZuW9M*k{Omq;#_JqT=Ff2V9#qkZe}_g;)8!fjlN?P>Jup=9mIWjy1p& zD$oORzUjzT%FG4PV{vM6iQDH8HK-l~TG6BCi#a7!R0qcDJ^gek>mx9K4s_91YiP%s;VY8_9f%MHI<_pYc)Q)**7Lfvw&&xS8Onl%c*bce zDY=lYtMByG>(J-^1ZZfl(gRlDt#1<*4(Mt7{2gKAGaS*+&pdy zIwUQ*_K(f3_zmJzTAJ0SF`ok&+q&R7ou2w74Z{Rl|9+s6O1K=Y6w`?9EsyOHOPFU8 zG!@4uMc{AK^iJYtUL5VQ=W6?C>YA9Si+{tHWyC#>i(fmF_^9n3XZ5&q+v#e8m4ht)Oc$9S)Q!x#s3Mo7z{nOw#($mtjYgebK z*EKsUyLMGB$Y}s`1)%AH%yT@C?0{6?!}T~;J}k8~v0oLz4?)ZQ)l__Q8(|(xw+Wn%Jn|%;bZEU?=F|dee$22KZi8Ei@ z9zP(n7_r&-9?4^UUzi3_lSa*)PgNaMy|J9^z6TYnF)xy-ez?+E`=Gk&a4*(2Kw$IB zG2~)D^h(mvVRBN6kmpV*d$ns$?Ca@TM|w|sBRnj`Bj#4y^O7>8!N%^??bPquUGihW9!Bwl?sIty(-Hx2hPK(Oo9vQTlB zyxOJ5zdm~7h)q0u`eF~-aT3bx@tVK)T&;s9Su{B!*}A9v)iB5ixRRWVA=p$g-JSvl zUW*a;9;!Z^P-a;R!q8)>&ixhj!i$Z+5f=UdiM1b+52DzTzxTpWSFH4-*oGlvqFhShibuEHyxu0)_&C*G1M*sM5txI zGy)ynkFbkc<1xQ9!_a$sOAsHH+~uGG8ExG`Lk4@r9p?^@&D8fkk71cJ=y_VERA^G~ z=UxkZZof59T1bRXWr53tMFV@p0Khjqa)Bks_UP^_#kRIR`nB(lIcaE{vR{7;Q&Iw6 znzun`EESc&_7?xcVdJN?nsN&g-mt0i5*dF$I>wwUsg?(EoeejxPvM|*6KYC219Q1L zt_H?ziM>1e-stDT`~xV((JVS+U!lxW$$85oGjhXf6R5Pky3FZ`uXbI6;6XOAgLu@; zht+JBkck^lz0}Wv$iWbaiq5eHngdjIH2E?l#*0=()?jF*%?rAV1^L%ULWbk7~K)^?bmYNUS?8;UDe#u8Uo-o5K@35Dys%Bh~GGvPI zO$o2VfE*)BkYVM}eK1Txs>iM!nG4r$rkz_nt27Y98zpt+c_PAmbA&?MR=BL2M;Uv6&FO|IbYd;qzR8vW*4--?7#;`3)LwEEv z&M8@zF`(hEZyc{lioG%c+j80*YvItg0^>S7&kriLKV8336A)7%boXrFF-w(Jd&#rY z5DFp4;}lkfJnJWduyxQhAt~;3R#v{N8!@SO#Ks8?tNb}b>U`jiHLfkUP@%7>bK;HN@Ja-yly2jy=OPD z9M0uZu?}UQI?-b}JY6Yf$9@Qa3D~UhnsZmp1mc12o%72G#nikvHG^z(bRuri;6wSG&uD`tDeFN`^!o*l z5vx(T_a%d-EhQ!Pb{QV$Uo9%i5gW|(j*}m4$Wfed)jih(GBb^wMUE7HXF&mgP$>1{ z6_Z4Dy5aGex~%PE^3u{gG0Ft1pp7oGoaoc7mfHb=p!rM-wlTR0%n`>qUckz_xHWlZ zFIrNzQ370E_V^pCD0MF3%4i0(3M_WBPeI!T_Bw9(ug-KUZWCk zF#bh=ItRL$M~A!j|5|w~f{zE5sgM3qHmxPc%6#UfeoLUq#wmOJ2um9|4u%kAPt9}O zq`lsIy*I?rAN)&GQ%m_@>)Q_2cLn$f+bGLAzSp7gl&_oW56WFNfgp^W0kG=iyDtM4 zZ2#0JaH|`yvEj76#Qk9WwmN*`^Xk&jkG8h93C~euJQckv$*B~Nv3UVR;Z}TFx*;$% zS}-aFmUzP<4YNhzMF%B`9cp>jGq8j4gX-+vT6lb^$yqb#Tgo@U7#8Xl1tSx}S=UJ8 zkIdhkK-<+Rfg*YGt|_l9pvMZLH4GnLDx3gBjc`TNxdt3`p5{0956Rv2BND@v;Y#-Q zR-3CRU9h@`8&x-flg1o=x*unM|31Du&X4H3?`*)EHdN?6Z<65xI!47L`g*So$x#i{ z9n2HGF!t9~$9Ge2YEsqwV?Mgu%IvNDSiB>V-(we1^Te zHJ^Do{ru4$E_3M>)z)YR-cGYT9AtrkVl=(~B z2;Mn@(`F_&P_I^9eCFdvY*)2S3x^)Mi3!o20<{_i3G;dxD@uN&k5zT%O|?FOgeIZKz#Dbg?h2V#^HN{MrP>m}@9`9II?brM5wdFVSe*IcQ9oh+W}`SqtA4!$ z8N(FU!*g73Q~*cA#RT7f6HpZPBH$aKKal@aHF}Gg! zUC5Bfg$5lhZQXU;XlvKwb{@uTz}M9CX(>dd{g|oWLoeo!EX1|FmX(va-;8P)IxhP1 ztJa0^WV>%3Ah2X1&!-n>K(jp-Wp>Gtv?WgEx%E@V)*d(x=jZX2m6bE>mY|jk(q8I0 zulY_i{nUXKcuNhw?zpOf%NqRqr~%((wny zb{(hOfv>9r**zN*LPdQ?!cITFXQ|yaYpQmdlwbxR%@Xf|#XxZ8Ej*mxXNO`S{*;G3{Ct%_=zyVb_o?t&a2#eQ`8Nu8L#9$p0 zgpZNlCP?(S;uoLrE0&E23qg7?uh^iPZw6WhNh*Rwy62hXRlOkgY zi4&4yKSv}V!W7D>XNji-MGw*2wmzODDc_b3IG;fTtvh9|6WqiayRozCjoCH=r_-zd zyo)9$zwRmIj>#f|g|Oa(EI~3T*19O*?8+4sD^!F!{KUB<`u6)|5+(I2RrP9BHNQYs zyzmS4u;{m8udtr!+l;8sUSSTcncnXunz?F59{V);ccb!k7P8%L_PWqzTo25f2A~YAdfvw$<86LiBVT^4j%3y{ zMJgL9@{TXmf%04%$ zX5M>$h0l&b8B=>Jb=Py3<`vvOh6Z6UG!CG2A*5oqq7HpPz{L-HL~CqHyg%mkjmgCH z)vK=#+`;|8qA2Ee^m3~3sWEryU3@;9DF`4`=8Ty;DaWeK3-TjBYrqdF`MIr{3%*cG zqBgjG0W+ZM0r}BlEW9Cw!?mNF+}m4mN+ejtrzfeQ((a%d7$r0;l~(n~E2L7+Klp|u z0t38Wji<*3<>%;V$meo1H(YdjODO9+m$2{;Si2im9fjWWmp41fS!;MEt5BVK_ z-jZ20X4Xhhd;}mifab9Ru9qI-19E; zn@V2lg+Jw!?B<89$TxO}lCeeAdUc=j#;nL{YqCgH?{@(Pj})B;qoK4=6}xe(*6v`u zo6=MJ>$_Z+r@R@-yC*o<*V986PpHJ#W5aP$RpR6-BeJ_!axZ=~br7g(*5&S8oF3nV zVr}^rudzJ+0*rI4l#XV0G68*5@Ec{Y^~0oS&@rc>;~mLrw=BlKMgt7!;>m4@wuf42LIc z+dl~|u5}ucDDkXu3j+o|d5t=#kAp)nRLh!v;mCUCINi`D?*q%?B?b9Ipko!`5I{6k zbcsPN^|K7rBzlIfBW#e?!Ga13<+PNbk>Ir)U$c%mz8Rxw-H51BsFHTBGS3OGJGosV zb&(_j^L8VLNe~;=btk@uG8WIIet{v+zF0b%e4XTSQysPeE@S69g7K>>GDGG%xP_W! zCaS6q=i_ONB9u{uW?OJYX4N7<$v6k+3+=`ILAI%kAF)8D|(N-xZjibP5=QHz|W-CVC%kh^B`H;NnPDi z?xghFV8i*#dJkHStXg;K&Dpb{U#T0Ocvp~dr)L#NEQj{ObvRv+hk#w`am2ed&7$uc z9Sw;OSG!5rKPY=NB)vU-+gTobFK}7XMl0ss?&!LCLu)`F8r>z^D1@J?Hk9#mf4N85 zdg^7pGwbF~W9RnQM1-o8(ojs6PDNXHcR;XvI?{SE8(A<$+R-k?#w)Tdy_SN4ga+?1 z!mRTMN#M`iHd&~dU8yQ4@$H#CFG3f{G$PoN2fn?%Ej-ma&c}WfZz+HEmPeQ!Dmvp0 zVI;|kj0J8X`}w(!WPOGaIe#wdf}m(pnc_6lP`B{_Sx_K6B(^iT3KT9X4K@x>)i)#G zx&uN3#Smha<9vee-@AD3q?u;_!W0>lia#=AUnIxv74)gcy*)5One>cZx7uxImyi~b z!yLAwHwt-!CPhog%z)!VFMWJhU0YCG%bIM;)vtq-whKMfdht|_YhHpfu-Zc6-qn}E zZ{M97<=03d5@Wu*HpP^L0s$hN`Z( zhLt(NK#X+8)uw$~lMr*qX2ta>DE=#*4(-WpUfInJDUD zxuY}Rd)1U8E4QHLDT(3_uJrqR>YYonZF?bf@nS9Ka%EBC06t#=X2)QL&`~xE*FBWV|Q@9M= ztl>Q^AEl{}7Od8UsS|R>m7FR}l_5n>9;ezlHaaky(CupO2>rc3|AudHu`B_fvP&*(DB-2l~ z`jVRQ2A0}u{^gX~QzJ@7#;;OM^Yy4{EDLPEOu%)yUHq#5PhpV=q^36r&d;K`Ts6N9 z{GTwl8~1Ydg3ULeZw=0rtO1U%@5l`^5!9~Ck0wKhT`uDJ71{g ztZ0=fTW#Nd-^BA<8`z^|Y}Y!gza@U!%Td$nm3WM-kH+M4dA$dW zCj4r8`N7dd##jqhb8E^n0HZYDJ-{VXX2Bc~z)*Y;Ut}@}Ffm6DiCij#IKkH|(V6U~ zla+Q>!M6z|n}C-K=tNVeXlJJr8kr;M$mw_=?}t^cJ~5=Qlz!0zp7e7xr)zRu^-*{A zo8MpM&r*Bv_tf4lbs&_c__sI}b1c5tek#1y5~h3Q>}G?$e8rl_w==H{KLweN!IeHn z(Lu9jlbUEQ0%6Hs6zm!bC;wS0mBy1|A9eBOtMqSAk`oTvLvFh(Y%wp26@3B2XN>;S z{WF`Z7t^$nX?spZlmOxtfxB*CNOY2*`RhSd-u?LAxQ<0O!&qKYjdEiR3D0ru(YJg& z0T(ZzoN|ybwCO|wZz~C1z;VKBaO||-U03BNjMn7JO_4tOAr73{nv=xIO5?d%cE@lI zQJKAHAf}f1#ERoB_}6` z3PNrfge&i;wuX(SkQ;%dgIfaz+!pD`7TJ_qY-!?cO}iDT8kgWslzEmEYO7cCXeRuW z5KoP$$jI3(>xplNGV{kns{iUzw{!V{-p+;O`LbBmVYnkk$=~@~{3qHDRhJG5JyhiE zQ|CA>%O^mK>CXG$#rc});4{yVZvA8c&Z*MDh_f=sjd#9KU*x;Is8ilH03b;ppvX#O zPf%va7;GvbNEaWyEo+oE#AJ8SA=P`!R>x0mmMs(hj#87k;YHo0;I%!sExtccHZ0GV zrwt7CJ+#HmR_j}Ch-8|Ic{ygnsuuFPZhLtlywoB({fYi?e_slq59Tsa?JML}t3^wT z`5#Trjw;M7Qfq<}Y`w=eo6~ju7BGy_-*uThp}UVPENP@#J7OiBExYz1_{*@Nlon8+Odb%4On zsO^+F<_pepSVY)+iy;zNP*&^(Oi0mFTo99afx0sZ?Dv}&e=Dy#V?46`oqK7$m$Ryw zEp(qad?oJ0A#g;TE?&Sn+EtUSBVjRa)6-;k{cZR%>;M~&RT3GqY%^0u*Swhe*K19p z)MH($>;ORZk7C4|XEc>u4jGNHyDU+Y&)?xkWWeAF}t=@!IL* zvl%&gw)!wo`L|~L6ITm1vK?jdXTI!IZXFd4;Y4!Cek<&e+~hU<%|J{6(@d8k)E?0Y z5j+Tx(lAv4G3M8oWc;4eAgOPhP4s`d>Gq zD>PA5QbNq*A_8Vb$E97jaXDL2=?0r~$>yvS&vw{8-DHF1rkF`mMq6zQDi*3rTMh`J zdx!Xq0`CEzB-mlsu6=&7z-MYmh5lMJQ2^`PRb063p^>5Cb?*v*vUE?pc%RdcyUrAA zcAp4OBvb|<5Uwt}|5bp*~C$ain=p%yhZ969=cKxa-=a{eZ=Ak6=)tSuk-A8Xk z4!e>jYtxquGkg}v!(ys>H2%xi!cAWWmBUYrx;cyZMRY@fpz2LYN}0z{vl{;FIdg-# zw{*PM|HIqAdFyE0EXT8>Q*C&qe0JydJt~Tth+C=>y;C+LmM3bbuh~plVqWMUDxWVM zg`~Y|8+ES%xt2fw#tY4eY+s(I9S!ERB@rQaDMxg_@^qc2EY%zv@m4(!Zk~2>mE4tR zNJHPpej#~bmpdyj<|D#Y>qVyy&J;?#qn27s!FU}VpJQGa@ZzQFiIRQjj&K~(bdHo6 zc@_97I^g(VVR!O(<)wQdlw0Ft^P~05Xc_~2kc-*?(85f__q}C&w0)h+C3Qaf?aRa@ zacnHKm_}@28$WYI0M19bV(8bbel?cqd&9dMkoq})^(OzJmRsm(lyrONgu2-M!F`-& zE_rHU_>kw)L`@qtuq*QoV=&l$D5lNMS61;#4dzOZyl!WQ5ONz}6y8z8Hzv$=zWbT+ ze2v`qeOSOx!j7TMlSj~bI02YRS^Tc9*eHutnE$?j6`lb z(TZ(SRjALx&%3Ewo*vU;Dh;)mqHP=b!K|tFf^ME`RifcfXC*S~x2y_RrbpO^Dy3e*&$rFP}*UNx={TyO4c6Yk4TE-n^)+?`Zmz3SuKux!Gqn z!(GuGZ9jRb?@0)hp$h0M*wQOH(vDgMX%T?o%V6Y1S8zPmY;p;f=s^VjF&hS=gl%Vo~SfyDvY_8RcQ3e#D z5o*LT@lOR`zW<*V$ZSFrDhfbyB%h9^7lA3exlqYwFvvp&9fA$|s$d^`{hf(}!5WBc z7%7@QOUbvzE*hg>EGtA3o;4fi@%gK2s7JohE?RnX%w=1nSsSkuL7)HiJHV>|-t0L? zu?}>z4Gl;_l(4%zO5_2ZINi(^#o*5PXd|}!)j&$q>k5Fc0vHS}O-Cq!)+?owGvL(! zug&qq&$Z$0MElY{?kH@I>Q*k20vWDcfU}dG)>5UE9Zex8%Lb$S6^8<@%Kl66pg4T6 zT0i#waE`CuBDR>Hyqs(zM~NBKW2Sa{qP{|_+#g(Opt3y0CP_v0bcwVK=ph<|a!%-U z?!fvA*xasEkcHHn$_l+W)|8yrfh(5xbX~{KxK! z<^j31qRJ4XFvalhh;S>521xJMF@aXFZ*ni)Rj&iW6zxfUclUOGk7x)R8z*kRGQLGv z#>O85W>?>pCX-AjFIihqvwMB!829tL>z#j#p-s)X*F zI-e0Fd-l8;EiR_V3KXmnr2xr~lU9p$m3X!3&79DSna*2wF`dXd1qvp-8oby(5)^EQ>yRw3#zMsH01>toV)V)8|`3i;)Qc!j_1>1h&aT6YMzp0R|P6eN1Gh=}ZqeF|9`Z;*SfZzd^{jES495 zkC|c$qlM79x2oZ?_>KiWv-Rgf!5J5$wtA(mKK!AZs$InsgKsl)1sen>sjx)T@%DMW zdfF9#yk$m*EE~oN*K}CjJ*8Sh&3EPlxm-Bw*-KEpWwnQCtF$Os-)t>8Ve#hm6$YTF zaItWzQI>c*j>>t2j>w?3!r29lntEnpX;xI@*Y5jVpG1{5ih2k$xv%2X#Wvzvn$`cJBD23x?GkU^Rf_O9uI!6 ziO@ffK8J5KY&gEMNj4Uc1I#Q}ZDyrMcYBA)h34QV`zIf@Hk0g+@cBRC5AFj!=S@u6 z)eaA;-{$luYX0JfPCmT4m#WW9k%FIpDYq`BxV*$oiyF4r#vz=4xL*_T)7@)&-vU6{7$;_#gBT}$0XLU>cLbbM|Z<2$clvLF+p z9$O@I!OiwBD=sz5?Y5}X>~KPXK;1R!@C^e$GbRT*BI`Bo?8rgnMR(sK-5+p%N&Y5|6G zRQqv7L-i2Ab-oDjy4;~3PUd>d=k=P&p_b`QEUhO?wYz>{XCt@XoAcAcVep+P_$*v0 z$lDba>z(7rrH(d$P$Sk8UbwKZYo*yJiA|=dZ{rl2cU9D(Qf7POOkasK&b!I$^Nj_U z>21luf9lkqNjXEe-F}oyE~fc;zN^ggU_(36or85gt1-062lcDRb5Pfy_mSydwNiv$ zRsk(*L_7nbHvXp+P<7QcMW#|jykZ~B<~bqf79f#a(9gOS5RZo^TCK_A+*cG*KNzVb zU0~p5lps!0L_aD;c-ZtfjXk@9ZV1pZiKL^bIZ>E-T{lKSHtGp(lj#b8@Y#W`njjxt zjy-Su4s*IL0VZHoY{^d7?>@vh%b+N~+aBJM!<8IvOCF>xUd@=!98KtnCV*gW`^2OcL+|7(*y4$8A1Vt$ zj7ZD{4U}^}Ux#h3bRWuA9HbQlrBu@N)cRauvotA}-!&G#KPHBqgj zVZs{+-((V#PMQc;&ZN}Hh+TNm&QO!*c z9-hlhe@L(v++>y2=-633>*S_Q^y7yW60-?8i-(u3i}ohYot<}fkTeF`?lINS&)1uS zAuru_4umx|{Fi1KB3}uY9}}h)loLzOWT&>&olT26KGR{-iF0*&d6z#Upwx<+I|THw z(7Sltm zszypS!8X5)sDFw6B<$J*GjXliq|kdUAPW&D`b4i5-M-egfx5ebin zj)3jXAx}OyyICEK$znX;c_Rn87Nvg|harGGW`>#2h05XUlbncPUjUKkeL}H4uk@3BwuN^Ev>MZ67FLip=% z0>3oD*MH?gObbDgx}N(^2mjuQ8{1j&K*zGYs4AmUiT(Wl$pV<(rgp1N@P=E5Ea~Ex z|BAWjxdVt{beo!-d1E-w3B5&{u#-@`jnQ%?%dXwLe;Kihs7@#eq(-d#luk!sT(?k< z(~!OAv~o*N+QXWU(*veCSTV3oGOfAz*8%X8n#*q$N(MDKGa35DvTCe2dD~c+lr-8} zMZ=#Vzm`{PIDyt;UFhHiJ%t&*#`-;y-08#ne)QN!e9}cg=`1v>lMLc|TM1ZGF#4Oiy=s3K8KG zvRb9&HgA%QUb?Szl7?rAS?-ed4_%+HFb9NBMAEDIn{pq@44OrvWwfw-NJGZcvhZ(Z zVC8{%++i@crA1;sTC1Cmk4Mv|LIgMh=bsci3YrB!&H0cbaFtWxXq0sD_7kgJJ+5_i zII6r_*oAueSMQ1Rc69ZtbBeMQ+quSNPb{5z(vi7Sehb$^eA3?d z7cX5G0Qq>z)233!&c=2_WpZ@Kelvs9!DVAx8^5q9y)JT$L!MDs!^eUC14r>s;-%g9 zsd-eF9N^Aj!{3EqHZ+}fJG5ctagHlDmJ>6d1=9+54gJ)Zo zW{$oh_w9{cC7m_1F3gZG|H{8uo_Rb+Fo}9()hpKKs$(8uRM$5CQW@*TpsQUYkXj`* z(}ktpuKa*Q_v9c9SyUEt8=S{RWq%lSVcy($SFJ>!!5F?ErNZGfd4;Mxi+Eqp8;!u^>i*H7d?1$sHoEP1h$MO%+gr%B~|suiHN(yQLBZUf6~PV$a1eT4@Xw} z${XRJ>MsFS+}6rbyiXJ~wNuww5;BiKcn%})4?uUJ-E>M5YX<0sP<9S+0^9=uS>n+} zMR3TAMx5-IZJBSu#S>|+cNw34xcPS|S8$2$d&owqAqei_ko z(43xvN|`!p$lc0Hdgz5T6_D4MLVgFX5B6xDo9d#uS02ayEZDbw>_-f5E}q%teRtOx zFr%2-U53lu!I!ayJmo>s?Xzv#5ol$Xik+3eR)>LN zE$hV1WP|`|=e70h<3_zoeuCb&Sy>41bS+7L0g|zjq)ETiI=d?&IlDS<=+nLel=)(! zk@v@(%4`Zl>${3!AQ(o4KLc^#Y%jdH!n;Nc%F#Lo;9JVFI>E=n%z^c*P?Q?kFR9Q3q zbETJ|Itkp7YQ%E=!#R;vQd?Hl*v>InL;@A9?C|5ag{(kP$X`SS?Ku@q%=pc+w{F}B zRlk(M=cD8J*ZC1%)iFwYtv9U;xbW`fiwnR3Q-=pdVL71*d+XrLc|Di+n}~>scsUF; zJI&M@X;>IhHMsE{O3McnEFKF6YJ`XVC=AtY(+l~ABjYyTaD)*M@E=EPdi7Q( z^EYG0qqR?Sj_?kC-DBtMnMpKA2|ankoCZwp9D|WCk5bsL4(o@mUvs4#tE!r`#r14N1CN}y)lUFR9 zqk5JhqvPw3zTQ|&_;;;*<@U6CYtrGFwSOCSHD!#PQ!_(vBBTU#_zP1%h51E7!`^ zpY=Ru(EpH^ZAxZk@Ltd(HHv;zpfGqSFCu7!M)phWH3U7`gri1GcmM(%86{1Er5TrK zUN`wNiXs_$a)(ZIjHFpMhfldu756WMx`#Zz+qG;x03WM0jHUaoTFLwvM1BOLlyA}cAs6a2s-HcL@YuYcuuMplpv($FT1%d3>Qs zjZZ*kj{lv&N>T%bVN6?-a#zxhh3xuRqz5L${;ItzX=s_E&@K9ufz^ciAuP&Nh4Q{F zG>X?twWWY0&gyY6NLmG6E?DOL6N(WWMLsbOSotD^@n(3|5cn!M^|Nr^X4bdW3O&v+ zD_S0vUT}y{xe#J?{nWGWZ!%lTbSSiUDbDpB{1BoxMyn3e&N|&~mOGt2Z?Y-yC1D_M zf41I#VrCzln$Mf>b%3W-u_vf>crQqMClSV6Xn6E(xWmJux&14=Q!b}jSA8^nJ_=wZ z9q3Fq(i+3Tn!{|-DMcd2=#rFV-?zri+eNhU5C()$(FAn9@RzCEIi3v_vw6xlyk}lw zi^FvP4%r5=&#GqB6nOnH2t`3uNK;_goqMQgs zOwqt*naJvY+P&l@i3MDN;TQQ9XAwy6-?xI5Q<1|7&Rj0)1ZinC14@dAJ?LBIX>XxL z6|34sVe=1!x`5JG4S->B<^Y3E(P^`D_3+r3R=a8TZuKrCl>g_yIuqRWbi74uaJ7?- za*^ZaIU_K>aNBJ@w4D&v>MY&}D4eTJEo+CyrYFa+1$(MuMF1|KLS=R=r|#+}Jx50! zTw46ry(eBrL>`nWeW&yJ3f(Uhq;j-Xn?>TIF1f=zvoC=kNO}bz?#D5I#1hx?DX;e|qobad>CMW;>^~TJg!-MB>C!UHUqQ;U zIF*dYA<^O(Fj_pv{M&Bmd(DP5s6hun7Hs*Me#MV7eOWDgWBu#LwZC#*&kl-5fp20q zttW;IB|`7LIPIfM^u?{@0dQ<-K#FGRCqUV`BNbRXs^zv=(ll$;J4f?JiveMxD9x2= zU1xnd;`69w+jm6<&hV-WzEr-Mg%nn-7i;DF*;<-S(>=I(i`7Xp1alq0I$!;0ZE)=a znEB~)^!HK58o0mXE!E>(ehA#V{;lo5<%fe zy(R9s6h}>PoY)!6%+n%lkW7)v>|`ZG4|0T#D6DdfMB4x+P0?L?pMO=liG7I^cB~E` z^GX#`P@f&#d`aQh38@~zj9C16k~6`LIZxz#w5+z1wy1PhQtWIOR9pHFiTk>%gQP2| zr+dMeF|bYtMfIjHFVZg+5%8~_j+wx`M4Rn&kwx!y!xs*EInIGTifp;*{=2|_^ys>a zzIH;S7-tebu9&NL&lE0$&BfT1d=w!i7I|NMrQYo>An=%H;O%(?B^fKZ5)R1?#Wo?byH^r zw4+0+sw=6iIZfdH!j}sVnQd_;%o0ZNr#2d#=HY^}T-ze4v+JpWw4xKuP)wop1k&a? zHLQo_h7>A4-V{UJym^|&sj79V9xjcK^FO~O!Rp37@#t|?)6>uM@zQn-B3KO>1p0~m ztJvEu6_<*}c>oNXvX#y+YPR(aP(ZCy$i3}|3k3L%5W<&-X*rVP$Z9~V6z)*#kC1{5 zT%zc8TrB&TTa^=M)^6h=3h}X5N6YU6u&>IWFkySxBl%&k=a7;wU;N)WhfZ^LQN9y9 zO@KSS2%&Lhs1nR9G8#$cU$?pHUrGCdF(In@Q2CxiaeaA`yu7}MwS+>;zT;H9%=WUe z7pn>jL$~+-y0-~nsMeMzBh>XQJckF=XIyZw1Pook6Vfx8z7?%kfW&Y z5JF!Z0gDX^-|4-nGCl%eX{rc=`ex$0-Fdm#C=BpZKt_Pm%_AxWqCTbvPe*)UPK2gJ{80&Rk(SK#6=OPg z%2;p%k*nACa;1BiYDKThNPf0C?+yZjQ zl7VVIc)7vR$h<#*wQ?nWv^$BB!*oq-IwiZR)Cusg#PJ;AjjFpeRSijtrQFp>)P|*6&Icc##gZw!1c{VzmZpfMQ=D6U{P`7u~X+_oMlxUmlIr4@SfU# z<8a5~ykyFwxk;n?>2CC)utuA4dd%)tVHc*$sA-M(VJELq$1!sUh!LzYm}jN$KT~K+ zi^O|F`|&@~=e3OCVNSz1$K|O(U~?+Tj>5f5h0zoz@VU2Vks?ai+xdS8sOGf(ykPdc zB@uGh+AlVtSHC0ts;bqpt*BJVc;RQFy#aAtoS#PcNK6*NaMoPPG5?KJgf3 zvpDDduI!*zI*_pJvM%_?Im;t%Z@fc$=E#s(GbQ7Icy^zem+yPZ`go+}c3JHJUyN@* zXKJ7I##e=_XQV#}2 z3fu{5^Um@M`O}52zQHw}Ub_{xTpX@St@M~{I2Dd(0sWu+H|B-c!N+1pXwKF;S!Zs} zr8ZM6Uz+RyKON!+k{Z|kgIT*Nmh^>zVlgn$xcD?52ZL)!K>M(^n1bt#ef1(em(!EY zLr!soMMd~gp;c>8%YP1gEr^J|o~l4J;wYyqp;a`3nPT1DY#Wp<9b?OYom#tdxYUMl zkaWXtbE$#);$(PVzp43zQ1F;foB~*Flhzh5yU!<8hJwDJm7n0Wt$gE?XxH^ zsW=5%*(uSRh71JOr{jG!V~geypQQhNZWm!$7uLIeH?&-C3gfjfAkO3Koo=lBjPa>= zY1&|TY0U1(xE)DkhXqkc2AqLjRWZ)70`_S)(jKe!hCXr9NR-|$BKZ~JV9 zV17KaQ~MTFe=t@}%b7(mgXD)@xnThzVH;+Q3iU}7@!~r{?-G6F6D%nw#Q6prN%4(r zPS@W+lnXASW(|F+Z7T=Nzy&t1%X2FRM*J-~z}OxqRlZq{m`rxTapWIgCR=6bUOkfI z-uy*Vo^@}gb+dL?7;Rn-+3yfDrlS^- z*S8Li!@vDXo?25f+DNT$_tA}C1J;HQG#*O|L79ecB4@*WHwB3WJ#@}X8ogB59j@Z) z-cKc$NX}(lDTwL0C+5nBo41l{p&d+E(MrBbsqB~{$D@SNch4#XrW|%`i8y$aI8M@? zT%=1Lj!Y?qscK%*4xYq-?H_5T4b-C4SD@e1+a71z2M^CA6tzqz09A5~Wx3PXEq!74 zE0vzdbwZ+a#PaiQ%~$by=OnSw@6j6eyu%oIz&JF)Lu$Ojr%V7rv20c5Nx-l_xOld#!8jN zGLa!h*p}0AXtp~R^6&bM0gba2ZW3oj=*!1an3gAr2;S>o=j9zWyD|0Dk%cFS&06_- z6Lqu;TNle%zR{_>))rk(?$LV0n!H9tov9VEGU>hyN{HFT-A#oVZ@taf;t5>fOpgB< zY$7a8u9yICev>G2r|ASE@PLGZ;^Ot|$KhgMAEiJwtI&+1mSN?n+h`()v3PqbzA$Ad zz~fimAb)}kIuUOHO+OH{jbcWFENU6Xk1Rlx5Mu6*R)k22!ckVmpytfj#k8BILhFN) zbX=0O?LlHhD~^NJBpSL&Bd!K(N8O zu5>I3o3u1Xi_%|U9}fRoVcT!-m(Z-MEXOkeZh?2Rp678NXWnOj6gmGWBjp!2<#|pl zat^)I6D3<(8fd%QfR1{PQwHA7o}Azj2K4^Bm*!}k`Er;jQK$=jL{>8PP9Ew)i6bfr zrWlNYQ;*Q0TP$m|8I)&7gBilp6_Z5FL*+xFoqosAf4D_-K->rgh*n7I5QD^99>5E;5(B%GZ2hisut{2QpD>d z9R*pTeD=T>%D9Sr95@@*P+L%+!f~d+@1dBS0SGgB$>Z8KdJ)J1${2`*)&pDi{5iKXVOq%RJ}@Nwv_KZl zEXT9^wgcF8`_hfrL;0MB&2-$ng##jh&2(< zzoPl*?P1?rpdpbDxCX&K>sEUjmm`{AIZOXS5-@N19Um%?4&!qvJYDvY)TS~qCiPg{ zVSQ21l-Vp__K!VS)%7F8XPGxg>y1~M*6q0CI5vMr#<<6*QH8#J%f+LpZ70@C_MH)b z`Ah3VQfpw%k3q6w{9Uf{XYamuf%e~3(+5np6Lb154-j(nS*H$>8PEUKEb5y{X;R48 z;J+=~viW0N!B}!T-txcT#ARfR@F_*T9lWw#@{MJLm;IykjEHIi(fs9v`LrF!EIm2& z=K{>AGE_LIfS00=3Cb{BYjdanJ56zM$3h;E|9Uz9msrl)Bws(goYvW&&~#P`$dQQ7 zWrQ*J>iHVm#Gd%63pNbZr=ocVZfd6=kJG8|05HfMGwa6=jyl0Ze{xlnGm59VNO~kb zBx{jSjCJnbhpVK(!MktKQxBY21vrY7X9#V4i(80-jPXXrj41xn{_v$NJq6Qm&pu@M zlP=nmHD@|Yy;~zb>d0?+VABT>Cv2^s@0Pbu3~{PeEQe@)=pjN9_9wn|Bz<#(f=bW{ zo<0_bjRsJ7o({UiA~r9^Wt^A$QJmNv?V<9jrMs`eCL@eT;jb`zPsXeX`7lRCBd{>a zD9}em4tMyX3v4ebiB74iM`K9@;o+s43#z%a6_B}u zt<=*$uHswcqil$IpY`Rs@L7%UoWcy8vad*k@@BGK@8oYE*lDd&Bz+c#1HPeqFm~!j zMg=~7fY;yBV2Tv4>VBSL=)^!O*N2xE@V>iU6SBqaOS8e%UULELFfk;S>n@EY*u}#w zg@;C6q-3XyHFyGLxIYCBo?Vu&)Ry( z7ca;0#^ESrJ{}4Ygl~957<5lkT&Hf(qm>0^5c$7u9UjW|%WUXbSx9TKKaGfAp@*9* zsWQ#B*s)RI!FZ1b>CuhyeaO!e%Jc31fzY2B^EtaV)N9>zV4^Rf+UmmzaG0JOyv-aP zBYEQ3{DnNv0$wcv+F!cA^@EEW8yq+HTN>4lb8p+YYLUHT`+8C;_7^10t|GT(M$Hyw zp`zeT`iO4Wv9$4XE<*$<3wPN|9KUlv!xf{2N)8YQ4h$2w96pR*fP4(kU(Z~rq2exL zCN8F!ih5RAF|Li#6FolPEpmOvi!Yn^_stQ*lPNZ8Q}6@24h|k zGV5koe-2>|*$buq)L-m*FG`RiYuloqK;Gmt99)$zLQ2U`JU>rF>$sSl zU{)-_Xhz*@rjIo4o2HtSb~rqALv8H#!(9P!UtuLTyt7`@n*wC{!GkbctB8QRhZiJ= zIW_-@JrSHW?DJ6{DX6;iFWMAW#mvuQa%QIA(ia=Fs3!x8GA)R6cxwv@#M})C2@8(z zta0#_ybjQs;Epn zkP>knrja6!r4><1g(6+H9B$gPED3Vgf5^;q8fjva5N)mr30Gc{fp}f@lOxtTGT>iO zvrS(x{IVq8w4Y%rg{1o`}|9(O7jQ<}qVxFd}ufq{^GC`=qK|V%n!}njDUnz#lPO0y< zE8jkd<3h7}M(ss|7{(oj!RJvlZ^pYVT!;Rdbb8JN=hNpO8V2;qZT;W=2I6Y$vkf!h zUayk%Uh9xCGV})x9q*LS@^T|*nJE;9!LI5z{27!kG!*zyt$6L>-^w5`5I__e{Npz{ z&PHapdH8MsY90Jq%aL9W(eRP6%~;p-QE43MA6jzUI1FF1hKvPFzmfn|tc^udNT{!$ zZ8zylAz2d*oVOd0(P;Te0`ErVCM?cp{82QRW=aXX{wms8(@Q^%g@8;3IwK-Y+xV10eqP=I zhBW*ij4I%6iSSQFOPk0oVac!sFe^tdj?)Pyzk*BbVUrNyC6(}+p#Jvr<`Qk-Zhvy> z)E$x9#`9qg-Wh!lty>VN;~1Z(bDPL7#0(YnJz^@Z$&VzfjXhC$<(4%!VbA;~h|e~) zHz5LX4yV?r>MO`Rh;AzlpB&}AcZP7awWZ|>0Gl#8ulXn6)Ccc9?R5wiC=cvv7g1Glc?$gHqPjAmW8@&^d$xy=fT;?6cZ|) z-^1luj8HRfl=55F&j$s$+Y9F&2ho!VlWVoPF6Kaa?FKVB+iiiJvY-ON>>Y9Hu;3C z=l|B$(a|unQJ>6v!tIl7;8MgqwN@Ja7P0-R4S0vg2MEi^8r_ON{A1ewhr01<36DQ> zcYpSd-BA;23m4c89Bq6theWi zOWqq#1@&!x$ema>$`|v2a38NzVOP?jPpD!U*@r1^AKalLI;X3?bywV*;kuTlUB&P6 zmL-Bmn(@FqeSWjnak;HtnV{AB&Dh~^J<1a8v8rnbVrQb`DT?Lq0F`%g6P_Qf6I;l5 zQQB0BB2Jd!&(w=9jZLU0GW{Xd1UyB0$!+$94(A*7JGSlVxX)&5OYsL-mE}mW5B7t2igB9DT%*)A2$6Hv$Z`8wHIT;G#ndayA%EXfy4y={(W? zdGp*2lhLLTrQctsHq>{np^ZWS1E+;XO@gps-cpHr5HTiH3kdhIGfoux+UJCM>4FY{D}~Q=$sK!5b^xEHpo^Uf6DQ~6>)0K zDGdKtSob{@bW#c7d8vngnJ5wYpXp8|exs9+s5w)|-dHxHrHFCn&G~u?h(lX`iQ49k zUd+^VFF;&Y^+_Uay_AOjm=g*Z#V-fQ1#9hE9)JFe9Cs)78qN9Yp3#NAz@kO~$`DCt zrol{okIOtiTDxJ8P~|(gkBiCbZVEd|n3DZK{(fV$E&H_X8L2#jv*+Y_r{lSZcDBEj zC8`eNAXQrBTJ`NKXuL+(a>QNE!#U?P2DsU}Lk2$|ckG+iP(dwsf_)f29KX#|{(zw= zB^eX@3w{nv(sd)}GtW|Wl3@FUiCw)`<)tY7fc`x(7Qy!WmyA5d&n7U+H>$>{e;Lv& z<{YQb1RS`T2kCHs$bqKR_8T@A-j(Ld#@8kHdps{;`ql8!V#sqdN>+9zkgyQw8Ytm1 zZJES>3UN{U`}ocxa{KP`$M>72HGim&JcuJ1R`M3{Qdz9i^`E>RbQm+VSd|c%AR&vU zCjUSPoB!Z#qUk_p6v!XQY#Z85>6`*;1sL!eDMZg5LPST1{J6$0^&P}6AC7uqp;wA` zLrDeEsSf`V@Hdgja-tV5Z;#teapr`-XY4ap%g(lO)s$3{-V49` zo((Es&weLuao`yFC7LQ~Fm@RN+Go7(JXVm0l-O9LxzMQa8{(1HGYa%noJK`ZAa2-+ zW-M{S7cbQWBEQe~P3`yBYgoscGI1t2*nL==DA*c}?))=Q z7&-3tB|K<~#^Z>fEX-b6RTB@^2`9o<8xio-jLCm{)j{coYzDNwi0n;mN()De;yaZ5jHf10*eu(I1KW^l=$p5 zv0m+8F=;kSRXFH{8Cjv?i@io-C__0F5@H&uIFweViZG;927{Ya{3uuNwwPL+FI*bG zJM12D<|tz122L>kCR+~x%8PLbfkFDA;jhrJeXY%@{#moV*Gte;fy-@bomk#v!!4$HtZDMRtM-;%^|9#NnYdpW#@>Oj&}~(J(klPe)fcijVZqA zp1;zVM?3^(WCfa};np(`ImFRYfyPySnKQ_UpYN8TW~Kyu-d>OHE0?-g3uQu+ly43Q z62L!1R`K=cTMHjM3bl=GfE7vp4<|CfIVCO{sgju5SZdSDrLn7#_X&+f`+Rw4N zx<#fZ3Y|zsH~wYZNr9u=W+@E@u-A{+p}*~*DH4V2sjlDi-fcE0fipihph6^`us`y! zX`g%d?&zVPM<#b2Ve^z$ zVfeJC=-v43CU>VEcET9S1*{F|FfXME=}^Cfc(p0-CmjxvGNsKoqvqmY}_ zik)P=Skqk5x;0!&WMLI~5_jUg*ABsjx5X#WF0&{o11tK7+xD}Bh|6{T+nNuOZnKN` z4X;Co-5}HYJTsC+@;xuviQ_P?Wz4UJnyXD$cWG9#<3^n>+GFOgGNZ^A);hTE^^W1y zf+q$~s}(nI%UiwW1cvm@1{Fyl4rcEc$ri!C_Rd?tElG1M~IP?A3P{M#iO~cJT$BiaCX@8lY=l5Gu8-gD%VJ zSPxRsz6VCZr~ckhDM^Ye2J%SRkyy7Yt3t2mA89>3SD-wlZ#nLi^tANCzZIW}8+dd- z)?-^gZZQxamSn7hM|1q}Sj3)MtlD{5YdQk@B`RKp(nKcRh8h>edaU!|r*; zjnwdznI8r%o_?xfij5~iW#vycFz-MekA^#PJHgD*+zxTWsZ_K6+IPUn&l3bode)M| zC{^KAvNEKmHgI$J?(+X0bpEHw=MmR?dka-8NR@oIxazGQr%(P|;*WI0+1s{pgX4mB zG-7hO%lF^uqx_&xm`~)V$$u&1jtUF zYEPe(jI_rQMLw5;w8t!VvJ`t>xf@-j?L$sV!I+{>g~Y-1X%=)w^ZPW(Gke{)5ly2D zySrXl$a`jLkTUJlX?aXvQAxG4o~{;``7=}F4t%#>K88Yn%2oEdD~i}0s_5Lnj2>i| zQX_fWILEJIODEU5&yS;W=9$jpU;w;ye->tysBmCyb^55{K10IjHkl@;N1|WCiPis9 zVxO&~>J5fjMX6ulBG*-M5%HOnMZ(eEaM-%XPysny7H_G_v>4Db9rwE$t0Nz#0&mES zXYBr7kS>bJvo@#QNj>!z76mq0GZLZ^j8PV6Xpsap$hkFX<4ZXXEU_8JSOyc>gJ3qo zTM|=pCRynHz`vnlUw4YZqZ1u|aYeSP*H8)+8B-m>U!Qi*h2yJl6v?pXlF;eSFOA%t z9K;9Azzb70mK>C6gn9TgVtX-JBxTKgc{gLQ%6=BkGHzt1UToQfSGb8PjX>x3K!Uc% zPWg%p?jvUUK`SBWz2)B$dAyO{zh}J!g~-qCum>YdBpo6guVv<&1Syv2Y4Y%K3b)ky z;v0BsDiBr&wQsPW%mZcsyHae8lC5OM$uo@T_-e=S~BpdVguX3qubsE6& zqQ6CxEMxl5zarT#ka;~(5Yu9Rf*T_geX?xS3Pzuh-qRiMB>}mbNcb+pDNCLAYHup& zbs{UKmbS3|z@j zes49_`W<+z=8ahxlvS3>v@+RAy(dP8_GsH299WP5EAQ^MAvelS+_N@@1?=OqB<3&s zEuz(qs%Ni{vGCbS$t9V0m*!PB>7;#a;GcA?P=mRjdUp6dsb!APf$GF66Eo`fp&ckx zQAfrEP5K|d5(hBAF()_5>faNrr%krKpr*z8nO7S$!_*F7UnR_4D5BNBA3#0JfBof$ zhfZEr1T{TAzJh(aM?IMHafM0q^GAl`Lx-9a%Xm^87Y-*{(Vuq}7L1YBJtC-q8fn9? zfc9(AG+llHGD%6#>;&}!#7YXIY{*fqU>TRiV6hnl^!pQhK>M7ETZ&ft=fE1ZEH5(t95`SM3yVwRheg(foc<7`@E@OynipeZ z8S2GZG93QF{Fz*_ucjmHe6O@Mh_|3HYPFmMQ~gVFrIu#83B~D$aP=T^Df`!dOHyL? zoEhkHlh;vOiRwGW&^N4Bc702V8juJmp&RRjhKG6JAz?<*R{N~=asw!DBL z90}~muW^zx&pOe^tjIn;32Nmg|6>p6JY7VF#*&R0`%*A^I>jVy{KP-Z0PE&x4Gtm1 zJ69afkA z+4XNu3iDEm=&Ap(bjg-DLrv;Jn;A35g=@@^%boj{F=MUr&BUaOnb%7WAhG?TXoFpNahrf%q4w3lmKac0e9cYec#=ZMDhXh-h zdHyN?@8{mr}jo1%Q^55VHoQlG? zP^6UJleUpc`D|74JcNE_Wp+o2Ab*!4OYgC&gG^|_00Z6i~#eOmJdM~eUMtXmH2{9P|;I;RzgBx z;sO;L?B1ZyfKdYY0eDG1&^_LP5N;s(bE|#!oyP4hw>5eUqjdHQ&dYf%aN)NLCe3JcByW48Z8jvpO;@8NUQb4!h-hN1j zJPu!N1rWiR3(wb5hX>q)-`zXS6BcJtAl88h&7w#u2|T+BL={!lAUn zXlsCj-Uh+ths6?U(n^d|tq_upRvTRpoh}yQPDScrKwds8k=zceobPRRVlI3LLdX^{ zeL=gL=I}Bxl~@mEm*658ZPg{vd(puog>#LxtA7GS9#y>Vu+ zIXLRMa3E!C2=|2wgs_0+3Ni+bz4MDYI(qik#KkuFTYxOiz{1`y9J_SdsZB<>6pLD^ zDQhuXJc2vWp4x&Trvw6q?D!xD?Qu!UGLt=oa+0(agKWEs4+6hBU(Y_-C^;G$4#h*+ z5cLfrPE*3cl|=ptYU3$mzspJWe0mTA@?R zMuHQ$D~rud!s*i$S7#!hr2xUD1s5dnlvXtrJ2Buk4bJ5SO?)}t&Zj&<^9HtG$F>-y zRvuYK*3^{rA6I^|>kZ69Sovc(du}4FWj_7<6*H>}dqO~zN%?(8vGzSA#8HWK3HEErQL3K>$@J?64UH8jNKU{jBs1cx>KH^vTG^~Ic^35 zmm8*RYgIqQA(h`PA&$uVWrf#vkZsJR0p-U(K;=3@^hR1KAa%P#cu4{4`iy;0tx#bC zk~(%R`v+MSqH?^*`1tk^oV$^7z4FrTW)35zUUt8FMPNL7?#fqoqe=_G! za6fE=vCD22QAPB?Jx%HMSA-cTVgW$JUEZ#7+?%g^I^YjY!yS_K-3I`4&d)}9<#DZXe3M&?7tqMd^yCJWHF#>$r5{A4q z{68XUS!1=BeUM1}Kw;%HW)}#gKQ;eEJjtWI7NaoZn?j}!Kt1^fQ2c*9O~@pVXkgj# z<1#011?VykY(=k}dfozfAdv;McMFheHOU7K5f*8pMQqoQY_jACFAV1h^#zp#M~>)jFnn3Iw`IZ* zMjhs!;qe=a=hD9f3*i2S6UCstk>^nyfP4stgq>H>9zlHE1!sSZro#o@&sv?Xu7MJ0 zAnp0HhWF>j(SE&ZKM@>g(Q+dFL;Fuv0WB&CPXX651SZHN?mT#})$g~R$XziIx<*bE z;u@ELAke-}{R}~Hpe-sumiL|f;!li0H#W(EE6SC3kaPwBP#-E0u2!i<6ZutU8;u~;T%e7`1e`O`0>Y{9de83@lR1lfS@6( zsU*ES>j0Epf2X2)ZGlFuze5eUWJUQr1qhD+`BwzdY?x_N-6wRW-{}yy6kh!z(Q)wZ ze^h$GhQtG4L6M4K@ZCFT`TcfCP<*LsizyzRvyPV+Hvz-z8+LWnBT(6(`DcR9hU{f@ zP#*d4M=J1qF`DDWg$2&EmJSG~gz@aW_ZPXU5JpIV3^z+cz7h zsA8z9PbMoil&YFAbdtQA+>Cz>($&_2ZUAQGW92*hFEO6S?O{anf3Gt(Ecy@KBT1TJIo5vX=%fo zhuV|NYTFG5M4c|#EbSxGjNFe-*(m#0f$lk1y?=mWr-Xfb7Sb}fwU$Wi_xATtnA-H7>p6KJi47#5WRff2n3R~6j&SvLpn|u@3@8wJ7qpU9y~)r zgT0V*ln7H&#ZnzfObkA6rC}yxjB0PIki*s%GxI(`kF;-lSBOO4Nay-`gRcRLhlF`= z@$*!zOvLW@yx^N!3d^|Ct^n0M=>TriY;Za{InMRSEuuj$!OYdpm)UHmq4{ttD+b#d~>!8z2u1!F&%l&xL!Hu&7xqpB@r`W zpxr`>SH+&cex15}tZnB&3v)lRF`4TaXS|GAPa%)`Sh{Qx`8W3-&Z6ZZk|w|YzqgkE z!`Pnk;~zSZV3{~nLxngqwD0ea5kN}lbEUSb!Gf_o4b9>quSgg$664@S+aQ*}yjdI` zVKZ_$5e6PZL!`6+J4O^ZN|R=}Q%F(t^$i?`0hzZYL_P&~?164|h}*&&8CgEKL0q$y z+pZR0mf>`VcJqMqYv{1&hs&S2clyK7vwg)`NK&c=-Q6f8&6gpndk+9fe!j!F5j_B? z2FGiH&I?%USlEIp&v>(bWj%r~8!XxSH3&3A&hw?1;4K2xp(O|iqQImAy1Hv-EW@7> z9m4@z_&U)Mja^FoD-R)8^74K_avf;;jhVad3NLoJw|5k1g3X}4)#=e4uy&pJ`U>e6 zhOiJ8gsTpGeO&WotNkf5-l!W~%TYye&TW<}lJoWerc1SOhwb`u8b>z=Glg>Ov3*Q$xqk3v z%5(v)PST5fy-!HejTXT$8@70{(UA{fHAgtF8~IZ;?J`1Ew`hBtXGr5rD8GGo&~gN8 zw8s2PaLC9&6a8aS>W`PpSBYil+#QB<7)ANg?1n&C3m=}aDuu=9_XiMoF+G0`0a9jA zkOx+t9Rr)vy`K0YCb@*G{Yrk?w0I_pAn(<2e!0hg@ppoNEsJjxC@JAu|4ghOh8t#O z${=|AGDE>p%ypR*k%k7`wIefK{mLOZC;Q*!Oqsb1b@fUt%KRH;4{v2olyjtylHZ83 zq4Ow!#xbrj%wsM{1*?Oo2)=1EDk`+K!6a10||5(+>B$&2CLe!AQcpvhTdapBb8z%HMvA8mnHZo zHTk(%aaNu|gWevU--EVIvrqGu=0$}_XLjc1qiwGPKW=e^1gQ>3MrPC<+t5fPXZao` z?W-5?jyj42K*Wn>5PQuoNa3Y_R7t8Av)QIQ@?K{)Q5=^fq#{XX;Xe4LkfJY3M7H25 zQM;`&z5bTi0Q$ycm+R&i-4YoW4F7ZptNT)pTr9~FOi&web>5px(UDF504X~I#)MNOt75Kag+o1hQ_hsqQS*c0aff3YC`*}cJ*-p6ie~8>{d*}IjZ6|~BtP}q0psg#ZVh0K8Gh~o?26e2jVf%Rk zWnza&fs5pzPj#h=mx0$rg3hx~q-|-C5MK2X)JG8Y}eF5wG#1Bx%@a)cVVx8 z`2%6qgRYCy;^ZlX64&|mLd>PC-Y(>Oi+5|bAv2-X5hW8=jy7RA|67Pbtl4TVCg)pI zh#%SP$=>avy(kW1NN+EBnszRV(7k`VYPN^EX_aoHj2c*uh1}N0NMcMC0I3um7Z)g2 z?qiT^P!Y2c8|bYeKnCkUm2H6b?S`ob=M9tP>qV|PikPgl^q1$)>(Hc9o!a)^yIx)p zAgo3%j(cr87}%3bhiB zrwHG9%aX`SQN)(4r?GepSiuw7(>0eD&$qaDFsXZ2=%paIf7~`Krd5W`;&Cl9Wxza+ zpak7&w5(@xv%+$XF&pX8K$qFA7#au^0FvGKzW4o(75&hclJuC!t!PY~rBI^{ zB{;1QIanEXv>COcQ3&@-vXVaR6~X8Rf;M8{UJ-upA}_F z029fZLde>z^`PmV-d=hOG=PEj??fATe>pc`r-r~}?jT`>Ot*FTycKeq4Miy5cghqO zu7fy;r%Tx7{5Ad??fto+SS&Wh7Vt_p{Uig(q}x!kpS^`0PD}c9y%5FKz4iN&5Y&Fz z?4_YY-SqnzR`5*TK85eF@)pzamy*#ih%#|qY?AWxR!e>@_e(A4?%jiNJWkm%0 z&z~`pM<^%XNSuGc*b(8@U_m4i4i48QmTnox&MSnw?{idWf(RrVM3|$6UGiKiHcsA> z+o*Z2J*0oe=|LpLZ8kVJvd67z+(_Hec*|&-105CY?G3DG`YBvPhstOYEdkLJ74>+Q zA{{Im>XhN9K^P_`CB0?^UKLG=OUh0nQD>$+_sIpt5a(KI?ifGf|NbM}+Zm|#^9wvx zg%%ADtj5pWW$_ZI_WED6g86dBF_29gv;dK$Pfqur%(0KhyFu3958&el-d^dx`tDlr zhaM=y13HdnOK{m|2yN7n7`Qno=yFf=Cy+d4d|mgn+Z29b#KHg~gEgPMHm1u`9mIq4 zvpJL+)cO5R;EIwkG47c2&}sTdw9laI2tEBSjS|*MG6E=ix-M-u9;s}h05tU5e-rYx zR#uZm7zlFCS*x!)df&SHPol0|t<8@v*oMRd_nO05i$9n^omL}tc3TE9DgKNz%EVv? zE^h1MZ`u}=)h^^uX9w~W^}8ITEnaVfS);pDEc_O-uvFzYkhJDrGLET;?F+P24joy$ z>+tMIktD@tUdCL2_&QD7MWXKXF8*HY;{~3NR5cF*BU#LogM?i<3zi_t6660>3K_1_ z{#g$MAuJ&FRT@Upp@sOWAWpAU?F%pwx_wyXU_C8DSV1SpYvY6zI}ZFBVMVt|mgcLT zR_qOq2e_&cDR%dD#Z;H6Im3pnWc7L zC9K}BL~kBGa+=?~S+Z(N+EK*5eGG31`7J>pY`v0q-Bs)XrXx5lc5_0qO|Y11V~Xx+ z|1xk2XY^o*k1JsASiWp}DXoGl56hcm-1@WNQ^0Q_Pf3q`5IzD5Qn@ZdFejx7WRr?c(h^xM7UW!_;t z(mwPqrwcn2D+$;l{@Fxo066}qQ)vKTosbzWzX)MQvE>#-#hKg5J#*O<-PLx$g6!9k%r$ZEZ!iruo#Ape5h$ACyBFgtMFuji-G~WnFC3a9}8+uW}R9P z7fFIZBnAJS?JuBQ0VR`}R~{cy+5f8FSMJtWKhATr&?{mjLjN57hu43e85Un|_^CgN zK~~dr?6ZHPf#NuQ4FC7hDZfXC9gSD{Ff4gjP@8vlsDzm!)eLK5LgF19Vj2iXJlYOH ztdNE!X=#BfWk)f!y5ZtA+Oq=hsh3R3muwO^A6&+6f<=ZP#kFZV-RAfh6PH}JWb!XO zTyItpAewcqYbc}))Oi!K@#_6D?|F-XY`*`6RiyM8`f5-i%ViG4E`tZ8&@tyV!jxAk zcj7{^7MWP-k=vd9)45=jG?`U<*!tFxQkjCJdLflTlN1Sg?I{TfHtD5_nPjo!hQZ3u z@)0faoRlO=SQo+EMHIk|vdyS(usw5wn(`9v=4{((&RKAtLyXTS&)=eJ`!sgfTlFXp zM&>MC@w;OT+UNdJ6c(I)+@Ef+4u3;jEd3G-Bzu-|B`*@YRdN^-#5fR~a+zi9o-t-x z=GT4$Kjk)KlPAc$37a}gD2Wn4voW;^51=ClDa)ny!7eq1ni|0 zdV6RV_R`U^emP?PK6K*MDP2m>zf|?>Y+0f#*t&b@jf(=vk?h$OK0kz?E^ycRgvn-$ z%C_LP-HI0y*vJg-;6jPr{63yrguF&6HK--yknrq(#}MH@eWNKr{O=p2{D`h@`H~Q> znwZM!JzdjAhd1%VtSDt;t|FqtD-Y%^Ji-jM~Ceuv^Sgmycj@ z?BypyOS?DX0RH7K1frC= znxJyG#ViMqfxU%P4*|H#?QI_}4__jkrdB&)*L1m|f9Vqnv@w!Vbr%%>L_{eJ!#i^R zkR$PPkzlBrEI@i_CXF-zLklJ{<>x16tk_JOc4*{!dcW22mA{>8G$5|IB^u@}+>|h1 z$J!grsg5THYV^5l;{srgiAa>c`~bv#uX?zOQv4r*CSS)>($8Za-k$GOp{B=-K%fl^ zcMiImV|-c&(BFH--)uL*evsNnY;Rz?211SC6m)i$=ECBR|CS^rh$2_$tjd8aPxCS9nJ>bZ8+xO_!qA zn4&P9SxD^w#AW=Yd54hO zW6CZ6pE~!Aap@{S!7X){plep4cmw;u!5h+*Tu&pkNLzA&8cy z&+Zx>9-dw*nb(@au}B8E7Y7Gtt|E)0PO#Rr;7ufS9{QW~Kdb8o{F+~+zPI=%lg5o& z-BSLPT}Wb?By$i)|9Bk{t}HmeTSH#JY7??~rfmj5ZqmzwxO`9nnKD$1_L4ed#f@-Q z)Hb4V94zuHpeqo>rEgTQw9{-+DFVMNECsD{fbB%(jz3>WJNE`J7hVJvsO_#k1_D+G1>B;I(&rZw&fgu zA)t4j#DRNcLqu*Ym8=D?rt47)V(2sDLAC)Z1{)_gBpnV^M)?d;C^`Y0J=UUUaQod+ z<(F;q%I>1OXftn#F+n!r3+=0P2lc3wi)Kc@?tO^#ZYPA`=n`C3Ruyu`r+3-=0OZH# z`Eu`U*lznxo9=i?M_Xd>5Vk?rlL}VUm26A+d%xE$MaKRL@je!~s4L15UjN_P>+)rj zw=5lRh5Z~{bQzpZfUMI{nR(+nSeMd z6P~lt#tx5%)#5bHU5F3np;C}?vy%3@dv8Edh0*T@gJ?@@!B1csK~;D6p?p69C8nQY zgb=stOfg5d{5Jc5$Cg;e#xrfrOoEy)?hj!LRnNm!T;55%T3{&k5?cuOz><=^+4u>< zQPDAt_m1OF42eFnW$K<05QEsU&x{xyiorKbyL>puilw!FAAix_)Y|QlyrD~`%Kh6S zuXq5X<0IQBNhzUI?mkKh%1%w4V*hMsdn{-SFM2WWxE^SrG{qMDt_c`BQ>I!0uukbZ z{5S0EZoaUBHkNGtL~_&$!>x!)wiEC&;E_yE#p~aj-$^FP$pfD(a%W4}zlHRIQ-O`` zfMyNuM!Pg(j&-<6e{9f^D$cL3$jtb+2wbI%^4+3>Pc4udQ$krVPNf*-)zMK#P6Y!- z6$iv)&!k4+v@t!|I;K(u-LYRvQ$Wb?FErXN` z+9@*;On<}()>=qH5#xNXzx+?-krD9d{R`}9;mo80(q2&`bY8rZq@P|i4x5rMkAFC@ z-(5zDS|NvIk03yka<&r`g27DaKOLv}Ngq)fX;*~>kYB#v0#)`Zvl-5O$3E8$={8sJ zP=R)j_VxIGkjW+@hZ_jePlCvxyfU5Pqu!m@eY(CRFPDQ0Y6yxe`d~srJRj$e>rb2h zBHK3FS+wY%!R8?Y9-p~RGNMW0{U2EiE=u4YH&6DIli})ei>H{G2__Ly%t|XdCk|&#yrj?MCBH@N`0(lEQU(apggNW0&F z{l*v|EGE*@U~dT{rYWRqVFB3l>TlghRaaGX$#>MF(~UtS{;M<=d)p0_gh;!lw*na+ z(=@WfS!v<&U%qIvSy4g`!hh80-R5o5m#1PQNxVE2LrpvH%HsYmeu{AL%bb7$v`R)q z9L|aW@d2Yp?z(mO-;waB1WQV5bu+64AMIMSzZ}d-HHFlWEPar26Dsymz!qhqE|WqB z_sL}oICGB)DES{)plEk69fRhCTh|xKx8{>M)f6Tp`d^5nh+qrE{Pz}FYv(&aZp%4% zqq?=9>MEc}k(e3SsIw0XM_>>(`HN-3w!IG!@7oI`Uc;CxOP3mJKz?Xr?_E*w%<^g}N&xk~qIn|raqN7t?Pt{YSLO)uEya4R^ zFgt~6QGR*0xdJK()-g0NN(?L3N^eeqXywxUJIZr=AL>2~xC^_Ko)4O=mp#zR$P%J2{>Kfa~X;O7uws`|SejCx2N zyAt0E8v*`#Tvoka^S|8@{EteBdENFfLW|X>Ts|!khvcEqa+hC1|HId|c@9_j&d|B9 zp8wx24El{lSY%8D_86P__mRJ75@i-F7TbfM=?X=+x29sXUH>NUUhNi8!?6G(=sD}j z8XwkkQ6S(Zd&NErZWIROciuNRxpj-iaXED${Cvm=FD5G^gW$0P2kn~ufJq5(Y`S{3 z!36%*wlaERFmU{vy`zGF)|ii*+wCMukD?lwTM;FeFu>>c_SJ;EjxggA(N4Pu_8JkV zVv0aXUzrSNA3Z(2oMT!1ah6q1I{V7W4cp)NNt~}Ot}9VD;}F11I{vb~LrKjstdf&E z^ilBn2k`fm9_O3oYxx53!feA5L{1LxLsjGo)}H8vq+;QCY) zRAell2S(-ydF}Ov!<%eA2`mD@7ZDjt>%nL2c8HyHlV?JC^kK81j&n%m+R0`-$9Hmc zg}FULHV9nWg;riHbcW-?S^d%|kEhq0VDpDyh`fnhErc74n)GqI9^Z>uLXB`t#W0&+ zeC+`j;isk(&u!0~;~X$ze|{n86waSh^YvMA5{e&KFIMhCfv{o-M{A^;`VkbSJtjvP z2_FSzbHPEGY75FBsMKrzk9 z2=Ss@Al@$cSaae=fH+o=p7qr<9|*jEAG8`3DKV1Xr=;|89c^_Vyj2Aj3qU3d@Tey` z(s*eNz$OStBBQ|=XTaWRK_hPp_V=>{$V$~gWf?936~+E@Gns%!b@m2vEbVI{&eRu( z|I8JTX}hUa?(ehp0v$I0>#2~d?}zf@^M$`cT;k|hGMjFo#5Bc#fY5pN8hv?+%>4<0 z#uV=C0?51`PNS@bCwkZao&2z9uqwIu?%wlSQc{DrGRWG0Ixiz#NGxymU%s+!KSjT) zDEIGRCeV>{VdShvGTo0Lx@ytaS15H1swyNBX}pNe)>b-=|L|u)Zli;|#%&9)h4+^V zHL0d52_2p@rztSur}xz&Mds^{Yh_2JQ=mv5iNc5#8ZaYjmU^FAddg3HsnP9F_z!mu zUI&-5rO0WOvh3UmAzwAL@)On_r*dStWAHbd{EBNn0~bMZ1Mb+ZWSS6aDC6xL`m`?I zgXTA4t06(r{%22c8g_j{j=rw6ZI_wa7|*Z9D%T?~s%KzhL=gUadYr&ly8RW;mZmQW^`tp>^BKOoy>HAzS z_wRC+6lBkb5#{qRu?~37|5OyP`gVBk$xrDwpCkE4^tx129sf~Tc*m?y5VkWGuG~@` zx_Q}a`DU(+SoNgN_jjeY>-;a5k^jfc#@hZL%gHFxZS`ipjcptMFWW-1m6dBWT`9|& zTyMgUXxfv&@*Q5R_;+zRY;;AdrLDCW~6of4BqeY+3zlx>#49KC$Sp z9iDGkfXfZoD0OKj*}6LyHNJF;0f%K}@|hDbC}`U*;Qk9|DsBa!NthT6D==fysDDS0 zS{FG>X1kcGyA|nhe+@MqS8+uA(_DY9|5o*A>hJrLa_q%($s6WpCzA433nfZ$whkZw zI((e{)YjIyT<(L(*p2EJ^OgzinXaA7lSldiIstKId|}i{Rg%Iia2;RHUEsj1+Q>tY zB`^OCP@`kEL)Ncag)qqV2z%u*2GZ`r-ghr=lce6OS?lZ4iYevs_@bifSdILqg!ekp zVt;(PH;Q3kRD01kD*A!?j*UEP#X6U?^>Caky6?l6@iqtu%~m%%K(PqZ+399I>hss= zsV=e}Z_exV`a>&XZb&U>E8UhOLW|eBPd#5il2GhoZwI^keG)9p^+j^oZGPn`iB7<7 zjN?XEAudAIGqCX(?_PB7M#uvdztv_hYf~0t_U-d$oQ&$eQ_P8j3%7cRi#%FoNAyLs zr+T|=1D|_Dp6p;Fz$KcnP!zW2Te6%>YB1#26GwmW&nX0V>%KxwYeDFDdi`taBP4F~rQ`_)sL~P8T@#5< zfVu=M+Ax1v*-}2hdseIgfN6CKD$I8(SeEOj^N3G6rz5R%b)}6K8Ao&?!=#gbPVDB5 zzpeSqCy@+zsrUA{3+5Gk(I#@$^+92kQRx~;DHE`e1#RR^Dzb?h z(-)D=h&EN_=ZO&h{5JunUFs0UhP^>yNk(I8l$(yOCKsWHLFj90;aA$4LBxu$pOtGJl@&hrMPz_E)cdC+;Y zGLx;(DBm%wIjA``(3a4ts6w{t|Ej=FFdMSa88el>4vR@Pw*ubcMU zXs?n8Hy|DRfHEo~gNBtF+=#u3U4$z4zM?b7uerUm1!x)xbQ!Cvh2hdE-VW zfUQlo6%ktEP;688nxpsm+0*GSiwJES;k~i&OCc%lWtc=mglA&~X(@|B zgk&c_m^^Gg5ne&fVT}2<9ut8rbii>`W;R#^I1aj9p2u~UN{y>`b90s1UpE0#fDtk* z>~=U=izy;;{2>A&IR2Ms)3^}o|91AX=7o9{6ql6{$oCt7H*1j9y^9z}B&SQw$nNy{ z94mfNT#2af9^O_>l|lDNQMTv>Tv$kmtc>*4sKpB=YoSL_S?RtBg_bv{jgA^P)Tf(V z4-Ki3_FhiQ86*qq&t=_f2k{FdS8E8${K_bn)^Dro(p_ZSwf1e)F}QP!%3-}^erpjD zY>_LP=<;TBp8dt^;bK2bSd6`mO$4VtFCCTOGw#0lrLI|$&p+6b2GxeVCA9Miq*hi_ zNGD1?W>cE#uYX746H-7c1x3F`p=$4zA*dCU`3lirD6IHMEE zTS|s)c~YG-Uv$OHVHT?yLo(?x7ieBe<@g(p?y{Qnulcajnj z;gFDEV-x4b^*D2Fc;EWB7fg-dA?F_iZ{5D~Zryzj)9bTC;_`UUoMD3Ut$h4%t1jz| z_mm&^N~hYOI(LfAYjqrhc&^ux?-^%~13HhNR@QF(o5;A(bVa29FoKc&>jYbvR(94&GhT;sDw@J9AZJv6?VLPUn~9;6`6vk>{5wq0#2k@!TDi|h ztbVOw=-)1&Ocr|?^QHPAWtd5#DZCX?Fgvw4uq4CXb>HG~xD<|4oHqM|kSm=)BcR3f5CU#`zEAxd@iUzhO%4TzMIqAP9-6@)0u$s~sQ$ zX{I=_E%!~90V$@|UM%@dokx0d`Z>!k*{9>5eF$F*tlw7pu;@M}biSi}#LF_)w{N>^ z^#Ub9`3TbC)PF2JjpP3*Cm7I?f$SG4IHw3PjO03pO^0?Weh|*BAfR!vh@Yyejlt%q zyapEZd`e2ZfSC}*O_-vTVGgxdDHd?`BqYCI#l++_7%`a()RW--AN=`$$*?aSuY1a2 z#OA(>zH%8(Qxygf!6o%0{+a4ll5miH+aT2)#W?Sc0mMUIUY&57Ix)!nFHL^%-Wmtj z?t>gtgG@I7hO-)WX*7NoZX}17q*Tskf0^AccS?LuDU8B6neBL7hsje80C+Am|Ia}S zXvhlmzPwE4_dqCCe&8b5toh`<_J(xY`^fjZea0n@Wa^HwF=S94-Ac%&Xz2fVx>( zm6upe4Kiqz$=)wtR5Mm*3rHoY#yzj}CMFH}R!72ZVP{t%w70?5_XCOy-R4S6MW@2h z))z66!I(Q#ZyPoMhHeJPfmk5pbGZh)JaCj5b^1eXST()|Ll8j}G9yW11b?WnX(u}U zYP?#6Wda8s?r4Y#I~~bIfRV?1$L?twperN?%S0OUmcKOFHz%Pj<`Q^w%!gCwsdXHe z@4uA6!S@&C^4k`Bmg%rD3i=F|ardDF83Hw@Oh$j!=d)F>0kX`0fg!^_{kCw2zUKeh zYVLQJ@X{`ckRKVRgOyzNxxF`)SU{8YFd)}|Ca3tz@{aHrEbRAMCa?=AV~aW}C@ z~|ccX$g0l}+F&+4&+{oN3{jCY*v zwRRa4M5_oT2DQhI69JJ@3y&}kIF_{3)GIE=WUf{|Wt9=7Kx+DQL2j)LUETuwk5n2y z7ru^|`w%i|p1+jRUtA=@=O-OBY3{AR>z;xt=|T_1g1>p=UTy8*BN|$B%V9CX{}4o^_S_LgC(dz-|9QPQutK+gY05@ zqHEKm{4S+{Kf%|1<{7T9p?=fBd^W2+CMX$lDx*m6n9!nrOFU-9l-*}^Wp-v*U+W?H zTG&dUreoXu)BS3p=b-ZTlDNl$Y_%>+RrYy-ss-QI2YDDX0Fr}TEv9X`Oyd_|8Pw%& zFp7j6UafMYob)q?K3U)d^@IVua zWe$ZFC!Q*v)6*CIq|Y0$MLg-~L*&mS!vJok#~y#tUD0yfo19N_`5}eP7o)^l>>So9 zEXNT3m_#bHVTAGKFC#Nlhg}|w-t_8x8%Cf9m*-^w8y5VSX;Nm5zVeYJ4HO#Q5t7&xgZ5yURt0>A3(>?Ik?gGjdsB^SuE&QnMOy_ zxB7VW06s=9duB)lGsY-C7Ew%AP|oKxZ3&1upvcY{CsV-muu9xsVU_z#lKgbLVz_q!#@$VnH& zU1u$V5L3acEAzn2?kq7X;$V9t>DzpbMjStK$;tVtb+ygkB;em$ab`GGLWIra)r|_W(Ie+mM8+3}U_c ziY0jVNsdz)ucxOCpXWV^nEA-$WRCGcuDcG1BO_YX!Kbo0c$Z5?P;TNN$sRNMoqA%u z+8*R|ktDDJ!SuQVgx1s0;kVfbn#8pxWCG&V=yn;PTl|*7%1a z2_1Q%If58w`Wf$J>QH|AN+M;M%pXZT&M{Q8+|*Rmxl$T&?(Toh!ljTQqMnc8`kqRD zGhOw<#wLrx#$s@J^sw+1(ePC@>6w|$E=weh!MfXZlBwrb8xg|?)M@atTIJeB{CWNn zPC$1-zE@}szIU6&YATh}%Y&ei+bIPDN~7<67I!e!WGUOpre)9eG9MBXNoc4}@d;_4 zkhx?xsX@U>p&yDh!>QOCi$T|HF0nw_I|*=KgiwY5A$8!|zt~~xWcQ3Uu_!}eE2R{2 z(@dd<>3qV&4<*C%rIR5tg{7DgR;fw`Gb}5W3CB?cFue9uWjFS?oCUvn^C`v zj;F$c4V%6L*ZlmJ+C_z@M`+-zPCXbtYlmUcNSK4fME#>OI82)vsPXUpzZsjqCVHL5 zk%<&~yG?YO`}Ki$RKfG%_qipD@S?9}21C7mo9jK2_;L<%oeUx)Mp&S1HkUdU1R_E2 zlI-=yBS{j}D+o)!(GMb!RgY1IjG2QAf(ME4uUI*0^M#H367m#+m>VCGV(u~)?pk~e~Cm7*t;e9PkDPS&uyAMRtDO?G2 zaWITMU6IDi7w1$Z(Zo!_1$n>sQAhQh;K{XIfXT^GN%;5+gIYV&Oxc4^wyX@JAYHG# zxJmtJPWp5}{xX`GLp0-z{x6dTZLd!FkkflCU2y8glZZ@3}tHOGAjfevXIM;&~S1A{N8Y&wWwD`x0MqoTpGb z5XAPev2}KEQ@9O2=`BMlK3ty{o34}=Fgp{3Z!^&wQnYdNcs(S4e3}l%)D~_87_(Or zk~OFNwKe|X-LD9yUx2JDd78K>CK{SlyD*>8i>o);iO05rLb9@XPxv5Hg}fRf=Jzl_ zmVP!SIg6MY{kxrb$21PhI9%EgGNB<3&e;33to!~`cmWl0)73R*UCsKc?I6`hw${AKsxcu;tX(hIrnz{F;DoqCy>eGIh(m-(jcF& zE`imU^msU2twzjXE36lyA7G%>=byu z#?U35R^z^ar04A6|E9TTCy4bm%?4AF8uc}6%(;HrKlE80VGx0r-9S}*XL#7KX$sGo z!omVKsH*dw$KL3QdjO_1s0j>(Io6Sz#3&664Cp0-b!Oh0f)8Fm`(tf~{Yl4mwwFwv z$VL|9^3lXRS*dmRWCG^wk~qY~6g=u9Zs7|&@Js_5NX6{_v6v)Ev58cG{t)0z^jCUi z<$A5EBEmwxFM}CBZvczwhpuW`Jk7AEAk|Fq&ct%9o%9C13&qN9LF-Nt!h}VtPeYLf zBWY7LJ4n+C&ziNy#7I)=y>~8H&y565`J4m5mP&a@w@M&&>PK zzJ%nh?mZli?-2fKoIxT*=KjSVEPEfERAZUA`iz8Z^?T}jFvygrnk&awpSAm&bMR$# z^uX|Uj5rGr4+X2kM8=MA1q(8ylcbp6t7*eDP)pC;~B>c^J|asYhQ&W$H%%Gry4U`EVCn(8F^}1 zsa&5dX;@Iw>I_gN3V~3qZa~X7sSJ%a!dqlFo6w@|d&~jt10F*s6pm7ru9m3BVwozV zf$-EqUBLeRe!)QDc{~9PB`4SN<03#*I?X@I`U}^jnGwhrD1D^Ay2q?g`}HP)^Jo~E z-2yxMhvw|3iE)213H5Me{DPC1#Nm3=<`{Y*&H20EDC88I)UOPKxLPMx(}RqgiTeq2 znsESe?dbbejyJI0ii!bPeQjszx2Pj}{DKb7SoRKg`cH{PbbgVt^*orzEHBw>!b=L} zu%e&+cbZMP*ch<>>8E$IJ!=v4ta}E=Gq>{!Oc)XJ_qhRDN=q02TAU81|3Tic>dwgH ztqq^X2yaP-XV`=G&cr?on^Ow6Sd!N?a$bTBxOseM9*s zYa$Vm*7+Rg;hWIKh&Uoo2y9gzIaCgIUdl;=WBMD7?CG=X-$}ccXhtpN2OHrXLG~MU%MmzZ6 z^Y+?z9h02jMzyfJ^ADERWIu5ra-P9dg4HhR-*EekS`CgM9+5c_CI*U1!%esINQ4P72Eh?PG}>kShTxDB!LPHa8BCvQPdi`Y-W=&+HuS4a)c9V9FAGkA+B< z!VEqts)PvhU;jS&1QM*dtY^$4*0TQ2u@#)=MKg*HX7Wc)4}BokiAg?4McSGo)E){27ESrYr9?YU8G_` z{V>Y+ z9#0hsyf$IsPG2JMd`*D;(F2`|dazX_GU%EGe^>k{Qa%x@dV=+q4*&6r8GQ(!@KfY+ zX@w6Fv3YqyGJ#ju%rW^ECKmF9rwa}I$cG8YD;aT+uxUjcL{raoC&dY-X?%Vjora{p zcAAiRnQ~tsZlf>-2+B`Zo5$?CegNmCy;e@;DB$kx`~`0w(Ewh%&rYa&f*-%m-=dbQ z^c8_J{~~$w?n}1k%NatJZ~KCEc7*YC`WYr$VV4VK>caH_nwS)V(B1xuyo_;@TXb}+ zLO?hcg?)f5MW(;Z3kAwALeSx zN;p$Z(z}AUZ;X`y7fTp1yNIkNk(UAxvknH|_dy*!xb0TMa;`hpAT19Mh1h?m(PMVJ z(NV??F&AK0DEe`t^k2#l3cz%>5i}iqCnfA(nt`kyBfJ`s_BO zYqf_e)TIcqT1cuh>Y8d#*TkgbkUnAt>7{!fv|vQM=GpKaUN;6qD3ln(ZB~*z|NXl) zE3YS`LcurQAb$gu-4go;*!jO;>Uw`+i+`T+8$kfXI0uTe(eFyu+KLKthCW*}`dqH3 zoK>o2(`Xbc7bB0@0s&A@-FE+G)>PC40>M} z>^15)I8Q@c1BRJ8JG(|sAxMRny|SAAUs-ofR&0JMJJyisw#Q~5nX3MfX7g>y!RRr^lGLi_FZf}?5n7&*K+cOx7htQqBiWPO$LV;U6#h} zPMnktm!$zPlK6Glr1n)b(ySL#vULJfI_n6sJl!Om>S?J!rU5T9Y$&~GA;U&Z8qI7_ zLkDDfzGH!b`o;*|T+7H~bD}xI(8ui5u9?+;oP~r2Pk@3LAJf(cr_u@ou+At_)GM-D82+@9HSu>Fj@+`u%?_ z!2bb-E!!l&ap3m5yYqIf1hC<E&}i)GMf~H;kl&1F4C-;%->MQZoV?a~9JwL`x^- zxfKjG4tFGRRKK9Zg0?5A_1N$s7pnz*G`m{n>2eeiI(_ zJ5SszkXJV2r%`d=2T3UzlopW?tSGXNe-{n@iVAy!*ytS1#rzdU>q>7}mAfVUN+&*@ z@P=w-VK`N(j%@-8qHBj)tpjEA&l>)JIGX@>W2-WZ7spQg;3SX!3z`;?MWFq$E#rmRp= zP+*0tY{cmD#oY_fX4e28}tdzjH(u7{#2Imj81n$ru}_%7l_`LhZ0%#f1^}kgIVnh7WD1>FS z-aJ2DmB(6DXy4lTx&+zBL`jbNmB{|@SpewGQZm&q@bAD=4LkudZ8TPo(niaIZcqM9 zw*6R5dJ`Xciao&s+6}*pgnop9iFiDw2k!L@G7sJ?bxl*l5BV^dPEwSb#*VLvldbe4 zg%otZOygHimFl2TB4%xEZr+@H$dTP>tgiOVI}930k9Xq%D#8Qjk(z*jnPlPx>&EyxOUL!jv&KMFp|J*(Rnit; zW6J?5A<<~vV(b@xQ?D+JU!n5st^i^SfZIST)A&bymo-PiRt)Ecx>lN?>fefp=u-z& zNrcq&8UYl&0Y{$P2SaB)E8}v`t8ImM+6rI$7xmH1bibWZgKB`NiyLV711oXuN(S-9 zNlK_z$cB?Hh=BVfsC+S?*4pqTzuvsJ5c!8ba7}M%gM-8t1;^&*5I%`)|JAJ-;d55kTM$4FM~$T3>d4T~()ElRkFuU4 z-x?RdY<~}D+UktmfxOQ2pYiAnL*KaP3`540-`9r$`#Jmf4K3V{LIEd_Z$O#Ea;1el z;BcGfg#YE-Ba_U*%FQkMs%Q-J=j7_y#l!kW$@*Ug`G}^N;hX#smk%uv+>CO)+cOsP zZd@(m#a$V^2){~s=@m&i$$3zbu~gC=EQfMPb`Q@te@N}J3isQB_t3$ITl{ELUF{w@ zgRW8F@J0}rePYM_f=QQLtY%-CbTjF%+0cwuT$1QE z)l|&w@*r9vhpaz8rvqHH=w(yv$NI;~e9(B|O!35f7Owh^GN$QJ2EQ%Tn?t=~;D2ZF zgM0qn=1B0yHa$4_SFq@9S(a!abMy=f!Nw)L(3bDLqkM@5khp^p8`)02@i7nH_*B^%+1k`Z%?mZ#mp>_!* zCO59irNr>ed;+nx26bjtphsD~Y&dinJ)(;li|n`2seB#uS%>_2O_9a)wZcGy+~e7B zw5pHruM1n}Jsa5+bgYFQygG2hWyq6qHhlVj{pwNL| z56h^3{YPnXPjjKT<8SjLJF8PH2Xh}V)&=Dc@)P4o<*4$jDUn7s;pMPNv0I$ z@85mVE>Uat=5Lf*SZHKDGd0Z;fChc$o#Cm9SSmRaiqd_oNyu#52C@C58p{G}bVA0` zs&xZJ{O*wbw<%OC@Up$zQb26{CMU4)&RD*7_Kd7#cnd6T#Gnw$U)i_ev_S)Z{ziuM zYrzn*Bo!OQR*G1SDJiKncl*at#!yxYF{B*rYuc`z>*2Bn%1-(+&lX!hnaj%e|CDKs zLKcTAk@lI-TGRmk?9KgJrL&4INH%kTPvU%54vZTxb#qy=tI&1va73rfvfBIuY}3!*bu=?}(C7oz=u#lcUf)99)4WMkXM3*(DyiM2(bDrq!ii zb39+$ytAY=!l`!;gi~jFOz3d=BV(i@!57?o+CX+$5}QAM8gWUGF_8p*C&YY~{$H7x z{)Iiok2L6#gJ9Fi)qE_&LaOCU9bFbv|BhL4`bLzDNzAF~?j13jNDoJ^{YhG3mC-+@ z6VaFR=UWAMa0U5s`BIn+*r07T${Vkh^@ zd87&LR*2)zd5DU|JQ)Pze!0>^{g^jt2QuC&iMsbj&AqRi@=r-?_>+|c6vD;e5`#Nj zx99UMqwc1Dyue9@R}7TUM8-48VzE^~O^x*L00=>f9Rljf_~-LzU~MO77XoK?Yw}Ig z(xL<0;>d5YMX{s4CGIdpT41D{m zdZ((!RZ;*kft7j__9dvlF|GY#ba(3>ZqD^bNYHeK@Ay1+ma^~5-{ zKN%8UaY?LSJMPv&baS06OTt8m(3c!*<} z*Ay8UJVwk?X3&e++0sxMQe7QK;e66NN4T>zP!k*Adyi45Eqkz-wlY=DlO~%fTWbp& zzLk}QnAaW=BDrx$Lx2`NMZc|b2rG8uf|<ror?&G3|)$i+mS=vAz8*fseHBxhdbcAKcOkQE^yN~JsOEvqQwE*|X zF;o$pJzlHVQN;dwx4w@q{W1M4i%LnW$#%0W^9F2J^nl{|T>gs*tK&n~OkQxa(hy(c zMBF01C48|`iyhLY&kHsm_WSdm1WID3Ke}(A zyfC^h(k;inn@!ZsRpX|szn zZ~XLe)1&Zu3mkY~C|d6qkXLRXtSAr>z=r_l$qtmw!1Wp8p z8x>x>`zhIRsN*cJX;Qk6a=L#516(sRF`MLRCuSq&q%6GJQs8TBX)RkE*aLj}A&G?P zo4DNS;scqf^?K3oL7~~y*>(ywtUX#Tqx3+$9KHpAi#kcM94}1kr>XjbW^!^e%0clC zY1ONIy1cJx%3u>)|(98grBDT5g z=an*Ncm*dOX4;5Exy#YRFn&6K@`y!a>BUzO`%Z?Qqfiwo3;appnr@9A-`OIWjct{p zr6jLH+$d#3Q7R9X4k+HrKB~T1#Ze>eSxuiR@U%M&?R6c_m&OU_Bq+ncOkr ziRYR3BPDgjJfwoIQhO>U3b5scTK6*(tHstEYf<-9elx^}+h$`)qrTKN!Z@Lq5RUQf=*cpXWk&}%O=!e)a&)mn;3gnhVsThFpxeP@l`aLNe)>9Rgaa2}llt{Bss!!5> z_k75zJsqe53W8-Vj4f7D9uFS2p+cAAScho|yF&@o;#0F0sB`W&NYG{)N)vgF!emNZj zDnp{l!mGpk_kU3d%BM^MlI_QVaRI9gF`on+sU|D$;asfRx#;PxJg=R*%_yT zD-@}|Lq}`|;KVH;nKu|r-_faV4vXY!9*1+b~8J^HD8a7hk)zwF-pCp|( z8bW}9nxNf{eYrtmN=%DEiO4TC(*T3JJW%>4(od{Le%}V|Ye5HqIEY>%M3 zOA+cBO-b=QJN3RCrirPlXJtxHd@g-USX<~C*>;lQG(}m_M5W$2NO?yv$AaFd)cn1B z+zWqiOyZs+1tNQ*+;JHs?0GuPU_(@>ky3NY$==IF7X)AP4lmxE6}DF?7T&WoeTFf5 zMATRfJHEO_h{LUUVzCO$aLuXCw>!N_`<|H#f^t~2rnPBt5f-3+el|7s>>8wb3IuK; zTJXB#`FM00e{Dz6xxRWPDlEa!1B|HcGpi^2U&(u(on5}{8phH^SOXLE?s%yj2@XI1 zAV+P8<%W7MzZQLXU}R>m)(dOgUVN*gZ)`ZZKsP)LKVRN~G2IEhsm;*LObd|FUtP+m z%?XA*D9qWsl`j$V+?#3A%_V=f-g>{qxS?aBOR=Y9?bXURU`1$xP!6h($-rqlcy8!$X2p2J(2S8gGpCjD-%ybnNNdQxJ_8tX&w2& zeY)iw*+`YI5%^9$InT1!cQPfBNS`<}*d9y{^z&5aZdBl1(o+BeZUGpc7pOI%7U`@96o~sVuk0i1X z@)*B7vTjB`6YGE(F-{Y85l~bAZ`T*u|9YuW%Bc~$PT3s^XWe9eT zdezGXp09~)C0REQXn)pwY==m85P$vMU^IZ&tsG%Z(1x#` znW>%lQxQeRaFboFy=zEzY#c^6TDKkHHSeedcU6%DHv}L2foa?n*IzQLY6NM zItnbyZ$?&DzwbKXbv{7P$FW~^`X9I5u8(!{*=qGzQQ(kc>C!pBDB@C+)!!#~QTEwK z3C=vHC3TZVxIcdfDmYh_Qc3_%2oN0Aax`s^G7k19bDybVb!yP!k7r=l*lGX>Q~c_^ z+rz0fe8WYh^6O?hLD^~X;A$RVO5L+!{Ns9+-oBaC_TsD&Yyl&h;I+7#wYq#uCG(W8 za>N|YnKdKMXuVKrQD4opMLC-yI%A69CVG#skfAArM>c=Fnqcz-DEh0P>+ICz-_z5#D=*-wmHJ<2Mf}?l6zgt zlL!AHxVW&DNgho7#z~m|hhw0!H#;ShPE!v1_ro}WYk(cuQpR`8D)7hEJ!tt=PDx|d zbAPt*sA&cwq`D^Szj4M_M7o&i2bMZ3&&B@}jJ(w`+ zKDXL5w}4dU$tVRr=V(wEwWQl*uqGKyvR)i`^g$G54slWmKAK@u*_ZMIGq`FwwE`oC0)%VYwRb;lO7ByQH;MA?zPh%)AH>j&Blmo$N_!ogO0w*$)@x z$x?=!^q4Z>wy?8sI2t6cBEjAd@kb>)5G%*sJ7;i(8x(cL2I>8Tqf^~$K6cj32olEk z8{hqw+wo+P(PY(^eeSnSSt?JzTfLsGptzT2+6jS^2(lO-#+wkg6i>|Fn5Gw9ztoC# z$Nqdc;dN3WGNnCkYPd=3a4H+uT<`eTrPx-p+39eoB=<-(wXsMl0>?vr?CW>Hvm9J)K6Z}^m#+~ zpQjN9A-o+j%J`vlZ_m}|Gfv01zPFBFu0s>P#d^s+Sq12e(!;8>bZGlu{VAF5Qk2)5 zo#+YwB5C_1OnE?HTkFf0)~PeG=&ARQ#n;u4{0H+eme+=uCU2MHYsu^r!Dgl0Qf^$M z*Zj&Th|c=`X;D{tOl9B?G56);BK$-)XIlA)mBt2FRuYd>hvN+FEL8idDLJCnxx#`8 zx&Xq+C$GX6!<1P>#7iGk+0$RosQ(sol}dhPww8Y#cpdKW^E-}e{ycIh5Dh(UH_R6# zI1g`1OH8|#-|eI2o=To$8uDtJ%Sy3}ONq0)NQ+*h6$(912S=)G*_YFL-R8dV8!^(8 zH*E4te^a{xcEq{&7-y5Jhy*I8tlQ6TC6BzXaMiWps&m^&-I@oNdVO8Y6Ht$yjFz7? zP^=jd1qCTJm?>-UIc<#9AsnMzQz5$~{J&}}$Zp9{#s@Sx@M7C5B1aDMiFuE)%hBq* zI3s~X>-Ys%l$oo4s^uCbSZz+iIZB0Iu=(a!pNz~bROzwgsT*t<5zuR{_DQXbR53%~ z5J6%s0PwEm=-N9*7lr=f&mDFf|I4G&ZdXk;BFHANl@S19tSfKbxuK5%mjojI4lYsQ zhZXNXWfYzXka|smQKNuNywaIRaAHYMnH$~^fSUuBknAxFgNXvV88ue^Tx`Mp+R{8H@I+E%E;*<@tjN1bbebdyne>JXQvLgg7d0(U_%A7Ex-F zHpW9iHGs%GO(Cm$VrfC?u7H;0N%{G_kPtQYX(Pqs$~pDv7R6^Gd9lRr*b#I*Q{nY0(-bCHak6Jn2~+$U2U0cE2QRfqnzUz@)hqP$%?kO zSuub!i3q}3s^3beFs#zBe7Zx8^6X@g{LdRB0_G(xB{C@(fOI!hK4bjxe|}$&1^l;l zhSpklD3_`(d9ilH&hr0W5&d~DzqY0D1r98Fke&Y{Fw$NXl8O}qcP08LSM_%Xd7x0K z&bk#=^HSCNeHZT`USq5(Zgu0NH|%NpGdjCQ0AB6Wy*#6CJ_sBrSXHPG=$pkNM*Ms@0hdk||g&g=K|R(Ea+Q z&TQl9i9V6y6+xTlHgOQ2K+I)=9?u%|oXWU*uIj_T&I zGnR$BKzkNxca#;@Y9xAVdG_RX9MLFFXe+dK4uQ-fCz2aBci;n>y3>^U6YE%lfO9fKoCymfR!qg+|(QMUBuy^hqgLxb-}LTvRn zF(OPFgM&q!wJmH=(s8auU%_w?RQ(0`6gymJXDp|s^2*&katSDZz4EyhFPE;ap-pqrrU-8zQy)Rj;Uy=)6T`PpAGVRGVrgxW+|91$qxthP|^#PP*hG)@lYD8 zG4zhQ%bFXd3DVQg**5%P5|ZBY1dzs)L2uVemWrLEK&ShsUuWf{Hzy>kwXKVK`cIm~ zvp;)BQ(_4BZlCf?hy8IvSNh6yaPaG+DZ(osbH)k1_?$nJvc0!j8g%p^#>@&(Q|Xf- zGRcZ%r_blD(Jm?cMzQ&6I6*6;#nrR3IKPsWO5BT6gzD}@${0|4-Jc<4dS*3J3v$`rglt0zjVk*_GYHt7^K7}%ww7>KgNV5M4=8yN_s`3h1_|1= zZ;0jddCqmVQhuEXy3dzXf9L({a(2Fc6^Vi%D2OlrTt2KaSlG^udHSh0;H>D0Z(!{g z@e-GN9=u9vKi}aTg?+bBYur1l*CKcA9UUcU7N#@@F%&gQVeBl{avkTBqSZM9sc)Yi z@?PM2;ASZYUjDi zWrGXP90Q!zuW+(v+5z9-L87m|*6oo0Y_Wu=3rE6*ASxWVUC#759&tH&yts$DZ}2D~ zq{;3oK>#H^z%=hVn*j~{x$H*PVSF4DtXSeZHAXutUj0ntX=}k>QLiia{d8@PS+5Mq z98xylBfG{@(;uepfhLR=%R`)u?SF+HKFgl*Yyk|SbPn=xAa4Bewv#=AJ3oPCB zpJ%Bv%lbDN^yJ0#W6KB$2YAy(9pps1n#*FgsQ0d*w>~2=Yk=15r7QVD#XHRD#4qqi zC>$FOG}%m^M#dhB%%r3&UNrPE5vg2y7Mr-4Q3ZJ>KRqFF%}XJNuGU4%3_#Ql>vRW7 zcizE6=^Psdw4KNfgWzz7kW9yQgR)h zK#ZZ43rLy!&e6}ee_GSaXf_;AJ0i$iMTwIeIIa2q zX(K$|Dvung{z|)2R@=`u$ttfB%68f%9)Z6Tmj{9t=hvolxx$9Zc?k7R80Rw6oa5q! z3!RiyyVSn?7~OZG{ggEW4z^aErz<&A&9U{uUH#)YI;MK*j=iI{5e^-edbe1@0I2Q% z_+#L)EcdlkZQ08XWe{<`m_SFq?#9#}&ogj5-0?<^?$@;E{A5g+V&%iym! za{ETp+q0(Z*Pm4=Zh8;K^HcrQANRAae;f)VwJ9R@H-*h4t|xoifxc zu6%?CZEa|9^mb_xglO8h-is3l=>^nnZkjrqxrYFp(?mCgSUg;zWYUu1rK<`Dj*5+q zy^(msIOaf1w%2`rJn<+uG~;-Z?L-FF)E~QL17HJ+&zcYyoA3!UT^qL6u=i-I7L`_g zaP(crl!sE+R8&!uQBa~cx3{+&}VrK&T{ehhq)EaWuj(~7e~k< z@9P^muj5^*{P-vWP8V2fAbSQ^MK_`;;#7PBSQ!cY%_VjgIyxqS@w~ZZ!YCA~IG92F zOSjfJUN$r9uKwM-c{-8sGged|n-^4b1QJOnz zG(-!=H#KrXn1kt-2n)GqWIUtmp7=Tti zkCZLMu@!<*;QK>-87R;sRfHY%tQMJk7P2tKrdrSmwLBZM`N5~i`Y=oUHW(Z4Pq_~am?uBHoUB-uOPt6B6#ZwB2Lx0j>u1T^c2(3Cb~=C~ zS&VHT?QQ@-Rra;8+oSN7OT)mmCeuHZNZ8gm0Vnt^sAdFCtS$er&$d!399Z zxZ;&eyaVdB@()+sZyN2cj1`u0C5C0e9(fSApPo9?TnH@}^vqma*jewq>?Ju3I87x!Jo>1>pc z3!4FXlF$}DOf8L>XA>Ej{ZJjq@Tb~~F`|DjzTo1b^;(PpL&oy9YdcGGcDi_Ds#4si zix)mukkN6vNMc~(11$8+Wh7%O?w@<`{Pd8=Q@D5N=Ek279#B64xd!;!)i!P2@HI`e z!scVE&nG-y#Os=p!ihKU5Cakt$;+v~yixNR?eABwb(4)wxHfIgT(tnRu^4u{jDdYd z!-FFTSSK&3PLMS+8WrFKf06NO*44njMJlsgEmBY&t@N19yRpb<20_gzRM?C!Bku@i z-shoylraL)7u)G5Zv3E@`tGCim6wx)%Iw+ZPLrb&BlfIDUr_x0QKsF&cj3BFr5$c+ z>}|uLKZ!4d5`FwLI1wutUDZEMsjRdJgFw&_l&Y%9u`~w9EbZs5b|X`p6@@f=+Rf zU(I#$k5_P3b8}f0YdJ+`UwBp4T<0MchuP1Hv8^iq9jGdKB+DhVzt}t2qXCwxzW08$ zoZc`UqtZK;mxJk>F{&`^g;iIXdFUA4Z5SB=br zvYm!gZgH{MnJ;ohJ^~gbf zkPL9rE)*ZH*eJ1E)fLN+vbbCZMaub@oF9VU<8Q1M6y8FNai3}^Y9%h~{pinLa?k1L z0cMn&lxkOYIsWiah*$G;Sqb1(il^{-2pgQgP*HksOgO3`Eo#I$L@t}k8Z#n%Mfs0E z$+i7|Q2{Uty}CXJS|iWf@E(|rx|KRxgCa$l0zuI18UFZ+it}WLU3QN#54k2glg>ru zE9_UXdX+lMB_<@As0W2GuyXqJfAVeX1%jW9mxZGl?c)IVzG_WY)B(ZFnvtcoaM)v3 zyf%6SX{a9~2a^%EpJq3UlW>+u{HLKA=DB?QCSXm=-wJ|a21iCFo^N2ELL=fn!hwaV z9DqWpt0w)FS!=!3uhn3SFFM{OrJbnAxnYyrhUJ)H@X4)%N-#ig!oovkeA|NPHtkM! zRqZgBfkJQ+91;#X;X%75!JIUr_rAgP>q)ZDkmcXIyQv8(H|2zK653a#z`NUjn>YR5I|x2Yyf!Q1Q2#$It!2h+f5F z`RNDa1C0)u&IqX|P4gg9fHX^s2nvIkd@C_IyRbq@e%}2(jUD=55%qL268}IPin_A; zg!|RAhp*sTmprU2HgtEP<|%Zx+^SYrAGlOYz9%PYvQ}r1 zs71=YBt8K5A{kJ+R8i>_yDKJIEV@yTz|iedH=m6&h-X$c1o9dw+m zPSh>X+BrY}+orkmVBrIQo#FYIZZWn^?W!rd+kChQoPwVtNe^^1&Zy$adQ?fqfaq06 zqnuFrHTJe;_!=0~oD^I|ErIYvV)%ewCLSzyb5K5$UEHC!n#yWoawjnTH4gY5@I2`? zT8*Kr(_V?!Ef>y>v$|fjKzz0K(ot&`#xgKU9ucZ-+R&fPmgsYZx*VxWX|*oTAl-1( zUQSI-Mi6;iTSfA+4-w`kr|#$`_7L)VD*ozNd3sVL7b?+3x{jSX^j19tmH7UUg7GP znW#DUFUidj{`kD-^cUyF?ovW;+z9Osc*oDHrKMq^dpUitwr8z8r z^>$(G8oW0Uu@QkJpv4h)*Of{v7#MU}2c|FAq$r5`H0juFz}&*89{+@t_8a?x1p2}cHm}=4^x&4o zf`uc7?j;iZ*AUM(n2eZ6jP%C8=gTAL&hg*>IUs-!&-@3(Z@T}E-%5!i@+O7FGht0) zV6)_rG-TLBunqun;iP&|?r7>eiWQLMqrSIy6-eEDaas5pLRKP?Be1D|I2-i7QO6Tj zzEmN(q3~=@dRt677qeZI4_yN&&jhcdS(`XSyx)wMfq*zE*OYCQ#0eG$OfI>5o&f)A zvmUhpfCiYAOxgVT80Of!!U53S zRN0>r+D$s4|9p}HeQ~NjAsv|?nI;TpmmiFg`Q4?btH*Fnz|ioZAZ1HS(ah((n?wON z7c^nO;Cn4F$vT2#LUaDGRXV+xn;Mi_XBn$v;7$8vNEWdUXoP3W)=UL$hw6wGCMHxj zRzIS6LLuFY7|L$1zCSLIkyp{94T`fyfeP(dg*~@+CEL7N+C10}y&7;+pqvo|ff$v3 z(o=T-dzlO$9%e`sauJWr{F?I2^{)Q)t7V3lWH<}@oPl#BvET-D&g+i8_wZan5U*O! z&$9pd(JOL>U(YpxoXWM{Bc7laP1{1L#tA`vuNRQDXK=gAoffUd>}cc5P9h&}7j;G% zWO(bhxx5M^_RTC5sJ8ZoR8gs^dnM^tOP<;QObDV}o8wNg+$V3+jhk0ao0VC8P;S%2 zR__`ra%F@oHfB-b3{=2Ivs{5yv|?7J$B)HIY6JgR`VqLF32?YMZ-U;o z_TgY_*|*yWq(_cV{ zT+wVZlm-ieuJN<1@>+sM*Rx;g78_hcrv=>ITk_fCf+Zz;H`>dWvX0Dc{;EHsmXDKD z?3l?Wb5u*$>www6jFrkX4%%m2UwqyLxS>=&BN&ho2N+=ZA)jQupsj4Hj<6&wos#)Y zO2ghGa*-qX?ej(fT(M8zWmCNGueNDJqKnFnGj8MjLE5H3@g<}{YTsisJ|*W_^rSRR zx@SK;m6NqpDV4XDzF|IUN4I@0Pj$OrI3z<84~Y2sS@G_tPXZ(HO;^PuDSKtRK2`V- zdaF&167fKjgY?5mdCNT)a^HXuWW0^G$Gc-FN7n((6D5@vTGh74w|peceP2Vr0OK#B zt1CAqMr^%J1QGkaaLF!8$nm6Cv+3$f^?tCyR0PRzDC#;g4k9AK&NPC1Zg04vIL}sf;Vl|<)1M@Wul|bBD@p&$wp4NrV8HVsc*MpNmn`Tvr#75-XYbmX2 zMXx$ttQA(c(pU3iY;t~AAOtTJ)w5}cHGm`DiDOhi`tHR$1wX4~4C%kJ4xDXUfMAJ)dpu&j(WfovZl$rcT<|*U- z$B4En0K|tw8IQ3Dm&f;PM}PV;Sl!*D<0p_Om&tvEGB{rp%I_&+ev@0qdV{P2001Z| z76dTbSS`2j4$GOo9=~~VmL=T*D-}yqc)GKYQ129d&%6ZO za80%sRqQJ8pR#UvXJ)Nu@8v7WP3<4iJAU9V~>TxL$bP?<_eE2+a=|4OVVrWqY40vZF_y?b(Ypr~5z8 zjAzW~HzqDk?37V+c!4w$9GIi@x_ITU-<$sODrQLq}iR zYNgv08Hy9(L-h^pqc`+^YR$#UeA2akqCHsYkas$|&^L>`rfRIGwV2L0&B^-Clc%)| zZYjRlnphrCjIa8`ZZN?uMSLYb#T5fn%Of)WEk??2r@8v%42I@j&Pl+M`#Q99Mt?cP zQd62K?(Itb`vs?Zrv6nzdiU1vBBY{uRVZo7 zE0n`{r~PI4PF|1B7m}Eh2Y`#fC>lHH>LXF3Xc!GY@fq5?nWOp=)bYm*)n`IxmqER$ z1U0H_c?8`oRwJtsKfI~wzK`CQYit(u|gB37cZ4Lht2HxjzrIZ%fnmV+_$U43mtQsC77*)ud=V^4Dc>*ODqW zXRz>*|J15#-y2`Ee+uf4^l_JEb<-jFrp)n-LEX~G?z{N5x*g6jp4Ev@JY=3$#J!v# zC7=|Q9e~BZNriqD%wPQ0+Al3})RwiWl-8bN2KP*rnPA?YxGCXXU6N(uQXE;o%$?-X zTrhBhQ?2^oDc<7v(WiP`+|7azXW0ZUSj1|5CcoWx~zK}MBgoHpkk7Eads!D?qwisb6eS}nJ|S8@=U@P=Y!8B`2q|C9_&U|dP<+|hVp zbNcfa5M`&i9!r)5!vaa2uFM2zk)&(+>W*sI?e|5D_Mn$s=ev9;6%&M}E|_}2AY(32N}ps$cPFPi)jvbHx`=X8W1S(rzPqmY%04}Q%;K_Q zuPv}*C!>3}|8*`SjeU~_n>JB)hsuZEC};X)Bdr&7FixY^_bqtWK*4#xP<8R+BLr=y z<&SOAUSoh(jmmVdxjCgfkBYXZIlv{FJnHKdPqo$iO`C6JGuzl1QqWy6^y z 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 Q!{E>MZR$$#TMk|LUn5~9AOHXW diff --git a/scripts/ios/screenshots-tv/RichTextArea.tolerance b/scripts/ios/screenshots-tv/RichTextArea.tolerance index b497bdd049c..e435316ce73 100644 --- a/scripts/ios/screenshots-tv/RichTextArea.tolerance +++ b/scripts/ios/screenshots-tv/RichTextArea.tolerance @@ -1,5 +1,4 @@ -# The editor renders inside the platform native web widget; absorb minor -# web-render anti-aliasing variance between CI runs (blank/black peer captures -# are well within this). +# Pure Codename One text editor render; absorb minor glyph anti-aliasing +# variance between CI runs / GPU backends. maxChannelDelta=16 maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-watch/CodeEditor.png b/scripts/ios/screenshots-watch/CodeEditor.png index e1501f3eef42b29e82f2fe5cf4521f2d74ac2f78..fe4aa9b060cd2f9cdbd248b7162bcd89345ec81b 100644 GIT binary patch literal 32942 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�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�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 diff --git a/scripts/ios/screenshots-watch/CodeEditor.tolerance b/scripts/ios/screenshots-watch/CodeEditor.tolerance index b497bdd049c..e435316ce73 100644 --- a/scripts/ios/screenshots-watch/CodeEditor.tolerance +++ b/scripts/ios/screenshots-watch/CodeEditor.tolerance @@ -1,5 +1,4 @@ -# The editor renders inside the platform native web widget; absorb minor -# web-render anti-aliasing variance between CI runs (blank/black peer captures -# are well within this). +# Pure Codename One text editor render; absorb minor glyph anti-aliasing +# variance between CI runs / GPU backends. maxChannelDelta=16 maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-watch/PureEditors.png b/scripts/ios/screenshots-watch/PureEditors.png new file mode 100644 index 0000000000000000000000000000000000000000..55005643447cbf752666a22536dd9befb248c5a6 GIT binary patch literal 34187 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 YA^FJf`-JHEBj8U~N>Q?0+$iAx0CuYVRR910 literal 0 HcmV?d00001 diff --git a/scripts/ios/screenshots-watch/PureEditors.tolerance b/scripts/ios/screenshots-watch/PureEditors.tolerance new file mode 100644 index 00000000000..e435316ce73 --- /dev/null +++ b/scripts/ios/screenshots-watch/PureEditors.tolerance @@ -0,0 +1,4 @@ +# Pure Codename One text editor render; absorb minor glyph anti-aliasing +# variance between CI runs / GPU backends. +maxChannelDelta=16 +maxMismatchPercent=2.0 diff --git a/scripts/ios/screenshots-watch/RichTextArea.png b/scripts/ios/screenshots-watch/RichTextArea.png index 6b1761f4e8e58eb939ead1029589fa7677e1e0af..8f426264943d9f934ef4c554b21612cd4603a6f5 100644 GIT binary patch literal 29036 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 UC&acVkHDXVsO;NPVO_uf0#+95X#fBK literal 12243 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 X8(p7j>;&D*)|^v1ub3upa_|2Du`R3| literal 128658 zcmeGEc{tSV+Xs$EM1&$KgvwHc%DyYIFWIxV*>}b^_DVtsAv+`cmYrcnrO0mV+ss(P zSjRqg-%FqSexAGId7l4%$MHM9-{azdF<8j4gDj1;F%ouX1! zlGi?UiX{2esj~;<#Nd;*3QueBM&zcg_~2AY7xO&$&ufdv%9iTtr?|m2`6*H&+Eb@b zZUMiih!{_i{=PnSN`;8&zpk~3ZvJ%-Xfwp-6vXhs$W%>KMUPMc1vXqN6lgDe{*_%Ip{J5_AZnx#T;PX)W+iV%v zxz#^Em6O-KNPqt`8~4j+7n!)j5Cq!qZ}J4^5jR~oyHHW5S8yrEcnmX5Q`gcGW@Twb z(v#JUupuHMvC$!bpBw4)b+SyKBQxF!IYms)7WiK;PjbJ|EENe?DV!oAIWPNPFT)RD zS#(-58P5a_l?!`+8UO!qhEH@=dwzGD`1Jv!LU&d%N~;A(mJHx*Iv>Qrcnc;&sh zx3W3Jq@<*TakuU(Rw--y*yAIzxLv{+_Gr7Hu!K?6nGMC)C#+<5yf)oZvvsgIR^wz8 ztT&Uo0{V>7@z+1cDlPf42l9zrm_qLXX#E}FA0B-MWWyRUymhe9pp;R_R+sbpu2bPn zuTG(%bBu!4eL3oDA(Monvkm(z^_XpIOoR6zwYA;XVUT)>>NK>x(Puz6X1S!P((Y@;W49 zRyG=s_7=OP2;;+L&tFCTDEv)^#L=^%^z`2?U&xyxZja|(?8$7B-e01F#=9{*uCVMp zOUJ3}(ng+QHp?(|K{V7vH%OkLC`DP(sKycPK4eO0Vm<2dCC2S8lTuzHVU0Gpa6;>7 zGq9nu9e>1=>-q(WV13<=4+$a+W`?FcR9`ew#p&tk_5218QlD}%OzjrBvqY-FC>6Rt z-LN@e$8)uowXhg#Yt#BZGW)$MN?L*P3D++sUwia}^h42TrOh;ARmGyye}CC?B8cp0 zilI@-V!GCWS{%m~kz)A6Wy2GiX!3ThbkJM$UMSyXspUvP=q9eVreQbk0`z64H$7mU zluSXJaC+nGk1R-Y)Dm5BnITC$#eu;H0%reHtOk7Y4U-vkKD#xRi{a8GI9ZuVy~pyq zD*|t*ukLk8;H{yr=rko=N)g)>H#@zRqn^7sBxEDwwu8Om7wATw`O%?~`zwXUgJMU7 zHl9-XN4J(E`|CaN^696FjjB}E)I^*xlHGW0a|Dyl?VwITg9R1v%EAgqm)l3Ky*GI> zUh9(d94twKVX4>luUJh!bEKqqXbJBnUZYP4peC!a=?C90&X_*R^VuG;GTkq`94R}> zFg3}HNz?YFL$~uc+IL@hQIlii`Kca{9NYKz9Q-6bTad=K%KM`Clk$j^gNhrw_q-%wl# zEtelMHY&YvE9Bf2TG$V(bU%-u*FxCEVGpi)K77!xuLar-F^<3`D8MKkvnnNe-%v3{ ziZ9&68=Iv|CSB*)$(YrnP0f5l1XgbqDC}+cjhV6r1j9*y*a`Fq0ENmm`^O=)gCe;=Oix-j2uKbH)9rjT&`A(f2jDj;m zjYn0p-wXE~-p2}b{CXhCMgOktz7pgsZ}d~e-jB*s&`oO~@WZ_=A*9-g1S;A>YdsWElj&?@4zJ=K<0aY=r$u(_ZCa% z%JlUndVcr){(tWqPJXk(hViDS*}e9-BqnYqGx)QOV&m{jyyY&n3p$qm{NH(9If2US z`%BP<^3}R~owyM;6pHM89v^WMahJR(;aezI+GWz0Jf#i2raV@Lcb%HvP-*3*WxM~x z2iHEd29j!Sb5gvHBCVk=z5X{xJ@7EYvNH+u^OMjkGMY%@uWv8h@GT^)wXj-cL77Ax z`z2=uEIU4mx=eK>3MBBGmlzIJxMZlcjW>926zCONcBe_%^nTjim@Djx%>WzE>zYn2JrB7#yOqT8ePD;Y>`}|^`LJTR% z`Md&Rc6h;Pc?tuu54rW`1#E+EsTo45x_yy9gw?;cCdRw&vZe^ii((AmkL+3sEKv8aoL&VSLm5w%0DPd{(&jD@K*CwfE`+ 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

52?8);d<&YVcb^b7-r494n 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 H+BC7-ap@HIlmq`P^p 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 z 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