From 748e30c9585030b01a9968f67a9b87ef9594e8fa Mon Sep 17 00:00:00 2001 From: Tobias Horak Date: Tue, 22 Sep 2026 19:54:55 +0200 Subject: [PATCH 01/13] Implement new hello-world design (light mode) Replace the animated logo screen with the new design: a card with the JPro header, a "Hello_World" panel linking to the docs and examples, and a "JPro Platform" panel, on a dotted background. - Layout in FXML, styling in CSS (DM Sans / DM Mono bundled, OFL) - Logo and GitHub icon as vector shapes exported from the design - Links open in a new tab in the browser, or the system browser on desktop - Narrow screens (< 720px) stack the panels and buttons vertically --- .../one/jpro/hellojpro/HelloJProFXML.java | 18 +- .../hellojpro/HelloJProFXMLController.java | 86 +++++---- .../one/jpro/hellojpro/css/HelloJPro.css | 181 ++++++++++++++++-- .../jpro/hellojpro/fonts/DMMono-Medium.ttf | Bin 0 -> 49444 bytes .../jpro/hellojpro/fonts/DMSans-Medium.ttf | Bin 0 -> 56376 bytes .../jpro/hellojpro/fonts/DMSans-Regular.ttf | Bin 0 -> 56348 bytes .../one/jpro/hellojpro/fonts/OFL-DMMono.txt | 93 +++++++++ .../one/jpro/hellojpro/fonts/OFL-DMSans.txt | 93 +++++++++ .../one/jpro/hellojpro/fxml/HelloJPro.fxml | 80 ++++++-- .../one/jpro/hellojpro/img/JPRO_logo_rgb.png | Bin 33437 -> 0 bytes .../resources/one/jpro/hellojpro/img/dots.png | Bin 0 -> 109 bytes 11 files changed, 475 insertions(+), 76 deletions(-) create mode 100644 src/main/resources/one/jpro/hellojpro/fonts/DMMono-Medium.ttf create mode 100644 src/main/resources/one/jpro/hellojpro/fonts/DMSans-Medium.ttf create mode 100644 src/main/resources/one/jpro/hellojpro/fonts/DMSans-Regular.ttf create mode 100644 src/main/resources/one/jpro/hellojpro/fonts/OFL-DMMono.txt create mode 100644 src/main/resources/one/jpro/hellojpro/fonts/OFL-DMSans.txt delete mode 100755 src/main/resources/one/jpro/hellojpro/img/JPRO_logo_rgb.png create mode 100644 src/main/resources/one/jpro/hellojpro/img/dots.png diff --git a/src/main/java/one/jpro/hellojpro/HelloJProFXML.java b/src/main/java/one/jpro/hellojpro/HelloJProFXML.java index 3a13b0f..749efc0 100644 --- a/src/main/java/one/jpro/hellojpro/HelloJProFXML.java +++ b/src/main/java/one/jpro/hellojpro/HelloJProFXML.java @@ -16,23 +16,15 @@ public class HelloJProFXML extends JProApplication { @Override - public void start(Stage stage) { + public void start(Stage stage) throws IOException { // load user interface as FXML file FXMLLoader loader = new FXMLLoader(getClass().getResource("/one/jpro/hellojpro/fxml/HelloJPro.fxml")); - Scene scene = null; - try { - Parent root = loader.load(); - HelloJProFXMLController controller = loader.getController(); - controller.init(this); - - // create JavaFX scene - scene = new Scene(root); - } catch (IOException e) { - e.printStackTrace(); - } + Parent root = loader.load(); + HelloJProFXMLController controller = loader.getController(); + controller.init(this); stage.setTitle("Hello JPro!"); - stage.setScene(scene); + stage.setScene(new Scene(root, 1280, 768)); // open JavaFX window stage.show(); diff --git a/src/main/java/one/jpro/hellojpro/HelloJProFXMLController.java b/src/main/java/one/jpro/hellojpro/HelloJProFXMLController.java index 8a0a331..84f7d11 100644 --- a/src/main/java/one/jpro/hellojpro/HelloJProFXMLController.java +++ b/src/main/java/one/jpro/hellojpro/HelloJProFXMLController.java @@ -2,67 +2,77 @@ import com.jpro.webapi.JProApplication; import com.jpro.webapi.WebAPI; -import javafx.animation.Animation; -import javafx.animation.FadeTransition; -import javafx.animation.ParallelTransition; -import javafx.animation.ScaleTransition; +import javafx.css.PseudoClass; +import javafx.event.ActionEvent; import javafx.fxml.FXML; -import javafx.fxml.Initializable; import javafx.scene.Node; -import javafx.scene.control.Label; +import javafx.scene.layout.HBox; +import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; -import javafx.util.Duration; - -import java.net.URL; -import java.util.ResourceBundle; +import javafx.scene.layout.VBox; /** * Hello JPro FXML controller. * * @author Florian Kirmaier */ -public class HelloJProFXMLController implements Initializable { +public class HelloJProFXMLController { - @FXML - public Label platformLabel; + /** Below this width (e.g. on phones) the panels and buttons stack vertically. */ + private static final double COMPACT_WIDTH = 720; + private static final PseudoClass COMPACT = PseudoClass.getPseudoClass("compact"); @FXML protected StackPane root; - @FXML - protected Node logo; + protected Pane cardBody; + @FXML + protected Pane mainActions; + @FXML + protected Pane platformActions; protected JProApplication jproApplication; - protected ParallelTransition pt; - @Override - public void initialize(URL location, ResourceBundle resources) { - platformLabel.setText(String.format("Platform: %s", WebAPI.isBrowser() ? "Browser" : "Desktop")); + @FXML + protected void initialize() { + root.widthProperty().addListener((obs, oldWidth, width) -> setCompact(width.doubleValue() < COMPACT_WIDTH)); } - protected void initLogoAnimation(Node logo) { - ScaleTransition st = new ScaleTransition(Duration.millis(1000), logo); - st.setByX(-0.5); - st.setByY(-0.5); - st.setAutoReverse(true); - st.setCycleCount(Animation.INDEFINITE); - - FadeTransition ft = new FadeTransition(Duration.millis(1000), logo); - ft.setToValue(0.5); - ft.setAutoReverse(true); - ft.setCycleCount(Animation.INDEFINITE); - logo.setOpacity(1); - - pt = new ParallelTransition(st, ft); - pt.play(); + protected void init(JProApplication jproApplication) { + this.jproApplication = jproApplication; + } + /** + * Opens the URL stored in the clicked button's {@code userData}: + * in a new browser tab when running in the browser, in the system browser on desktop. + */ + @FXML + protected void openLink(ActionEvent event) { + String url = (String) ((Node) event.getSource()).getUserData(); if (WebAPI.isBrowser()) { - jproApplication.getWebAPI().addInstanceCloseListener(() -> pt.stop()); + jproApplication.getWebAPI().openURLAsTab(url); + } else { + jproApplication.getHostServices().showDocument(url); } } - protected void init(JProApplication jproApplication) { - this.jproApplication = jproApplication; - initLogoAnimation(this.logo); + private void setCompact(boolean compact) { + if (root.getPseudoClassStates().contains(COMPACT) == compact) { + return; + } + root.pseudoClassStateChanged(COMPACT, compact); + cardBody = reorient(cardBody, compact); + mainActions = reorient(mainActions, compact); + platformActions = reorient(platformActions, compact); + } + + /** Replaces a row with a column (or back), keeping its children and style classes. */ + private static Pane reorient(Pane pane, boolean vertical) { + Pane replacement = vertical ? new VBox() : new HBox(); + replacement.getStyleClass().setAll(pane.getStyleClass()); + replacement.getChildren().setAll(pane.getChildren()); + Pane parent = (Pane) pane.getParent(); + parent.getChildren().set(parent.getChildren().indexOf(pane), replacement); + return replacement; } } diff --git a/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css b/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css index ca94ede..59cfb25 100644 --- a/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css +++ b/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css @@ -1,24 +1,183 @@ +@font-face { + font-family: "DM Sans Regular"; + src: url("../fonts/DMSans-Regular.ttf"); +} +@font-face { + font-family: "DM Sans Medium"; + src: url("../fonts/DMSans-Medium.ttf"); +} +@font-face { + font-family: "DM Mono Medium"; + src: url("../fonts/DMMono-Medium.ttf"); +} + .root { + -color-background: #f5f5fd; + -color-surface: white; + -color-text: #252554; + -color-text-secondary: rgba(37, 37, 84, 0.9); + -color-primary: #3e3bc5; + -color-primary-dark: #221f7d; + -color-border: rgba(0, 0, 0, 0.12); + -color-primary-border: rgba(62, 59, 197, 0.08); + -color-primary-soft: rgba(62, 59, 197, 0.04); +} + +/* Page: light background with a dot grid */ + +.page { + -fx-background-color: -color-background; + -fx-background-image: url("../img/dots.png"); + -fx-background-size: 14px 14px; + -fx-padding: 24px; +} + +/* Card */ + +.card { + -fx-max-width: 661px; + -fx-background-color: rgba(255, 255, 255, 0.5); + -fx-background-radius: 24px; + -fx-border-color: -color-border; + -fx-border-radius: 24px; + -fx-padding: 12px; +} + +.card-header { + -fx-alignment: center-left; + -fx-background-color: linear-gradient(from 99px 196px to 538px -132px, -color-primary, -color-primary-dark); + -fx-background-radius: 12px 12px 0 0; + -fx-padding: 16px 24px; +} + +.card-body { + -fx-spacing: 8px; +} + +/* Header icons: vector shapes exported from the design */ + +.jpro-logo { + -fx-shape: "M31.7036 15.2896L32.1635 15.4219C35.061 16.2592 36.6557 18.3021 36.6557 21.1752V21.2332C36.6557 22.858 36.1199 24.2738 35.1063 25.3262C33.8476 26.5706 31.9481 27.2314 29.6179 27.2314H23.4467C24.2197 26.5161 24.8387 25.6616 25.2902 24.701H29.3349C32.1218 24.701 33.7857 23.329 33.7857 21.0318V20.9745C33.7857 18.7282 32.0499 17.2769 29.3631 17.2769H25.4566C25.0842 16.3637 24.5648 15.543 23.9103 14.8329H28.8004L33.6798 7.83333H36.9626L31.7036 15.2896Z M3.4516 27.2562H6.52843V7.78732C6.52843 7.78732 6.75324 1.57244 0 0V2.09658C0 2.09658 3.6021 3.66984 3.6021 8.16171L3.4516 27.2562Z M48.1374 27.8246C42.5715 27.8246 38.0438 23.2455 38.0438 17.6175C38.0438 11.9894 42.5715 7.41032 48.1374 7.41032C53.7017 7.41032 58.2297 11.9894 58.2297 17.6175C58.2297 23.2455 53.7017 27.8246 48.1374 27.8246ZM55.5266 17.6175C55.5266 13.497 52.2115 10.1441 48.1374 10.1441C44.0625 10.1441 40.7469 13.497 40.7469 17.6175C40.7469 21.7385 44.0625 25.0914 48.1374 25.0914C52.2115 25.0914 55.5266 21.7385 55.5266 17.6175Z M16.4406 27.2322H8.94914V7.83333H11.7626V14.2884H16.0435C20.6636 14.2884 23.6488 16.8451 23.6488 20.8033V20.8605C23.6488 24.731 20.8187 27.2322 16.4406 27.2322ZM20.778 20.7175C20.778 18.3683 18.9213 16.7893 16.1574 16.7893H11.7626V24.7016H16.1574C19.0508 24.7016 20.778 23.2337 20.778 20.7744V20.7175Z"; + -fx-background-color: white; + -fx-min-width: 58px; + -fx-min-height: 28px; + -fx-max-width: 58px; + -fx-max-height: 28px; + /* The exported logo is upside down; flip it back. */ + -fx-scale-y: -1; +} + +.github-icon { + -fx-shape: "M10.0001 0C4.47791 0 0 4.47708 0 10.0001C0 14.4184 2.86533 18.1668 6.83867 19.4891C7.33844 19.5817 7.52192 19.2722 7.52192 19.0081C7.52192 18.7696 7.51265 17.9819 7.50834 17.1463C4.72631 17.7512 4.13927 15.9664 4.13927 15.9664C3.68437 14.8105 3.02894 14.5032 3.02894 14.5032C2.12163 13.8825 3.09733 13.8953 3.09733 13.8953C4.10151 13.9658 4.63026 14.9258 4.63026 14.9258C5.52217 16.4546 6.96965 16.0126 7.5403 15.7571C7.63006 15.1107 7.88922 14.6696 8.1752 14.4199C5.95405 14.167 3.61913 13.3095 3.61913 9.47779C3.61913 8.38601 4.00977 7.49394 4.64947 6.79362C4.54564 6.54175 4.20335 5.52465 4.74635 4.14722C4.74635 4.14722 5.58609 3.87845 7.49708 5.17226C8.29476 4.95069 9.15024 4.83958 10.0001 4.83577C10.8499 4.83958 11.7061 4.95069 12.5052 5.17226C14.4139 3.87845 15.2525 4.14722 15.2525 4.14722C15.7968 5.52465 15.4544 6.54175 15.3505 6.79362C15.9917 7.49394 16.3797 8.38601 16.3797 9.47779C16.3797 13.3187 14.0403 14.1644 11.8135 14.4119C12.1722 14.7223 12.4918 15.3308 12.4918 16.2638C12.4918 17.6018 12.4802 18.6787 12.4802 19.0081C12.4802 19.2742 12.6602 19.586 13.1671 19.4878C17.1383 18.164 20 14.4169 20 10.0001C20 4.47708 15.5227 0 10.0001 0ZM3.74536 14.2453C3.72333 14.295 3.64517 14.3099 3.57396 14.2758C3.50143 14.2432 3.46069 14.1754 3.48421 14.1256C3.50574 14.0744 3.58406 14.0602 3.65643 14.0945C3.72913 14.1271 3.77053 14.1955 3.74536 14.2453ZM4.23725 14.6842C4.18956 14.7285 4.09633 14.7079 4.03307 14.638C3.96766 14.5683 3.9554 14.4751 4.00376 14.4302C4.05294 14.386 4.14336 14.4067 4.20893 14.4764C4.27434 14.547 4.28709 14.6395 4.23725 14.6842ZM4.57471 15.2458C4.51344 15.2884 4.41325 15.2485 4.35132 15.1595C4.29004 15.0706 4.29004 14.964 4.35264 14.9212C4.41474 14.8785 4.51344 14.9169 4.5762 15.0052C4.6373 15.0956 4.6373 15.2023 4.57471 15.2458ZM5.14542 15.8962C5.09061 15.9566 4.97386 15.9404 4.88841 15.8579C4.80098 15.7773 4.77663 15.6629 4.83161 15.6024C4.88709 15.5418 5.0045 15.5589 5.09061 15.6407C5.17738 15.7211 5.20387 15.8364 5.14542 15.8962ZM5.88301 16.1157C5.85883 16.1941 5.74639 16.2297 5.63312 16.1964C5.52002 16.1621 5.446 16.0704 5.46885 15.9912C5.49237 15.9124 5.6053 15.8753 5.7194 15.9109C5.83234 15.945 5.90652 16.0361 5.88301 16.1157ZM6.72242 16.2089C6.72523 16.2913 6.62919 16.3597 6.51029 16.3612C6.39073 16.3639 6.29402 16.2971 6.29269 16.216C6.29269 16.1327 6.38659 16.065 6.50615 16.063C6.62505 16.0607 6.72242 16.1269 6.72242 16.2089ZM7.54704 16.1773C7.56128 16.2577 7.47865 16.3404 7.36058 16.3624C7.2445 16.3836 7.13702 16.3339 7.12229 16.2541C7.10788 16.1716 7.192 16.089 7.30792 16.0676C7.42616 16.0471 7.53197 16.0955 7.54704 16.1773Z"; -fx-background-color: white; + -fx-min-width: 20px; + -fx-min-height: 19.5px; + -fx-max-width: 20px; + -fx-max-height: 19.5px; +} + +.icon-button { + -fx-background-color: transparent; + -fx-background-radius: 8px; + -fx-padding: 6px; + -fx-cursor: hand; +} + +.icon-button:hover { + -fx-background-color: rgba(255, 255, 255, 0.12); } -.label { +/* Panels */ + +.panel { + -fx-spacing: 16px; + -fx-background-color: -color-surface; + -fx-background-radius: 0 0 12px 12px; + -fx-border-color: -color-border; + -fx-border-radius: 0 0 12px 12px; + -fx-padding: 24px; +} + +.panel.secondary { + -fx-alignment: center-left; + -fx-background-color: -color-background; + -fx-min-width: 240px; + -fx-max-width: 240px; +} + +.panel-text { + -fx-spacing: 8px; +} + +.panel-title { + -fx-font-family: "DM Mono Medium"; -fx-font-size: 16px; + -fx-text-fill: -color-text; +} + +.panel-title.prompt { + -fx-opacity: 0.6; +} + +.panel-description { + -fx-font-family: "DM Sans Regular"; + -fx-font-size: 14px; + -fx-line-spacing: 1px; + -fx-text-fill: -color-text-secondary; } -.hello-label { - -fx-translate-y: -80px; - -fx-text-fill: #999; - -fx-font-size: 32px; +.panel-actions { + -fx-spacing: 8px; } -.platform-label { - -fx-translate-y: -10px; - -fx-text-fill: #BBB; +/* Link buttons */ + +.link-button { + -fx-font-family: "DM Sans Medium"; -fx-font-size: 14px; + -fx-text-fill: -color-primary; + -fx-background-color: transparent; + -fx-background-radius: 8px; + -fx-border-color: -color-primary-border; + -fx-border-radius: 8px; + -fx-padding: 0 16px; + -fx-pref-height: 40px; + -fx-content-display: right; + -fx-graphic-text-gap: 8px; + -fx-cursor: hand; +} + +.link-button.primary { + -fx-background-color: -color-primary-soft; +} + +.link-button:hover { + -fx-background-color: rgba(62, 59, 197, 0.08); +} + +.link-button:focus-visible, +.icon-button:focus-visible { + -fx-border-color: -color-primary; + -fx-border-radius: 8px; +} + +/* Compact layout (narrow screens): panels and buttons stack vertically */ + +.page:compact .panel.secondary { + -fx-max-width: -1; + -fx-background-radius: 12px; + -fx-border-radius: 12px; +} + +.page:compact .link-button { + -fx-max-width: 10000px; + -fx-alignment: center-left; } -.progress-indicator { - -fx-max-width: 32px; - -fx-max-height: 32px; +.arrow { + -fx-fill: transparent; + -fx-stroke: -color-primary; + -fx-stroke-width: 1.5px; + -fx-stroke-line-cap: round; + -fx-stroke-line-join: round; } diff --git a/src/main/resources/one/jpro/hellojpro/fonts/DMMono-Medium.ttf b/src/main/resources/one/jpro/hellojpro/fonts/DMMono-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8a9988ec6704f69eb5089d909a9967e7e18ee9c8 GIT binary patch literal 49444 zcmb@v34B|{wLd;{C0)s~yvVjJ+w!8tmN$8o_f?kd*pBVQaW*>%i5=TnoE66*Kp-(o z5(r`EQQA_VY=su65}<{WwzTDS<+ZeQFDFQo)>4@LPm@3&^Y z^5cNd2fTCd_@1dPz1P11*cb8sz5V+R%oe`<@Y{@KwJ;V}uzzN1|BDZ_2|9NI`1l z=gI?Hl3M&MxBxZck`jq79VC0u{N6~;w5I+Syx zXi@(&?3=?Qr#ZiAG{m1ZF%z5Ef0`MCPqBh@9V?;e=S%cirWC!-ET761x0mp}=(`^gP*hx`>{iF)^9Ix<(zR3n}Rf zra8v-f$JvL2uQr3f1md$*=m}iODuVYpF0-P-*{SKT~8V&Rn|ov8~=*gI<|vd&Q7s= zScrXndQ(p{{( zM)#OLPhX{P)vwfFu75!PwEi3VpXvXsf8UT~a2d)B?S}n^yA6*RzHa!b;ZKIYt7YmY z^_2RQ`gQfE>TlJ*8yk$vjhl>njdRA^j1L+=XDT-ZO#g_hh?|akChje>*_>@IG9NR4 z#QdoFY4ca&GvXWL`{UQgPsHCD|4957;$MvaRs8D~#gb-mTBk@V(T%K?$;n{@mB>XbrZ;AU74=0{Tygl*W#LpytKJjab-%I>O(sN1Q zNN!9%mV9gSCz2mce%e}Sz1@0mN@2>CDc7g`TgoR>9#45T<=<1jpYqF;Kc@U|YJcjf zw1%{5b{#>8sLDrT@k5 zx3}B-?d$Cm_D|bCXaB1GyY`>ke`kNg9?m$NaU!!I^Hk<9vsPsNAnR9If6Ds1V})ab zW1C~faU?q-yC-`zdn)_l?5}2jH~Z(=zsr6jJDg+ANzZZTl;B9?m_HdwcG^dC7U%c}00Od4arvypg=gy#0AsID4F{oxgLw z;S9UXu6Eat+=cFy?g!of;Ysow@_Z&gKmYptCkpZkt||DD*Xup#y~q2j!j8h(!dr^G zMQ4hCRl-YhODao(B{!9Pwd5bAD@#99`dsO6eYw7qz6X6@_Wjj&uFPMyt?ZlS#pN5z zZz%s%`De?&Q~tXOLxruvRZ&*aSh1#JU&Y~y6BUnCe5>L|6@RNZR~cVvuk=(7S02^= zepuC0^~LI<>OIv@`IG(Y{agIk`ycXu#s7;MwdT^AduzT?^KNZr?Y7!0YQJ3j>pD~2 zfx1WQ-mWjIUtNE^{>cVi!$l2mHa^q%pG^mw^PAT-ztS?*^2gSy*2`P(X#HaAf3-EW z?QeUr?T2lzwEed2FKutOC$^`z=eB#>%iHVP+uAp`A89|{epCBB?cZEj^Lduq-W}%n~90B%W5p7#oC4 zon$-NLAHl=;mL`xkL^X+!DjKdpEa=x{2gEuYzA=qk#>NUBkW|mao>m3?RdYEEyFyu z2Dx_PofA(~$}D255!;5?AvO-!DWph<-MCNSc`x7z2PbgYi~AIyoPggUU{|v~lVegVO|D`?bGNn!!C=`xpNVmq=uv$!4U@| z{3}Cjp10?tOeLegX0(Mky$!8Ah&yq9CvYI%6@e;5zXpVAgj(hYZgql7)tD>jU8Iyw zP^kF>Fc=0l+ff5icxF*wqh2?UE46YzT0{M9yP&fZwO5KDIZ51E*jt@!2=M!ajxZr` z?+~padd`R*Srp~iV(M?#_uz?NxSkT% z>57T0RF7gs;qfol!hifb*~bl~9r0~l{qmswm>#Wh7-t>T(2 zu1VsWD6S-NIO&wQs^UtTBah+?)lNL8DYq!oO16@yB=R@$7lQV21)t~PeGcF$8if6IyIhTj;*MVv%48q4$)kM*<~XA zGIniDx&rQ*cnL4%oxF>8^JUP9dZ{Fy&2xD@Z{Ur*i8u3>Xi1Rx4EizY$Xt(93LPl> z3!?1`%LnC1hp$19bYtiP#JdhTn?Pydhpj+C#B4j3bUK z)j>6JNDk8Y6|{&_sa;ri(HoRY@8!xR!WT->qjzm&-(x>SJc8*8#ARJxK|4xsi`GZD zQ|nG?+Bj!!JQMG+Oajzmt)H_`3an(UM6V11t+2~L9|b+fhO{@Z!iiv@U{=i+++2_T z_y5?N?0?zc*+1A@>}~cAdzZb(-p8sS%+686!1I^bk9aCim$Sp{ z3U(zs!j7^zb``stU4!2DarDhkKoh?g{Q;B!hfLf|y?9BVLlc23wUdFu65}+c*HaIk z#S+4RUX}pq)yR&Z6bJY4D)iZ2zL8I14RbTUjlZurlu_jy$}e?#ok?fWrRa)u&*vV? z{bKI_%YECK=FD>DI^9mMv(nk*>~hXJA9H@umFjZ4ysmOL7BTK5cZ%EQ&T{9vOWnQh zG51u#w;_$FM>`?Ao7jE8JQw}44&!8iZ{|Bht?wxrsP*g0PqCa;b!OD+MXhtWXLH}k zeao5Z%y4Eqoubyp3)E^|Q0pYs%CRzMKSo&cFZ``@uqt4^+cEztd}(;<{qD%~uU#_s z+S|Ww`?dPo%dg%4+5@lM@!F2p*1Q&YZRM-eua3Vu%Gj&zuMWMs?A4}MGk*0BW50Mv z^pF|kya~Mit)eQ)id)H7g36e(m&#M_RPMs{Zsi{35hbKNCF@YmC}))~DbM50^U4bf zY#SH;r-WkPDG$>V@8eG1!3+5czK37TgWSi;e_;R3%lW0ef{*j%+y$-=^Fh9v zU&asc+xaZUQ7hld{rn*R2tUNPV4T?aO?(%h;raYlj2k^~M6DMImx(;@N8zFaZVtMQ%ER)^Ja@fD2zuyH3cN^sUCt$I;mla?HSHW^n z!5+bk^&m#WqtGDk$B29!y3}W(U7cq2SZz15GZ-gNvR3vv*3O=RWcxhpWnW>P>@4eH z&$E8^0<@fO!4~u#XrkYSPWvB_9p7VXu}a?vIk|zo41MJ_XehsATi8#bwY&<=@)hVW zzhb-CZ`sA{Ptb)fVSi(nvj2hJ`8wvuYuS28sZEemxA9vrBJbcI<#+LqVZNQ?SHZ4v z9lxF*=SLwUPVlSwG3Y(NgO2r|(2D+xxnLPN!2SaH@>iPoAWvupY~Yt;t}fs^`8tg9 zi(oq%LCF4)L0GZ?+klXDp3sOi1486Jg!qRIYXF(z!^MqQY zeNZUU-lyVDcv1);3@!@8cwQW+++~Xbwd=zM;xW;5ai~LD;RV8Gq{jxL&4&rpKH~A> ze!2l^hY+R^h=xvtAOf|Ecvgl$eYPBd`g0=!rBi>PXL|Q>gu4-LL%0cH=c4d3o^L^j z+~X1dq4rF5QJ{AZAhaS_5F#{u0dWeH{}Twi5UBk75gtaE)4~YuB&Vov{1{;+0=0qe zpF^OuwFuPSFCjdIa1`Nx5S~ZqMOdfZsXj`h@*;uy1@%|riw+?LArFE24~<8{m+Gdl zJSI-hTM>w7k@s{DXo2EXCbgMpO*|;k?(Mi!AEB~|-c*knf$H@lWFZhg>JTWM0`d6{ zgnwvZ5AMV#x@ST?xf$W-2w&F14bWIfd#BYF1!zR#-ErKnMj*}XX@uV(yofTs42XO2 zbT3N!Ii79+)Qh+u7n&}B&fN_ShSmU!{$bAqyEN=u(8a$2J>YSnu}?r#xrG}r8++ON z>>Qf}E`{umq*Fr^n!@VP4E^QXJf3|A8g>Ftgl18~-h!^3EHsQ4xfS#6ccJHh54t?G zdd%VFSRqtEfQ=oG_PH?0=yn9KPZz83o7mC$Tfv;T&svKHFFdgxW__$V}o_xJ|rVC$imZsHfQ z5v)lzi&f82Xn|wU7Ps;V=%E|1;-BK%_;zSFo7i8l7xx8d71Qh@zKi{y?}pC1m+#~I zq4~~0qnw2vc?tB$OQBz0&JRNexl*j1J`RmH4SHHS^xh2g%Pi6xq0bx@8qU@H8h$PG zE4h-hLbuC-ZuuGLnh!urz8~7)324nK^u2a|j2{Gg6VTY6gx2{2v|rMK zKL?HNQD}N!LN7Hiv(TPS(%urSNTJ)_41Md1%*bzH5A$20P2b6HgGT;0XkyPmYrGj6 zRUY)mJD{0<3YzPK(8_OPcSBdcgMAFT)rHIx}_2l(A#a_{7YEPa-Ro%f(Bkq+|)z#*nD5%;e>+aKX^vN7* z-|WualT$K-zfK(xn5YAyCM`9nA3!nc3i)b9%&VGOb)_gaVdaj4d$*6z9Ne>e{NSu{ zrL069mRW{lveee8t3|3Pyt=AER?@IcT@wRUSFOG7P}j-|)-I@Et=5XQvK5B4GduTg zSJ#TRsOv@f@#`mc&P*KKvu*d(rE%*gcTUYr9oTt5UB7*1{F15o(fOC^s7Rs;tGbsp zs2fCf^M-lSjZ4yvYn6^`#2%lLkQ4KelcEjkl*ph?i6`?^^u2LPD`IK^zq({&Ya1mk zs{Q8e(JbmtS@}*a=T41pJ7f7)ukIG8sJmlm=tC~7>pCs$P1!UbP zD^X#+M1NFgVzSiMs|Q4?#+XKRHs)=eUrP?E2W7zr7ZiL@!~USguY-bL2PMA_iE`r) z&9fx#P?TSXB)=}3f2m#;%dbZDa*^G9`8>(S%gL%5KQ3Nqae*B=+LLJWfr}GKhAFxN&?+gO!~_Jg5TBAHO|{gx?}ZsGr{Zljhkip4Dx1 zt2NK=n3)pA)tC;5AK`ApxC>8_txDW!(LvOZ4m3QgS_C%8>94JH^*H1=0^mc!hxrAaCwO?#F#`71l(1Pfzw z*GPyeEr-Od(qCOK)2kauCnC+r41Fi4?M)FJ9&}-h#h7)icIRjn`t1g*91u z8&?CYTAaP3{2KAixMBw&?yFjWCr8}p5MbGgrbXUG?wr0*7S z3As(g$HaAm=@uBU*N7|LBEBLn3)fz84T|duQwvh+M7+`jpBYoWxaOKNOerRdxT@mH z=C8(gC~kaHq(~SEFRsS_7U{CaTv4wouDM2d^&l5vBH!X_{0+4ZSF{dSv<_Fa&iEVS zD4fKFCc^45fz@M_*Z7$6VdH(WgxITuLCVq^B^?%~e~j`9 ze4#*SOfVeIb*I^?@lCep|YXnTWu?Q(LeuvQw zzFa4+SBvWvG1p5(JX>5P%zhD#-Z>JaK$u6BuQo46A7maEk<=`zJ9 zQY5@r#GQ1F#VxjWY9lBq@X;{OGG(B~G;vK7S5r)iLU9SXpd9c>rW@X)bi;c@NnFuJ zTv1Cj9W*q&MJxKO4ZH>^ zeh$`7u|v%(mCqujQaK~8n5ht_nW|Di7K^vV1kZ~V>?`9+ki|5o;rhI|0$ve2;Mggl z^83Pn7T0&_O0~0hMamA5YX_B&okGHDhk(CQ#JfdZKz0jEx+TuKuK>P=-m;G< zFCp#|@IK`yB2KvZ1a3Z&*C%j$UzA)Xa5y4zxdpsiP{S=?+~=?diQOSVnRAt*94fy` zKvs#o?}>6A6D7PNu72^>kGYm}zo^kKu=P_p>}T#;k*GJpPbK$_yAqmy&}agsBv8PI8u(w6an)S5%=jHKrVRL;_4Gr zt<)Vxyi%lB>W+x`9pZXQTv3i9d=+@5$W=+@u%GD&rd8DYGf{H6D4|?nST5d{6Arvw zyqy#AISmJ@(Fea;y23jFSE|=1a`|*ruaDpr=m`{;SL9U~?TwR11$m;4 z^}-YNPT`4qx9~)LNO+=t8lD6Na@~ zf@e~BD&BcQY-nU^^h`P@$g+^$7t)o6Y@H)iUnsq^Qv+}~C!L|^heCSqhBHMxp|g9U zJEV4xxI(&u(cz6F0Ct=lafXJ5kQ5koI71B-YZx7Mo|e$Ss0c~glQUFF?<)!N`JoXf zsBv=K88Q!zj3LEI@5~gdqgdUTV+^jk4p1v(>6{3$;gJyQCtw$z9sQwPiskl?KaT0c05~ z3#o$KpoDYsv~g?DNiV6n4v9WpL%OlvW}|02Ep^GB)HGA08d? zjJighp}^`9ymJs;G*rq$MqendvlOl(lFcSOdV(Hw7f*0Jq-@<5;uAn5WGpEQ#rd3s zZ6cbbXIlXRd;?>n1Txkour>S6#3i!M?qG>4+HvB23pT`PDxi7v^wgm^l5p(_}I<2o1was^LBg7#N|P@NF4ov-cuHgWO_S_mh=Gs z9;7a0)&*F28b>BPAaZAjwVi>Bj2MMBAI!u`_nMJViYMso4ke=dC3w)~g3hte=jU^5 z_ouR8Fh~?g!#h5HI?YrXx}ntJM)yuf8*Qa!A-nH1r+WtIP4`USX&v3Oe5dtvclb^l z=$`F6t!1`i4L4}?H>EDKdfSbREB?WP_Vswz2c;I{4&2u0$eKZZOPf~oO2YX#=D zC{32ry;Mv<`kWVAN@wZP^QNoK({Q?m+o-K|pa&Xo-aKO%EaMGjp?Y7ry`?PF@XtWe zu_plD2o|yQ0%y6iheQHM+jsJ0kEaJBXao}&y1XhhasdpNjjwkhAL)K`JB&``j z8}$PN&$6+Q3T`hPt{7RoRL)BJ&ap{P$bd-|!cN~g?m&EO6!Kwlo^hZC`R`da-r(?{ zhGl3cZlV^Hcb-as2#I7BLIlh(pu=GXS%e8n9H-fekkH|(Nz(bc&{KM#`Nnn9vD(MJA%qC@Vs00iOEsDyq9k zCNAxHV;+rLko;w#_DF4l`Wm~&NWod$mtwET1>Ps6zF zSnzh(F|^=qaKYP1-q`XM=jil>no453K>eu4CU6vxw2 zL-l|e@P!(28zd@rgWS$#n1mzLTH&J(9U26gSNdRWTZYIGBAgR#Wo-&(>4+ur?gE3Ct?>7oQQ2E zI1$@Ib#?=6jOwJwIMqp!tyCvPCJ3e%kx7D~$P~d)WE;UyWV^tt3$YynFN*CHcu{Ox z;6<@r0xyc~7I;x?kHCv!dj(z;+XouAL>ahWJcR;yaj}ecAUZ=tC$LZuPX{p9B1$l` zGDhXE*lM&hD=i-UH;IekqNylbjpY62I^|(7?cYSt|9%z z#2D!rWuY5=p-d>FTPH$p%mY^R>3nFnq=I-bNu3-IouXO!CSb+@hX3QC8%u@8*og>D zA!8>`hFmCg963W7v@V32Ppc$Hh>xNygOl0~Gl|pTkxQOiMAzZL;2Gw) zsl*j6i148Q_vXlpv9Zpw(5>J;5Da3xo}}V$^F0$_6BK|GlzHgtXw}&0Sm;(z z>vrF*{b#t61qBx>0MPeNggE^l!|6~U2wgmD>a@Z;hb|4}3G#%TLjF$I}*$Eh}i8Vp<7DH zB!tD-2wh-p(80U4Bv6Pnox)(JP&ilCGezNB^oYUDgBewW9$-4FLA96qtuAYU%jz28 zkA&~x+2P+RXW#D%z=omF`C6p~B^u!;;SG4;MS&B-3Rxbq2Ms!uo5NRNM=A~gMyu7T znlelMss2jqo9%ojKW-??m&Sh~!;@!{I2*brG0I`QQlt;k52qScg(s zSD*taI+Fq(V@FSKQn$y)fhlkvAqL^JfMJW-s2B`6h84-lI3J&yoSH%|F-hPR{j->I zN~=;`Hjm9Of~!{W&H595`0PFRoDKi{`pU;9FILWOd2#a(w}5#Uh415I)Ea?>;9k7O zz2gh1h0X)6L__x2TwNL}zm4IWjZSQ?1CC zZE32}mQFX-qw`nS)z)}CNXOml@ie@%XMdoiy0>=Q^1H5S4II7dWXH1Q z?bj)1Cs(!(SdA&Gf_0-c{I06%iLkz*uC@^wa18zn0J`l}&ba7rhgER`+ zJxy4m7Y6cUc%(@W$s=o0d>mkmE<+4|JcSW{G(Pg^gAYF1)^z#q-Iq5hXPz1LsQt2XeeC<5Qx06K^^>WGG^g3iazJ-)E- z0!G79QDLQ}-ZBKNlR%evRuQ0+Svt&@WdEJ-!3OkTG0*@X&*H`KGMXGDTy2rRA^zp? zXLx=1TYRlHrid@1Y{7TC#`n4vQzzSOAD4HmRnpc`jMk@UMg)<<9VH%Grq@Uljg1aX$yL zq5`tQ&5k^s$Mpt2&>yl5jbMgVaK=ed=isSe(5phG#R?9i3Gy0}!x1R`07#=TN6HzK zlry6NJ7>8$*^aEtsJL-+ciabvo4R@$5SVo#bv!FB2?h_Z+i^7UfVs1F)w+#+RROpD z_V8Atn$~L>y?@`H`!~+)s0*CB{OF0MjsB7Fb(_muh_<4YI_hH{(GSnp$8zvp5l}+H zfL}L+CBI}|>JKvSlKucH7K1MpVhoXF!Jx+>%Iyl;oIR)-6m7IG8at$#pkcTcPxI>O z>F{@zv*BNH_xoMEG5ihU4W>H&wkQ?c)?pISga||myWp54V%1{Wv-)jY?z)rTdFNf5 z6}EYEm~93fM2TWN7702;G?Q2vD`ALM5+F zN|>V{`Qov^80U!gva~MJUSv5KQA^7?SB!Imq`d$J{Jrsjl7VV<}iampeqU+Cx(bw)Dmw}^*WZslMJ#;*ZR|G&a4He(^Ou&dv+JE zYi;&V&sZ*-t{+%l&wn4z+c=58kIp(U{nj<%|K=IT-$f64o(IAYso{rsQ~2xP_yBq}%0=t^qSc~TqrO$B zFAen>SY8178>v+2Ut?&OR+WJntX91#gLD+g`Bl?=6l(4RTTo^{&vy#%B3Yj*sF#bGXg=GtL%5{5<`rY2;I!OhAl17%FFl2g2H=RBGQ ziKbD-k`h>f(((S3lJ}H{O6Uv>gvND&m9H`MOsFZ;c z3CtHLHpiKapf`@Lg8cLK&66d8CD?3&EVahkdXT2xX2c{oy>8v~+#DbMqkEH^9|}L^ z-{gOqIu^X~W$6}H9w?1B>7W^+U^?NeQ|2Upp)y8@4llJ7Yl(tYw7-5 zZ{0sNvt|Yieu1|@M7;6N+hIB%4z4N%z&?)U2V5rfl=F2Pnhm1ehLhC6Wd|>q+7bQ* zC~{8W?{^`b15ZSGg10S_x7ykzcC<+t8vPRH7znj^)MCe*@RBew(p2W9(I)dQ9c>EB z#As{BoRkC&wk%LGud))`qod85jISQqk{wnDbXJTwb>So;^yxyWMGMuH`_^6&3|_Hz z-C>$T`ZsOrAK19jGIIa^{r8W^>*R@}M^8`y9Rv=74jl{V5W9wxFeE7@Ohi&Hg&|r= zn24lY3PX}o!bBvc5+f-W;}emBOUs$B>uQ`CA-*gvha{z}D11%v_EF!2Iy9bTX5tVW142t4Wpcl9>Y8Bma zh?QKa1E7~gpdd8?Ga5*9IT>>nx(ai%QJcLmrO*V~X0MN|JnZ#;qqZ_~7aCL3?5VU4 zNhPip>eB7qP7fHmrY&!38DfXmt!~SU%lK1a&A`S_^>51fqc`p1imQjf-ctWe#Z?q3 zspd1I?fgpDiSXeQM@QPi*E*xTramcY66urkG*OrpeR380WERfZ{JlS9MdQtJ5KGW! zRAm4=-J~=jC5}=|ND&W;okLL?7#)>4$jD$&^@i=piDej;vsj14n-o=L<3_WlP|2bi zBA_fTE&?eAg3QF`vkb;_lPM;Dz`r0X=#RA?<`ZoJqN>I%jPx>@%?#dQ>KYvl_FwG<hHv|1SunWlLZ(8f+Wn+p%&)6e72}MStHc~yC8mF4?ReR6 zLuY}?9Z%hP=TqVTQd7#a^2#zZ%kpwd?Di7NqhGn|-sNr8V)0$)bYJAZWODKnzq~>= z_CTuTLaJHdQ9?5=geIok?bO>KRmngTnWwbnlf~T1c(5UDQ_y^vNx`0j_EL+6D}2+N`EqDpjUxoWf9 ztVvj-CVE|%aA?Kmx6RjTtBtG_d#0~hRPFVsw{^V!`ag8k)&)>&=DF=c&ZT0UH3jOE zIL_UW4MBl=s^@Z*PPMXegXEGejWb7PTAnS>nhc?r%2O6C)P*gJ1iT5Dv}e% zRF5u(7ybV=ysNgm=k~+L4;<|63@)El&Nggm>DrkQeudk@f93}RHMQ*+lcZx53;7F^ z-UV!E5{BfRgo(^U(Q!-VU>-s{Bur!;0)Lw@o^vstON5OC>mD$C4!sN=>j;{s8^@5r zxS{zbY9q~R0`eeF2^)e~qA z77ll;AHH1G=G0s0=2Si?7Mm_LMuoXS zu|^>QVX+MapufKX}?dRKZncaP50LP9>GEAK0*8BE$^>DbwG)h(S@uIt=v3V&5u zZrOa#SbRpp@@+M(wQXY!U;Ole2i8waZ{IQlvf$hygCa}TT~{Di0WN$CBw_X-zHcK( zv1Znly0ly|{o^eE%~|E5EnD7y0CW%~2wTdip!4}?*bEw?7SIqdF*Ixj4P(VUL#Vu@XJ24?AQ&8&4qj|&I<%3W4Yv)g zUq8gZ8t&S7s0o;hT0{@INML@xRi1<)-9^GgbeGs3B4MZ(NtlT4vJ{4N7YP&5U1C>x zi}8u*E=$XquPdUvEG>t07g<+CcUf3YF;Q5;fFn0*7D9;w*{EgS6X2K7Sz~l82}62- zgo)?@(elx+Z0J{=;GjzV3d@41x;?){P??${S57)o;dOug>C8h9&HNOK_Df3T`(4yK z(I1udD8)jS$at*wXjOpmB&Igl-?T1@<$yIsTMme_s5p;KH$Jw#Y2A)>P20x~4-H{S zpyTgTz_Q?PVJnScQNHK_STw~*&uB}cFhp?)b3X3Ma)`SU=6u{;T-Orr0-GGPw;Amf zJ1uaa$3{z(a0{2WDJdypNMefx%AXF~Eyld>zkK*3w;%fc%a?uhR(z#n^Ly`w9}3?q zT9Ax#dr_{5c>+!p8?$Pj=LbG*nvx<{vXUXzfBgQk2OhZW_xQ-qnedl*FuWrCccPjo zO;By$1*s-sh-wn%d{mP#L^TO>KB_IQYYEk&_)ve8<(#iSwt)f;P#})<7R*$TDbT=a z>8c4l$YmY&#v)w`OF^tK1&M393wj)P+1mK#@Td3>!}s&8>lJm&`uE@2g4#vNf*J=e zNDT=?)Q~XelaUgJY&;U?Xk_F??5WT;1|S!8{5`Dq3fOHz0e(6I^9mnu;BLSj3N$I$ z&;+Bij#1^t=&VyP7{^H^Hbl*mz6*n5e$Ub1qjpJ0PBv$*yzGLU0y}nSk`gUuXujAA zF-y%?m=pZinxUymY>L>VQIcjWBx0sN*F03TYwO&O(q{9t>Cnc#lN;iU>A~`j4&7{H zMTMofySQ&Set$vnijBLsgumD4sUBU~THtaOfYze@%CAAA%fvi#RXuLe^yj1L#|^RR zG}$d^`$&eH6Y}G4l7K={H^(3x6(}ej*AF{wbf0re8l(?p8D>(As>wKK#=!`# znz*_%9!kF+y0BhfFqmXfj7Bydml$0&QPKEvo7O-6Pnl!1nGei|byK9u!6a_6L>|QY zsj#sD2Mt>qf{nqtn(C_3VsAmd+nJY@k(MG9AC*<|%H)N;i55&+ce2Y)g}p!zZL`(; z6QLG)$?To#7Yi#LR=u^dr+u`v-8DW^<#J?sl&!ka?&9W@v=;CBRh++Glv{1tYRK=b zDeX!$SbOd~rFfiq-qSfH1!Wbvmg3H$!BMEGE>G`zS5CJ3s$J$ROLuQy#h|acpsg=YrvuwpW>ElUwVL; zkBrr`u;REZsT;yin_L~jg4E^H1_v5B3R0b`jnT#ujQ6E&#qlN+dQ>$<uksyEz}Qi(0T~7uAuKk*@8c=J1@z3Sr?cs#qXnktp_2{oQ-o+IM$vIhef9+*;vo zEhuPpS2kJprOjFb2Uo6~?bxz9za+n>wx+kBq+ocAWP-p;@Pu?W@T3v9XgbLRnSRWu zr9($WJEG~Q&c(w2B$|Gd;KADlwA;FfxAEM-VQ!PWl@C}KFX63NvqpHUTgqGQJ(gA< z#9J~uh}CVX#@pyNG+8cbL@Zd{TEWq#iPpyDDbpL{)U-ZNgtwBVr7rG#zp}5ed`d8O zXyr<@u^MgkqmA^nzwSUV3mdUy?l5sB9$#|9^eH;4wg@j6T(AgtyErQ;a#gx3ZCDF3 zCwDI9v)@|?+c1`c{&YLc!_puDoEMl#c;)f~9qoI&%2(#7xizymi_;@IgG?u#LBdCL2ANLsL8c#FP!8!5GCiV8NO;mE zWO_uGXv2OtXdO+DtjHuh=?oHH>I@2N0dKNmcoUh?7ugvK7TOu+d7~+Bi+EF04=&8l zwvj197#a$Cb~bW;5L_v*Pb97oulDwVH{rL4H@iFH?FrpIUQf@sM%ux1uq{#k_n7lZT+k%me zO?s0_8Hdy>B+Gs6VrVpqq`JYN--1S>P3Ox83vy`*XMwh+hN_B^+EVB$E@xg&Qi93A zig_`O?E)C_)pWmR=Ye{IRzptK*J~2q?#E_Ygf-;;B=l;Xa61y-P%3wo7iL=GZP%>d zRk3}|^i_^@N4&#VQ8C(H?0Igztzx9j*VyPQYit}HY-;PRX*=k>IVm^E(br!wSiW*) zc13DhpSz*DuWEI*Wtkzau%c>B_1cz#scPciIq{{-voEY=oi zCL5fnC7j?Ww5n7)k{&m=ra zM43)&_W5*@d@}vWg7o?F=e`>YPZCbTUmt;ogyRbFp3=RXR=BV{3C}lKH%U2}ht}|N zM$YFS7n~CMCF!_JIEC?O*h0h3Wsr=@v1CIBPD#?(MCws2n>ZL$JI^S{5ZY_ou6ViQYN%(krI$o9FP4ZG|-yrGf^J3Ci4{5)J4yFXQi`wgtT-_y5p4 zx*m33dP7s|r#A6_xHh#mg>{=ynr(3*5s6R4u?GwhY>a5NeNo@N7~QZDZJ z=`7vu@nZVuPe<;+A9JFT2>jF7z|#lk!bY>G3at*PI*X}YGNzK_4YJimJHuJA7-0u($K*a%(gX_N=a zf-NTM3o@M~h)h2QvWs-|Y+xTvzX8ef@HFZr{B;Bm`CJR##)H--;k$h?o(%)9U&?CkSkZwtI11Emn~S1GJVr7?^VR)YUI@ zyO-4u4-%FF8`0V?0K0iPD$_}h%JhgFmFYwUnSL!bDq0T7QJEf*ql?Rr$kD~+TwNGj z4#`(pj*zd=af;xNP=T&(XD;~Dz#k#OjHi;~Y=>UBBb?74LFy|D{1MRG_%Y2Xfs7BR zGy;XeDg6;VZa68FdP?(hP}@KEN5J}yloZu27k7om^rGJEJn*5f(Y2)qv3~g6)ij^yCt_-f`U|8> z+ZHKyMo)BQMAj`Bx3E5feT&C9>O3XAEMimh}WTX;mu}7EyTqHhS=r#~R(FNjC z7`V0A;8Z3z>QPOqH{UAUTB4FvsJPUAt8it}^xW=ECN*tUL(^De^JH87@|3F@`uiJT z%y>n4aiGB8d|(|6RKD!+A9(H1(9jBDrP5l1IWz?lB^YQ&Yw+_8)Eb~E>}{HsxfIQ` zRQ#l0Mrv+aE;6ThJrNvZY-meSoIWpty2rvlydZ`F(3{qCMDL@T?I8(hLbgkL5*{!Q z(Sv5?Cl*BdsDNytT1;xeXS>KWWCKS9o?_84OD64m6i}d)~*lY{{Cm0*ruE!5U9k3NzXB!Y%4) zDAkzu9dw7+gx0D|98iKDK>Jdd(lD{9(Cvg04(}myrt%PgSV2P560i_UOF@eP>WZio z=!x2@b1`5b50VoHq4ea-FVv4k5cqCKAPI!cWSOZhFVt_7DZ3QrmZ$=0qxn9%CLO%Y zx$;nPjUm2o+2HQxz{i9}UQuFcXxu;C_|PVjR)P*nHm zW>0CEl<7D82hu^$VMsTI9#i-Mz8P4&F7VCB&dRXcQib&tpe&_02$X!nc2e|{d7>C|qSevFz&@UY0DebMxY=fyDS z5t|ps)y*8dzPWg{Esq&oq4jspvA{XwkX*16jB1af@8D} z&S5y^gtZg-v|(!xK0G#VqZO133tciaR@c`HQzH;YujgC))?K;WAD1-z!V8|#*`AGW zZm1r*dczxqdE`frI+ZG24LJA%vBsd^znPS4jLFCvV_EoJ!b`%SSDdm*?k~f-A~yX7 z2XzZr3czJE*2-yYv*6#;R*n;ikRn!WqeP`hDl7ON}y5a~K;9pb+xo zGn>%hG@hn8$u4jzk!LH|hKr_a>+6?K3nkgIZ<>3;e`@VszKol~$FD3kmC_E@Hb}wc6b(9W{fMH4}II_ssgX|X(hwa6_9)J1CrT5-< z=%@Vk@Eo5DV>Lxz@?_WprQa`E?CSx6{Lg(oW_Rys>6z(i*|B?1e?Q87kZ%$pnQse! zj9Mki7hL%bu%4GbGM%U|(<9otOegBg^oX{;xE!Ia1OGbU?*{%$eK!^x1R}m0^@ZfS zVT2!|vE|dDOXlV-34QvK%MZWx*0ax2K$(Tm37Sx*iQz0S`l_%pz&OTqbF?I-`A?^V zx`hUj_l8v*d9cHikQ{3G&6nhS<-i@E*cblySD;6HBm8fC*ZVb~geX-|;t!G%K%FQg z(}@x?{aSr&I#EKVA6bx2{ZOXQVUW+4L)y4ZzmDM1n$5V-H^(mEgCR!iKl8!Z%u~bv z!*37&i95FN%JD7Xm&Sp)C|R`VzfsdXZ)G~QNTx?-7MV_#D49-{D6miN>0w4qV@`HN z)4^yP57I&EV0cihJZ4WXbBPYNa6d0r1;+fcbU!cMh94BovN_Y8B!94wh4fjxpGWG~ zg*SG((+zPKoo`#G(9;%9j@{A$rR1(9@$8KSl#=Nrn`C-qEi2QBf-*faI%GQa37LL` z2zZ|IBWqa+PclftM{I%(unF4498c*agJ2tomP0Z~!k<`BKJ_h`ejTMlgNv;6idY3a z68|cBXR*X#swm9IkyF}j7mo@aO?ZU1NzUm$oS8Nl)ERV2J%0RpyM<$oI8Isv3_gkR zI5^F=nv4m$ScRdC^5CrB+=t5qZ;M6nn3eJdwVE)Dp`)2hIg#3o339fA+F4Ll$yt4E zWph)b{Y6Vio2NF`Ln5NdhkDl*E-PJFCtCt&5p9fO|EOOg3QRwe`3KJvLx4K%ZOb>+MuPB@Ro*#=J4Mli%4+s zLVgiV*o~pJj*FGC`?PVE#f^Fk$LJxy2s{|%gSILtiK<{mqkdfawva26jvSCZQpqJJ zr9wJt33W%)=nMu7K*|C2U-~|sC&OsK;ek=0xX@kZDa*+w*976b?BXu+YNDOih=yFd zbX^3eH{5EB(-mEZJlhEi=^rutD6S~nwtg(|4=dPFDmV7>&9Z~ z;M%ofu@p}1*wM;6BI_kkPf$tht%T9XRq-`P8XGd5_Eu#2$pXBNrjt~Y=~Ak3{Dv44 zyKkw&XJ0$wkSo?!;&Tv~N3<0d%E3BZY`n>3&Uv=nemcL|#_ycpW}7DYc?iapUnpP2 z?p;26UUNz74`qsRHorf)z$48^HiEJkH?uNuus>9dJQYzdB?I&a1DnGfvM8_gW+TQ^ zHjL&-EsJsh4nQiK!q5|)!G~it;JfC{mYvPL%b)$p%+}&H%&=prymXjCgTQ~4#jl(n0 z;;YSYfL2qW)tjIdo!){?g&J%}Ulw)kV+HhFG#~<^!?~c;C5O8t-Vslb zC3}S2*SMjkW|-en`_p$w6--jx3#u_+GI6v7dj12 zTjKZ~Iuf~ur^(a0HlcV#Pr4iFq`UMGhaZCV;t|C=GJQY#$cFGVzcV}yDeZ*r-XKn_ zWib3wPQdSSrlrz3Lh>XLEq9~kWYN}+ie_a333ry;Zo9CF7yF*k^G;-_7E{zR^1wcMmTlhyBYe66ClOCuZVVp@99q?|$rWB{ zK`U7hEyw9|d>tP|Pf;^7ThruOQy2xXH9-emf{#D+-HtD8 z;jiVc>&8h+Dv{PgdE#6E_C4V8MQ2!`$U#)iVc03Ot1J#6#cudzu`IhMrBEDCuWiH9 zT$sQjM*tEPqsz8z`^QJxYFmTbdCT_TuG!jkJ8OB%n&Fdk!TR>W+U1iq2gX`2-nOZP zHrTLR`zB5sev<}Epx+BU1~_1ehqG35QIQE-h&V)QFc`-nI<>6E$m*c3?pmHMOsI@T%_pLEW^jKiIK+Lq}U}^FR|0`sjD+nkIw2 zW0kF?P5q5~EHzWT^}T_Hwx-RMexJXotYw40YS>@XZ&j1m_cc#6fo5n2Q`!WV5?FPh zB7q!nFiMmG3>QS;J-q{b!{PGC7OEv495q{U%F~D=|M2Ur<-{(Jt-x>PmxZ6=jaP2m z7=HehkF4fD2se*?V$cjzjG_j z%x!GPY}&YUWov(bYwO^krGE2eowHAj`$roq>W-f9HZ^YRY~S56HqhKWh>2G4t{HtK z9lTQ+WLRVk74iCButL?&aZ7ja`*>XVHvWt7+sdY~;rH((9kUTMp%I)TyhyqO!E}6B z2eQk^<@anB&;vUMkrPp+C3(4=NoS7&Pi}EuadIMq-(zIpkatIIm>62SL@#1hK`N~3T*=eZ3y6QYsaWnwGGty*ZT3lZosBm zM>|?K*YQs^m6tbB2tV82*w{{i#uLehGPE!k=e@vntajj29+3?2_JU|Ih`uW3P)#(D z)d)u;oq3#j^YcoaB~b+`m*+;>sCCtPcqPUdmPI#>Z6wbNPPVAq%w08o8;r)x6}>H! zEloRnH(k=$e%U}^``7$%LmMJ~i!sB^Q(I4m0*p58 z7$x`3i?o5|8$TQV4gbuO&6^t{a;(3;X~oE+8#g|nHcWN4>U|h4sY68pxN3 ztXD{<5jL$!Et&~66O}z3$3qk3SBt%;$vcUpPbiWW=FWBFUjJ*DA?>8t5?qr|T&U&FVmE;vI&TO|h}T7Q)3AzlERk?zI}9hZf|=Vxfm ztcyd$e%sxRqkczbu4|Pt+!E~d59B|APtldF=yhl26=wByb~jh7?#W(;`fr1s;cKYB zm}Y0shnk&%Ph`5NAj55Lb{4i5=~#xaLBpRcPHKb;`fkkR96?l*INTQ)QC2Hnr?a5k zUFdY>=VUsZe6?<6>$0FH!(Fn1Tl+e5+_{-fN3T6IJtHT*xjRsmS7O%3)%yIjv4LO9 z&fu>KzFcTd7GKR5bF!de%$y7=a@d&hJqMbT3;nfx_=Tq?8ynB=;Tc0+JURTfcASUjJD z7LW+<-_M^`C%Xa`soy1Ya~$n%#$jS_Ko$HLRvU2!;|w}}Jh;JhI~Z1|1``gZ!`!AC zO_%}W%;vcDa1AtXNkDe)8q!Iow>oH6g}@79c|-9%fm176XEYQtV~F>ru6FC zN~&w~tI`kfPj*~w4CMZ-V+)Qle5s|dD?2_hEur35QIuO#oYV@(vjw!u#MkS-EU1+% zsg=!5#uTio$aRtycuiWf4JL!pG?&QDs%pL%t;Z@}QZ9iTjG!F+cvaQ3o=(-PW3((& zhvsQEpV@r;!{r?fBm~C_FNRD%kvngW%$BfGe0fpl1L-AnOowkxYycrnh_8dReJqEyql6&xPG$*i5sWaV-3rnntAJ!3Xo*3%&x^B8)V#XN+? zG0}Ti?gj%NHTNxah>={~FQ}e4#u>Y%?(k|BI#4)@((2c?sNUn;Od-${Xsj z=(>CO!zo|}IqvQ@PyhOOKpr)q4>-Vcw9(=UN$3^0ZA zEmwIqgl!x?p!$r2LA~+k-cbfcJM2&l@ns_MnNTch^hO0{9NJ>c%t*kde_l?8C)1N^ zwb&Ev^B%R*A4WPq`(wOoW8<4eb1N%96S=#qs_45#Q9?ur61mgN^h3~>epLn^o?`fh z5%~^ipJ%|Nu0YWeY7902F--MIh9m&$;3a1-t;csvbupN{lYFhUQX~C2{>5--_}$og zUWT{(F<3X_Q4hS=$dtjy!B4RluY>ZSqdgnpQk-Og(O)*5wj9wfqs-OeBdXj7=6Vr! zSSOPCTH-KO^#1qw%i%J#Ct9{H%OZVmvAN@U+h=#hz4T5f<~Qfg~jcu^*`3HS0SX>w<>2GVUZrN0`Z%gNBg<-{SqNE{wGoW`9W%6l#kt(eq5$iboFjSo$ zp7- zPxIe{-x#?xXa&FXNF$SWD;l{4^A0s~dG7PJ6%@32#q~##2tA_2RyL(%E9>zM&Zssq|A{*mTRLFW{fN@$_4W zJALOK#+N(a!f>_+;Bdy-G1@%6Bt}WJb3c9yd&BPVLmPC%?>+IM@)(eZKNx;!H{T#L zA=eA%HuGyC`K-(x$b$-nwUUlZ&Z0YrPut>^HQyumX=}+F5{skgkbl8Zk!vdOL8Mo2 zy}!d+obS)|RMyt+-9^%w%3dgW@#~WdBrnPS9{!xJ6h?g5I#SFe2+rG6VB{A)#URZw z(1L^mO1j;~SJtlg``6d*ZdzAaxvuHimYbhCF#F`qEeV}BKRUhh(>He}5CK1ddcGN{ z2j9H;fO@j1N807m$Xi(Jm!EktenOVNTh{h0ivRS^=|@p~%gs;D9{B${yAt3wt2_U_ zPq*yEmL*v}BVfF;2bvb73Xq-6Vh;n5OBjaKu8KDY09?HX0z;c zre&FyW(VUp8aj@beX69rsmZIjukmWKu>3ko9f2>uroOb+ha?Dy;S z5uY!j*ZcjOUlD3$aLk4$-j&Zf3NythzY*c%VDC0qgT6j5pcefT}^ zLz~oGDDykC9m^Q#$0YYDp^>2Zq`h#gN>0C5v%(&L%XefjGm_!V01;~K`N>bWG=T5xqYdwphR z25rA|c{e*NoWPz1#drA)nNuvkA@5oEeFIRnRHzp3XNk*)@f0;n%u}Cx*eUqqUqpUR zE4Zhcwcd#z>3nty*3K7kep~kZwt1q-d7OWYOI77kDKS=ArXs^RTAo$HA!?pqoJrwS zf998T)g^p9dmUF@NTq?QeTqWHYrSFTGDX|%Sp|oXK)-( zc^T)Q!*R9XkZdsc5ueI8(axJlkx9g&ynaf~v9QG9!;6OwO~3l;Pt-rb9iGP>p3L0= z65`eGV3fDrI0AY!&mTIpc=+%%E`Rk^qT4;}2%{>4KGu1H+Sd6wxoz*^`0mf505ZAX zyA3CHWWG=Lx_EhlJt3UKnD${zf0Z56U**TN@A3r9LFe$SE(AuXS=WAM#U2;m zC5_l6S8b9P`CS{lcmO+^y=zP3B3h0pZ~Q3(O)CW#A;mdL3Uz3^y@CWyLVE#UfoQx$ z_DfN5H@dnK=nC>ksi}f^i!+|x7ZFcUN~rFB1bY(>fyPYEMg&K*lH|6A__nt6==}Qq z#a)h|et*f_$X_=HgU#EtT?hL5_IGQyZPRWWYFnTAi6&qhn9^-y)14a%SfXHrT6!aR z$uj#0Ee!~JB?tL-lnTLAtcEu*{T>?4`aYUDQb?&F%m``MEe;zfrU9V-=0fU z0-%p#fhIT;C-BAv4v~!^-^XV4xU2zNAY82i@E^oNY#}5Z!Uto4bcnrzBt+O~{Rufa zL*7G9Hnf+Ory7!>c)Ys3Aytmg?bY$d>RC(3*5>xMv}~pC@gPpAwBm&7hK6dKVy&#T zM4a_VU9FE{&iF5XL#$R<1iw&&yxShBD_m(Zz|LJCvg(wA81rc{FoI%*$^x$)28O(8 zTOi?b&d)gK_X~cL%|xT4g0FF+F>My?VL&ko1 zp=cnHXfM3kc-x*mpEtkLV=|k~y@wvWd9pS!(${Okgy`uTiH9ckJ$MMcDnSHd5;4`4 zJZkuwncGm(G}q4DP8dm|N29sKr6Flv0k=R&m)or#Up!h^v}NqpTiqUY;kRBIFWR{I zY8l)jbP~A^i3#=tRFZ%hO2IUW-O%Dy1c8L=0m#jk!8<7`1WCK(j!%x5wf077Zd z^T2&HWd-^rWsxISSJrvmw{PA0FESYA!53e=iBK?ax^=o65c=gjJ(C&|(P@Lgr}{gQT6&!RBex(g+8Ipx0n_8GVLQy|xP31SFmM z(K0@tSGq?b*YT0%BC6Be>x(G&Z!R=7@9Z4fUdMJQ+FPRo=ECotQ`j7AS_*DzF`0+$ zodIb&mY7L4q+2Ctmvh*J>XL5tjl_EqYRi$p%7iXS0%VYAAS^KMFh@2%Cg>hCyg)B% zQQQHv<K3%3F3x(D_F*k{lfmAC~F+hE}sV#xeR z^F@UPkxR(=uoDzmNKjllcr}gX#}_WlUbt`@{h7VM?};kDCUyec=sILSNKdS0c9yOi zK+WUzqJ*}nzXP*MJ@HQPO z8K=m>K~4ZPJrhOqzd1AW=NT?lcMAdB^%S(hbFwwM8qP(9@@75LL2*2o$0NazlZd(n zZxG(VpqQ`$R%TSE#ULmZ%KNYD0)UR?&ec8esrQD}wgjZ1NVD9(0yWrMR_}M_b$+L2 zLE8CP|C>xL?c^UaA4!3SX1+4>@Wc4?5RKAy0qaxTpY!ftQxk=lCktr|5g&|gN3{N* zPB4AugJHH#%L+5^W!}Nvrg66qa(AQc^cwneUT8$AY+%c?J(&-f{zT?aOgqdG%V>B+~Nl^?0y_tOZ&+Pijuft)31^cvu+<07>YDU+duH|~X8NtWm- zrpo;J>&wgEW3PYpW$jBBU->G{)lWR?*`Zep79w)C^WbD2E z?9%KK{y#fAiD4=)@5s5!aVGJ1yfTdYS>MD|DnT2cwq&|6FS%_8IUaJ7J%4I%w z%vKxlnab_Tt?C<+D?YzxEHk=nV?%gz+cuJ&Mdn}NH7da)IiV*DfGFlmi>!5gO_CCu zFB#xP{E^eZzMDD8UI)j56&`2%*y5=z>Qihl+n9Ow{r5@#Dij_QhuE{Ai(9A_Ac6U-%sNCpa6L$e@dAD`EUv^> zCgdDK)RH11c|8E-4|;07wJwLX!f04m0D~)trB|1R5;>cd9CJYC1~^oJHzk`}eLl#L zUQB~rR@qmQH*9LH?9itg@uXE*&gdtwDw^Ib}E`3;LTTltNqV2P6I zzQNaSG<%&2cl9fGzmmC$c}}V)#QEi~PRy`>%Jn{l*;qgsD02T+PHBn>#clyg=hipx z@rp3e*CYP%M#Ta~~ciay5g*MkdlzkVQikATVDb)4)LnLG|3pJGT7zueMxbhdvU!CYM2T zvM76a4qBB^m6A346CK3w$~mwkO2p+q zPe|+WbiiDA3;?#FqEQy8{xYCX4$Y0$n7RK-^4U<-T3>{u=T+%vhT``y>V(@?i}hi_ ztd*oBq8FGII+Zw7TqH6Ibpgc{3)qf8A@E2FApyHYMUiqKojIz?yyad5?P0a6vD#&% zF@l}8KtA;+$X>c$^g~+&CJ|OTd0ALddOq&yo^F|rYYg*!b^Gr15AI8Z2BV5HDO%U# zO&2Ejr5ksQ*7S7kv2G6h;B@-#?M*up3j={r?P#5Z7;vE&ZSKQ5D?qCWe=R0FE)`T( zK=vtTYG7c>1V+L>qB2yPRk3#H#T=~ANUA7+UQ*8u^l`$E6ZKZFLkeQ4*&WB|T3SG;~n&}g~K+y zIujyGoL+N~JwD#sJ5H~jNFW#v2LqAJe4|+0xcrSz`~VA%pa->X$WtpOq=Z4?ImuXo zQ3jH@=q(p@sye3BDzkKpVxj@OPOH+bpd302${}hNlq=R3DYRPUoMt^h4><8^@B_{u z;$7|HwHLq@-yy{tWE%FSrNNHD*5-y(JXISB`a#W@Ew+-HhEJiU#_zS{oqB8cm=#pd zyDBjQ*HU@AjeT5|d8cJyprxwTV2D=nPf>%RwyNB2FURXrnZr?5?r>a%^dBWZOlE9E z_;RzkJola-ncN6r#gJCo3?2hKD8VUJL8icln%}R%)VQCC*sX%tEje`+{#XJqoWFnV zwYy(?ty6u9c5J{kXU=BM&Mhw^r&1Jrm(QYp-;3bwjlywBk60UJ5iAI_2*@kv2aE-z z3#&>SI>c;mrE!;VT zp2U0u+vkRS^+iLe*i>u$ri~{a3c{2WXl$I``TQ+=PS4fsnakV}EqC0sef!>Wlcz~a zK61;ZF95f-Al22~-rn7n0*xvz|BpC|72turE%G@Q#y=sM3Hby2(?X`^@uE==LG`3gy!ETmp3{7cIT=0X*Ck z8vxxNnl_{|%0od8AgJxIR>~N-0+2x{2T+cL$f3TKn)Br)EtEH^rp(d2(B)TuFn?HT zs|$^{Zk^f1YF)mtv+B{-{nJXtEqB&C#=j{wxEo5(^cNi3(Z1W=*AX4Andx;0!tSc1 z?>nFWsaEqu%I$wM-cx0LiL%9;u|u!J3@oPn2go*LFXn@?@ zEp?<4(Nb7YAO?J9nF(ZhQLeom5kA~*x-!?kO0<*`W6ok3aO%M*ZE>$DH9@9NHHzcN z=R$l16DehZ-A7;;tc-hWJ6!#(iOqG63eVaS6hObez1~q#iux4J3X^Z+TMJWVC_sS< z6wa{6R8l|O>X%BR-Kz^z)b}TBetnt48}*s-j-VAHFZ9DU$SO;SAg~K9 z!UC84rx9bQLkQxMfNEPhEzF_-slmRT-^#RbD2iGo0X~DC6NLLLVDkfM$D9sI4QhhP zur?B^4)`1`&K6)L*$s9%AYmP*m#p(#F*$)Aw5f4|WcT$_S=1+sR2~tcG^ZGaH{Lfi zbl=7s?j0Js_lBNDNm}el@0Xky$Eu%0qJ3Jlfbf?eW*aqQxB}F3OgISscD3fcb5HVD01QUT`APOWcilGDV z#qI{hSw&TFKS>h@r%7W&w8jx}AU>=*=yv{pXyPaPA<6Mrf9@-VY}mEv;n~;L;&N|j z>ThcDx}3hIYZIb}O*e;KG5wQY{NfL=Hz86&6pUX61F( ziun1VZf~16^ZqnbV^d<&r%z|j{^PFQKWEm?&dk4~Jx{PNu^(a8Qr=ol*S@wu`H2Lz z?7YMFE^~@(0R2i~iiLwcLHw^y2ZQNqdrgfUFZLyGx~3-W^U+^#U)bvlg?!#HN#lRa zyblr(8<%Wtr3}3^~slqqfqNr&Uj?9e2Wu!UoD_v?7=GH36%gGuwA$JHfg@E8w?h{joNDOm9(i;oojlNC z?`m4Nd+*{dje1(G+w{c#_TJRsJ@YQTJ|!W{da?ViO_3u>?$68h+(Ax{f##sxh%ML?6on~o7t@CO|(7viV|briN}r!XY- zJ1fBliV%1!V%LCzL*T^N_)%zwxTFX#j2x;kL0UR(xC%1=*lnn*YBm~pzI_=3Udx*3 zEVC1SzZ{!$!rugTsA1s^clD)@Zk)I?l}VOwk$MkW>s=3K{=jy)ZftCtw8y)TO>ew! zWavoRd)gaICpTdWbgjwH+aU=qMN}TlDZ(*_g1x#aV z_84#9-=mW0!$LE@pW*Gx(O3bCKFkdD$PGxCzyGFKI(cxO+Mnxxkx<9?UmrJ^z=A@X zD=o9Ek__)R>VG3nG+V!v_EAz-;xSoak71RuaL-6@$mI_9Z4kX1q(WaH;9Dn+;3@f0 z$hCs`Hc`;&%kRl8;_)- zSgcp;2dD`w5=ua9xM20&NPdjfBWaaLi`;&x-CdaqOvDIPXQ z*<6Xzys|+QK3?hZpt6JemlYmQ1zuu=+vthvjIl+?p`w#sZ*K zuwIpDp-_@xXf17!sfbjw9BrWfQ2-izVBG3M9MTLId#Wbg6lklet+3ln#pNX>u3t1Y z*R+`(%@sv1fLdv^18{4IpqtE3XeNBN7yAR#YQm+1FtdOT3T9WY)Jkux{+O` literal 0 HcmV?d00001 diff --git a/src/main/resources/one/jpro/hellojpro/fonts/DMSans-Medium.ttf b/src/main/resources/one/jpro/hellojpro/fonts/DMSans-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..841d31d038c41be0d39f02df191c2a07b0205571 GIT binary patch literal 56376 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 Tk8=9|rSuuKq7Jm4R|ozdoXwx6 literal 0 HcmV?d00001 diff --git a/src/main/resources/one/jpro/hellojpro/fonts/DMSans-Regular.ttf b/src/main/resources/one/jpro/hellojpro/fonts/DMSans-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..07266ae18b44ea06b673b8abed76fc056864585f GIT binary patch literal 56348 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 + - - + + - - - - - - - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/one/jpro/hellojpro/img/JPRO_logo_rgb.png b/src/main/resources/one/jpro/hellojpro/img/JPRO_logo_rgb.png deleted file mode 100755 index 9a6e039fa08b65f112b0546169559ac15e6d58ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33437 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 F2>@UH9ZdiL literal 0 HcmV?d00001 From fc66ffda0a1b6c53b94043ada9b7fa6862c07ba9 Mon Sep 17 00:00:00 2001 From: Tobias Horak Date: Tue, 22 Sep 2026 20:12:32 +0200 Subject: [PATCH 02/13] Add CSSFX live CSS reloading and a Getting started guide CSSFX reloads the stylesheet in the running app as soon as it is saved. It is enabled with jproRun and on desktop, but not in a jproRelease build. The card copy now describes what the app actually ships with. --- README.md | 23 +++++++++++++++++++ build.gradle | 1 + gradle.properties | 1 + src/main/java/module-info.java | 1 + .../one/jpro/hellojpro/HelloJProFXML.java | 22 +++++++++++++++++- .../one/jpro/hellojpro/fxml/HelloJPro.fxml | 2 +- 6 files changed, 48 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7c274ed..025dadf 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,29 @@ More about JPRO: * Twitter: [@jpro_one](https://twitter.com/jpro_one) * Ticket System: [JPro-tickets](https://github.com/JPro-one/JPro-tickets) +# Getting started # + +Run the app in development mode: + +```shell +./gradlew jproRun +``` + +Then open http://localhost:8080/index.html in your browser. + +Start editing the page in `src/main/resources/one/jpro/hellojpro/fxml/HelloJPro.fxml`. +Its styles live in `src/main/resources/one/jpro/hellojpro/css/HelloJPro.css`, +and its logic in `src/main/java/one/jpro/hellojpro/HelloJProFXMLController.java`. + +While developing, [CSSFX](https://github.com/McFoggy/cssfx) reloads the CSS in the running app +as soon as you save it (it is switched off in a `jproRelease` build). + +To run it as a desktop app instead: + +```shell +./gradlew run +``` + # How to start # ## Web Browser ## diff --git a/build.gradle b/build.gradle index 5d2b4b3..19e3fb0 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,7 @@ repositories { dependencies { implementation 'one.jpro:jpro-webapi:$jproVersion' + implementation "fr.brouillard.oss:cssfx:$cssfxVersion" } javafx { diff --git a/gradle.properties b/gradle.properties index b33c7c0..d15ac39 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,3 +2,4 @@ projectVersion = 1.0-SNAPSHOT jproVersion = 2026.3.1 javafxPluginVersion = 0.1.0 javafxVersion = 25.0.2 +cssfxVersion = 11.5.1 diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java index 9e6fc0e..e6348eb 100644 --- a/src/main/java/module-info.java +++ b/src/main/java/module-info.java @@ -7,6 +7,7 @@ requires javafx.controls; requires javafx.fxml; requires jpro.webapi; + requires fr.brouillard.oss.cssfx; exports one.jpro.hellojpro; opens one.jpro.hellojpro to javafx.fxml; diff --git a/src/main/java/one/jpro/hellojpro/HelloJProFXML.java b/src/main/java/one/jpro/hellojpro/HelloJProFXML.java index 749efc0..15ff4de 100644 --- a/src/main/java/one/jpro/hellojpro/HelloJProFXML.java +++ b/src/main/java/one/jpro/hellojpro/HelloJProFXML.java @@ -1,6 +1,8 @@ package one.jpro.hellojpro; import com.jpro.webapi.JProApplication; +import com.jpro.webapi.WebAPI; +import fr.brouillard.oss.cssfx.CSSFX; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; @@ -23,13 +25,31 @@ public void start(Stage stage) throws IOException { HelloJProFXMLController controller = loader.getController(); controller.init(this); + Scene scene = new Scene(root, 1280, 768); + + if (isDevelopment()) { + // CSSFX reloads the CSS as soon as you save it + Runnable stopCssfx = CSSFX.start(scene); + if (WebAPI.isBrowser()) { + getWebAPI().addInstanceCloseListener(stopCssfx::run); + } + } + stage.setTitle("Hello JPro!"); - stage.setScene(new Scene(root, 1280, 768)); + stage.setScene(scene); // open JavaFX window stage.show(); } + /** + * CSSFX is enabled on desktop and when started with {@code jproRun}, + * but not in a release built with {@code jproRelease}. + */ + private static boolean isDevelopment() { + return !WebAPI.isBrowser() || "dev".equals(System.getProperty("jpro.mode")); + } + /** * Application entry point. * diff --git a/src/main/resources/one/jpro/hellojpro/fxml/HelloJPro.fxml b/src/main/resources/one/jpro/hellojpro/fxml/HelloJPro.fxml index 26274e4..3c46932 100644 --- a/src/main/resources/one/jpro/hellojpro/fxml/HelloJPro.fxml +++ b/src/main/resources/one/jpro/hellojpro/fxml/HelloJPro.fxml @@ -32,7 +32,7 @@ - - - + @@ -72,14 +74,14 @@ - + - + - + From c441edb0e7737f4abf02f46846c8f3db862042af Mon Sep 17 00:00:00 2001 From: Tobias Horak Date: Wed, 23 Sep 2026 19:46:02 +0200 Subject: [PATCH 11/13] Fade button hover in and out (150ms ease-out) --- src/main/resources/one/jpro/hellojpro/css/HelloJPro.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css b/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css index fbdb5f4..77116a6 100644 --- a/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css +++ b/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css @@ -107,6 +107,7 @@ -fx-background-radius: 8px; -fx-padding: 6px; -fx-cursor: hand; + transition: -fx-background-color 150ms ease-out; } .icon-button:hover { @@ -211,6 +212,7 @@ -fx-content-display: right; -fx-graphic-text-gap: 8px; -fx-cursor: hand; + transition: -fx-background-color 150ms ease-out; } .link-button:hover { From 73f8d5c140fd815651837ae1ae72716a28b4ec61 Mon Sep 17 00:00:00 2001 From: Tobias Horak Date: Wed, 23 Sep 2026 20:23:55 +0200 Subject: [PATCH 12/13] Scroll the page when the window is too small Without scrolling, a short window squeezed the card and the button rows shrank their buttons. The page now sits in a ScrollPane and keeps its natural height. Dark mode moves from .root to .page, since the ScrollPane is now the scene root. --- .../jpro/hellojpro/HelloJProController.java | 8 +- .../one/jpro/hellojpro/css/HelloJPro.css | 17 ++- .../one/jpro/hellojpro/fxml/HelloJPro.fxml | 143 +++++++++--------- 3 files changed, 89 insertions(+), 79 deletions(-) diff --git a/src/main/java/one/jpro/hellojpro/HelloJProController.java b/src/main/java/one/jpro/hellojpro/HelloJProController.java index b743bf8..d34ea93 100644 --- a/src/main/java/one/jpro/hellojpro/HelloJProController.java +++ b/src/main/java/one/jpro/hellojpro/HelloJProController.java @@ -20,7 +20,7 @@ public class HelloJProController { private static final PseudoClass DARK = PseudoClass.getPseudoClass("dark"); @FXML - private StackPane root; + private StackPane page; @FXML private Node logoLink; @FXML @@ -41,12 +41,12 @@ private void initialize() { LinkUtil.setExternalLink(examplesLink, "https://www.jpro.one/showcase"); LinkUtil.setExternalLink(platformLink, "https://www.jpro.one/platform"); - root.widthProperty().addListener((obs, oldWidth, width) -> - root.pseudoClassStateChanged(COMPACT, width.doubleValue() < COMPACT_WIDTH)); + page.widthProperty().addListener((obs, oldWidth, width) -> + page.pseudoClassStateChanged(COMPACT, width.doubleValue() < COMPACT_WIDTH)); } @FXML private void toggleTheme() { - root.pseudoClassStateChanged(DARK, !root.getPseudoClassStates().contains(DARK)); + page.pseudoClassStateChanged(DARK, !page.getPseudoClassStates().contains(DARK)); } } diff --git a/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css b/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css index 77116a6..38a2b0e 100644 --- a/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css +++ b/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css @@ -11,7 +11,7 @@ src: url("../fonts/DMMono-Medium.ttf"); } -/* Theme colors. The app starts in light mode; the .root:dark block below +/* Theme colors. The app starts in light mode; the .page:dark block below overrides the colors that change in dark mode (toggled in the controller). */ .root { @@ -30,13 +30,20 @@ -color-button-hover: rgba(62, 59, 197, 0.08); } -.root:dark { +.page:dark { -color-page: #171724; -color-card: rgba(28, 28, 50, 0.5); -color-card-border: rgba(255, 255, 255, 0.06); } -/* Page: background with a dot grid */ +/* Page: scrolls when the window is too small, background with a dot grid */ + +.scroll-pane, +.scroll-pane > .viewport { + -fx-background-color: transparent; + -fx-background-insets: 0; + -fx-padding: 0; +} .page { -fx-background-color: -color-page; @@ -144,12 +151,12 @@ -fx-rotate: -90; } -.root:dark .theme-icon.sun { +.page:dark .theme-icon.sun { -fx-opacity: 0; -fx-rotate: 90; } -.root:dark .theme-icon.moon { +.page:dark .theme-icon.moon { -fx-opacity: 1; -fx-rotate: 0; } diff --git a/src/main/resources/one/jpro/hellojpro/fxml/HelloJPro.fxml b/src/main/resources/one/jpro/hellojpro/fxml/HelloJPro.fxml index 469510b..b3de6dd 100644 --- a/src/main/resources/one/jpro/hellojpro/fxml/HelloJPro.fxml +++ b/src/main/resources/one/jpro/hellojpro/fxml/HelloJPro.fxml @@ -2,6 +2,7 @@ + @@ -10,78 +11,80 @@ - + + - - - - - - - + + + + + + + - - - - - - - - - - - - + + + + From 70c29f995993dc98751ce05b81a938fa00cc5e64 Mon Sep 17 00:00:00 2001 From: Tobias Horak Date: Wed, 23 Sep 2026 21:34:28 +0200 Subject: [PATCH 13/13] Sweep a highlight across the card border on theme change A bright band sweeps diagonally from the bottom-left to the top-right corner when switching to dark mode, and back when switching to light. --- .../resources/one/jpro/hellojpro/css/HelloJPro.css | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css b/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css index 38a2b0e..a552345 100644 --- a/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css +++ b/src/main/resources/one/jpro/hellojpro/css/HelloJPro.css @@ -28,12 +28,14 @@ -color-primary-dark: #221f7d; -color-button-border: rgba(62, 59, 197, 0.08); -color-button-hover: rgba(62, 59, 197, 0.08); + -color-sweep: #4a3aff; } .page:dark { -color-page: #171724; -color-card: rgba(28, 28, 50, 0.5); -color-card-border: rgba(255, 255, 255, 0.06); + -color-sweep: #c4c3ff; } /* Page: scrolls when the window is too small, background with a dot grid */ @@ -63,10 +65,15 @@ -fx-max-width: 661px; -fx-background-color: -color-card; -fx-background-radius: 24px; - -fx-border-color: -color-card-border; + /* A highlight band parked off the bottom-left corner; it sweeps diagonally to the top-right when the theme changes */ + -fx-border-color: linear-gradient(from -40% 140% to 0% 100%, -color-card-border, -color-sweep, -color-card-border); -fx-border-radius: 24px; -fx-padding: 12px; - transition: -fx-background-color 300ms ease, -fx-border-color 300ms ease; + transition: -fx-background-color 300ms ease, -fx-border-color 800ms ease-in-out; +} + +.page:dark .card { + -fx-border-color: linear-gradient(from 100% 0% to 140% -40%, -color-card-border, -color-sweep, -color-card-border); } .card-header {