From 7550b934e7bec0d10f4eef29f184932c06d7df99 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Thu, 10 Nov 2016 14:36:41 +0800 Subject: [PATCH 01/86] rt --- designer_form/src/com/fr/design/mainframe/JForm.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index bbc1706d9b..ddaf79e5b7 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -609,15 +609,16 @@ public class JForm extends JTemplate implements BaseJForm { EastRegionContainerPane.getInstance().replaceDownPane(RolesAlreadyEditedPane.getInstance()); return; } + if (formDesign.isReportBlockEditing()) { if (elementCaseDesign != null) { + EastRegionContainerPane.getInstance().removeParameterPane(); EastRegionContainerPane.getInstance().replaceDownPane(elementCaseDesign.getEastDownPane()); EastRegionContainerPane.getInstance().replaceUpPane(elementCaseDesign.getEastUpPane()); return; } } - EastRegionContainerPane.getInstance().replaceUpPane(WidgetPropertyPane.getInstance(formDesign)); EastRegionContainerPane.getInstance().addParameterPane(ParameterPropertyPane.getInstance(formDesign)); if (EastRegionContainerPane.getInstance().getDownPane() == null) { From 9b969909a264ff2e8d74f2042cd7b780cc676fcf Mon Sep 17 00:00:00 2001 From: zhouping Date: Thu, 10 Nov 2016 17:38:18 +0800 Subject: [PATCH 02/86] =?UTF-8?q?REPORT-750=20=E8=A1=A8=E5=8D=95=E5=85=B1?= =?UTF-8?q?=E5=88=9B=E5=86=85=E6=B5=8B=E9=97=AE=E9=A2=98=20bugfix5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/designer/creator/XCreator.java | 16 ++++++++++ .../designer/creator/XWAbsoluteLayout.java | 32 +++++++++++++++++++ .../design/designer/creator/XWFitLayout.java | 2 ++ 3 files changed, 50 insertions(+) diff --git a/designer_form/src/com/fr/design/designer/creator/XCreator.java b/designer_form/src/com/fr/design/designer/creator/XCreator.java index d47009ff95..ed692cd428 100644 --- a/designer_form/src/com/fr/design/designer/creator/XCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XCreator.java @@ -601,4 +601,20 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo } } + + /** + * 按照比例调整组件的宽度 + * @param percent 比例 + */ + public void adjustCompWidth(double percent){ + return; + } + + /** + * 按照比例调整组件的高度 + * @param percent 比例 + */ + public void adjustCompHeight(double percent) { + return; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java index 210343f8ed..df28759393 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java @@ -444,4 +444,36 @@ public class XWAbsoluteLayout extends XLayoutContainer { } } } + + /** + * body大小手动调整的时候 + * 按照比例调整组件的宽度 + * @param percent 比例 + */ + @Override + public void adjustCompWidth(double percent) { + for (int i = 0; i < getComponentCount(); i++) { + XCreator xCreator = (XCreator) getComponent(i); + Rectangle rectangle = xCreator.getBounds(); + xCreator.setBounds((int) (rectangle.x * percent), rectangle.y, (int) (rectangle.width * percent), rectangle.height); + BoundsWidget widget = toData().getBoundsWidget(xCreator.toData()); + widget.setBounds(xCreator.getBounds()); + } + } + + /** + * body大小手动调整的时候 + * 按照比例调整组件的高度 + * @param percent 比例 + */ + @Override + public void adjustCompHeight(double percent) { + for (int i = 0; i < getComponentCount(); i++) { + XCreator xCreator = (XCreator) getComponent(i); + Rectangle rectangle = xCreator.getBounds(); + xCreator.setBounds(rectangle.x, (int) (rectangle.y * percent), rectangle.width, (int) (rectangle.height * percent)); + BoundsWidget widget = toData().getBoundsWidget(xCreator.toData()); + widget.setBounds(xCreator.getBounds()); + } + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java index 50fa38db93..04904a7238 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java @@ -381,6 +381,7 @@ public class XWFitLayout extends XLayoutContainer { needAddWidth = Math.max(needAddWidth, MIN_WIDTH-width); } } + creator.adjustCompWidth((double) creator.getBounds().width / rec.width); toData().setBounds(creator.toData(), creator.getBounds()); } @@ -504,6 +505,7 @@ public class XWFitLayout extends XLayoutContainer { needAddHeight = Math.max(needAddHeight, MIN_HEIGHT-h); } } + creator.adjustCompHeight((double) creator.getBounds().height / rec.height); toData().setBounds(creator.toData(), creator.getBounds()); } From 7a96cd7b0d5122d37773b20ca885edd88b7e19f4 Mon Sep 17 00:00:00 2001 From: zack Date: Fri, 11 Nov 2016 13:04:39 +0800 Subject: [PATCH 03/86] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20=20?= =?UTF-8?q?=E4=B8=8B=E6=A0=87=E8=B6=8A=E7=95=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/EditingMouseListener.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java b/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java index 869ec2077f..0f916dd1de 100644 --- a/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java +++ b/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java @@ -288,24 +288,26 @@ public class EditingMouseListener extends MouseInputAdapter { if (component.isReport()) { xElementCase = (XElementCase)component; UIButton button = (UIButton)xElementCase.getCoverPane().getComponent(0); - JComponent button1= (JComponent) xElementCase.getCoverPane().getComponent(1); if(designer.getCursor().getType() ==Cursor.HAND_CURSOR) { - designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); - } // component.getParent() 是报表块所在的XWTitleLayout - int minX = button.getX() + getParentPositionX(component, 0) - designer.getArea().getHorizontalValue(); - int minX1 = button1.getX() + getParentPositionX(component, 0) - designer.getArea().getHorizontalValue(); - int minY = button.getY() + getParentPositionY(component, 0) - designer.getArea().getVerticalValue(); - int minY1 = button1.getY() + getParentPositionY(component, 0) - designer.getArea().getVerticalValue(); + designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } // component.getParent() 是报表块所在的XWTitleLayout + int minX = button.getX() + getParentPositionX(component, 0) - designer.getArea().getHorizontalValue(); + int minY = button.getY() + getParentPositionY(component, 0) - designer.getArea().getVerticalValue(); if (e.getX() + GAP - xElementCase.getInsets().left > minX && e.getX() - GAP - xElementCase.getInsets().left < minX + button.getWidth()) { if (e.getY() + GAP - xElementCase.getInsets().top > minY && e.getY() - GAP - xElementCase.getInsets().top < minY + button.getHeight()) { designer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); } } xElementCase.setHelpBtnOnFocus(false); - if (e.getX() + GAP - xElementCase.getInsets().left > minX1 && e.getX() - GAP - xElementCase.getInsets().left < minX1 + button1.getWidth()) { - if (e.getY() + GAP - xElementCase.getInsets().top > minY1 && e.getY() - GAP - xElementCase.getInsets().top < minY1 + button1.getHeight()) { - designer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); - xElementCase.setHelpBtnOnFocus(true); + if (xElementCase.getCoverPane().getComponentCount() > 1) { + JComponent button1 = (JComponent) xElementCase.getCoverPane().getComponent(1); + int minX1 = button1.getX() + getParentPositionX(component, 0) - designer.getArea().getHorizontalValue(); + int minY1 = button1.getY() + getParentPositionY(component, 0) - designer.getArea().getVerticalValue(); + if (e.getX() + GAP - xElementCase.getInsets().left > minX1 && e.getX() - GAP - xElementCase.getInsets().left < minX1 + button1.getWidth()) { + if (e.getY() + GAP - xElementCase.getInsets().top > minY1 && e.getY() - GAP - xElementCase.getInsets().top < minY1 + button1.getHeight()) { + designer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + xElementCase.setHelpBtnOnFocus(true); + } } } xElementCase.displayCoverPane(true); From e6324597ddee828fde4a782ddbca0fe160fd3e0d Mon Sep 17 00:00:00 2001 From: fr_shine Date: Fri, 11 Nov 2016 15:15:08 +0800 Subject: [PATCH 04/86] =?UTF-8?q?=E8=B6=85=E9=93=BE=E6=82=AC=E6=B5=AE?= =?UTF-8?q?=E7=AA=97=E5=9B=BE=E8=A1=A8=E4=B8=8D=E6=94=AF=E6=8C=81=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=A0=BC=E6=95=B0=E6=8D=AE=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/chart/ChartEditPane.java | 6 +++++- .../mainframe/chart/ChartHyperEditPane.java | 7 +++++++ .../mainframe/chart/gui/ChartDataPane.java | 20 ++++++++++++------- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java b/designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java index f19c49d66f..052fee20db 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java @@ -153,7 +153,7 @@ public class ChartEditPane extends BasicPane implements AttributeChange,Prepare4 paneList.add(otherPane); this.isDefaultPane = true; }else{ - ChartDataPane chartDataPane = ChartTypeInterfaceManager.getInstance().getChartDataPane(plotID, listener); + ChartDataPane chartDataPane = createChartDataPane(plotID); paneList.add(chartDataPane); AbstractChartAttrPane[] otherPaneList = ChartTypeInterfaceManager.getInstance().getAttrPaneArray(plotID, listener); for(int i = 0; i < otherPaneList.length; i++){ @@ -167,6 +167,10 @@ public class ChartEditPane extends BasicPane implements AttributeChange,Prepare4 } } + protected ChartDataPane createChartDataPane(String plotID) { + return ChartTypeInterfaceManager.getInstance().getChartDataPane(plotID, listener); + } + protected void addTypePane() { paneList.add(typePane); } diff --git a/designer_chart/src/com/fr/design/mainframe/chart/ChartHyperEditPane.java b/designer_chart/src/com/fr/design/mainframe/chart/ChartHyperEditPane.java index 99c6875a3b..bb7d63b99e 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/ChartHyperEditPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/ChartHyperEditPane.java @@ -2,6 +2,7 @@ package com.fr.design.mainframe.chart; import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.web.ChartHyperPoplink; +import com.fr.design.ChartTypeInterfaceManager; import com.fr.design.chart.gui.ChartComponent; import com.fr.design.chart.series.SeriesCondition.impl.ChartHyperPopAttrPane; import com.fr.design.editor.ValueEditorPane; @@ -38,6 +39,12 @@ public class ChartHyperEditPane extends ChartEditPane { createTabsPane(); } + @Override + protected ChartDataPane createChartDataPane(String plotID) { + ChartDataPane dataPane = ChartTypeInterfaceManager.getInstance().getChartDataPane(plotID, listener); + dataPane.setSupportCellData(false); + return dataPane; + } protected void addTypePane() { paneList.add(attrPane); diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartDataPane.java index 7c8589fb25..7fc3c79d93 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartDataPane.java @@ -1,20 +1,19 @@ package com.fr.design.mainframe.chart.gui; -import java.awt.BorderLayout; - -import javax.swing.JPanel; - -import com.fr.design.chart.report.GisMapDataPane; -import com.fr.design.chart.report.MapDataPane; import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.GisMapPlot; import com.fr.chart.chartattr.MapPlot; +import com.fr.design.chart.report.GisMapDataPane; +import com.fr.design.chart.report.MapDataPane; import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.mainframe.chart.AbstractChartAttrPane; import com.fr.design.mainframe.chart.PaneTitleConstants; import com.fr.design.mainframe.chart.gui.data.DataContentsPane; import com.fr.design.mainframe.chart.gui.data.NormalChartDataPane; +import javax.swing.*; +import java.awt.*; + public class ChartDataPane extends AbstractChartAttrPane { protected DataContentsPane contentsPane; @@ -68,12 +67,19 @@ public class ChartDataPane extends AbstractChartAttrPane { contentsPane.setSupportCellData(supportCellData); } } - + + public boolean isSupportCellData() { + return supportCellData; + } + /** * 设置数据界面是否支持单元格 */ public void setSupportCellData(boolean supportCellData) { this.supportCellData = supportCellData; + if(contentsPane != null) { + contentsPane.setSupportCellData(supportCellData); + } } /** From f6b3c12db18f4539a0edc946a3ade1b8e98638f9 Mon Sep 17 00:00:00 2001 From: sunmondong Date: Fri, 11 Nov 2016 18:45:39 +0800 Subject: [PATCH 05/86] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.dev.gradle | 4 +-- build.dev.gradle.bak | 86 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 build.dev.gradle.bak diff --git a/build.dev.gradle b/build.dev.gradle index cc3bea2327..c5cc1b92da 100644 --- a/build.dev.gradle +++ b/build.dev.gradle @@ -27,8 +27,8 @@ task appletJar<<{ fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") } - unjar(src:"${libDir}/3rd.jar",dest:"${libDir}/tmp-${branchName}") - unjar(src:"${libDir}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") jar(jarfile:"build/libs/fr-applet-8.0.jar"){ fileset(dir:"build/classes"){ exclude(name:"*.*") diff --git a/build.dev.gradle.bak b/build.dev.gradle.bak new file mode 100644 index 0000000000..cc3bea2327 --- /dev/null +++ b/build.dev.gradle.bak @@ -0,0 +1,86 @@ +apply plugin: "java" +tasks.withType(JavaCompile){ + options.encoding = "UTF-8" +} + +def basicDir="../../" +def libDir="${basicDir}/finereport-lib-stable" +//获取什么分支名 +FileTree files =fileTree(dir:"./",include:"build.*.gradle") +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ("\\")) +def branchName=buildDir.substring(buildDir.lastIndexOf ("\\")+1) + +task appletJar<<{ + + ant{ + mkdir(dir:"${libDir}/tmp-${branchName}") + mkdir(dir:"build/classes/") + copy(todir:"build/classes/"){ + fileset(dir:"${basicDir}/finereport-core-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-chart-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-report-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-platform-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") + + } + unjar(src:"${libDir}/3rd.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + jar(jarfile:"build/libs/fr-applet-8.0.jar"){ + fileset(dir:"build/classes"){ + exclude(name:"*.*") + exclude(name:"bin/*.*") + exclude(name:"classes/**") + exclude(name:"com/fr/schedule/**") + exclude(name:"com/fr/cell/**") + exclude(name:"com/fr/dialog/**") + exclude(name:"com/fr/view/**") + exclude(name:"com/fr/web/**") + exclude(name:"com/fr/fs/**") + exclude(name:"com/fr/design/**") + exclude(name:"com/fr/start/**") + exclude(name:"com/fr/process/**") + } + fileset(dir:"${libDir}/tmp-${branchName}"){ + include(name:"javax/mail/**") + include(name:"javax/servlet/**") + include(name:"org/freehep/**") + include(name:"com/fr/third/JAI/**") + include(name:"com/fr/third/antlr/**") + include(name:"com/fr/third/javax/**") + include(name:"com/sun/xml/**") + include(name:"javax/xml/**") + + } + fileset(dir:"build/classes"){ + include(name:"com/fr/web/*.class") + include(name:"com/fr/web/attr/*.class") + } + } + delete(dir:"${libDir}/tmp-${branchName}") + def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" + def keystore="frapplet.store" + def keycert="fr.cert" + def keypassword="123456" + def keyalias="fr" + + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-genkey -dname "CN=FineReport L=NanJing C=China" -keystore ${keystore} -alias ${keyalias} -validity 3650 -storepass ${keypassword}") + } + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-export -keystore ${keystore} -alias ${keyalias} -file ${keycert} -storepass ${keypassword}") + } + + exec(executable:"${jdk6home}/bin/jarsigner"){ + arg(line:"-keystore ${keystore} -storepass ${keypassword} 'build/libs/fr-applet-8.0.jar' ${keyalias}") + } + delete(file:"${keystore}") + delete(file:"${keycert}") + delete(dir:"build/classes") + + } + +} \ No newline at end of file From 17fa97308e32202996d1ddc0ea6ba9c5345cee2f Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sat, 12 Nov 2016 23:38:18 +0800 Subject: [PATCH 06/86] rt --- .../com/fr/design/mainframe/FormDesigner.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormDesigner.java b/designer_form/src/com/fr/design/mainframe/FormDesigner.java index 8422bfdb40..cd3b5b448e 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesigner.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesigner.java @@ -186,14 +186,14 @@ public class FormDesigner extends TargetComponent
implements TreeSelection public void refreshParameter(){ XLayoutContainer rootContainer = this.getParaComponent(); if (rootContainer != null){ - java.util.List namelist = new ArrayList(); - rootContainer.getAllXCreatorNameList(rootContainer,namelist); - // parameterArray是报表的所有参数, nameList是已经在参数面板添加过控件的参数名 - // 与已有的参数列表比较 如果已经存在 就除去 - Parameter[] ps = getParameterArray(); - if (ps != null) { - removeSame(ps, namelist); - } + java.util.List namelist = new ArrayList(); + rootContainer.getAllXCreatorNameList(rootContainer,namelist); + // parameterArray是报表的所有参数, nameList是已经在参数面板添加过控件的参数名 + // 与已有的参数列表比较 如果已经存在 就除去 + Parameter[] ps = getParameterArray(); + if (ps != null) { + removeSame(ps, namelist); + } } ParameterPropertyPane.getInstance().getParameterToolbarPane().populateBean( getParameterArray() == null ? new Parameter[0] : getParameterArray()); From 6ab4965da8f559fe46da188c92146e6835be96c1 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sat, 12 Nov 2016 23:40:12 +0800 Subject: [PATCH 07/86] rt --- .../gui/icontainer/UIResizableContainer.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java index 86945674bf..8250b8f969 100644 --- a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java +++ b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java @@ -29,6 +29,7 @@ public class UIResizableContainer extends JPanel { private VerticalToolPane verticalToolPane; private int direction; + private boolean hasParameterPane; private static final int MAX_WIDTH = 300; private static final int MIN_WIDTH = 165; @@ -89,7 +90,6 @@ public class UIResizableContainer extends JPanel { add(horizontToolPane); add(downPane); add(verticalToolPane); - add(parameterPane); } public UIResizableContainer(JComponent upPane, int direction) { @@ -102,7 +102,6 @@ public class UIResizableContainer extends JPanel { setLayout(containerLayout); add(upPane); add(horizontToolPane); - add(parameterPane); } @@ -141,7 +140,7 @@ public class UIResizableContainer extends JPanel { * @param height */ public void setParameterHeight(int height) { - paraHeight = height; + paraHeight = hasParameterPane? height : 0; refreshContainer(); } @@ -274,13 +273,18 @@ public class UIResizableContainer extends JPanel { public void addParameterPane(JComponent pane) { add(this.parameterPane = pane); + hasParameterPane = true; refreshContainer(); } public void removeParameterPane() { - remove(this.parameterPane); - setParameterHeight(0); - refreshContainer(); + if (this.parameterPane != null) { + this.remove(this.parameterPane); + setParameterHeight(0); + hasParameterPane = false; + refreshContainer(); + } + } /** From f481406411c65e3beb19a36bc808785d8e90ef95 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sat, 12 Nov 2016 23:40:48 +0800 Subject: [PATCH 08/86] rt --- designer_form/src/com/fr/design/mainframe/JForm.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index ddaf79e5b7..4c015811c0 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -621,6 +621,7 @@ public class JForm extends JTemplate implements BaseJForm { EastRegionContainerPane.getInstance().replaceUpPane(WidgetPropertyPane.getInstance(formDesign)); EastRegionContainerPane.getInstance().addParameterPane(ParameterPropertyPane.getInstance(formDesign)); + EastRegionContainerPane.getInstance().setParameterHeight(ParameterPropertyPane.getInstance(formDesign).getPreferredSize().height); if (EastRegionContainerPane.getInstance().getDownPane() == null) { new Thread() { public void run() { From ca2d69cdac53155624cc4c20c4e4c97180bad3f3 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sat, 12 Nov 2016 23:41:23 +0800 Subject: [PATCH 09/86] rt --- designer/src/com/fr/design/mainframe/JWorkBook.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/designer/src/com/fr/design/mainframe/JWorkBook.java b/designer/src/com/fr/design/mainframe/JWorkBook.java index 1e27feeb58..f3722c4ac2 100644 --- a/designer/src/com/fr/design/mainframe/JWorkBook.java +++ b/designer/src/com/fr/design/mainframe/JWorkBook.java @@ -732,6 +732,7 @@ public class JWorkBook extends JTemplate { } } else { DesignerContext.getDesignerFrame().resetToolkitByPlus(JWorkBook.this); + EastRegionContainerPane.getInstance().removeParameterPane(); if (delegate4ToolbarMenuAdapter() instanceof PolyDesigner) { PolyDesigner polyDesigner = (PolyDesigner) delegate4ToolbarMenuAdapter(); if (polyDesigner.getSelectionType() == PolyDesigner.SelectionType.NONE || polyDesigner.getSelection() == null) { @@ -752,6 +753,7 @@ public class JWorkBook extends JTemplate { EastRegionContainerPane.getInstance().replaceUpPane(allowAuthorityUpPane()); EastRegionContainerPane.getInstance().replaceDownPane(RolesAlreadyEditedPane.getInstance()); } + centerPane.needToShowCoverAndHidPane(); } From f5f076afe32fea2914c94c5f8541dab1797cee87 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sat, 12 Nov 2016 23:45:42 +0800 Subject: [PATCH 10/86] rt --- .../src/com/fr/design/parameter/ParameterDefinitePane.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/parameter/ParameterDefinitePane.java b/designer/src/com/fr/design/parameter/ParameterDefinitePane.java index 1a547c3e6c..4b8572b710 100644 --- a/designer/src/com/fr/design/parameter/ParameterDefinitePane.java +++ b/designer/src/com/fr/design/parameter/ParameterDefinitePane.java @@ -20,7 +20,9 @@ import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.AuthorityToolBarPane; +import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.design.mainframe.JWorkBook; +import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; import com.fr.design.menu.*; import com.fr.design.module.DesignModuleFactory; @@ -244,7 +246,7 @@ public class ParameterDefinitePane extends JPanel implements ToolBarMenuDockPlus isdelayItem.setSelected(reportParameterAttr.isDelayPlaying()); isshowWindowItem.setSelected(reportParameterAttr.isShowWindow()); isEditing = true; - + EastRegionContainerPane.getInstance().setParameterHeight(ParameterPropertyPane.getInstance().getPreferredSize().height); ParameterBridge bridge = paraDesignEditor.getParaComponent(); if (parameterUI != null) { bridge.setDelayDisplayContent(reportParameterAttr.isDelayPlaying()); From 62d4dc9b2cacc837018f6dcedb7830ee5e7cef89 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Mon, 14 Nov 2016 11:33:13 +0800 Subject: [PATCH 11/86] =?UTF-8?q?=E6=95=A3=E7=82=B9=E5=9B=BE=E7=A9=BA?= =?UTF-8?q?=E5=80=BC=E6=96=AD=E5=BC=80=E4=BF=9D=E5=AD=98=E4=B8=8D=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/chart/gui/style/series/LineSeriesPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/series/LineSeriesPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/series/LineSeriesPane.java index 0a16c2b2a8..b370e36609 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/series/LineSeriesPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/series/LineSeriesPane.java @@ -110,8 +110,8 @@ public class LineSeriesPane extends AbstractPlotSeriesPane{ if(plot instanceof LinePlot) { LinePlot linePlot = (LinePlot)plot; linePlot.setCurve(isCurve.isSelected()); - linePlot.setNullValueBreak(isNullValueBreak.getSelectedIndex() == 0); } + plot.setNullValueBreak(isNullValueBreak.getSelectedIndex() == 0); ConditionAttr attrList = plot.getConditionCollection().getDefaultAttr(); updateAttrCondition(attrList); } From fcc999913811032556fd3232e60f51623e6602b1 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 14 Nov 2016 14:14:11 +0800 Subject: [PATCH 12/86] rt --- .../src/com/fr/design/form/parameter/FormParaDesigner.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java b/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java index a7936a8288..d5de1eb4ff 100644 --- a/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java +++ b/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java @@ -233,6 +233,7 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP } ParameterPropertyPane.getInstance().getParameterToolbarPane().populateBean( p.getParameterArray() == null ? new Parameter[0] : p.getParameterArray()); + EastRegionContainerPane.getInstance().setParameterHeight(ParameterPropertyPane.getInstance().getPreferredSize().height); } From 0139ff5684dab701c926e408a66bb7635a94b995 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 14 Nov 2016 15:09:06 +0800 Subject: [PATCH 13/86] rt --- .../design/mainframe/WidgetPropertyPane.java | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index 324ff62bb3..cc7f1d7690 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -124,15 +124,6 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper } componentTree = new ComponentTree(designer); - - ComponentTreeModel treeModel = (ComponentTreeModel) componentTree.getModel(); - XCreator root = (XCreator)treeModel.getRoot(); - int childCount = treeModel.getChildCount(root); - //按照节点添加para在下的,但这里需要para节点在上,调整一下位置 - if(childCount == NODE_LENGTH){ - adjustPosition(treeModel, designer); - } - widgetPropertyTables = new ArrayList(); propertyTable = new WidgetPropertyTable(designer); designer.addDesignerEditListener(new WidgetPropertyDesignerAdapter(propertyTable)); @@ -198,22 +189,6 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper isrefresh = false; } - - /** - * 调整结构树para和body的位置 - * - * @param treeModel - * @param formDesigner - */ - private void adjustPosition(ComponentTreeModel treeModel,FormDesigner formDesigner){ - XCreator root = (XCreator)treeModel.getRoot(); - if(treeModel.getChild(root,0) instanceof XWParameterLayout){ - return; - } - root.add((Component)(treeModel.getChild(root,0)),1); - treeModel.setRoot(root); - componentTree = new ComponentTree(formDesigner,treeModel); - } // /** * 选中的组件是否在参数面板里 From 068ca95013603719474fba8146ea1e389abe11d2 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 14 Nov 2016 15:12:31 +0800 Subject: [PATCH 14/86] rt --- .../src/com/fr/design/parameter/ParameterToolBarPane.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java b/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java index d495e9c06a..e1decfe2b4 100644 --- a/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java +++ b/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java @@ -33,6 +33,7 @@ public class ParameterToolBarPane extends BasicBeanPane { private static final int GAP_H = 4; private static final int GAP_V = 6; private static final int GAP_BV = 4; + private static final int WIDTH = 225; private static final int L_H = 18; @@ -140,7 +141,7 @@ public class ParameterToolBarPane extends BasicBeanPane { } public void layoutContainer(Container parent) { - int width = parent.getWidth(); + int width = parent.getWidth() == 0 ? WIDTH : parent.getWidth(); int x = 0; int y = L_H + GAP_H; From dd964d2dc0605b074f7af83d1ffd7b8f347333c3 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 14 Nov 2016 15:13:47 +0800 Subject: [PATCH 15/86] rt --- .../src/com/fr/design/gui/icontainer/UIResizableContainer.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java index 8250b8f969..5db23c5033 100644 --- a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java +++ b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java @@ -278,12 +278,10 @@ public class UIResizableContainer extends JPanel { } public void removeParameterPane() { - if (this.parameterPane != null) { this.remove(this.parameterPane); setParameterHeight(0); hasParameterPane = false; refreshContainer(); - } } From 546f4a6a0251cd4d08d44d107f7f2e5b51ba442d Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 14 Nov 2016 15:15:01 +0800 Subject: [PATCH 16/86] rt --- .../src/com/fr/design/gui/icontainer/UIResizableContainer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java index 5db23c5033..c59ebb128d 100644 --- a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java +++ b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java @@ -278,7 +278,7 @@ public class UIResizableContainer extends JPanel { } public void removeParameterPane() { - this.remove(this.parameterPane); + remove(this.parameterPane); setParameterHeight(0); hasParameterPane = false; refreshContainer(); From 82f4493b82200b0e439c6db09981328155625a15 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 14 Nov 2016 15:16:06 +0800 Subject: [PATCH 17/86] rt --- .../fr/design/gui/icontainer/UIResizableContainer.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java index c59ebb128d..13ea214ec5 100644 --- a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java +++ b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java @@ -278,10 +278,10 @@ public class UIResizableContainer extends JPanel { } public void removeParameterPane() { - remove(this.parameterPane); - setParameterHeight(0); - hasParameterPane = false; - refreshContainer(); + remove(this.parameterPane); + setParameterHeight(0); + hasParameterPane = false; + refreshContainer(); } From 8ec9b02ad222ff9522a9e62f44953e4d9e4b8d85 Mon Sep 17 00:00:00 2001 From: zack Date: Mon, 14 Nov 2016 17:24:46 +0800 Subject: [PATCH 18/86] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20release?= =?UTF-8?q?=E7=9A=84=E6=94=B9=E5=8A=A8=E5=90=8C=E6=AD=A5=E4=B8=8Bdev(?= =?UTF-8?q?=E5=85=B1=E4=BA=AB=E7=BB=84=E4=BB=B6=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E5=92=8C=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E5=90=8C=E5=90=8D=E5=8E=BB=E9=87=8D=E9=97=AE=E9=A2=98)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/data/BasicTableDataTreePane.java | 18 ++++++++++-------- .../data/datapane/TableDataTreePane.java | 3 ++- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/designer_base/src/com/fr/design/data/BasicTableDataTreePane.java b/designer_base/src/com/fr/design/data/BasicTableDataTreePane.java index 45cd0cea70..a76d4a1059 100644 --- a/designer_base/src/com/fr/design/data/BasicTableDataTreePane.java +++ b/designer_base/src/com/fr/design/data/BasicTableDataTreePane.java @@ -118,7 +118,7 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp if (StringUtils.isBlank(tempName)) { nPanel.setShowText(Inter.getLocText(new String[]{"DS-TableData", "ISEMPTY", "PLEASE", "GIVE-NAME"}, new String[]{"", ",", "", "!"})); dg.setButtonEnabled(false); - } else if (!ComparatorUtils.equals(oldName, tempName) && isDsNameRepeaded(tempName, allDSNames)) { + } else if (!ComparatorUtils.equals(oldName, tempName) && isDsNameRepeaded(tempName)) { String[] waring = new String[]{"DS-TableData", "Utils-has_been_existed", "PLEASE", "Rename"}; String[] sign = new String[]{tempName, ",", "", "!"}; nPanel.setShowText(Inter.getLocText(waring, sign)); @@ -324,20 +324,22 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp private String createDsName(String prefix) { int count = 1; allDSNames = DesignTableDataManager.getAllDSNames(tc.getBook()); - while (isDsNameRepeaded(prefix + count, allDSNames)) { + while (isDsNameRepeaded(prefix + count)) { count++; } return prefix + count; } - private boolean isDsNameRepeaded(String name, String[] names) { - boolean repeat = false; - for (int i = 0; i < names.length; i++) { - if (ComparatorUtils.equals(name, names[i])) { - repeat = true; + protected boolean isDsNameRepeaded(String name) { + if (allDSNames == null) { + allDSNames = DesignTableDataManager.getAllDSNames(tc.getBook()); + } + for (int i = 0; i < allDSNames.length; i++) { + if (ComparatorUtils.equals(name, allDSNames[i])) { + return true; } } - return repeat; + return false; } protected KeyAdapter getTableTreeNodeListener(final UpdateAction editAction, final UpdateAction previewTableDataAction, final UpdateAction removeAction, final TableDataSourceOP op, final TableDataTree dataTree) { diff --git a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java index 2e605cafcf..219093c6d9 100644 --- a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java @@ -276,13 +276,14 @@ public class TableDataTreePane extends BasicTableDataTreePane { * @param tableDataSource 数据集 */ public void addTableData(String srcName, TableDataSource tableDataSource) { + allDSNames = DesignTableDataManager.getAllDSNames(tc.getBook()); DesignTableDataManager.setThreadLocal(DesignTableDataManager.NO_PARAMETER); TableDataSource tds = tc.getBook(); Iterator tdIterator = tableDataSource.getTableDataNameIterator(); while (tdIterator.hasNext()) { String tdName = (String) tdIterator.next(); TableData td = tableDataSource.getTableData(tdName); - if (tds.getTableData(tdName) != null) {//如果有同名的就拼上来源名称 + if (tds.getTableData(tdName) != null || isDsNameRepeaded(tdName)) {//如果有同名的就拼上来源名称 tdName = srcName + tdName; } int i = 0; From c9dade872d60a30f8d4c08ae3edb9b5d8c84208e Mon Sep 17 00:00:00 2001 From: zhouping Date: Tue, 15 Nov 2016 14:45:11 +0800 Subject: [PATCH 19/86] =?UTF-8?q?REPORT-750=20=E8=A1=A8=E5=8D=95=E5=85=B1?= =?UTF-8?q?=E5=88=9B=E5=86=85=E6=B5=8B=E9=97=AE=E9=A2=98=20bugfix6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/designer/properties/WidgetPropertyTable.java | 3 ++- designer_form/src/com/fr/design/mainframe/FormDesigner.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/properties/WidgetPropertyTable.java b/designer_form/src/com/fr/design/designer/properties/WidgetPropertyTable.java index 9f53dddcce..f69771a54a 100644 --- a/designer_form/src/com/fr/design/designer/properties/WidgetPropertyTable.java +++ b/designer_form/src/com/fr/design/designer/properties/WidgetPropertyTable.java @@ -21,6 +21,7 @@ import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWFitLayout; import com.fr.design.designer.creator.XWParameterLayout; import com.fr.design.designer.creator.cardlayout.XWCardLayout; +import com.fr.general.ComparatorUtils; public class WidgetPropertyTable extends AbstractPropertyTable { @@ -71,7 +72,7 @@ public class WidgetPropertyTable extends AbstractPropertyTable { if (size == 0 || size == 1) { XCreator creator = size == 0 ? designer.getRootComponent() : designer.getSelectionModel().getSelection() .getSelectedCreator(); - if (designer.isRoot(creator)) { + if (ComparatorUtils.equals(creator, designer.getRootComponent())) { groups = designer.getDesignerMode().createRootDesignerPropertyGroup(); } else { groups = getCreatorPropertyGroup(designer, creator); diff --git a/designer_form/src/com/fr/design/mainframe/FormDesigner.java b/designer_form/src/com/fr/design/mainframe/FormDesigner.java index cd3b5b448e..b24b2d96fc 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesigner.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesigner.java @@ -853,7 +853,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection * @return 是则返回true */ public boolean isRoot(XCreator comp) { - return comp == rootComponent; + return comp == rootComponent || comp.acceptType(XWAbsoluteBodyLayout.class); } // 计算鼠标事件e所发生的位置相对根组件的位置关系 From dc825bd01ec3c3ae51ae6ef9b7a2d764c6cbf4bb Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Wed, 16 Nov 2016 12:04:48 +0800 Subject: [PATCH 20/86] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E5=B1=9E=E6=80=A7=E8=8F=9C=E5=8D=95=E9=87=8C=E9=9D=A2?= =?UTF-8?q?=E7=9A=84=E5=88=B7=E6=96=B0=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/ReportMobileAttrAction.java | 4 +- .../mainframe/ElementCasePaneDelegate.java | 1 - .../report/mobile/AppFitBrowserPane.java | 16 ++---- .../report/mobile/MobileToolBarPane.java | 32 +++++++++++ .../report/mobile/ReportMobileAttrPane.java | 25 ++++++--- .../dialog}/mobile/MobileRadioCheckPane.java | 13 +++-- .../dialog/mobile/MobileToolBarBeanPane.java | 56 +++++++++++++++++++ .../design/form/mobile/MobileToolBarPane.java | 32 +++++++++++ .../src/com/fr/design/mainframe/JForm.java | 8 ++- .../actions/FormMobileAttrAction.java | 56 +++++++++++++++++++ 10 files changed, 214 insertions(+), 29 deletions(-) create mode 100644 designer/src/com/fr/design/report/mobile/MobileToolBarPane.java rename {designer/src/com/fr/design/report => designer_base/src/com/fr/design/dialog}/mobile/MobileRadioCheckPane.java (83%) create mode 100644 designer_base/src/com/fr/design/dialog/mobile/MobileToolBarBeanPane.java create mode 100644 designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java create mode 100644 designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java diff --git a/designer/src/com/fr/design/actions/report/ReportMobileAttrAction.java b/designer/src/com/fr/design/actions/report/ReportMobileAttrAction.java index 2bf3856908..f5fd94a321 100644 --- a/designer/src/com/fr/design/actions/report/ReportMobileAttrAction.java +++ b/designer/src/com/fr/design/actions/report/ReportMobileAttrAction.java @@ -57,9 +57,7 @@ public class ReportMobileAttrAction extends JWorkBookAction{ private static final MenuKeySet REPORT_APP_ATTR = new MenuKeySet() { @Override - public char getMnemonic() { - return 'P'; - } + public char getMnemonic() { return 'P'; } @Override public String getMenuName() { diff --git a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java index 79c60d2dc2..67e6975343 100644 --- a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -3,7 +3,6 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; import com.fr.design.fun.MenuHandler; import com.fr.design.menu.KeySetUtils; -import com.fr.design.parameter.ParameterPropertyPane; import com.fr.general.Inter; import com.fr.page.ReportSettingsProvider; import com.fr.design.file.HistoryTemplateListPane; diff --git a/designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java b/designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java index 43471b751d..2b1f44f389 100644 --- a/designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java +++ b/designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java @@ -19,8 +19,6 @@ public class AppFitBrowserPane extends BasicBeanPane { private MobileRadioGroupPane horizionPane; //竖屏设置面板 private MobileRadioGroupPane verticalPane; - //缩放选项面板 - private MobileRadioCheckPane radioCheckPane; //效果预览面板 private AppFitPreviewPane appFitPreviewPane; @@ -36,16 +34,13 @@ public class AppFitBrowserPane extends BasicBeanPane { JPanel fitOpsPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); horizionPane = new MobileRadioGroupPane(Inter.getLocText("FR-Designer_Mobile-Horizontal")); verticalPane = new MobileRadioGroupPane(Inter.getLocText("FR-Designer_Mobile-Vertical")); - radioCheckPane = new MobileRadioCheckPane(Inter.getLocText("FR-Designer_Mobile-Zoom")); ActionListener actionListener = getAppPreviewActionListener(); horizionPane.addActionListener(actionListener); verticalPane.addActionListener(actionListener); fitOpsPane.add(horizionPane, BorderLayout.NORTH); - fitOpsPane.add(verticalPane, BorderLayout.CENTER); - fitOpsPane.add(radioCheckPane, BorderLayout.SOUTH); + fitOpsPane.add(verticalPane, BorderLayout.SOUTH); borderPane.add(fitOpsPane); this.add(borderPane); - } public void setAppFitPreviewPane(AppFitPreviewPane appFitPreviewPane) { @@ -54,7 +49,7 @@ public class AppFitBrowserPane extends BasicBeanPane { //纵向和横向独立设置 public int[] getCurrentFitOptions() { - return new int[]{horizionPane.getSelectRadioIndex(), verticalPane.getSelectRadioIndex(), radioCheckPane.getCurrentState()}; + return new int[]{horizionPane.getSelectRadioIndex(), verticalPane.getSelectRadioIndex()}; } @Override @@ -64,7 +59,7 @@ public class AppFitBrowserPane extends BasicBeanPane { } horizionPane.populateBean(ob.getHorziontalAttr()); verticalPane.populateBean(ob.getVerticalAttr()); - radioCheckPane.populateBean(ob.isZoom()); +// radioCheckPane.populateBean(ob.isZoom()); appFitPreviewPane.refreshPreview(getCurrentFitOptions()); } @@ -73,8 +68,9 @@ public class AppFitBrowserPane extends BasicBeanPane { public ElementCaseMobileAttr updateBean() { MobileFitAttrState horizonState = horizionPane.updateBean(); MobileFitAttrState verticalState = verticalPane.updateBean(); - boolean isZoom = radioCheckPane.updateBean(); - return new ElementCaseMobileAttr(horizonState, verticalState, isZoom); +// boolean isZoom = radioCheckPane.updateBean(); +// return new ElementCaseMobileAttr(horizonState, verticalState, isZoom); + return new ElementCaseMobileAttr(horizonState, verticalState); } @Override diff --git a/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java b/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java new file mode 100644 index 0000000000..2a151c4718 --- /dev/null +++ b/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java @@ -0,0 +1,32 @@ +package com.fr.design.report.mobile; + +import com.fr.design.dialog.mobile.MobileToolBarBeanPane; +import com.fr.report.mobile.ElementCaseMobileAttr; + +/** + * Created by 方磊 on 2016/11/8. + */ +public class MobileToolBarPane extends MobileToolBarBeanPane { + + @Override + public void populateBean(ElementCaseMobileAttr ob) { + if (ob == null) { + ob = new ElementCaseMobileAttr(); + } + super.getZoomCheckPane().populateBean(ob.isZoom()); + super.getRefreshCheckPane().populateBean(ob.isRefresh()); + } + + @Override + public ElementCaseMobileAttr updateBean() { + return null; + } + + @Override + public void updateBean(ElementCaseMobileAttr mobileAttr) { + if(mobileAttr != null) { + mobileAttr.setZoom(super.getZoomCheckPane().updateBean()); + mobileAttr.setRefresh(super.getRefreshCheckPane().updateBean()); + } + } +} diff --git a/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java b/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java index 3c00232194..5b97137102 100644 --- a/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java +++ b/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java @@ -1,6 +1,7 @@ package com.fr.design.report.mobile; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.general.Inter; import com.fr.report.mobile.ElementCaseMobileAttr; @@ -16,22 +17,30 @@ public class ReportMobileAttrPane extends BasicBeanPane{ private MobileUseHtmlGroupPane htmlGroupPane; + //工具栏容器 + private MobileToolBarPane mobileToolBarPane; + public ReportMobileAttrPane() { initComponents(); } private void initComponents() { - this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); - this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); AppFitPreviewPane appFitPreviewPane = new AppFitPreviewPane(); - + this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); + JPanel jPanel = new JPanel(); + jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS)); + jPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); appFitBrowserPane = new AppFitBrowserPane(); appFitBrowserPane.setAppFitPreviewPane(appFitPreviewPane); - this.add(appFitBrowserPane); + jPanel.add(appFitBrowserPane); - this.add(htmlGroupPane = new MobileUseHtmlGroupPane()); + jPanel.add(htmlGroupPane = new MobileUseHtmlGroupPane()); - this.add(appFitPreviewPane); + jPanel.add(mobileToolBarPane = new MobileToolBarPane()); + + jPanel.add(appFitPreviewPane); + UIScrollPane scrollPane = new UIScrollPane(jPanel); + this.add(scrollPane); } @Override @@ -40,7 +49,7 @@ public class ReportMobileAttrPane extends BasicBeanPane{ ob = new ElementCaseMobileAttr(); } appFitBrowserPane.populateBean(ob); - + mobileToolBarPane.populateBean(ob); htmlGroupPane.populateBean(ob); } @@ -48,7 +57,7 @@ public class ReportMobileAttrPane extends BasicBeanPane{ @Override public ElementCaseMobileAttr updateBean() { ElementCaseMobileAttr caseMobileAttr = appFitBrowserPane.updateBean(); - + mobileToolBarPane.updateBean(caseMobileAttr); htmlGroupPane.updateBean(caseMobileAttr); return caseMobileAttr; diff --git a/designer/src/com/fr/design/report/mobile/MobileRadioCheckPane.java b/designer_base/src/com/fr/design/dialog/mobile/MobileRadioCheckPane.java similarity index 83% rename from designer/src/com/fr/design/report/mobile/MobileRadioCheckPane.java rename to designer_base/src/com/fr/design/dialog/mobile/MobileRadioCheckPane.java index 9264619d32..ee38557612 100644 --- a/designer/src/com/fr/design/report/mobile/MobileRadioCheckPane.java +++ b/designer_base/src/com/fr/design/dialog/mobile/MobileRadioCheckPane.java @@ -1,4 +1,4 @@ -package com.fr.design.report.mobile; +package com.fr.design.dialog.mobile; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.icheckbox.UICheckBox; @@ -13,6 +13,9 @@ import java.awt.*; import java.util.ArrayList; import java.util.List; +/** + * 这个类要被复用,移动到design_base中去 + */ public class MobileRadioCheckPane extends BasicBeanPane { private List checkBoxes = new ArrayList(); @@ -26,16 +29,16 @@ public class MobileRadioCheckPane extends BasicBeanPane { double[] rowSize = {p}; double[] columnSize = {p,p}; - UICheckBox checkBox = new UICheckBox(Inter.getLocText("FR-Designer_Mobile-Open")); - checkBox.setSelected(true); + UICheckBox checkBox = new UICheckBox(title); + checkBox.setSelected(false); checkBoxes.add(checkBox); Component[][] components = new Component[][]{ - new Component[]{new UILabel(title), checkBox} + new Component[]{checkBox} }; JPanel fitOpsPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); - fitOpsPane.setBorder(BorderFactory.createEmptyBorder(10, 13, 10, 10)); + fitOpsPane.setBorder(BorderFactory.createEmptyBorder(5, 0, 10, 0)); this.add(fitOpsPane); } diff --git a/designer_base/src/com/fr/design/dialog/mobile/MobileToolBarBeanPane.java b/designer_base/src/com/fr/design/dialog/mobile/MobileToolBarBeanPane.java new file mode 100644 index 0000000000..6ccf73e2c5 --- /dev/null +++ b/designer_base/src/com/fr/design/dialog/mobile/MobileToolBarBeanPane.java @@ -0,0 +1,56 @@ +package com.fr.design.dialog.mobile; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.general.Inter; + +import javax.swing.*; +import java.awt.*; + +/** + * Created by fanglei on 2016/11/14. + * 这个toolbar类需要被design和design_form两个模块复用,所以为了结构精简,抽出共同方法作为抽象类供它们使用 + */ +public abstract class MobileToolBarBeanPane extends BasicBeanPane { + //缩放选项面板 + private MobileRadioCheckPane zoomCheckPane; + + //刷新选项面板 + private MobileRadioCheckPane refreshCheckPane; + + public MobileRadioCheckPane getZoomCheckPane() { + return zoomCheckPane; + } + + public MobileRadioCheckPane getRefreshCheckPane() { + return refreshCheckPane; + } + + public MobileToolBarBeanPane() { + initComponents(); + } + + private void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel borderPane = FRGUIPaneFactory.createTitledBorderPane(this.title4PopupWindow()); + JPanel toobarsPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + + UILabel uiLabel = new UILabel("html5"); + uiLabel.setBorder(BorderFactory.createEmptyBorder(5, 15, 10, 15)); + zoomCheckPane = new MobileRadioCheckPane(Inter.getLocText("FR-Designer_Mobile-Zoom")); + refreshCheckPane = new MobileRadioCheckPane("刷新"); + + toobarsPane.add(uiLabel, BorderLayout.WEST); + toobarsPane.add(zoomCheckPane, BorderLayout.CENTER); + toobarsPane.add(refreshCheckPane, BorderLayout.EAST); + borderPane.add(toobarsPane); + this.add(borderPane); + } + + @Override + protected String title4PopupWindow() { + return "工具栏"; + } + +} diff --git a/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java b/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java new file mode 100644 index 0000000000..2dd0dee51d --- /dev/null +++ b/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java @@ -0,0 +1,32 @@ +package com.fr.design.form.mobile; + +import com.fr.design.dialog.mobile.MobileToolBarBeanPane; +import com.fr.report.mobile.ElementCaseMobileAttr; + +/** + * Created by 方磊 on 2016/11/8. + */ +public class MobileToolBarPane extends MobileToolBarBeanPane { + + @Override + public void populateBean(ElementCaseMobileAttr ob) { + if (ob == null) { + ob = new ElementCaseMobileAttr(); + } + super.getZoomCheckPane().populateBean(ob.isZoom()); + super.getRefreshCheckPane().populateBean(ob.isRefresh()); + } + + @Override + public ElementCaseMobileAttr updateBean() { + return null; + } + + @Override + public void updateBean(ElementCaseMobileAttr mobileAttr) { + if(mobileAttr != null) { + mobileAttr.setZoom(super.getZoomCheckPane().updateBean()); + mobileAttr.setRefresh(super.getRefreshCheckPane().updateBean()); + } + } +} diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index c88ebe012b..2c20fbac18 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -4,6 +4,7 @@ import com.fr.base.BaseUtils; import com.fr.design.DesignState; import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.actions.file.WebPreviewUtils; +import com.fr.design.mainframe.actions.FormMobileAttrAction; import com.fr.design.cell.FloatElementsProvider; import com.fr.design.constants.UIConstants; import com.fr.design.designer.beans.actions.FormDeleteAction; @@ -71,6 +72,7 @@ public class JForm extends JTemplate implements BaseJForm { private JComponent editingComponent; private FormECCompositeProvider reportComposite; + //FORM_TAB代表是否点击编辑,用于点击编辑前后菜单的显示 protected int index = FORM_TAB; public JForm() { @@ -383,11 +385,13 @@ public class JForm extends JTemplate implements BaseJForm { public ShortCut[] shortcut4TemplateMenu() { if (this.index == FORM_TAB) { return (ShortCut[]) ArrayUtils.addAll(new ShortCut[]{ - new TemplateParameterAction(this) + new TemplateParameterAction(this), + new FormMobileAttrAction(this) }, new ShortCut[0]); } else { return (ShortCut[]) ArrayUtils.addAll(new ShortCut[]{ - new TemplateParameterAction(this) + new TemplateParameterAction(this), + new FormMobileAttrAction(this) }, this.elementCaseDesign.shortcut4TemplateMenu()); } } diff --git a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java new file mode 100644 index 0000000000..241d4757ea --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java @@ -0,0 +1,56 @@ +package com.fr.design.mainframe.actions; + +import com.fr.base.BaseUtils; +import com.fr.design.actions.JTemplateAction; +import com.fr.design.mainframe.JForm; +import com.fr.design.menu.MenuKeySet; +import com.fr.form.main.Form; +import com.fr.report.mobile.ElementCaseMobileAttr; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +/** + * Created by fanglei on 2016/11/14. + */ +public class FormMobileAttrAction extends JTemplateAction { + + public FormMobileAttrAction(JForm jf) { + super(jf); + this.setMenuKeySet(REPORT_APP_ATTR); + this.setName(getMenuKeySet().getMenuKeySetName() + "..."); + this.setMnemonic(getMenuKeySet().getMnemonic()); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/mobile.png")); + } + + /** + * 执行动作 + * + * @return 是否执行成功 + */ + @Override + public void actionPerformed(ActionEvent e) { + final JForm jf = getEditingComponent(); + if (jf == null) { + return; + } + final Form formTpl = jf.getTarget(); + } + + private static final MenuKeySet REPORT_APP_ATTR = new MenuKeySet() { + @Override + public char getMnemonic() { + return 'T'; + } + + @Override + public String getMenuName() { + return "移动端属性"; + } + + @Override + public KeyStroke getKeyStroke() { + return null; + } + }; +} From c8a1ab412dbff603249b46b36d118c3cac4ada88 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Wed, 16 Nov 2016 16:50:54 +0800 Subject: [PATCH 21/86] =?UTF-8?q?=E6=97=A5=E6=96=87=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E4=B8=8B=EF=BC=8C=E8=B0=83=E6=8E=92=E7=89=88=E5=92=8Ctooltip?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/chart/gui/ChartDataPane.java | 3 +++ .../chart/gui/data/NormalChartDataPane.java | 2 +- .../chart/gui/data/TableDataPane.java | 2 +- .../CategoryPlotTableDataContentPane.java | 2 +- .../table/SeriesNameUseFieldValuePane.java | 9 ++++---- .../data/table/SeriesTypeUseComboxPane.java | 2 +- .../chart/gui/type/ChartTabPane.java | 23 +++++++++++++++++++ 7 files changed, 35 insertions(+), 8 deletions(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartDataPane.java index 7fc3c79d93..464d6aaf96 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartDataPane.java @@ -15,6 +15,9 @@ import javax.swing.*; import java.awt.*; public class ChartDataPane extends AbstractChartAttrPane { + + public static final int LABEL_WIDTH = 85; + public static final int LABEL_HEIGHT = 20; protected DataContentsPane contentsPane; protected AttributeChangeListener listener; diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java index d5aa2d93ec..cae7afc39a 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java @@ -57,7 +57,7 @@ public class NormalChartDataPane extends DataContentsPane { JPanel northPane = new JPanel(new BorderLayout(LayoutConstants.HGAP_LARGE,0)); northPane.add(jcb, BorderLayout.CENTER); UILabel label1 = new UILabel(Inter.getLocText("Chart-Data_Resource") + ":", SwingConstants.RIGHT); - label1.setPreferredSize(new Dimension(75,20)); + label1.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH,ChartDataPane.LABEL_HEIGHT)); northPane.add(GUICoreUtils.createBorderLayoutPane(new Component[]{jcb, null, null, label1, null})); this.add(northPane, BorderLayout.NORTH); this.add(cardPane, BorderLayout.CENTER); diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/TableDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/TableDataPane.java index 2bed0cb2d4..3b6c71ef1e 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/TableDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/TableDataPane.java @@ -32,7 +32,7 @@ public class TableDataPane extends FurtherBasicBeanPane{ private void initDataPane() { UILabel label = new BoldFontTextLabel(Inter.getLocText("Chart-DS_TableData") + ":", SwingConstants.RIGHT) ; - label.setPreferredSize(new Dimension(75,20)); + label.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH,ChartDataPane.LABEL_HEIGHT)); tableDataPane = new DatabaseTableDataPane(label) { @Override protected void userEvent() { diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/table/CategoryPlotTableDataContentPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/table/CategoryPlotTableDataContentPane.java index 3f1e532681..a8c1bc1f87 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/table/CategoryPlotTableDataContentPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/table/CategoryPlotTableDataContentPane.java @@ -42,7 +42,7 @@ public class CategoryPlotTableDataContentPane extends AbstractTableDataContentPa JPanel categoryPane = new JPanel(new BorderLayout(4,0)); categoryPane.setBorder(BorderFactory.createMatteBorder(0, 0, 6, 1, getBackground())); UILabel label1 = new BoldFontTextLabel(Inter.getLocText("FR-Chart-Category_Name") + ":", SwingConstants.RIGHT) ; - label1.setPreferredSize(new Dimension(75,20)); + label1.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH,ChartDataPane.LABEL_HEIGHT)); categoryCombox.setPreferredSize(new Dimension(100,20)); categoryCombox.addItem(Inter.getLocText("Chart-Use_None")); diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/table/SeriesNameUseFieldValuePane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/table/SeriesNameUseFieldValuePane.java index 2d5099db4d..1ef6972a96 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/table/SeriesNameUseFieldValuePane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/table/SeriesNameUseFieldValuePane.java @@ -11,6 +11,7 @@ import com.fr.design.gui.ilable.BoldFontTextLabel; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.data.CalculateComboBox; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.ComparatorUtils; @@ -76,12 +77,12 @@ public class SeriesNameUseFieldValuePane extends FurtherBasicBeanPane { this.setLayout(new BorderLayout(4, LayoutConstants.VGAP_MEDIUM)); JPanel northPane = new JPanel(new BorderLayout(4, 0)); UILabel label1 = new UILabel(Inter.getLocText("ChartF-Series_Name_From") + ":", SwingConstants.RIGHT); - label1.setPreferredSize(new Dimension(75, 20)); + label1.setPreferredSize(new Dimension(ChartDataPane.LABEL_WIDTH, ChartDataPane.LABEL_HEIGHT)); northPane.add(GUICoreUtils.createBorderLayoutPane(new Component[]{jcb, null, null, label1, null})); northPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 1)); this.add(northPane, BorderLayout.NORTH); diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/type/ChartTabPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/type/ChartTabPane.java index 85e7e693c4..40fc6fe55e 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/type/ChartTabPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/type/ChartTabPane.java @@ -2,6 +2,7 @@ package com.fr.design.mainframe.chart.gui.type; import com.fr.chart.chartattr.Chart; import com.fr.design.dialog.MultiTabPane; +import com.fr.design.gui.ibutton.UIToggleButton; import com.fr.design.mainframe.chart.gui.style.legend.AutoSelectedPane; import com.fr.general.ComparatorUtils; import com.fr.stable.StringUtils; @@ -15,6 +16,7 @@ import java.awt.*; public abstract class ChartTabPane extends MultiTabPane { private static final long serialVersionUID = 8633385688766835240L; + private boolean setTooltip = true; @Override protected void initLayout() { @@ -26,6 +28,27 @@ public abstract class ChartTabPane extends MultiTabPane { this.add(centerPane, BorderLayout.CENTER); } + //日文环境下,显示不全的,用tooltip + private void setSomeTooltipText() { + this.setVisible(true); + for(int i = 0, size = paneList.size(); i button.getSize().getWidth()) { + button.setToolTipText(tooltip); + } + } + } + + @Override + public void paint(Graphics g) { + super.paint(g); + if(setTooltip) { + setSomeTooltipText(); + setTooltip = false; + } + } + @Override public boolean accept(Object ob) { return false; From 5b1134f2370a3afd8056a0d6a561a02634e2ae9b Mon Sep 17 00:00:00 2001 From: fr_shine Date: Wed, 16 Nov 2016 16:53:31 +0800 Subject: [PATCH 22/86] =?UTF-8?q?=E6=97=A0=E6=84=8F=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/chart/gui/type/ChartTabPane.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/type/ChartTabPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/type/ChartTabPane.java index 40fc6fe55e..a715643e0b 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/type/ChartTabPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/type/ChartTabPane.java @@ -30,7 +30,6 @@ public abstract class ChartTabPane extends MultiTabPane { //日文环境下,显示不全的,用tooltip private void setSomeTooltipText() { - this.setVisible(true); for(int i = 0, size = paneList.size(); i Date: Thu, 17 Nov 2016 12:55:41 +0800 Subject: [PATCH 23/86] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=85=B1=E4=BA=AB=E8=BF=9C=E7=A8=8B=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/env/RemoteEnv.java | 46 ++++++++++++++++++- .../mainframe/FormWidgetDetailPane.java | 6 --- .../fr/design/mainframe/ShareWidgetPane.java | 17 +++---- 3 files changed, 53 insertions(+), 16 deletions(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 6aff74d7ca..ab9cc6f4d7 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -22,6 +22,7 @@ import com.fr.file.CacheManager; import com.fr.file.DatasourceManager; import com.fr.file.DatasourceManagerProvider; import com.fr.file.filetree.FileNode; +import com.fr.form.share.ShareConstants; import com.fr.general.*; import com.fr.general.http.HttpClient; import com.fr.json.JSONArray; @@ -31,8 +32,6 @@ import com.fr.plugin.Plugin; import com.fr.plugin.PluginLicense; import com.fr.plugin.PluginLicenseManager; import com.fr.plugin.PluginLoader; -import com.fr.plugin.dependence.PluginServiceCreator; -import com.fr.plugin.dependence.PluginServiceManager; import com.fr.stable.*; import com.fr.stable.file.XMLFileManagerProvider; import com.fr.stable.project.ProjectConstants; @@ -2105,4 +2104,47 @@ public class RemoteEnv implements Env { public void checkAndRegisterLic(FileNode node, Plugin plugin) throws Exception { } + + @Override + public File[] loadREUFile() throws Exception { + File target = new File(CacheManager.getProviderInstance().getCacheDirectory(), + "fr_share"); + StableUtils.deleteFile(target); + StableUtils.mkdirs(target); + File cacheDir = null; + File zip = null; + try { + HashMap para = new HashMap(); + para.put("op", "fr_remote_design"); + para.put("cmd", "design_read_reufile"); + para.put("current_uid", this.createUserID()); + para.put("currentUsername", this.getUser()); + + HttpClient client = createHttpMethod(para); + InputStream input = client.getResponseStream(); + zip = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), "share.zip"); + cacheDir = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), ShareConstants.DIR_SHARE_CACHE); + StableUtils.deleteFile(cacheDir); + StableUtils.mkdirs(cacheDir); + StableUtils.makesureFileExist(zip); + FileOutputStream out = new FileOutputStream(zip); + IOUtils.copyBinaryTo(input, out); + out.flush(); + out.close(); + IOUtils.unzip(zip, cacheDir.getAbsolutePath(), EncodeConstants.ENCODING_GBK);//先解压到临时目录 + if (cacheDir.exists() && cacheDir.isDirectory()) { + return cacheDir.listFiles(new FilenameFilter() { + public boolean accept(File file, String s) { + return s.endsWith("reu"); + } + }); + } + + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage()); + } finally { + StableUtils.deleteFile(zip); + } + return null; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java b/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java index 5beea605c8..4922d8b114 100644 --- a/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java +++ b/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java @@ -2,11 +2,6 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; import com.fr.base.FRContext; -import com.fr.design.dialog.BasicPane; -import com.fr.design.dialog.UIDialog; -import com.fr.design.extra.PluginWebBridge; -import com.fr.design.extra.ShopDialog; -import com.fr.design.extra.WebManagerPaneFactory; import com.fr.design.gui.frpane.UITabbedPane; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.icombobox.UIComboBox; @@ -99,7 +94,6 @@ public class FormWidgetDetailPane extends FormDockView{ reuWidgetPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); reuWidgetPanel.setBorder(null); if (elCaseBindInfoList == null) { - elCaseBindInfoList = new ElCaseBindInfo[0]; if (sw != null) { sw.cancel(true); } diff --git a/designer_form/src/com/fr/design/mainframe/ShareWidgetPane.java b/designer_form/src/com/fr/design/mainframe/ShareWidgetPane.java index cd04300bf1..3965511355 100644 --- a/designer_form/src/com/fr/design/mainframe/ShareWidgetPane.java +++ b/designer_form/src/com/fr/design/mainframe/ShareWidgetPane.java @@ -14,15 +14,16 @@ public class ShareWidgetPane extends JPanel { public ShareWidgetPane(ElCaseBindInfo[] elCaseBindInfoList, boolean isEdit) { this.setBorder(BorderFactory.createEmptyBorder(10, 3, 0, 0));// 设置面板的边框 ,距离上、左、下、右 的距离 - int rowCount = (elCaseBindInfoList.length + 1) / 2; - this.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 10)); - for (ElCaseBindInfo rbModuleInfo : elCaseBindInfoList) { - ShareWidgetButton widgetButton = new ShareWidgetButton(rbModuleInfo); - widgetButton.setElementCaseEdit(isEdit); - this.add(widgetButton); + if (elCaseBindInfoList != null) { + int rowCount = (elCaseBindInfoList.length + 1) / 2; + this.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 10)); + for (ElCaseBindInfo rbModuleInfo : elCaseBindInfoList) { + ShareWidgetButton widgetButton = new ShareWidgetButton(rbModuleInfo); + widgetButton.setElementCaseEdit(isEdit); + this.add(widgetButton); + } + this.setPreferredSize(new Dimension(240, rowCount * 80)); } - this.setPreferredSize(new Dimension(240, rowCount * 80)); - } } \ No newline at end of file From a8923863400d82eeeef055577702ad7c000d9fbe Mon Sep 17 00:00:00 2001 From: zack Date: Thu, 17 Nov 2016 13:01:19 +0800 Subject: [PATCH 24/86] PMD --- designer_base/src/com/fr/env/RemoteEnv.java | 2 +- .../src/com/fr/design/mainframe/FormWidgetDetailPane.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index ab9cc6f4d7..85fa191302 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2145,6 +2145,6 @@ public class RemoteEnv implements Env { } finally { StableUtils.deleteFile(zip); } - return null; + return new File[0]; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java b/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java index 4922d8b114..bcc1400beb 100644 --- a/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java +++ b/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java @@ -14,6 +14,7 @@ import com.fr.design.utils.gui.GUICoreUtils; import com.fr.form.share.ShareConstants; import com.fr.form.share.ShareLoader; import com.fr.form.ui.ElCaseBindInfo; +import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.general.SiteCenter; import com.fr.stable.StringUtils; @@ -227,7 +228,7 @@ public class FormWidgetDetailPane extends FormDockView{ try { Desktop.getDesktop().browse(new URI(url)); } catch (IOException exp) { - JOptionPane.showMessageDialog(null, Inter.getLocText("Set_default_browser")); + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer_Set_default_browser")); FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp); } catch (URISyntaxException exp) { FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp); @@ -303,7 +304,7 @@ public class FormWidgetDetailPane extends FormDockView{ JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_OK")); } catch (IOException e) { JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_Error")); - e.printStackTrace(); + FRLogger.getLogger().error(e.getMessage(), e); } } @@ -312,7 +313,7 @@ public class FormWidgetDetailPane extends FormDockView{ try { ShareLoader.getLoader().refreshModule(); } catch (Exception e) { - e.printStackTrace(); + FRLogger.getLogger().error(e.getMessage(), e); } } From 151c0edb752b8cc0b1a7610cb4e21a66dae91f5d Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Thu, 17 Nov 2016 15:28:00 +0800 Subject: [PATCH 25/86] =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E8=8F=9C=E5=8D=95=E7=9A=84=E6=95=B0=E6=8D=AE=E4=BF=9D?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/mobile/MobileToolBarPane.java | 50 +++++++++++++++-- .../dialog/mobile/MobileToolBarBeanPane.java | 56 ------------------- .../form/mobile/FormMobileAttrPane.java | 53 ++++++++++++++++++ .../design/form/mobile/MobileToolBarPane.java | 44 +++++++++++++-- .../actions/FormMobileAttrAction.java | 19 ++++++- 5 files changed, 153 insertions(+), 69 deletions(-) delete mode 100644 designer_base/src/com/fr/design/dialog/mobile/MobileToolBarBeanPane.java create mode 100644 designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java diff --git a/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java b/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java index 2a151c4718..bea0745cb5 100644 --- a/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java +++ b/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java @@ -1,20 +1,53 @@ package com.fr.design.report.mobile; -import com.fr.design.dialog.mobile.MobileToolBarBeanPane; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.dialog.mobile.MobileRadioCheckPane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.general.Inter; import com.fr.report.mobile.ElementCaseMobileAttr; +import javax.swing.*; +import java.awt.*; + /** * Created by 方磊 on 2016/11/8. */ -public class MobileToolBarPane extends MobileToolBarBeanPane { +public class MobileToolBarPane extends BasicBeanPane { + //缩放选项面板 + private MobileRadioCheckPane zoomCheckPane; + + //刷新选项面板 + private MobileRadioCheckPane refreshCheckPane; + + public MobileToolBarPane() { + this.initComponents(); + } + + private void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel borderPane = FRGUIPaneFactory.createTitledBorderPane(this.title4PopupWindow()); + JPanel toobarsPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + + UILabel uiLabel = new UILabel("html5"); + uiLabel.setBorder(BorderFactory.createEmptyBorder(5, 15, 10, 15)); + zoomCheckPane = new MobileRadioCheckPane(Inter.getLocText("FR-Designer_Mobile-Zoom")); + refreshCheckPane = new MobileRadioCheckPane(Inter.getLocText("FR-Designer_Mobile-Refresh")); + + toobarsPane.add(uiLabel, BorderLayout.WEST); + toobarsPane.add(zoomCheckPane, BorderLayout.CENTER); + toobarsPane.add(refreshCheckPane, BorderLayout.EAST); + borderPane.add(toobarsPane); + this.add(borderPane); + } @Override public void populateBean(ElementCaseMobileAttr ob) { if (ob == null) { ob = new ElementCaseMobileAttr(); } - super.getZoomCheckPane().populateBean(ob.isZoom()); - super.getRefreshCheckPane().populateBean(ob.isRefresh()); + this.zoomCheckPane.populateBean(ob.isZoom()); + this.refreshCheckPane.populateBean(ob.isRefresh()); } @Override @@ -25,8 +58,13 @@ public class MobileToolBarPane extends MobileToolBarBeanPane extends BasicBeanPane { - //缩放选项面板 - private MobileRadioCheckPane zoomCheckPane; - - //刷新选项面板 - private MobileRadioCheckPane refreshCheckPane; - - public MobileRadioCheckPane getZoomCheckPane() { - return zoomCheckPane; - } - - public MobileRadioCheckPane getRefreshCheckPane() { - return refreshCheckPane; - } - - public MobileToolBarBeanPane() { - initComponents(); - } - - private void initComponents() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - JPanel borderPane = FRGUIPaneFactory.createTitledBorderPane(this.title4PopupWindow()); - JPanel toobarsPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - - UILabel uiLabel = new UILabel("html5"); - uiLabel.setBorder(BorderFactory.createEmptyBorder(5, 15, 10, 15)); - zoomCheckPane = new MobileRadioCheckPane(Inter.getLocText("FR-Designer_Mobile-Zoom")); - refreshCheckPane = new MobileRadioCheckPane("刷新"); - - toobarsPane.add(uiLabel, BorderLayout.WEST); - toobarsPane.add(zoomCheckPane, BorderLayout.CENTER); - toobarsPane.add(refreshCheckPane, BorderLayout.EAST); - borderPane.add(toobarsPane); - this.add(borderPane); - } - - @Override - protected String title4PopupWindow() { - return "工具栏"; - } - -} diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java new file mode 100644 index 0000000000..385608b184 --- /dev/null +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java @@ -0,0 +1,53 @@ +package com.fr.design.form.mobile; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.general.Inter; +import com.fr.report.mobile.ElementCaseMobileAttr; + +import javax.swing.*; +import java.awt.*; + +/** + * Created by fanglei on 2016/11/17. + */ +public class FormMobileAttrPane extends BasicBeanPane{ + //工具栏容器 + private MobileToolBarPane mobileToolBarPane; + + public FormMobileAttrPane() { + this.initComponents(); + } + + private void initComponents() { + JPanel jPanel = new JPanel(); + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + jPanel.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.mobileToolBarPane = new MobileToolBarPane(); + //设置一个JPanel包裹mobileToolBarPane这个Panel,让jPanel的高度等于mobileToolBarPane高度加10,再放入this中 + jPanel.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + 10)); + jPanel.add("North", mobileToolBarPane); + this.add(jPanel); + } + + @Override + public void populateBean(ElementCaseMobileAttr ob) { + if (ob == null) { + ob = new ElementCaseMobileAttr(); + } + this.mobileToolBarPane.populateBean(ob); + } + + @Override + public ElementCaseMobileAttr updateBean() { + ElementCaseMobileAttr caseMobileAttr = new ElementCaseMobileAttr(); + this.mobileToolBarPane.updateBean(caseMobileAttr); + return caseMobileAttr; + } + + @Override + protected String title4PopupWindow() { + return Inter.getLocText("FR-Designer_Mobile-Attr"); + } +} diff --git a/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java b/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java index 2dd0dee51d..7430f3a9ee 100644 --- a/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java +++ b/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java @@ -1,20 +1,47 @@ package com.fr.design.form.mobile; -import com.fr.design.dialog.mobile.MobileToolBarBeanPane; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.dialog.mobile.MobileRadioCheckPane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.general.Inter; import com.fr.report.mobile.ElementCaseMobileAttr; +import javax.swing.*; +import java.awt.*; + /** * Created by 方磊 on 2016/11/8. */ -public class MobileToolBarPane extends MobileToolBarBeanPane { +public class MobileToolBarPane extends BasicBeanPane { + //刷新选项面板 + private MobileRadioCheckPane refreshCheckPane; + + public MobileToolBarPane() { + this.initComponents(); + } + + private void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel borderPane = FRGUIPaneFactory.createTitledBorderPane(this.title4PopupWindow()); + JPanel toobarsPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + + UILabel uiLabel = new UILabel("html5"); + uiLabel.setBorder(BorderFactory.createEmptyBorder(5, 15, 10, 15)); + this.refreshCheckPane = new MobileRadioCheckPane(Inter.getLocText("FR-Designer_Mobile-Refresh")); + + toobarsPane.add(uiLabel, BorderLayout.WEST); + toobarsPane.add(refreshCheckPane, BorderLayout.EAST); + borderPane.add(toobarsPane); + this.add(borderPane); + } @Override public void populateBean(ElementCaseMobileAttr ob) { if (ob == null) { ob = new ElementCaseMobileAttr(); } - super.getZoomCheckPane().populateBean(ob.isZoom()); - super.getRefreshCheckPane().populateBean(ob.isRefresh()); + this.refreshCheckPane.populateBean(ob.isRefresh()); } @Override @@ -25,8 +52,13 @@ public class MobileToolBarPane extends MobileToolBarBeanPane { return; } final Form formTpl = jf.getTarget(); + ElementCaseMobileAttr mobileAttr = formTpl.getReportMobileAttr(); + + final FormMobileAttrPane mobileAttrPane = new FormMobileAttrPane(); + mobileAttrPane.populateBean(mobileAttr); + BasicDialog dialog = mobileAttrPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { + @Override + public void doOk() { + formTpl.setReportMobileAttr(mobileAttrPane.updateBean()); + jf.fireTargetModified(); + } + }); + dialog.setVisible(true); } private static final MenuKeySet REPORT_APP_ATTR = new MenuKeySet() { @@ -45,7 +62,7 @@ public class FormMobileAttrAction extends JTemplateAction { @Override public String getMenuName() { - return "移动端属性"; + return Inter.getLocText("FR-Designer_Mobile-Attr"); } @Override From 1d306eb56f112f73e2a6a0b198e8b01bd2238847 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Thu, 17 Nov 2016 15:49:59 +0800 Subject: [PATCH 26/86] =?UTF-8?q?=E8=A7=84=E8=8C=83=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/ElementCasePaneDelegate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java index 67e6975343..a3df2ba3e8 100644 --- a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -102,7 +102,7 @@ public class ElementCasePaneDelegate extends ElementCasePane { // 插入菜单 private MenuDef createInsertMenuDef() { - MenuDef menuDef = new MenuDef(Inter.getLocText("M-Insert"), 'I'); + MenuDef menuDef = new MenuDef(Inter.getLocText("FR-Designer_M-Insert"), 'I'); menuDef.setAnchor(MenuHandler.INSERT); // 单元格菜单 menuDef.addShortCut(DeprecatedActionManager.getCellMenu(this)); From 618817b9b2a79a20fd357304a2639623367faacf Mon Sep 17 00:00:00 2001 From: zack Date: Thu, 17 Nov 2016 15:50:16 +0800 Subject: [PATCH 27/86] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?=E7=94=A8=E4=BA=86=E9=9D=9E=E6=B3=95=E7=9A=84=E4=BE=9D=E8=B5=96?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=EF=BC=8C=E5=85=88=E7=9B=B4=E6=8E=A5=E6=94=B9?= =?UTF-8?q?=E6=88=90=E5=AD=97=E7=AC=A6=E4=B8=B2=EF=BC=8C=E5=90=8E=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/env/RemoteEnv.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 85fa191302..ae8c589ee5 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -22,7 +22,6 @@ import com.fr.file.CacheManager; import com.fr.file.DatasourceManager; import com.fr.file.DatasourceManagerProvider; import com.fr.file.filetree.FileNode; -import com.fr.form.share.ShareConstants; import com.fr.general.*; import com.fr.general.http.HttpClient; import com.fr.json.JSONArray; @@ -2123,7 +2122,7 @@ public class RemoteEnv implements Env { HttpClient client = createHttpMethod(para); InputStream input = client.getResponseStream(); zip = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), "share.zip"); - cacheDir = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), ShareConstants.DIR_SHARE_CACHE); + cacheDir = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), "fr_share"); StableUtils.deleteFile(cacheDir); StableUtils.mkdirs(cacheDir); StableUtils.makesureFileExist(zip); From b8155e3ca369d4735ed85b2309cf9c8caeb39e7a Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Thu, 17 Nov 2016 15:58:52 +0800 Subject: [PATCH 28/86] =?UTF-8?q?=E6=B6=88=E9=99=A4=E9=AD=94=E6=9C=AF?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/form/mobile/FormMobileAttrPane.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java index 385608b184..cf626b888c 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java @@ -26,7 +26,8 @@ public class FormMobileAttrPane extends BasicBeanPane{ jPanel.setLayout(FRGUIPaneFactory.createBorderLayout()); this.mobileToolBarPane = new MobileToolBarPane(); //设置一个JPanel包裹mobileToolBarPane这个Panel,让jPanel的高度等于mobileToolBarPane高度加10,再放入this中 - jPanel.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + 10)); + final int paddingHeight = 10; + jPanel.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + paddingHeight)); jPanel.add("North", mobileToolBarPane); this.add(jPanel); } From 3036113ec56c5f628b17a49225b91439ac8c0ab7 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Thu, 17 Nov 2016 17:31:18 +0800 Subject: [PATCH 29/86] =?UTF-8?q?=E7=94=B1=E4=BA=8Ereport=E7=9A=84elementC?= =?UTF-8?q?aseMobileAttrProvider=E6=B2=A1=E6=9C=89=E6=94=B9=E5=A5=BD?= =?UTF-8?q?=EF=BC=8Cform=E9=87=8C=E9=9D=A2=E8=8F=9C=E5=8D=95=E5=BC=B9?= =?UTF-8?q?=E7=AA=97=E5=85=88=E5=B1=8F=E8=94=BD=E9=98=B2=E6=AD=A2=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/FormMobileAttrAction.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java index 935c9f858e..c3f220f847 100644 --- a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java +++ b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java @@ -35,23 +35,23 @@ public class FormMobileAttrAction extends JTemplateAction { */ @Override public void actionPerformed(ActionEvent e) { - final JForm jf = getEditingComponent(); - if (jf == null) { - return; - } - final Form formTpl = jf.getTarget(); - ElementCaseMobileAttr mobileAttr = formTpl.getReportMobileAttr(); - - final FormMobileAttrPane mobileAttrPane = new FormMobileAttrPane(); - mobileAttrPane.populateBean(mobileAttr); - BasicDialog dialog = mobileAttrPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { - @Override - public void doOk() { - formTpl.setReportMobileAttr(mobileAttrPane.updateBean()); - jf.fireTargetModified(); - } - }); - dialog.setVisible(true); +// final JForm jf = getEditingComponent(); +// if (jf == null) { +// return; +// } +// final Form formTpl = jf.getTarget(); +// ElementCaseMobileAttr mobileAttr = formTpl.getReportMobileAttr(); +// +// final FormMobileAttrPane mobileAttrPane = new FormMobileAttrPane(); +// mobileAttrPane.populateBean(mobileAttr); +// BasicDialog dialog = mobileAttrPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { +// @Override +// public void doOk() { +// formTpl.setReportMobileAttr(mobileAttrPane.updateBean()); +// jf.fireTargetModified(); +// } +// }); +// dialog.setVisible(true); } private static final MenuKeySet REPORT_APP_ATTR = new MenuKeySet() { From 386dd3a97c8f49cbf3a0136f483a9c7a6454a59a Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Thu, 17 Nov 2016 19:52:31 +0800 Subject: [PATCH 30/86] 1 1 --- designer_base/src/com/fr/design/extra/PluginHelper.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index 4a4870ba23..6773704ed2 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -15,6 +15,7 @@ import com.fr.plugin.dependence.PluginDependenceUnit; import com.fr.stable.ArrayUtils; import com.fr.stable.EncodeConstants; import com.fr.stable.StableUtils; +import com.fr.stable.StringUtils; import com.fr.stable.project.ProjectConstants; import com.fr.stable.xml.XMLTools; @@ -47,6 +48,9 @@ public class PluginHelper { * @param p 下载百分比处理 */ public static void downloadPluginFile(String id, String username, String password, Process p) throws Exception { + if (StringUtils.isEmpty(id) || StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) { + return; + } HttpClient httpClient = new HttpClient(getDownloadPath(id, username, password)); if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { int totalSize = httpClient.getContentLength(); From e02e4d26139d94f26d37ed45c2f1e93eb894ccd9 Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Fri, 18 Nov 2016 10:06:25 +0800 Subject: [PATCH 31/86] 1 1 --- designer_base/src/com/fr/design/extra/PluginHelper.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index 6773704ed2..f7597d383d 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -48,7 +48,10 @@ public class PluginHelper { * @param p 下载百分比处理 */ public static void downloadPluginFile(String id, String username, String password, Process p) throws Exception { - if (StringUtils.isEmpty(id) || StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) { + if (StringUtils.isEmpty(id)) { + return; + } + if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) { return; } HttpClient httpClient = new HttpClient(getDownloadPath(id, username, password)); From f08d615bb3d2d656c72a40a352a864ec67f75d24 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Fri, 18 Nov 2016 11:51:08 +0800 Subject: [PATCH 32/86] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86formMobileAttr?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=A1=A8=E5=8D=95=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/mobile/FormMobileAttrPane.java | 12 +++---- .../design/form/mobile/MobileToolBarPane.java | 12 +++---- .../actions/FormMobileAttrAction.java | 36 +++++++++---------- 3 files changed, 30 insertions(+), 30 deletions(-) diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java index cf626b888c..59d57f4a24 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java @@ -2,8 +2,8 @@ package com.fr.design.form.mobile; import com.fr.design.beans.BasicBeanPane; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.form.main.mobile.FormMobileAttr; import com.fr.general.Inter; -import com.fr.report.mobile.ElementCaseMobileAttr; import javax.swing.*; import java.awt.*; @@ -11,7 +11,7 @@ import java.awt.*; /** * Created by fanglei on 2016/11/17. */ -public class FormMobileAttrPane extends BasicBeanPane{ +public class FormMobileAttrPane extends BasicBeanPane{ //工具栏容器 private MobileToolBarPane mobileToolBarPane; @@ -33,16 +33,16 @@ public class FormMobileAttrPane extends BasicBeanPane{ } @Override - public void populateBean(ElementCaseMobileAttr ob) { + public void populateBean(FormMobileAttr ob) { if (ob == null) { - ob = new ElementCaseMobileAttr(); + ob = new FormMobileAttr(); } this.mobileToolBarPane.populateBean(ob); } @Override - public ElementCaseMobileAttr updateBean() { - ElementCaseMobileAttr caseMobileAttr = new ElementCaseMobileAttr(); + public FormMobileAttr updateBean() { + FormMobileAttr caseMobileAttr = new FormMobileAttr(); this.mobileToolBarPane.updateBean(caseMobileAttr); return caseMobileAttr; } diff --git a/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java b/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java index 7430f3a9ee..c46c98ec27 100644 --- a/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java +++ b/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java @@ -4,8 +4,8 @@ import com.fr.design.beans.BasicBeanPane; import com.fr.design.dialog.mobile.MobileRadioCheckPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.form.main.mobile.FormMobileAttr; import com.fr.general.Inter; -import com.fr.report.mobile.ElementCaseMobileAttr; import javax.swing.*; import java.awt.*; @@ -13,7 +13,7 @@ import java.awt.*; /** * Created by 方磊 on 2016/11/8. */ -public class MobileToolBarPane extends BasicBeanPane { +public class MobileToolBarPane extends BasicBeanPane { //刷新选项面板 private MobileRadioCheckPane refreshCheckPane; @@ -37,20 +37,20 @@ public class MobileToolBarPane extends BasicBeanPane { } @Override - public void populateBean(ElementCaseMobileAttr ob) { + public void populateBean(FormMobileAttr ob) { if (ob == null) { - ob = new ElementCaseMobileAttr(); + ob = new FormMobileAttr(); } this.refreshCheckPane.populateBean(ob.isRefresh()); } @Override - public ElementCaseMobileAttr updateBean() { + public FormMobileAttr updateBean() { return null; } @Override - public void updateBean(ElementCaseMobileAttr mobileAttr) { + public void updateBean(FormMobileAttr mobileAttr) { if(mobileAttr != null) { mobileAttr.setRefresh(this.refreshCheckPane.updateBean()); } diff --git a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java index c3f220f847..91b0822d33 100644 --- a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java +++ b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java @@ -9,8 +9,8 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JForm; import com.fr.design.menu.MenuKeySet; import com.fr.form.main.Form; +import com.fr.form.main.mobile.FormMobileAttr; import com.fr.general.Inter; -import com.fr.report.mobile.ElementCaseMobileAttr; import javax.swing.*; import java.awt.event.ActionEvent; @@ -35,23 +35,23 @@ public class FormMobileAttrAction extends JTemplateAction { */ @Override public void actionPerformed(ActionEvent e) { -// final JForm jf = getEditingComponent(); -// if (jf == null) { -// return; -// } -// final Form formTpl = jf.getTarget(); -// ElementCaseMobileAttr mobileAttr = formTpl.getReportMobileAttr(); -// -// final FormMobileAttrPane mobileAttrPane = new FormMobileAttrPane(); -// mobileAttrPane.populateBean(mobileAttr); -// BasicDialog dialog = mobileAttrPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { -// @Override -// public void doOk() { -// formTpl.setReportMobileAttr(mobileAttrPane.updateBean()); -// jf.fireTargetModified(); -// } -// }); -// dialog.setVisible(true); + final JForm jf = getEditingComponent(); + if (jf == null) { + return; + } + final Form formTpl = jf.getTarget(); + FormMobileAttr mobileAttr = formTpl.getReportMobileAttr(); + + final FormMobileAttrPane mobileAttrPane = new FormMobileAttrPane(); + mobileAttrPane.populateBean(mobileAttr); + BasicDialog dialog = mobileAttrPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { + @Override + public void doOk() { + formTpl.setReportMobileAttr(mobileAttrPane.updateBean()); + jf.fireTargetModified(); + } + }); + dialog.setVisible(true); } private static final MenuKeySet REPORT_APP_ATTR = new MenuKeySet() { From 6abd57636b571e93241ed0dd113ed378c2db92a3 Mon Sep 17 00:00:00 2001 From: sunmondong Date: Fri, 18 Nov 2016 14:00:10 +0800 Subject: [PATCH 33/86] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.master.gradle | 86 +++++++++++++++++++++++++++++ build.release.gradle | 85 ++++++++++++++++++++++++++++ designer_base/build.release.gradle | 70 +++++++++++++++++++++++ designer_chart/build.release.gradle | 66 ++++++++++++++++++++++ designer_form/build.master.gradle | 83 ++++++++++++++++++++++++++++ designer_form/build.release.gradle | 83 ++++++++++++++++++++++++++++ 6 files changed, 473 insertions(+) create mode 100644 build.master.gradle create mode 100644 build.release.gradle create mode 100644 designer_base/build.release.gradle create mode 100644 designer_chart/build.release.gradle create mode 100644 designer_form/build.master.gradle create mode 100644 designer_form/build.release.gradle diff --git a/build.master.gradle b/build.master.gradle new file mode 100644 index 0000000000..c5cc1b92da --- /dev/null +++ b/build.master.gradle @@ -0,0 +1,86 @@ +apply plugin: "java" +tasks.withType(JavaCompile){ + options.encoding = "UTF-8" +} + +def basicDir="../../" +def libDir="${basicDir}/finereport-lib-stable" +//获取什么分支名 +FileTree files =fileTree(dir:"./",include:"build.*.gradle") +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ("\\")) +def branchName=buildDir.substring(buildDir.lastIndexOf ("\\")+1) + +task appletJar<<{ + + ant{ + mkdir(dir:"${libDir}/tmp-${branchName}") + mkdir(dir:"build/classes/") + copy(todir:"build/classes/"){ + fileset(dir:"${basicDir}/finereport-core-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-chart-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-report-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-platform-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") + + } + unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + jar(jarfile:"build/libs/fr-applet-8.0.jar"){ + fileset(dir:"build/classes"){ + exclude(name:"*.*") + exclude(name:"bin/*.*") + exclude(name:"classes/**") + exclude(name:"com/fr/schedule/**") + exclude(name:"com/fr/cell/**") + exclude(name:"com/fr/dialog/**") + exclude(name:"com/fr/view/**") + exclude(name:"com/fr/web/**") + exclude(name:"com/fr/fs/**") + exclude(name:"com/fr/design/**") + exclude(name:"com/fr/start/**") + exclude(name:"com/fr/process/**") + } + fileset(dir:"${libDir}/tmp-${branchName}"){ + include(name:"javax/mail/**") + include(name:"javax/servlet/**") + include(name:"org/freehep/**") + include(name:"com/fr/third/JAI/**") + include(name:"com/fr/third/antlr/**") + include(name:"com/fr/third/javax/**") + include(name:"com/sun/xml/**") + include(name:"javax/xml/**") + + } + fileset(dir:"build/classes"){ + include(name:"com/fr/web/*.class") + include(name:"com/fr/web/attr/*.class") + } + } + delete(dir:"${libDir}/tmp-${branchName}") + def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" + def keystore="frapplet.store" + def keycert="fr.cert" + def keypassword="123456" + def keyalias="fr" + + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-genkey -dname "CN=FineReport L=NanJing C=China" -keystore ${keystore} -alias ${keyalias} -validity 3650 -storepass ${keypassword}") + } + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-export -keystore ${keystore} -alias ${keyalias} -file ${keycert} -storepass ${keypassword}") + } + + exec(executable:"${jdk6home}/bin/jarsigner"){ + arg(line:"-keystore ${keystore} -storepass ${keypassword} 'build/libs/fr-applet-8.0.jar' ${keyalias}") + } + delete(file:"${keystore}") + delete(file:"${keycert}") + delete(dir:"build/classes") + + } + +} \ No newline at end of file diff --git a/build.release.gradle b/build.release.gradle new file mode 100644 index 0000000000..44aacadb4d --- /dev/null +++ b/build.release.gradle @@ -0,0 +1,85 @@ +apply plugin: "java" +tasks.withType(JavaCompile){ + options.encoding = "UTF-8" +} +def basicDir="../../" +def libDir="${basicDir}/finereport-lib-stable/master" +//获取什么分支名 +FileTree files =fileTree(dir:"./",include:"build.*.gradle") +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ("\\")) +def branchName=buildDir.substring(buildDir.lastIndexOf ("\\")+1) + +task appletJar<<{ + + ant{ + mkdir(dir:"${libDir}/tmp-${branchName}") + mkdir(dir:"build/classes/") + copy(todir:"build/classes/"){ + fileset(dir:"${basicDir}/finereport-core-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-chart-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-report-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-platform-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") + + } + unjar(src:"${libDir}/3rd.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + jar(jarfile:"build/libs/fr-applet-8.0.jar"){ + fileset(dir:"build/classes"){ + exclude(name:"*.*") + exclude(name:"bin/*.*") + exclude(name:"classes/**") + exclude(name:"com/fr/schedule/**") + exclude(name:"com/fr/cell/**") + exclude(name:"com/fr/dialog/**") + exclude(name:"com/fr/view/**") + exclude(name:"com/fr/web/**") + exclude(name:"com/fr/fs/**") + exclude(name:"com/fr/design/**") + exclude(name:"com/fr/start/**") + exclude(name:"com/fr/process/**") + } + fileset(dir:"${libDir}/tmp-${branchName}"){ + include(name:"javax/mail/**") + include(name:"javax/servlet/**") + include(name:"org/freehep/**") + include(name:"com/fr/third/JAI/**") + include(name:"com/fr/third/antlr/**") + include(name:"com/fr/third/javax/**") + include(name:"com/sun/xml/**") + include(name:"javax/xml/**") + + } + fileset(dir:"build/classes"){ + include(name:"com/fr/web/*.class") + include(name:"com/fr/web/attr/*.class") + } + } + delete(dir:"${libDir}/tmp-${branchName}") + def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" + def keystore="frapplet.store" + def keycert="fr.cert" + def keypassword="123456" + def keyalias="fr" + + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-genkey -dname "CN=FineReport L=NanJing C=China" -keystore ${keystore} -alias ${keyalias} -validity 3650 -storepass ${keypassword}") + } + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-export -keystore ${keystore} -alias ${keyalias} -file ${keycert} -storepass ${keypassword}") + } + + exec(executable:"${jdk6home}/bin/jarsigner"){ + arg(line:"-keystore ${keystore} -storepass ${keypassword} 'build/libs/fr-applet-8.0.jar' ${keyalias}") + } + delete(file:"${keystore}") + delete(file:"${keycert}") + delete(dir:"build/classes") + + } + +} \ No newline at end of file diff --git a/designer_base/build.release.gradle b/designer_base/build.release.gradle new file mode 100644 index 0000000000..4ed4ba12b0 --- /dev/null +++ b/designer_base/build.release.gradle @@ -0,0 +1,70 @@ + +apply plugin: 'java' +tasks.withType(JavaCompile){ + options.encoding = 'UTF-8' +} +//指定构建的jdk版本 +sourceCompatibility=1.8 +//指定生成jar包版本 +version='8.0' +//生成jar包重命名 +jar{ + baseName='fr-designer-core' +} + + +def srcDir="." + +//指定源码路径 +sourceSets{ + main{ + java{ + srcDirs=["${srcDir}/src"] + } + } +} +//获取什么分支名 +FileTree files =fileTree(dir:'./',include:'build.*.gradle') +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\')) +buildDir=buildDir.substring(0,buildDir.lastIndexOf ('\\')) +def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1) + +//声明外部依赖 +dependencies{ + +compile fileTree(dir:'../../../finereport-lib-stable/master',include:'**/*.jar') +compile fileTree(dir:'../../../',include:"finereport-*-stable/${branchName}/**/build/libs/*.jar") + + testCompile 'junit:junit:4.12' +} +//复制非.java文件到classes文件夹下参与打包 +task copyFile(type:Copy,dependsOn:compileJava){ + copy{ + from ("${srcDir}/src"){ + exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html' + } + into 'build/classes/main' + } + +} + + +//压缩项目中的js文件 +task compressJS{ + ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ + classpath { + fileset(dir:'../../../finereport-lib4build-stable',includes:'**/*.jar') + } + } + ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false",charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ + fileset (dir:"${srcDir}/src"){ + include (name:'**/*.js') + include (name:'**/*.css') + } + + } +} +jar.dependsOn compressJS + + + diff --git a/designer_chart/build.release.gradle b/designer_chart/build.release.gradle new file mode 100644 index 0000000000..e97176e24c --- /dev/null +++ b/designer_chart/build.release.gradle @@ -0,0 +1,66 @@ + +apply plugin: 'java' +tasks.withType(JavaCompile){ + options.encoding = 'UTF-8' +} +//指定构建的jdk版本 +sourceCompatibility=1.8 +//指定生成jar包的版本 +version='8.0' + +def srcDir="." + +//对生成的jar包进行重命名 + +jar{ + baseName='fr-designer-chart' +} + +sourceSets{ + main{ + java{ + srcDirs=["${srcDir}/src"] + } + } +} +FileTree files =fileTree(dir:'./',include:'build.*.gradle') +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\')) +buildDir=buildDir.substring(0,buildDir.lastIndexOf ('\\')) +def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1) + +//指定外部依赖 +dependencies{ +compile fileTree(dir:'../../../finereport-lib-stable/master',include:'**/*.jar') +compile fileTree(dir:'../../../',include:"finereport-*-stable/${branchName}/**/build/libs/*.jar") + + testCompile 'junit:junit:4.12' +} +//将非.java 文件复制到classes文件夹下参与打包 +task copyFile(type:Copy,dependsOn:compileJava){ + copy{ + from ("${srcDir}/src"){ + exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html' + + } + into 'build/classes/main' + } + +} + +//压缩项目中的js文件 +task compressJS{ + ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ + classpath { + fileset(dir:'../../../finereport-lib4build-stable',includes:'**/*.jar') + } + } + ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false",charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ + fileset (dir:"${srcDir}/src"){ + include (name:'**/*.js') + include (name:'**/*.css') + } + + } +} +jar.dependsOn compressJS + diff --git a/designer_form/build.master.gradle b/designer_form/build.master.gradle new file mode 100644 index 0000000000..9c9764727c --- /dev/null +++ b/designer_form/build.master.gradle @@ -0,0 +1,83 @@ + +apply plugin: 'java' +tasks.withType(JavaCompile){ + options.encoding = 'UTF-8' +} +//指定构建的jdk版本 +sourceCompatibility=1.7 +//指定生成的jar包版本 +version='8.0' + +def srcDir="." + + +//指明生成jar包的名字 +jar{ + baseName='fr-designer-report' +} +//源码所在位置 +sourceSets{ + main{ + java{ + srcDirs=["${srcDir}/src", +"${srcDir}/../designer/src"] + } + } +} + +//获取什么分支名 +FileTree files =fileTree(dir:'./',include:'build.*.gradle') +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\')) +buildDir=buildDir.substring(0,buildDir.lastIndexOf ('\\')) +def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1) + +//声明外部依赖 +dependencies{ +compile fileTree(dir:"../../../finereport-lib-stable/${branchName}",include:'**/*.jar') +compile fileTree(dir:'../../../',include:"finereport-*-stable/${branchName}/**/build/libs/*.jar") + + testCompile 'junit:junit:4.12' +} + +//指明无法编译文件所在路径 +def dataContent ={def dir -> + copySpec{ + from ("${dir}"){ + exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html' + } + } +} + +//将非.java文件复制到classes文件夹下 参与打包 +task copyFile(type:Copy,dependsOn:compileJava){ + copy{ + with dataContent.call("${srcDir}/src") + with dataContent.call("${srcDir}/../designer/src") + into ('build/classes/main') + } + +} + + +//压缩项目中的js文件 +task compressJS{ + ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ + classpath { + fileset(dir:'../../../finereport-lib4build-stable',includes:'**/*.jar') + } + } + ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false", charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ + fileset (dir:"${srcDir}/src"){ + include (name:'**/*.js') + include (name:'**/*.css') + + } + fileset (dir:"${srcDir}/../designer/src"){ + include (name:'**/*.js') + include (name:'**/*.css') + } + + } +} +jar.dependsOn compressJS + diff --git a/designer_form/build.release.gradle b/designer_form/build.release.gradle new file mode 100644 index 0000000000..90abcb81ee --- /dev/null +++ b/designer_form/build.release.gradle @@ -0,0 +1,83 @@ + +apply plugin: 'java' +tasks.withType(JavaCompile){ + options.encoding = 'UTF-8' +} +//指定构建的jdk版本 +sourceCompatibility=1.8 +//指定生成的jar包版本 +version='8.0' + +def srcDir="." + + +//指明生成jar包的名字 +jar{ + baseName='fr-designer-report' +} +//源码所在位置 +sourceSets{ + main{ + java{ + srcDirs=["${srcDir}/src", +"${srcDir}/../designer/src"] + } + } +} + +//获取什么分支名 +FileTree files =fileTree(dir:'./',include:'build.*.gradle') +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ('\\')) +buildDir=buildDir.substring(0,buildDir.lastIndexOf ('\\')) +def branchName=buildDir.substring(buildDir.lastIndexOf ('\\')+1) +//声明外部依赖 +dependencies{ +compile fileTree(dir:'../../../finereport-lib-stable/master',include:'**/*.jar') +compile fileTree(dir:'../../../',include:"finereport-*-stable/${branchName}/**/build/libs/*.jar") + + testCompile 'junit:junit:4.12' +} + +//指明无法编译文件所在路径 +def dataContent ={def dir -> + copySpec{ + from ("${dir}"){ + exclude '**/.setting/**','.classpath','.project','**/*.java','**/*.db','**/*.g','**/package.html' + } + } +} + +//将非.java文件复制到classes文件夹下 参与打包 +task copyFile(type:Copy,dependsOn:compileJava){ + copy{ + with dataContent.call("${srcDir}/src") + with dataContent.call("${srcDir}/../designer/src") + into ('build/classes/main') + } + +} + + +//压缩项目中的js文件 +task compressJS{ + ant.taskdef(name:'yuicompress',classname:'com.yahoo.platform.yui.compressor.YUICompressTask'){ + classpath { + + fileset(dir:'../../../finereport-lib4build-stable',includes:'**/*.jar') + } + } + ant.yuicompress(linebreak:"500",warn:"false", munge:"yes",preserveallsemicolons:"false", charset:"utf-8",encoding:"utf-8",outputfolder:'build/classes/main'){ + fileset (dir:"${srcDir}/src"){ + include (name:'**/*.js') + include (name:'**/*.css') + + } + fileset (dir:"${srcDir}/../designer/src"){ + include (name:'**/*.js') + include (name:'**/*.css') + } + + } +} +jar.dependsOn compressJS + From bc446a5405bc36a4c94eff0ecd18071208aeab4c Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Fri, 18 Nov 2016 15:16:13 +0800 Subject: [PATCH 34/86] =?UTF-8?q?static=20final=E4=BF=AE=E9=A5=B0=E5=8F=98?= =?UTF-8?q?=E9=87=8F=EF=BC=8C=E6=B6=88=E9=99=A4=E9=AD=94=E6=9C=AF=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/form/mobile/FormMobileAttrPane.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java index 59d57f4a24..0aafd8258c 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java @@ -15,6 +15,8 @@ public class FormMobileAttrPane extends BasicBeanPane{ //工具栏容器 private MobileToolBarPane mobileToolBarPane; + static final int paddingHeight = 10; + public FormMobileAttrPane() { this.initComponents(); } @@ -26,7 +28,6 @@ public class FormMobileAttrPane extends BasicBeanPane{ jPanel.setLayout(FRGUIPaneFactory.createBorderLayout()); this.mobileToolBarPane = new MobileToolBarPane(); //设置一个JPanel包裹mobileToolBarPane这个Panel,让jPanel的高度等于mobileToolBarPane高度加10,再放入this中 - final int paddingHeight = 10; jPanel.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + paddingHeight)); jPanel.add("North", mobileToolBarPane); this.add(jPanel); From 68c08af6411b072f48004386c5ef5b9f71e2ef0a Mon Sep 17 00:00:00 2001 From: fr_shine Date: Fri, 18 Nov 2016 15:36:07 +0800 Subject: [PATCH 35/86] =?UTF-8?q?=E8=81=9A=E5=90=88=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=8D=95=E5=85=83=E6=A0=BC=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/chart/ChartEditPane.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java b/designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java index 052fee20db..92177a8e3c 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/ChartEditPane.java @@ -168,7 +168,9 @@ public class ChartEditPane extends BasicPane implements AttributeChange,Prepare4 } protected ChartDataPane createChartDataPane(String plotID) { - return ChartTypeInterfaceManager.getInstance().getChartDataPane(plotID, listener); + ChartDataPane chartDataPane = ChartTypeInterfaceManager.getInstance().getChartDataPane(plotID, listener); + chartDataPane.setSupportCellData(dataPane4SupportCell.isSupportCellData()); + return chartDataPane; } protected void addTypePane() { From 70eddf71d749e9f4d9e7b4a02e004914397d127b Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Fri, 18 Nov 2016 15:37:11 +0800 Subject: [PATCH 36/86] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E7=9A=84getReportMobileAttr=E6=96=B9=E6=B3=95=E7=9A=84?= =?UTF-8?q?=E5=90=8D=E5=AD=97=E6=94=B9=E6=88=90=E4=BA=86getFormMobileAttr?= =?UTF-8?q?=EF=BC=8C=E8=BF=99=E6=A0=B7=E5=90=88=E9=80=82=E4=B8=80=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/actions/FormMobileAttrAction.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java index 91b0822d33..4f67187085 100644 --- a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java +++ b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java @@ -40,14 +40,14 @@ public class FormMobileAttrAction extends JTemplateAction { return; } final Form formTpl = jf.getTarget(); - FormMobileAttr mobileAttr = formTpl.getReportMobileAttr(); + FormMobileAttr mobileAttr = formTpl.getFormMobileAttr(); final FormMobileAttrPane mobileAttrPane = new FormMobileAttrPane(); mobileAttrPane.populateBean(mobileAttr); BasicDialog dialog = mobileAttrPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { @Override public void doOk() { - formTpl.setReportMobileAttr(mobileAttrPane.updateBean()); + formTpl.setFormMobileAttr(mobileAttrPane.updateBean()); jf.fireTargetModified(); } }); From 3ec44a3e77c9516f930bd7aa8766dc0234ad8315 Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 18 Nov 2016 16:04:45 +0800 Subject: [PATCH 37/86] =?UTF-8?q?REPORT-849=20=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E6=94=AF=E6=8C=81=E6=8B=96=E6=8B=BD=EF=BC=88?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E6=95=B0=E6=8D=AE=E9=9B=86=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E8=BE=83=E9=95=BF=E7=9A=84=E6=98=BE=E7=A4=BA=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/tabledata/tabledatapane/DBTableDataPane.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index 5b1ed2febf..708ea91523 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -28,6 +28,7 @@ import com.fr.design.gui.syntax.ui.rtextarea.RTextScrollPane; import com.fr.design.mainframe.DesignerContext; import com.fr.design.menu.SeparatorDef; import com.fr.design.menu.ToolBarDef; +import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.script.Calculator; @@ -125,9 +126,12 @@ public class DBTableDataPane extends AbstractTableDataPane { } } }); - - this.add(connectionTableProcedurePane, BorderLayout.WEST); - this.add(sqlSplitPane, BorderLayout.CENTER); + box.setMinimumSize(new Dimension(310, 400)); + // 使用SplitPane + JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, connectionTableProcedurePane, sqlSplitPane); + mainSplitPane.setBorder(BorderFactory.createLineBorder(GUICoreUtils.getTitleLineBorderColor())); + mainSplitPane.setOneTouchExpandable(true); + this.add(mainSplitPane, BorderLayout.CENTER); } private boolean isPreviewOrRefreshButton (FocusEvent e) { From 422e021582a5fae426e79774d77dc34e22f30db4 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Fri, 18 Nov 2016 16:20:06 +0800 Subject: [PATCH 38/86] =?UTF-8?q?=E5=8F=AF=E8=AE=BE=E7=BD=AEdialog=20size?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/gui/frpane/UICorrelationComboBoxPane.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java b/designer_base/src/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java index c5837727ed..b2e30f41f5 100644 --- a/designer_base/src/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java +++ b/designer_base/src/com/fr/design/gui/frpane/UICorrelationComboBoxPane.java @@ -46,6 +46,7 @@ import com.fr.stable.StringUtils; import com.fr.design.utils.gui.GUICoreUtils; public class UICorrelationComboBoxPane extends JPanel implements UIObserver { + private static final Dimension DIALOG_SIZE = new Dimension(500, 500); private JPopupMenu popMenu; private UIMenuTable tablePane; private UIButton addButton; @@ -79,6 +80,9 @@ public class UICorrelationComboBoxPane extends JPanel implements UIObserver { } } + protected Dimension getDialogSize() { + return DIALOG_SIZE; + } /** * 刷新下拉列表和按钮 @@ -120,7 +124,7 @@ public class UICorrelationComboBoxPane extends JPanel implements UIObserver { fireTargetChanged(); } }); - dialog.setSize(500, 500); + dialog.setSize(getDialogSize()); GUICoreUtils.centerWindow(dialog); dialog.setVisible(true); } @@ -202,7 +206,7 @@ public class UICorrelationComboBoxPane extends JPanel implements UIObserver { fireTargetChanged(); } }); - dialog.setSize(500, 500); + dialog.setSize(getDialogSize()); dialog.setVisible(true); } else { popMenu.show(UICorrelationComboBoxPane.this, addButton.getX() + 1, addButton.getY() + addButton.getHeight()); From f069d1eaaee1d592e2d7e2f27e3baf3f128225e7 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sun, 20 Nov 2016 23:48:18 +0800 Subject: [PATCH 39/86] =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E4=BC=A0dev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parameter/ParameterDefinitePane.java | 3 - .../design/extra/WebManagerPaneFactory.java | 2 +- designer_base/src/com/fr/env/RemoteEnv.java | 77 +++++++ .../fr/design/mainframe/ComponentTree.java | 50 +---- .../mainframe/FormWidgetDetailPane.java | 208 +++++++++++++++--- .../fr/design/mainframe/ShareWidgetPane.java | 3 +- .../design/mainframe/WidgetPropertyPane.java | 3 - .../mainframe/widget/UITreeComboBox.java | 23 +- .../parameter/ParameterToolBarPane.java | 9 +- 9 files changed, 282 insertions(+), 96 deletions(-) diff --git a/designer/src/com/fr/design/parameter/ParameterDefinitePane.java b/designer/src/com/fr/design/parameter/ParameterDefinitePane.java index 4b8572b710..43fc3c6fc4 100644 --- a/designer/src/com/fr/design/parameter/ParameterDefinitePane.java +++ b/designer/src/com/fr/design/parameter/ParameterDefinitePane.java @@ -20,9 +20,7 @@ import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.AuthorityToolBarPane; -import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.design.mainframe.JWorkBook; -import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; import com.fr.design.menu.*; import com.fr.design.module.DesignModuleFactory; @@ -246,7 +244,6 @@ public class ParameterDefinitePane extends JPanel implements ToolBarMenuDockPlus isdelayItem.setSelected(reportParameterAttr.isDelayPlaying()); isshowWindowItem.setSelected(reportParameterAttr.isShowWindow()); isEditing = true; - EastRegionContainerPane.getInstance().setParameterHeight(ParameterPropertyPane.getInstance().getPreferredSize().height); ParameterBridge bridge = paraDesignEditor.getParaComponent(); if (parameterUI != null) { bridge.setDelayDisplayContent(reportParameterAttr.isDelayPlaying()); diff --git a/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java b/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java index 75a79deddd..e39a605a5d 100644 --- a/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java +++ b/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java @@ -26,7 +26,7 @@ public class WebManagerPaneFactory { } public BasicPane createPluginPane() { - if (StableUtils.getMajorJavaVersion() == 8) { + if (StableUtils.getMajorJavaVersion() != 8) { return new ShopManagerPane(new ShopPaneConfig() { @Override String getMainJS() { diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index ae8c589ee5..406c76ec75 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -31,6 +31,10 @@ import com.fr.plugin.Plugin; import com.fr.plugin.PluginLicense; import com.fr.plugin.PluginLicenseManager; import com.fr.plugin.PluginLoader; +<<<<<<< HEAD +import com.fr.share.ShareConstants; +======= +>>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 import com.fr.stable.*; import com.fr.stable.file.XMLFileManagerProvider; import com.fr.stable.project.ProjectConstants; @@ -1535,6 +1539,7 @@ public class RemoteEnv implements Env { para.put("op", "fr_remote_design"); para.put("cmd", "design_save_resource"); para.put("resource", mgr.fileName()); + para.put("class_name", mgr.getClass().getName()); para.put("current_uid", this.createUserID()); para.put("currentUsername", this.getUser()); @@ -2107,7 +2112,11 @@ public class RemoteEnv implements Env { @Override public File[] loadREUFile() throws Exception { File target = new File(CacheManager.getProviderInstance().getCacheDirectory(), +<<<<<<< HEAD + ShareConstants.DIR_SHARE_CACHE); +======= "fr_share"); +>>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 StableUtils.deleteFile(target); StableUtils.mkdirs(target); File cacheDir = null; @@ -2122,7 +2131,11 @@ public class RemoteEnv implements Env { HttpClient client = createHttpMethod(para); InputStream input = client.getResponseStream(); zip = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), "share.zip"); +<<<<<<< HEAD + cacheDir = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), ShareConstants.DIR_SHARE_CACHE); +======= cacheDir = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), "fr_share"); +>>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 StableUtils.deleteFile(cacheDir); StableUtils.mkdirs(cacheDir); StableUtils.makesureFileExist(zip); @@ -2146,4 +2159,68 @@ public class RemoteEnv implements Env { } return new File[0]; } +<<<<<<< HEAD + + @Override + public boolean installREUFile(File reuFile) { +// if (reuFile == null) { +// return false; +// } +// try { +// HashMap para = new HashMap(); +// para.put("op", "fr_remote_design"); +// para.put("cmd", "design_install_reufile"); +// para.put("current_uid", this.createUserID()); +// para.put("currentUsername", this.getUser()); +// para.put("reuFileName", reuFile.getName()); +// +// HttpClient client = createHttpMethod(para); +// client.setContent(IOUtils.inputStream2Bytes(new FileInputStream(reuFile))); +// InputStream input = execute4InputStream(client); +// return ComparatorUtils.equals(stream2String(input), "true"); +// } catch (Exception e) { +// return false; +// } + return false; + } + + @Override + public boolean removeREUFilesByName(String fileName) { + if (StringUtils.isEmpty(fileName)) { + return true; + } + try { + HashMap para = new HashMap(); + para.put("op", "fr_remote_design"); + para.put("cmd", "design_remove_reufile"); + para.put("current_uid", this.createUserID()); + para.put("currentUsername", this.getUser()); + para.put("reuFileName", fileName); + + HttpClient client = createHttpMethod(para); + InputStream input = execute4InputStream(client); + return ComparatorUtils.equals(stream2String(input), "true"); + } catch (Exception e) { + return false; + } + } + + @Override + public String getSharePath() { + try { + HashMap para = new HashMap(); + para.put("op", "fr_remote_design"); + para.put("cmd", "design_get_share_path"); + para.put("current_uid", this.createUserID()); + para.put("currentUsername", this.getUser()); + + HttpClient client = createHttpMethod(para); + InputStream input = execute4InputStream(client); + return stream2String(input); + } catch (Exception e) { + return StringUtils.EMPTY; + } + } +======= +>>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/ComponentTree.java b/designer_form/src/com/fr/design/mainframe/ComponentTree.java index ca84e44c03..f31a64eedf 100644 --- a/designer_form/src/com/fr/design/mainframe/ComponentTree.java +++ b/designer_form/src/com/fr/design/mainframe/ComponentTree.java @@ -37,30 +37,6 @@ public class ComponentTree extends JTree { this.setTransferHandler(new TreeTransferHandler()); this.refreshTreeRoot(); addTreeSelectionListener(designer); - - this.addMouseListener(new MouseAdapter() { - - @Override - public void mouseClicked(MouseEvent e) { - if (e.isPopupTrigger()) { - popupMenu(e); - } - } - - @Override - public void mousePressed(MouseEvent e) { - if (e.isPopupTrigger()) { - popupMenu(e); - } - } - - @Override - public void mouseReleased(MouseEvent e) { - if (e.isPopupTrigger()) { - popupMenu(e); - } - } - }); setEditable(true); } @@ -121,20 +97,6 @@ public class ComponentTree extends JTree { scrollPathToVisible(treepath); } - private void popupMenu(MouseEvent e) { - TreePath path = this.getSelectionPath(); - if (path == null) { - return; - } - Component component = (Component) path.getLastPathComponent(); - if (!(component instanceof XCreator)) { - return; - } - ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, (XCreator) component); - JPopupMenu menu = adapter.getContextPopupMenu(e); - menu.show(this, e.getX(), e.getY()); - } - /** * 刷新 */ @@ -241,12 +203,14 @@ public class ComponentTree extends JTree { creator.notShowInComponentTree(path); } //绝对布局作为body的时候不显示自适应布局父层 - if (((XCreator) parent).acceptType(XWAbsoluteBodyLayout.class) - && (parent.getParent() != null) - && ((XCreator)parent.getParent()).acceptType(XWFitLayout.class)){ - parent = parent.getParent().getParent(); - continue; + if (((XCreator) parent).acceptType(XWAbsoluteBodyLayout.class)) { + if ((parent.getParent() != null) + && ((XCreator)parent.getParent()).acceptType(XWFitLayout.class)){ + parent = parent.getParent().getParent(); + continue; + } } + parent = parent.getParent(); } Object[] components = path.toArray(); diff --git a/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java b/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java index bcc1400beb..bb15e23ed1 100644 --- a/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java +++ b/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java @@ -11,12 +11,13 @@ import com.fr.design.gui.imenu.UIMenuItem; import com.fr.design.gui.imenu.UIPopupMenu; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.utils.gui.GUICoreUtils; -import com.fr.form.share.ShareConstants; import com.fr.form.share.ShareLoader; import com.fr.form.ui.ElCaseBindInfo; import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.general.SiteCenter; +import com.fr.share.ShareConstants; +import com.fr.stable.ArrayUtils; import com.fr.stable.StringUtils; import javax.swing.*; @@ -40,16 +41,20 @@ import java.net.URISyntaxException; public class FormWidgetDetailPane extends FormDockView{ private UITabbedPane tabbedPane; - private UIScrollPane downPanel; + private UIScrollPane downPane; private JPanel reuWidgetPanel; private UIComboBox comboBox; private ElCaseBindInfo[] elCaseBindInfoList; - private UIButton downloadButton; - private UIButton refreshButton; private UIButton deleteButton; + private UIButton resetButton; + private JPanel editPanel; + private JPanel resetPanel; + private JPanel menutPanel; private static final int OFFSET_X = 140; private static final int OFFSET_Y = 26; private SwingWorker sw; + //组件面板是否可以编辑 + private boolean isEdit; public static FormWidgetDetailPane getInstance() { if (HOLDER.singleton == null) { @@ -109,8 +114,6 @@ public class FormWidgetDetailPane extends FormDockView{ sw.execute(); } initReuWidgetPanel(); - createRefreshButton(); - createDownloadButton(); initMenuPanel(); tabbedPane = new UITabbedPane(); tabbedPane.setOpaque(true); @@ -126,38 +129,74 @@ public class FormWidgetDetailPane extends FormDockView{ * 初始化组件共享和复用面板 */ private void initReuWidgetPanel() { - downPanel = new UIScrollPane(new ShareWidgetPane(elCaseBindInfoList, false)); - reuWidgetPanel.add(downPanel); + elCaseBindInfoList = ShareLoader.getLoader().getAllBindInfoList(); + downPane = new UIScrollPane(new ShareWidgetPane(elCaseBindInfoList, false)); + reuWidgetPanel.add(downPane); } /** * 初始化菜单栏面板 */ private void initMenuPanel() { - JPanel menutPane = new JPanel(); - menutPane.setLayout(FRGUIPaneFactory.createBorderLayout()); - menutPane.setBorder(BorderFactory.createEmptyBorder(3, 8, 3, 3)); - menutPane.setPreferredSize(new Dimension(240, 48)); - menutPane.add(new UILabel(Inter.getLocText("FR-Designer_LocalWidget"), + menutPanel = new JPanel(); + menutPanel.setLayout(FRGUIPaneFactory.createBorderLayout()); + menutPanel.setBorder(BorderFactory.createEmptyBorder(3, 8, 3, 3)); + menutPanel.setPreferredSize(new Dimension(240, 48)); + menutPanel.add(new UILabel(Inter.getLocText("FR-Designer_LocalWidget"), SwingConstants.HORIZONTAL), BorderLayout.WEST); - JPanel buttonPanel = new JPanel(); - buttonPanel.setLayout(FRGUIPaneFactory.createBorderLayout()); - buttonPanel.add(refreshButton, BorderLayout.WEST); - buttonPanel.add(downloadButton, BorderLayout.EAST); - menutPane.add(buttonPanel, BorderLayout.EAST); - menutPane.add(new JPanel(), BorderLayout.CENTER); + + menutPanel.add(initEditButtonPane(), BorderLayout.EAST); + menutPanel.add(new JPanel(), BorderLayout.CENTER); comboBox = new UIComboBox(getFormCategories()); comboBox.setPreferredSize(new Dimension(240, 30)); initComboBoxSelectedListener(); - menutPane.add(comboBox, BorderLayout.SOUTH); - reuWidgetPanel.add(menutPane, BorderLayout.NORTH); + menutPanel.add(comboBox, BorderLayout.SOUTH); + reuWidgetPanel.add(menutPanel, BorderLayout.NORTH); + + } + + /** + * 创建菜单栏按钮面板 + */ + private JPanel initEditButtonPane() { + editPanel = new JPanel(); + editPanel.setLayout(FRGUIPaneFactory.createBorderLayout()); + editPanel.add(createRefreshButton(), BorderLayout.WEST); + editPanel.add(createDownloadButton(), BorderLayout.EAST); + return editPanel; + } + + /** + * 创建取消删除面板 + */ + private JPanel initResetButtonPane() { + resetPanel = new JPanel(); + resetButton = new UIButton(Inter.getLocText("FR-Designer_Reset")); + resetPanel.setBorder(BorderFactory.createEmptyBorder(2, 2, 2, 2)); + resetButton.set4ToolbarButton(); + resetButton.setOpaque(true); + resetButton.setBackground(new Color(184, 220, 242)); + resetButton.setForeground(Color.WHITE); + resetButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + refreshDownPanel(false); + replaceButtonPanel(false); + reuWidgetPanel.remove(deleteButton); + } + }); + resetPanel.setLayout(FRGUIPaneFactory.createBorderLayout()); + resetPanel.add(resetButton, BorderLayout.CENTER); + return resetPanel; } + private void initComboBoxSelectedListener() { comboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { + ShareLoader.getLoader().resetRemovedModuleList(); int filterIndex = comboBox.getSelectedIndex(); if (filterIndex == 0) { elCaseBindInfoList = ShareLoader.getLoader().getAllBindInfoList(); @@ -165,14 +204,17 @@ public class FormWidgetDetailPane extends FormDockView{ String filterName = comboBox.getSelectedItem().toString(); elCaseBindInfoList = ShareLoader.getLoader().getFilterBindInfoList(filterName); } - refreshDownPanel(false); + refreshDownPanel(isEdit); } }); } - private void createRefreshButton() { - refreshButton = new UIButton(); + /** + * 创建刷新按钮 + */ + private UIButton createRefreshButton() { + UIButton refreshButton = new UIButton(); refreshButton.setIcon(BaseUtils.readIcon("/com/fr/design/form/images/refresh.png")); refreshButton.setToolTipText(Inter.getLocText("FR-Designer_Refresh")); refreshButton.set4ToolbarButton(); @@ -187,6 +229,7 @@ public class FormWidgetDetailPane extends FormDockView{ protected Object doInBackground() throws Exception { ShareLoader.getLoader().refreshModule(); elCaseBindInfoList = ShareLoader.getLoader().getAllBindInfoList(); + refreshComboxData(); refreshDownPanel(false); return null; } @@ -194,20 +237,33 @@ public class FormWidgetDetailPane extends FormDockView{ sw.execute(); } }); + return refreshButton; } + private void refreshComboxData() { + comboBox.setSelectedIndex(0); + comboBox.setModel(new DefaultComboBoxModel(getFormCategories())); + } + /** * 创建下载模板的按钮 */ - private void createDownloadButton() { - downloadButton = new UIButton(); + private UIButton createDownloadButton() { + UIButton downloadButton = new UIButton(); downloadButton.setIcon(BaseUtils.readIcon("/com/fr/design/form/images/showmenu.png")); downloadButton.set4ToolbarButton(); downloadButton.setToolTipText(Inter.getLocText("FR-Designer_Download_Template")); downloadButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { +<<<<<<< HEAD + initPopMenu(); + } + }); + return downloadButton; + } +======= UIPopupMenu menu = new UIPopupMenu(); UIMenuItem downloadItem = new UIMenuItem(Inter.getLocText("FR-Designer_Download_Template"), BaseUtils.readIcon("/com/fr/design/form/images/download icon.png")); UIMenuItem installItem = new UIMenuItem(Inter.getLocText("FR-Designer_Install_Template"), BaseUtils.readIcon("/com/fr/design/form/images/install icon.png")); @@ -263,30 +319,82 @@ public class FormWidgetDetailPane extends FormDockView{ }); GUICoreUtils.showPopupMenu(menu, tabbedPane, tabbedPane.getX() + OFFSET_X, OFFSET_Y); +>>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 + /** + * 初始化下拉面板 + */ + private void initPopMenu() { + UIPopupMenu menu = new UIPopupMenu(); + UIMenuItem downloadItem = new UIMenuItem(Inter.getLocText("FR-Designer_Download_Template"), BaseUtils.readIcon("/com/fr/design/form/images/download icon.png")); + UIMenuItem installItem = new UIMenuItem(Inter.getLocText("FR-Designer_Install_Template"), BaseUtils.readIcon("/com/fr/design/form/images/install icon.png")); + UIMenuItem deleteItem = new UIMenuItem(Inter.getLocText("FR-Designer_Delete_Template"), BaseUtils.readIcon("/com/fr/design/form/images/delete icon.png")); + menu.add(downloadItem); + menu.add(installItem); + menu.add(deleteItem); + downloadItem.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + String url = SiteCenter.getInstance().acquireUrlByKind("reuse.url"); + if (StringUtils.isEmpty(url)) { + FRContext.getLogger().info("The URL is empty!"); + return; + } + try { + Desktop.getDesktop().browse(new URI(url)); + } catch (IOException exp) { + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer_Set_default_browser")); + FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp); + } catch (URISyntaxException exp) { + FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp); + } catch (Exception exp) { + FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp); + FRContext.getLogger().error("Can not open the browser for URL: " + url); + } + } + }); + installItem.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + JFileChooser fileChooser = new JFileChooser(); + fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); + fileChooser.setFileFilter(new FileNameExtensionFilter(".reu", "reu")); + int returnValue = fileChooser.showDialog(new UILabel(), Inter.getLocText("FR-Designer_Select")); + if (returnValue == JFileChooser.APPROVE_OPTION) { + final File chosenFile = fileChooser.getSelectedFile(); + installFromDiskZipFile(chosenFile); + } + } + }); + deleteItem.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + replaceButtonPanel(true); + deleteFromDiskZipFile(); } }); + GUICoreUtils.showPopupMenu(menu, tabbedPane, tabbedPane.getX() + OFFSET_X, OFFSET_Y); } private void deleteFromDiskZipFile() { deleteButton = new UIButton(Inter.getLocText("FR-Designer-CommitTab_Remove")); - deleteButton.setOpaque(true); deleteButton.setBackground(Color.red); + deleteButton.repaint(); deleteButton.setPreferredSize(new Dimension(240, 40)); reuWidgetPanel.add(deleteButton, BorderLayout.SOUTH); deleteButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - if(ShareLoader.getLoader().removeModulesFromList()) { + if (ShareLoader.getLoader().removeModulesFromList()) { refreshShareMoudule(); reuWidgetPanel.remove(deleteButton); elCaseBindInfoList = ShareLoader.getLoader().getAllBindInfoList(); JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_Removed_Successful")); refreshDownPanel(false); + replaceButtonPanel(false); + refreshComboxData(); } else { - reuWidgetPanel.remove(deleteButton); JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_Removed_Failed")); - refreshDownPanel(false); } } @@ -295,6 +403,17 @@ public class FormWidgetDetailPane extends FormDockView{ } +<<<<<<< HEAD + private void replaceButtonPanel(boolean isEdit) { + this.isEdit = isEdit; + if (isEdit) { + menutPanel.remove(editPanel); + menutPanel.add(initResetButtonPane(), BorderLayout.EAST); + } else { + menutPanel.remove(resetPanel); + menutPanel.add(initEditButtonPane(), BorderLayout.EAST); + ShareLoader.getLoader().resetRemovedModuleList(); +======= private void installFromDiskZipFile(File chosenFile) { try { ShareLoader.getLoader().installModuleFromDiskZipFile(chosenFile); @@ -305,8 +424,29 @@ public class FormWidgetDetailPane extends FormDockView{ } catch (IOException e) { JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_Error")); FRLogger.getLogger().error(e.getMessage(), e); +>>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 } + + } + + private void installFromDiskZipFile(File chosenFile) { + if (chosenFile != null && chosenFile.getName().endsWith(ShareConstants.SUFFIX_MODULE)) { + try { + if (ShareLoader.getLoader().installModuleFromDiskZipFile(chosenFile)) { + refreshShareMoudule(); + elCaseBindInfoList = ShareLoader.getLoader().getAllBindInfoList(); + refreshDownPanel(false); + refreshComboxData(); + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_OK")); + } else { + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_Error")); + } + } catch (IOException e) { + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_Error")); + FRLogger.getLogger().error(e.getMessage(), e); + } + } } private void refreshShareMoudule() { @@ -321,15 +461,15 @@ public class FormWidgetDetailPane extends FormDockView{ * 获取报表块组件分类 */ public String[] getFormCategories() { - return ShareConstants.WIDGET_CATEGORIES; + return ArrayUtils.addAll(new String[] {Inter.getLocText("FR-Designer_AllCategories")}, ShareLoader.getLoader().getModuleCategory()); } public void refreshDownPanel(boolean isEdit) { - reuWidgetPanel.remove(downPanel); - downPanel = new UIScrollPane(new ShareWidgetPane(elCaseBindInfoList, isEdit)); - reuWidgetPanel.add(downPanel); + reuWidgetPanel.remove(downPane); + downPane = new UIScrollPane(new ShareWidgetPane(elCaseBindInfoList, isEdit)); + reuWidgetPanel.add(downPane); repaintContainer(); } diff --git a/designer_form/src/com/fr/design/mainframe/ShareWidgetPane.java b/designer_form/src/com/fr/design/mainframe/ShareWidgetPane.java index 3965511355..c5659d9bc1 100644 --- a/designer_form/src/com/fr/design/mainframe/ShareWidgetPane.java +++ b/designer_form/src/com/fr/design/mainframe/ShareWidgetPane.java @@ -1,8 +1,8 @@ package com.fr.design.mainframe; - import com.fr.form.ui.ElCaseBindInfo; + import javax.swing.*; import java.awt.*; @@ -25,5 +25,4 @@ public class ShareWidgetPane extends JPanel { this.setPreferredSize(new Dimension(240, rowCount * 80)); } } - } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index cc7f1d7690..860f9f52db 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -38,7 +38,6 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper private EventPropertyTable eventTable; private List widgetPropertyTables; private FormDesigner designer; - private ComponentTree componentTree; private JPanel wsp; private MobileWidgetTable mobileWidgetTable; private MobileBodyWidgetTable mobileBodyWidgetTable; @@ -122,8 +121,6 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper clearDockingView(); return; } - - componentTree = new ComponentTree(designer); widgetPropertyTables = new ArrayList(); propertyTable = new WidgetPropertyTable(designer); designer.addDesignerEditListener(new WidgetPropertyDesignerAdapter(propertyTable)); diff --git a/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java b/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java index 38b62a99a1..0d7b224f64 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java +++ b/designer_form/src/com/fr/design/mainframe/widget/UITreeComboBox.java @@ -15,6 +15,7 @@ import com.fr.design.designer.beans.*; import com.fr.design.designer.beans.events.DesignerEditListener; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreator; +import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.mainframe.ComponentTree; import com.sun.java.swing.plaf.motif.*; import com.sun.java.swing.plaf.windows.*; @@ -116,7 +117,6 @@ public class UITreeComboBox extends JComboBox{ JLabel lb = (JLabel)r.getTreeCellRendererComponent( tree, value, isSelected, false, false, index, cellHasFocus); - return lb; } return super.getListCellRendererComponent(list, value, index, @@ -129,7 +129,7 @@ public class UITreeComboBox extends JComboBox{ @Override public void fireCreatorModified(DesignerEvent evt) { - if (evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED || evt.getCreatorEventID() == DesignerEvent.CREATOR_PASTED) { + if (evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED) { TreePath[] paths = tree.getSelectedTreePath(); if (tree != null && paths.length > 0) { tree.setAndScrollSelectionPath(paths[0]); @@ -137,7 +137,19 @@ public class UITreeComboBox extends JComboBox{ MenuSelectionManager.defaultManager().clearSelectedPath(); } - } else { + } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_PASTED) { + tree.refreshUI(); + TreePath[] paths = tree.getSelectedTreePath(); + if (tree != null && paths.length > 0) { + tree.setAndScrollSelectionPath(paths[0]); + setSelectedItem(paths[0]); + MenuSelectionManager.defaultManager().clearSelectedPath(); + } + } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_CUTED) { + tree.refreshUI(); + setSelectedItem(null); + MenuSelectionManager.defaultManager().clearSelectedPath(); + } else { tree.refreshUI(); repaint(); } @@ -192,13 +204,12 @@ class TreePopup extends JPopupMenu implements ComboPopup{ public TreePopup(JComboBox comboBox){ this.comboBox = (UITreeComboBox)comboBox; - setBorder(BorderFactory.createLineBorder(Color.black)); setLayout(new BorderLayout()); setLightWeightPopupEnabled(comboBox.isLightWeightPopupEnabled()); JTree tree = this.comboBox.getTree(); if(tree != null){ - scrollPane = new JScrollPane(tree); - scrollPane.setBorder(null); + scrollPane = new UIScrollPane(tree); + scrollPane.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 0)); add(scrollPane, BorderLayout.CENTER); } } diff --git a/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java b/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java index e1decfe2b4..9a3f8b563f 100644 --- a/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java +++ b/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java @@ -33,6 +33,7 @@ public class ParameterToolBarPane extends BasicBeanPane { private static final int GAP_H = 4; private static final int GAP_V = 6; private static final int GAP_BV = 4; + private static final int BUTTON_HEIGHT = 20; private static final int WIDTH = 225; private static final int L_H = 18; @@ -48,12 +49,12 @@ public class ParameterToolBarPane extends BasicBeanPane { return new Dimension(super.getPreferredSize().width, 18); } }; - label.setText(Inter.getLocText("Following_parameters_are_not_generated")+":"); + label.setText(Inter.getLocText("FR-Following_parameters_are_not_generated")+":"); label.setHorizontalAlignment(SwingConstants.LEFT); label.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 0)); this.add(label); - addAll = new UIButton(Inter.getLocText("Add-all")); + addAll = new UIButton(Inter.getLocText("FR-Designer_Add_all")); this.add(addAll); } @@ -132,7 +133,7 @@ public class ParameterToolBarPane extends BasicBeanPane { layoutContainer(parent); - int h= ((parameterSelectedLabellist.size() == 0) ? L_H : breakid * (20 + GAP_V) + GAP_BV + L_H + GAP_H + addAll.getPreferredSize().height); + int h= ((parameterSelectedLabellist.size() == 0) ? L_H : breakid * (BUTTON_HEIGHT + GAP_V) + GAP_BV + L_H + GAP_H + addAll.getPreferredSize().height); return new Dimension(w, h); } @@ -160,7 +161,7 @@ public class ParameterToolBarPane extends BasicBeanPane { x += (dim.width + GAP_H); } - addAll.setBounds(0, y + GAP_V+ 20, width, addAll.getPreferredSize().height); + addAll.setBounds(0, y + GAP_V + BUTTON_HEIGHT, width, addAll.getPreferredSize().height); } } From 7a7f1c9b567a8f042b2b69dd0da96a05e629d292 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 21 Nov 2016 00:02:29 +0800 Subject: [PATCH 40/86] =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E4=BC=A0=E4=B8=8Bdev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/extra/WebManagerPaneFactory.java | 2 +- designer_base/src/com/fr/env/RemoteEnv.java | 14 ---- .../mainframe/FormWidgetDetailPane.java | 71 ------------------- 3 files changed, 1 insertion(+), 86 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java b/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java index e39a605a5d..75a79deddd 100644 --- a/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java +++ b/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java @@ -26,7 +26,7 @@ public class WebManagerPaneFactory { } public BasicPane createPluginPane() { - if (StableUtils.getMajorJavaVersion() != 8) { + if (StableUtils.getMajorJavaVersion() == 8) { return new ShopManagerPane(new ShopPaneConfig() { @Override String getMainJS() { diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 406c76ec75..ce7118e69b 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -31,10 +31,7 @@ import com.fr.plugin.Plugin; import com.fr.plugin.PluginLicense; import com.fr.plugin.PluginLicenseManager; import com.fr.plugin.PluginLoader; -<<<<<<< HEAD import com.fr.share.ShareConstants; -======= ->>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 import com.fr.stable.*; import com.fr.stable.file.XMLFileManagerProvider; import com.fr.stable.project.ProjectConstants; @@ -2112,11 +2109,7 @@ public class RemoteEnv implements Env { @Override public File[] loadREUFile() throws Exception { File target = new File(CacheManager.getProviderInstance().getCacheDirectory(), -<<<<<<< HEAD ShareConstants.DIR_SHARE_CACHE); -======= - "fr_share"); ->>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 StableUtils.deleteFile(target); StableUtils.mkdirs(target); File cacheDir = null; @@ -2131,11 +2124,7 @@ public class RemoteEnv implements Env { HttpClient client = createHttpMethod(para); InputStream input = client.getResponseStream(); zip = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), "share.zip"); -<<<<<<< HEAD cacheDir = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), ShareConstants.DIR_SHARE_CACHE); -======= - cacheDir = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), "fr_share"); ->>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 StableUtils.deleteFile(cacheDir); StableUtils.mkdirs(cacheDir); StableUtils.makesureFileExist(zip); @@ -2159,7 +2148,6 @@ public class RemoteEnv implements Env { } return new File[0]; } -<<<<<<< HEAD @Override public boolean installREUFile(File reuFile) { @@ -2221,6 +2209,4 @@ public class RemoteEnv implements Env { return StringUtils.EMPTY; } } -======= ->>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java b/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java index bb15e23ed1..c33e1b113b 100644 --- a/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java +++ b/designer_form/src/com/fr/design/mainframe/FormWidgetDetailPane.java @@ -257,69 +257,11 @@ public class FormWidgetDetailPane extends FormDockView{ downloadButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { -<<<<<<< HEAD initPopMenu(); } }); return downloadButton; } -======= - UIPopupMenu menu = new UIPopupMenu(); - UIMenuItem downloadItem = new UIMenuItem(Inter.getLocText("FR-Designer_Download_Template"), BaseUtils.readIcon("/com/fr/design/form/images/download icon.png")); - UIMenuItem installItem = new UIMenuItem(Inter.getLocText("FR-Designer_Install_Template"), BaseUtils.readIcon("/com/fr/design/form/images/install icon.png")); - UIMenuItem deleteItem = new UIMenuItem(Inter.getLocText("FR-Designer_Delete_Template"), BaseUtils.readIcon("/com/fr/design/form/images/delete icon.png")); - - menu.add(downloadItem); - menu.add(installItem); - menu.add(deleteItem); - - downloadItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - String url = SiteCenter.getInstance().acquireUrlByKind("reuse.url"); - if (StringUtils.isEmpty(url)) { - FRContext.getLogger().info("The URL is empty!"); - return; - } - try { - Desktop.getDesktop().browse(new URI(url)); - } catch (IOException exp) { - JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer_Set_default_browser")); - FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp); - } catch (URISyntaxException exp) { - FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp); - } catch (Exception exp) { - FRContext.getLogger().errorWithServerLevel(exp.getMessage(), exp); - FRContext.getLogger().error("Can not open the browser for URL: " + url); - } - - } - }); - - installItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - JFileChooser fileChooser = new JFileChooser(); - fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); - fileChooser.setFileFilter(new FileNameExtensionFilter(".reu", "reu")); - int returnValue = fileChooser.showDialog(new JLabel(), Inter.getLocText("FR-Designer_Select")); - if (returnValue == JFileChooser.APPROVE_OPTION) { - final File chosenFile = fileChooser.getSelectedFile(); - installFromDiskZipFile(chosenFile); - - } - } - }); - - deleteItem.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - deleteFromDiskZipFile(); - } - }); - - GUICoreUtils.showPopupMenu(menu, tabbedPane, tabbedPane.getX() + OFFSET_X, OFFSET_Y); ->>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 /** * 初始化下拉面板 @@ -403,7 +345,6 @@ public class FormWidgetDetailPane extends FormDockView{ } -<<<<<<< HEAD private void replaceButtonPanel(boolean isEdit) { this.isEdit = isEdit; if (isEdit) { @@ -413,18 +354,6 @@ public class FormWidgetDetailPane extends FormDockView{ menutPanel.remove(resetPanel); menutPanel.add(initEditButtonPane(), BorderLayout.EAST); ShareLoader.getLoader().resetRemovedModuleList(); -======= - private void installFromDiskZipFile(File chosenFile) { - try { - ShareLoader.getLoader().installModuleFromDiskZipFile(chosenFile); - refreshShareMoudule(); - elCaseBindInfoList = ShareLoader.getLoader().getAllBindInfoList(); - refreshDownPanel(false); - JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_OK")); - } catch (IOException e) { - JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Share_Module_Error")); - FRLogger.getLogger().error(e.getMessage(), e); ->>>>>>> 86c666e44132d7f8fa1727a6d78965b2423ce510 } From 3a2e886afc1b25d9fe4b3594c55d6cc437567d7a Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 21 Nov 2016 01:01:24 +0800 Subject: [PATCH 41/86] =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E4=BC=A0dev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/CoverReportPane.java | 2 +- .../src/com/fr/design/mainframe/ShareWidgetButton.java | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/CoverReportPane.java b/designer_form/src/com/fr/design/mainframe/CoverReportPane.java index 1d8277c461..196d8752a1 100644 --- a/designer_form/src/com/fr/design/mainframe/CoverReportPane.java +++ b/designer_form/src/com/fr/design/mainframe/CoverReportPane.java @@ -3,7 +3,7 @@ package com.fr.design.mainframe; import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.icon.IconPathConstants; -import com.fr.form.share.ShareConstants; +import com.fr.share.ShareConstants; import com.fr.general.FRScreen; import com.fr.general.IOUtils; import com.fr.stable.StringUtils; diff --git a/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java b/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java index ec663176e9..12e5302b05 100644 --- a/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java +++ b/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java @@ -1,12 +1,10 @@ package com.fr.design.mainframe; import com.fr.base.*; -import com.fr.design.constants.UIConstants; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.icon.IconPathConstants; -import com.fr.form.share.ShareConstants; +import com.fr.share.ShareConstants; import com.fr.form.share.ShareLoader; import com.fr.form.ui.ElCaseBindInfo; import com.fr.form.ui.Widget; From e2da2e04d41a86e3786a63771d86b5ab61076c06 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 21 Nov 2016 10:00:57 +0800 Subject: [PATCH 42/86] =?UTF-8?q?REPORT-849=20=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E7=AA=97=E5=8F=A3=E6=94=AF=E6=8C=81=E6=8B=96=E6=8B=BD=EF=BC=88?= =?UTF-8?q?=E6=96=B9=E4=BE=BF=E6=95=B0=E6=8D=AE=E9=9B=86=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E8=BE=83=E9=95=BF=E7=9A=84=E6=98=BE=E7=A4=BA=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tabledata/tabledatapane/DBTableDataPane.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index 708ea91523..b0fba71c96 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -48,8 +48,8 @@ import java.util.ArrayList; import java.util.List; public class DBTableDataPane extends AbstractTableDataPane { - private static final String PREVIEW_BUTTON = Inter.getLocText("Preview"); - private static final String REFRESH_BUTTON = Inter.getLocText("Refresh"); + private static final String PREVIEW_BUTTON = Inter.getLocText("FR-Designer_Preview"); + private static final String REFRESH_BUTTON = Inter.getLocText("FR-Designer_Refresh"); private ConnectionTableProcedurePane connectionTableProcedurePane; private UITableEditorPane editorPane; @@ -78,7 +78,7 @@ public class DBTableDataPane extends AbstractTableDataPane { JPanel paraMeanPane = new JPanel(new BorderLayout()); paraMeanPane.setPreferredSize(new Dimension(680, 90)); - UILabel paraMean = new UILabel(Inter.getLocText("Datasource-Param_DES")); + UILabel paraMean = new UILabel(Inter.getLocText("FR-Designer-Datasource-Param_DES")); paraMeanPane.add(paraMean, BorderLayout.CENTER); ParameterTableModel model = new ParameterTableModel() { @@ -144,7 +144,7 @@ public class DBTableDataPane extends AbstractTableDataPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("DS-Database_Query"); + return Inter.getLocText("FR-Designer-DS-Database_Query"); } private void refresh() { @@ -164,7 +164,7 @@ public class DBTableDataPane extends AbstractTableDataPane { toolBarDef.addShortCut(new PreviewAction()); toolBarDef.addShortCut(SeparatorDef.DEFAULT); toolBarDef.addShortCut(new EditPageQueryAction()); - isShareCheckBox = new UICheckBox(Inter.getLocText("Is_Share_DBTableData")); + isShareCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Is_Share_DBTableData")); maxPanel = new MaxMemRowCountPanel(); maxPanel.setBorder(null); UIToolbar editToolBar = ToolBarDef.createJToolBar(); @@ -237,7 +237,7 @@ public class DBTableDataPane extends AbstractTableDataPane { String dbName = this.connectionTableProcedurePane.getSelectedDatabaseConnnectonName(); if (StringUtils.isBlank(dbName) || StringUtils.isBlank(this.sqlTextPane.getText())) { try { - throw new Exception(Inter.getLocText("Connect_SQL_Cannot_Null") + "."); + throw new Exception(Inter.getLocText("FR-Designer_Connect_SQL_Cannot_Null") + "."); } catch (Exception e) { // JOptionPane.showMessageDialog(DBTableDataPane.this, // Inter.getLocText("Connect_SQL_Cannot_Null") + "."); @@ -292,7 +292,7 @@ public class DBTableDataPane extends AbstractTableDataPane { private class EditPageQueryAction extends UpdateAction { public EditPageQueryAction() { - this.setName(Inter.getLocText("LayerPageReport_PageQuery")); + this.setName(Inter.getLocText("FR-Designer-LayerPageReport_PageQuery")); this.setMnemonic('L'); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/text.png")); } @@ -342,7 +342,7 @@ public class DBTableDataPane extends AbstractTableDataPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("LayerPageReport_Define_PageQuerySQL"); + return Inter.getLocText("FR-Designer-LayerPageReport_Define_PageQuerySQL"); } } } \ No newline at end of file From a1d72bb047f93f95342e00a328b60561abde0218 Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Mon, 21 Nov 2016 14:01:43 +0800 Subject: [PATCH 43/86] =?UTF-8?q?REPORT-809=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E7=AE=A1=E7=90=86=E7=82=B9=E5=87=BB=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E6=9B=B4=E6=96=B0=E4=BC=9A=E6=8F=90=E7=A4=BA=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=E5=BA=94=E7=94=A8=E5=95=86=E5=BA=97=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/extra/PluginHelper.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index f7597d383d..ecaa34ea00 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -48,10 +48,7 @@ public class PluginHelper { * @param p 下载百分比处理 */ public static void downloadPluginFile(String id, String username, String password, Process p) throws Exception { - if (StringUtils.isEmpty(id)) { - return; - } - if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)) { + if (!PluginHelper.invalidUser(id, username, password)) { return; } HttpClient httpClient = new HttpClient(getDownloadPath(id, username, password)); @@ -79,6 +76,16 @@ public class PluginHelper { } } + private static boolean invalidUser(String id, String username, String password) { + if (StringUtils.isEmpty(id)) { + return false; + } else if (StringUtils.isEmpty(username) || StringUtils.isEmpty(password)){ + return false; + } else { + return true; + } + } + private static String getDownloadPath(String id, String username, String password) throws Exception { HashMap map = new HashMap(); map.put("id", id); From 12a8f10b116dbab50d509ff5439e63f167062e92 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Mon, 21 Nov 2016 15:06:49 +0800 Subject: [PATCH 44/86] =?UTF-8?q?=E5=8D=95=E5=85=83=E6=A0=BC=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90=E5=85=AC=E5=BC=8F=E6=B2=A1=E6=9C=89335$?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/formula/TinyFormulaPane.java | 6 +++++- .../gui/data/report/AbstractReportDataContentPane.java | 7 ++++++- .../gui/data/report/CategoryPlotReportDataContentPane.java | 5 +++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/formula/TinyFormulaPane.java b/designer_base/src/com/fr/design/formula/TinyFormulaPane.java index 16c897bc12..a7ea7b6cf9 100644 --- a/designer_base/src/com/fr/design/formula/TinyFormulaPane.java +++ b/designer_base/src/com/fr/design/formula/TinyFormulaPane.java @@ -56,7 +56,7 @@ public class TinyFormulaPane extends BasicBeanPane implements UIObserver @Override public void doOk() { Formula fm = formulaPane.update(); - if (fm.getContent().length() <= 1) { + if (dealEmpty() && fm.getContent().length() <= 1) { formulaTextField.setText("$$$"); } else { formulaTextField.setText(fm.getContent()); @@ -69,6 +69,10 @@ public class TinyFormulaPane extends BasicBeanPane implements UIObserver initLayout(); } + protected boolean dealEmpty() { + return true; + } + protected void initLayout() { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java index 6754ca7965..dd24b450c0 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java @@ -3,8 +3,8 @@ package com.fr.design.mainframe.chart.gui.data.report; import com.fr.base.Formula; import com.fr.base.Utils; import com.fr.chart.chartattr.ChartCollection; -import com.fr.design.constants.UIConstants; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.constants.UIConstants; import com.fr.design.event.UIObserverListener; import com.fr.design.formula.TinyFormulaPane; import com.fr.design.gui.frpane.UICorrelationPane; @@ -155,6 +155,11 @@ public abstract class AbstractReportDataContentPane extends BasicBeanPane Date: Mon, 21 Nov 2016 15:18:33 +0800 Subject: [PATCH 45/86] pmd --- designer_base/src/com/fr/design/formula/TinyFormulaPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/formula/TinyFormulaPane.java b/designer_base/src/com/fr/design/formula/TinyFormulaPane.java index a7ea7b6cf9..da60d4f235 100644 --- a/designer_base/src/com/fr/design/formula/TinyFormulaPane.java +++ b/designer_base/src/com/fr/design/formula/TinyFormulaPane.java @@ -42,7 +42,7 @@ public class TinyFormulaPane extends BasicBeanPane implements UIObserver // 添加一公式编辑器按钮 formulaTextFieldButton = new UIButton(BaseUtils.readIcon("/com/fr/design/images/m_insert/formula.png")); - formulaTextFieldButton.setToolTipText(Inter.getLocText("Formula") + "..."); + formulaTextFieldButton.setToolTipText(Inter.getLocText("FR-Designer_Formula") + "..."); formulaTextFieldButton.setPreferredSize(new Dimension(24, 20)); formulaTextFieldButton.setOpaque(false); formulaTextFieldButton.setCursor(new Cursor(Cursor.HAND_CURSOR)); From 0cde4e25916f4902d989dd5692295bac5c538a29 Mon Sep 17 00:00:00 2001 From: zack Date: Mon, 21 Nov 2016 15:20:25 +0800 Subject: [PATCH 46/86] =?UTF-8?q?REPORT-841=20=E8=A1=A8=E5=8D=95=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=9B=86=E9=87=8D=E5=91=BD=E5=90=8D=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=9D=97=E5=86=85=E5=AE=B9=E8=81=94=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/data/BasicTableDataTreePane.java | 6 +++--- .../com/fr/design/data/datapane/TableDataTreePane.java | 8 +++++++- .../com/fr/design/mainframe/FormCreatorDropTarget.java | 5 ++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/designer_base/src/com/fr/design/data/BasicTableDataTreePane.java b/designer_base/src/com/fr/design/data/BasicTableDataTreePane.java index a76d4a1059..92f02d5f4f 100644 --- a/designer_base/src/com/fr/design/data/BasicTableDataTreePane.java +++ b/designer_base/src/com/fr/design/data/BasicTableDataTreePane.java @@ -428,11 +428,11 @@ public abstract class BasicTableDataTreePane extends DockingView implements Resp } /** - * 合并数据集 + * 合并数据集并返回自动更改数据集名字的新老名字键值对 * @param srcName 数据集来源(比如报表块,就是报表块的名称) * @param tableDataSource 数据集 */ - public void addTableData(String srcName, TableDataSource tableDataSource) { - + public Map addTableData(String srcName, TableDataSource tableDataSource) { + return new HashMap<>(0); } } diff --git a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java index 219093c6d9..959abc98f1 100644 --- a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java @@ -275,13 +275,15 @@ public class TableDataTreePane extends BasicTableDataTreePane { * @param srcName 数据集来源(比如报表块,就是报表块的名称) * @param tableDataSource 数据集 */ - public void addTableData(String srcName, TableDataSource tableDataSource) { + public Map addTableData(String srcName, TableDataSource tableDataSource) { + Map tdNameMap=new HashMap<>(); allDSNames = DesignTableDataManager.getAllDSNames(tc.getBook()); DesignTableDataManager.setThreadLocal(DesignTableDataManager.NO_PARAMETER); TableDataSource tds = tc.getBook(); Iterator tdIterator = tableDataSource.getTableDataNameIterator(); while (tdIterator.hasNext()) { String tdName = (String) tdIterator.next(); + String oldName = tdName; TableData td = tableDataSource.getTableData(tdName); if (tds.getTableData(tdName) != null || isDsNameRepeaded(tdName)) {//如果有同名的就拼上来源名称 tdName = srcName + tdName; @@ -292,8 +294,12 @@ public class TableDataTreePane extends BasicTableDataTreePane { tdName += i; } tds.putTableData(tdName, td); + if (!ComparatorUtils.equals(oldName, tdName)) { + tdNameMap.put(oldName, tdName); + } } tc.parameterChanged(); dataTree.refresh(); + return tdNameMap; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java index 7e7035bb73..b4bfe270f1 100644 --- a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java +++ b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java @@ -26,6 +26,7 @@ import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; import java.awt.dnd.DropTargetEvent; +import java.util.Map; /** * 添加模式下鼠标事件处理器。 @@ -88,7 +89,9 @@ public class FormCreatorDropTarget extends DropTarget { SharableElementCaseEditor sharableEditor = ShareLoader.getLoader().getSharedElCaseEditorById(shareId); ElCaseBindInfo bindInfo = ShareLoader.getLoader().getElCaseBindInfoById(shareId); if (sharableEditor != null && bindInfo != null) { - TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()).addTableData(bindInfo.getName(),sharableEditor.getTableDataSource()); + Map tdNameMap = TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()).addTableData(bindInfo.getName(), sharableEditor.getTableDataSource()); + //合并数据集之后,可能会有数据集名称变化,做一下联动 + sharableEditor.batchRenameTdName(tdNameMap); } } Widget widget = (addingXCreator.getTopLayout() != null) ? (addingXCreator.getTopLayout().toData()) : addingXCreator.toData(); From 67d4b3f4f6b4834c8236de9701ce910574335cee Mon Sep 17 00:00:00 2001 From: zack Date: Mon, 21 Nov 2016 15:21:50 +0800 Subject: [PATCH 47/86] d --- .../src/com/fr/design/data/datapane/TableDataTreePane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java index 959abc98f1..cbab585331 100644 --- a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java @@ -290,7 +290,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { } int i = 0; while (tds.getTableData(tdName) != null) { - i++;//如果拼上名字后依然已经存在就加编号 + i++;//如果拼上名字后依然已经存在就加编号 tdName += i; } tds.putTableData(tdName, td); From 1cbc5c1f53ba467e0a975d0918f8fb4880326d2a Mon Sep 17 00:00:00 2001 From: zack Date: Mon, 21 Nov 2016 15:22:10 +0800 Subject: [PATCH 48/86] d --- .../src/com/fr/design/data/datapane/TableDataTreePane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java index cbab585331..959abc98f1 100644 --- a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java @@ -290,7 +290,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { } int i = 0; while (tds.getTableData(tdName) != null) { - i++;//如果拼上名字后依然已经存在就加编号 + i++;//如果拼上名字后依然已经存在就加编号 tdName += i; } tds.putTableData(tdName, td); From 284fae5ef419b3d21925195f32bf59eb79b3c075 Mon Sep 17 00:00:00 2001 From: zack Date: Mon, 21 Nov 2016 15:53:33 +0800 Subject: [PATCH 49/86] =?UTF-8?q?REPORT-841=20=E4=BB=A3=E7=A0=81=E8=B4=A8?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/data/datapane/TableDataTreePane.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java index 959abc98f1..5a893803c2 100644 --- a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java @@ -38,6 +38,7 @@ import java.awt.dnd.DnDConstants; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -276,7 +277,7 @@ public class TableDataTreePane extends BasicTableDataTreePane { * @param tableDataSource 数据集 */ public Map addTableData(String srcName, TableDataSource tableDataSource) { - Map tdNameMap=new HashMap<>(); + Map tdNameMap = new HashMap<>(); allDSNames = DesignTableDataManager.getAllDSNames(tc.getBook()); DesignTableDataManager.setThreadLocal(DesignTableDataManager.NO_PARAMETER); TableDataSource tds = tc.getBook(); @@ -300,6 +301,6 @@ public class TableDataTreePane extends BasicTableDataTreePane { } tc.parameterChanged(); dataTree.refresh(); - return tdNameMap; + return Collections.unmodifiableMap(tdNameMap); } } \ No newline at end of file From c931aec0386fab64d572eb9b805e6352f3702b95 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Mon, 21 Nov 2016 16:36:01 +0800 Subject: [PATCH 50/86] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/formula/TinyFormulaPane.java | 14 +++++++------- .../data/report/AbstractReportDataContentPane.java | 4 ++-- .../report/CategoryPlotReportDataContentPane.java | 5 +++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/designer_base/src/com/fr/design/formula/TinyFormulaPane.java b/designer_base/src/com/fr/design/formula/TinyFormulaPane.java index da60d4f235..649d5face2 100644 --- a/designer_base/src/com/fr/design/formula/TinyFormulaPane.java +++ b/designer_base/src/com/fr/design/formula/TinyFormulaPane.java @@ -56,11 +56,7 @@ public class TinyFormulaPane extends BasicBeanPane implements UIObserver @Override public void doOk() { Formula fm = formulaPane.update(); - if (dealEmpty() && fm.getContent().length() <= 1) { - formulaTextField.setText("$$$"); - } else { - formulaTextField.setText(fm.getContent()); - } + populateTextField(fm); okEvent(); } }).setVisible(true); @@ -69,8 +65,12 @@ public class TinyFormulaPane extends BasicBeanPane implements UIObserver initLayout(); } - protected boolean dealEmpty() { - return true; + protected void populateTextField(Formula fm) { + if (fm.getContent().length() <= 1) { + formulaTextField.setText("$$$"); + } else { + formulaTextField.setText(fm.getContent()); + } } protected void initLayout() { diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java index dd24b450c0..4ff643522c 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/report/AbstractReportDataContentPane.java @@ -157,8 +157,8 @@ public abstract class AbstractReportDataContentPane extends BasicBeanPane Date: Mon, 21 Nov 2016 17:18:41 +0800 Subject: [PATCH 51/86] =?UTF-8?q?REPORT-702=20=E8=A1=A8=E5=8D=95=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E9=AB=98=E5=BA=A6=E4=BC=9A=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/designer/creator/XWFitLayout.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java index 04904a7238..682a195907 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java @@ -159,7 +159,10 @@ public class XWFitLayout extends XLayoutContainer { creator.updateChildBound(getActualMinHeight()); } // 布局内部组件放大缩小后,都是乘以百分比后取整,可能会产生空隙,此处调整容器 - this.setSize(containerW + margin.getLeft() + margin.getRight(), containerH + margin.getTop() + margin.getBottom()); + this.setSize( + containerW + (int)(margin.getLeft() * (1.0+percent) + margin.getRight() * (1.0+percent)), + containerH + (int)(margin.getTop() * (1.0+percent) + margin.getBottom() * (1.0+percent)) + ); updateCreatorsBackupBound(); // 间隔也按显示大小比例调整 if (!hasCalGap) { @@ -239,7 +242,7 @@ public class XWFitLayout extends XLayoutContainer { posX.add(margin.getLeft()); int width = this.getWidth() - margin.getLeft() - margin.getRight(); int containW = (int) (width / perc); - posX.add(containW); + posX.add(containW + margin.getLeft()); for (int i=0, len=this.getComponentCount(); i < len; i++) { int x = this.getComponent(i).getX(); int finalX = (int) (x / perc); @@ -265,7 +268,7 @@ public class XWFitLayout extends XLayoutContainer { posY.add(margin.getTop()); int height = this.getHeight() - margin.getTop() - margin.getBottom(); int containH = (int) (height / perc); - posY.add(containH); + posY.add(containH + margin.getTop()); for (int i=0, len=this.getComponentCount(); i < len; i++) { int y = this.getComponent(i).getY(); int finalY = (int) (y / perc); From 72dedac000c166f96d0dc8146821ac1a8d828f68 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 21 Nov 2016 19:25:09 +0800 Subject: [PATCH 52/86] =?UTF-8?q?=E4=BD=8E=E5=88=86=E8=BE=A8=E7=8E=87?= =?UTF-8?q?=E4=B8=8B=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/gui/icontainer/UIResizableContainer.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java index 13ea214ec5..d16622184f 100644 --- a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java +++ b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java @@ -3,7 +3,6 @@ package com.fr.design.gui.icontainer; import com.fr.base.BaseUtils; import com.fr.design.constants.UIConstants; import com.fr.design.mainframe.DesignerContext; -import com.fr.design.mainframe.EastRegionContainerPane; import com.fr.stable.Constants; import com.fr.design.utils.gui.GUICoreUtils; @@ -217,8 +216,8 @@ public class UIResizableContainer extends JPanel { } } else if (direction == Constants.LEFT) { if(isDownPaneVisible){ - if (toolPaneY > getHeight() - toolPaneHeight) { - toolPaneY = getHeight() - toolPaneHeight; + if (toolPaneY > getHeight() - toolPaneHeight - getParameterPaneHeight()) { + toolPaneY = getHeight() - toolPaneHeight - getParameterPaneHeight(); } parameterPane.setBounds(20, 0, 230, getParameterPaneHeight()); upPane.setBounds(toolPaneHeight, getParameterPaneHeight(), containerWidth - toolPaneHeight, toolPaneY); From 276847ff480370b4e9622c63d15b6db3cb275448 Mon Sep 17 00:00:00 2001 From: zack Date: Mon, 21 Nov 2016 20:45:05 +0800 Subject: [PATCH 53/86] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=A4=8D=E7=94=A8=E7=9A=84=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E5=AE=89=E8=A3=85=EF=BC=8C=E7=8E=B0=E5=9C=A8=E6=98=AF=E6=8A=8A?= =?UTF-8?q?reu=E6=96=87=E4=BB=B6=E6=8B=86=E5=88=86=E6=88=90=E4=B8=A4?= =?UTF-8?q?=E4=B8=AAxml=E5=88=86=E5=88=AB=E4=BC=A0=E7=BB=99=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E7=AB=AF=EF=BC=8C=E7=9B=B4=E6=8E=A5=E7=BB=99=E6=AD=A3?= =?UTF-8?q?=E6=96=87=E5=A1=9Ereu=E6=96=87=E4=BB=B6=E7=9A=84=E4=BA=8C?= =?UTF-8?q?=E8=BF=9B=E5=88=B6=E4=BC=9A=E5=9B=A0=E4=B8=BAtostring=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E9=80=A0=E6=88=90=E6=95=B0=E6=8D=AE=E4=B8=A2=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/env/RemoteEnv.java | 60 ++++++++++++--------- 1 file changed, 36 insertions(+), 24 deletions(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index ce7118e69b..70c18fbd0d 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2114,6 +2114,7 @@ public class RemoteEnv implements Env { StableUtils.mkdirs(target); File cacheDir = null; File zip = null; + OutputStream out = null; try { HashMap para = new HashMap(); para.put("op", "fr_remote_design"); @@ -2122,16 +2123,15 @@ public class RemoteEnv implements Env { para.put("currentUsername", this.getUser()); HttpClient client = createHttpMethod(para); - InputStream input = client.getResponseStream(); + InputStream input = client.getResponseStream();//拿到服务端传过来的整个共享文件夹的压缩文件的文件流 zip = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), "share.zip"); cacheDir = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), ShareConstants.DIR_SHARE_CACHE); StableUtils.deleteFile(cacheDir); StableUtils.mkdirs(cacheDir); StableUtils.makesureFileExist(zip); - FileOutputStream out = new FileOutputStream(zip); - IOUtils.copyBinaryTo(input, out); - out.flush(); - out.close(); + out = new FileOutputStream(zip); + IOUtils.copyBinaryTo(input, out);//放到本地缓存目录下 + IOUtils.unzip(zip, cacheDir.getAbsolutePath(), EncodeConstants.ENCODING_GBK);//先解压到临时目录 if (cacheDir.exists() && cacheDir.isDirectory()) { return cacheDir.listFiles(new FilenameFilter() { @@ -2144,6 +2144,10 @@ public class RemoteEnv implements Env { } catch (Exception e) { FRContext.getLogger().error(e.getMessage()); } finally { + if (out != null) { + out.flush(); + out.close(); + } StableUtils.deleteFile(zip); } return new File[0]; @@ -2151,25 +2155,33 @@ public class RemoteEnv implements Env { @Override public boolean installREUFile(File reuFile) { -// if (reuFile == null) { -// return false; -// } -// try { -// HashMap para = new HashMap(); -// para.put("op", "fr_remote_design"); -// para.put("cmd", "design_install_reufile"); -// para.put("current_uid", this.createUserID()); -// para.put("currentUsername", this.getUser()); -// para.put("reuFileName", reuFile.getName()); -// -// HttpClient client = createHttpMethod(para); -// client.setContent(IOUtils.inputStream2Bytes(new FileInputStream(reuFile))); -// InputStream input = execute4InputStream(client); -// return ComparatorUtils.equals(stream2String(input), "true"); -// } catch (Exception e) { -// return false; -// } - return false; + if (reuFile == null) { + return false; + } + File tempFile = new File(CacheManager.getProviderInstance().getCacheDirectory(), "temp_remote"); + IOUtils.unzip(reuFile, tempFile.getAbsolutePath()); + String shareXMLName = StableUtils.pathJoin(tempFile.getAbsolutePath(), ShareConstants.NAME_XML_MODULE); + String helpXMLName = StableUtils.pathJoin(tempFile.getAbsolutePath(), ShareConstants.NAME_XML_HELP); + try { + HashMap para = new HashMap(); + para.put("op", "fr_remote_design"); + para.put("cmd", "design_install_reufile"); + para.put("current_uid", this.createUserID()); + para.put("currentUsername", this.getUser()); + para.put("reuFileName", reuFile.getName()); + + HttpClient client = createHttpMethod(para); + client.setContent(IOUtils.inputStream2Bytes(new FileInputStream(new File(shareXMLName)))); + InputStream input = execute4InputStream(client); + client.release(); + para.put("isComplete", "true"); + HttpClient client1 = createHttpMethod(para); + client1.setContent(IOUtils.inputStream2Bytes(new FileInputStream(new File(helpXMLName)))); + InputStream input1 = execute4InputStream(client1); + return ComparatorUtils.equals(stream2String(input), "true") && ComparatorUtils.equals(stream2String(input1), "true"); + } catch (Exception e) { + return false; + } } @Override From a848d5736eacea80e47636efb4d173f90254fe33 Mon Sep 17 00:00:00 2001 From: zack Date: Mon, 21 Nov 2016 20:53:58 +0800 Subject: [PATCH 54/86] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20PMD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/FormCreatorDropTarget.java | 89 +++++++++---------- 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java index b4bfe270f1..18ad2ab71c 100644 --- a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java +++ b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java @@ -56,15 +56,11 @@ public class FormCreatorDropTarget extends DropTarget { private void adding(int x, int y) { // 当前鼠标所在的组件 XCreator hoveredComponent = designer.getComponentAt(x, y); - // 获取该组件所在的焦点容器 XLayoutContainer container = XCreatorUtils.getHotspotContainer(hoveredComponent); - //cardTagLayout里用到 container.stopAddingState(designer); - boolean success = false; - if (container != null) { // 如果是容器,则调用其acceptComponent接受组件 AddingModel model = designer.getAddingModel(); @@ -77,7 +73,6 @@ public class FormCreatorDropTarget extends DropTarget { } cancelPromptWidgetForbidEnter(); } - if (success) { // 如果添加成功,则触发相应事件 XCreator xCreator = container.acceptType(XWParameterLayout.class) ? designer.getParaComponent() : designer.getRootComponent(); @@ -101,7 +96,6 @@ public class FormCreatorDropTarget extends DropTarget { } else { Toolkit.getDefaultToolkit().beep(); } - // 取消提示 designer.setPainter(null); // 切换添加状态到普通状态 @@ -132,47 +126,9 @@ public class FormCreatorDropTarget extends DropTarget { //提示组件是否可以拖入 promptUser(x, y, container); if (container != null) { - HoverPainter painter = null; - if (container != current || designer.getPainter() == null) { - // 如果焦点容器不是当前容器 - if (current != null) { - // 取消前一个焦点容器的提示渲染器 - designer.setPainter(null); - } - //获取painter的时候要考虑布局之间嵌套的问题 - XLayoutContainer xLayoutContainer = container.getTopLayout(); - if (xLayoutContainer != null && xLayoutContainer.getParent() != null - && ((XLayoutContainer) xLayoutContainer.getParent()).acceptType(XWAbsoluteLayout.class)) { - if (!xLayoutContainer.isEditable()) { - xLayoutContainer = (XLayoutContainer) xLayoutContainer.getParent(); - } - } - painter = AdapterBus.getContainerPainter(designer, - xLayoutContainer != null && xLayoutContainer.acceptType(XWAbsoluteLayout.class) ? xLayoutContainer : container); - - // 为界面设计器设置提示渲染提示器 - designer.setPainter(painter); - - // 将当前容器更新为新的容器 - current = container; - } else { - // 获取当前设计界面的提示渲染器 - Painter p = designer.getPainter(); - if (p instanceof HoverPainter) { - painter = (HoverPainter) p; - } - } + dealWithContainer(x, y, container); - if (painter != null) { - // 为提示渲染器设置焦点位置、区域等渲染参数 - Rectangle rect = ComponentUtils.getRelativeBounds(container); - rect.x -= designer.getArea().getHorizontalValue(); - rect.y -= designer.getArea().getVerticalValue(); - painter.setRenderingBounds(rect); - painter.setHotspot(new Point(x, y)); - painter.setCreator(addingModel.getXCreator()); - } } else { // 如果鼠标不在任何组件上,则取消提示器 designer.setPainter(null); @@ -181,6 +137,49 @@ public class FormCreatorDropTarget extends DropTarget { designer.repaint(); } + private void dealWithContainer(int x, int y, XLayoutContainer container) { + HoverPainter painter = null; + + if (container != current || designer.getPainter() == null) { + // 如果焦点容器不是当前容器 + if (current != null) { + // 取消前一个焦点容器的提示渲染器 + designer.setPainter(null); + } + //获取painter的时候要考虑布局之间嵌套的问题 + XLayoutContainer xLayoutContainer = container.getTopLayout(); + if (xLayoutContainer != null && xLayoutContainer.getParent() != null + && ((XLayoutContainer) xLayoutContainer.getParent()).acceptType(XWAbsoluteLayout.class)) { + if (!xLayoutContainer.isEditable()) { + xLayoutContainer = (XLayoutContainer) xLayoutContainer.getParent(); + } + } + painter = AdapterBus.getContainerPainter(designer, + xLayoutContainer != null && xLayoutContainer.acceptType(XWAbsoluteLayout.class) ? xLayoutContainer : container); + + // 为界面设计器设置提示渲染提示器 + designer.setPainter(painter); + + // 将当前容器更新为新的容器 + current = container; + } else { + // 获取当前设计界面的提示渲染器 + Painter p = designer.getPainter(); + if (p instanceof HoverPainter) { + painter = (HoverPainter) p; + } + } + if (painter != null) { + // 为提示渲染器设置焦点位置、区域等渲染参数 + Rectangle rect = ComponentUtils.getRelativeBounds(container); + rect.x -= designer.getArea().getHorizontalValue(); + rect.y -= designer.getArea().getVerticalValue(); + painter.setRenderingBounds(rect); + painter.setHotspot(new Point(x, y)); + painter.setCreator(addingModel.getXCreator()); + } + } + private void promptUser(int x, int y, XLayoutContainer container) { if (!addingModel.getXCreator().canEnterIntoParaPane() && container.acceptType(XWParameterLayout.class)) { promptButton.setText(Inter.getLocText("FR-Designer_Forbid_Drag_into_Para_Pane")); From 48f4dbb2e3eed98e283047bac4f5d8ff8f813e06 Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 22 Nov 2016 17:30:41 +0800 Subject: [PATCH 55/86] =?UTF-8?q?REPORT-747=20=E5=8D=95=E5=85=83=E6=A0=BC?= =?UTF-8?q?=E6=8B=B7=E8=B4=9D=E5=8F=AF=E5=A4=8D=E5=88=B6=E5=AE=BD=E9=AB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cell/clipboard/CellElementsClip.java | 20 ++++++++++++++++--- designer/src/com/fr/grid/GridUtils.java | 2 +- .../com/fr/grid/selection/CellSelection.java | 2 +- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/designer/src/com/fr/design/cell/clipboard/CellElementsClip.java b/designer/src/com/fr/design/cell/clipboard/CellElementsClip.java index 89015286da..44621af89d 100644 --- a/designer/src/com/fr/design/cell/clipboard/CellElementsClip.java +++ b/designer/src/com/fr/design/cell/clipboard/CellElementsClip.java @@ -17,12 +17,16 @@ import com.fr.report.elementcase.TemplateElementCase; * The clip of CellElement. */ public class CellElementsClip implements Cloneable, java.io.Serializable { + private int column; + private int row; private int columnSpan = 0; private int rowSpan = 0; private TemplateCellElement[] clips; - public CellElementsClip(int columnSpan, int rowSpan, TemplateCellElement[] clips) { + public CellElementsClip(int column, int row, int columnSpan, int rowSpan, TemplateCellElement[] clips) { + this.column = column; + this.row = row; this.columnSpan = columnSpan; this.rowSpan = rowSpan; @@ -81,10 +85,20 @@ public class CellElementsClip implements Cloneable, java.io.Serializable { column + cellElement.getColumn(), row + cellElement.getRow() ), false); } - + //设置单元格的宽高 + pasteWidthAndHeight(ec, column, row, columnSpan, rowSpan); return new CellSelection(column, row, columnSpan, rowSpan); } - + + public void pasteWidthAndHeight(TemplateElementCase ec, int column, int row, int columnSpan, int rowSpan){ + for(int i = 0; i Date: Thu, 24 Nov 2016 11:57:48 +0800 Subject: [PATCH 56/86] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 447 +++++++++++++++++ .../design/locale/designer_en_US.properties | 446 +++++++++++++++++ .../design/locale/designer_ja_JP.properties | 424 +++++++++++++++++ .../design/locale/designer_ko_KR.properties | 420 ++++++++++++++++ .../design/locale/designer_zh_CN.properties | 450 ++++++++++++++++++ .../design/locale/designer_zh_TW.properties | 439 +++++++++++++++++ 6 files changed, 2626 insertions(+) create mode 100644 designer_base/src/com/fr/design/locale/designer.properties create mode 100644 designer_base/src/com/fr/design/locale/designer_en_US.properties create mode 100644 designer_base/src/com/fr/design/locale/designer_ja_JP.properties create mode 100644 designer_base/src/com/fr/design/locale/designer_ko_KR.properties create mode 100644 designer_base/src/com/fr/design/locale/designer_zh_CN.properties create mode 100644 designer_base/src/com/fr/design/locale/designer_zh_TW.properties diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties new file mode 100644 index 0000000000..c524eb93d5 --- /dev/null +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -0,0 +1,447 @@ +# generated time: 星期四 十一月 24 11:56:39 CST 2016 +FR-Designer-BBSLogin_Account= +FR-Designer-BBSLogin_Connection-Failure= +FR-Designer-BBSLogin_Connection-Failure-Tip= +FR-Designer-BBSLogin_Forgot-Password= +FR-Designer-BBSLogin_Login= +FR-Designer-BBSLogin_Login-Failure-Tip= +FR-Designer-BBSLogin_Password= +FR-Designer-BBSLogin_Password-Empty-Tip= +FR-Designer-BBSLogin_Register-Account= +FR-Designer-BBSLogin_Switch-Account= +FR-Designer-BBSLogin_Privite-Message= +FR-Designer-BBSLogin_Times= +FR-Designer-BBSLogin_Username-Empty-Tip= +FR-Designer-Basic_More_Color= +FR-Designer-Estate_Any= +FR-Designer-Estate_Default_Font= +FR-Designer-Estate_Default_Null= +FR-Designer-Estate_Default_Text= +FR-Designer-Estate_Parameter_Null_Text= +FR-Designer-Estate_Radio-Group= +FR-Designer-Estate_Selected_Font= +FR-Designer-Estate_Widget_Value= +FR-Designer-Layout_Adaptive_Layout= +FR-Designer-Output_Background_Set= +FR-Designer-Output_Default_Background= +FR-Designer-Output_Excel_Page= +FR-Designer-Output_Excel_Sheet= +FR-Designer-Output_Excel_Simple= +FR-Designer-Plugin_PluginMarket_Coding= +FR-Designer-Submit_Condition= +FR-Designer-Widget-Title_border= +FR-Designer-Widget-Title_border_color= +FR-Designer_AbsoluteLayout= +FR-Designer_Allow_Decimals= +FR-Designer_Allow_Negative= +FR-Designer_Background-Click= +FR-Designer_Background-Initial= +FR-Designer_Background-Over= +FR-Designer_Bar-Code-Exception-Tip= +FR-Designer_Block-intersect= +FR-Designer_BorderLayout= +FR-Designer_Button-Hotkeys= +FR-Designer_Button-Icon= +FR-Designer_Button-Name= +FR-Designer_Button-Type= +FR-Designer_CardLayout= +FR-Designer_Cell= +FR-Designer_Chart_Cell= +FR-Designer_Chart_Float= +FR-Designer_Chart_Float_chart= +FR-Designer_Check-for-Updates= +FR-Designer_Choose-Data-Confusion-Tip= +FR-Designer_Close= +FR-Designer_Column= +FR-Designer_Column_Measure= +FR-Designer_Condition_Attributes= +FR-Designer_Confusion-Col-Name= +FR-Designer_Confusion-key= +FR-Designer_Currency_Line= +FR-Designer_Current_tab= +FR-Designer_Custom= +FR-Designer_Custom-Angle= +FR-Designer_DS-Dictionary= +FR-Designer_Data-confusion= +FR-Designer_Data_Type= +FR-Designer_Double_Click_Edit_OR_Clear= +FR-Designer_Email= +FR-Designer_Enabled= +FR-Designer_End-Date= +FR-Designer_ExportAndOutput= +FR-Designer_FRFont= +FR-Designer_FS_Close_Other_Templates= +FR-Designer_File= +FR-Designer_Filter_Conditions= +FR-Designer_Finish-Modify-Share= +FR-Designer_Fit-App= +FR-Designer_Font-Family= +FR-Designer_Font-Size= +FR-Designer_Forbid_Drag_into_Adapt_Pane=Forbid Drag into Para Pane +FR-Designer_Forbid_Drag_into_Para_Pane=Forbid Drag into Para Pane +FR-Designer_Foreground= +FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=Form authority editing can not be supported +FR-Designer_Form-Report= +FR-Designer_Form_EmbeddedTD= +FR-Designer_Form_Module=Form Module +FR-Designer_Format_explan= +FR-Designer_Formula= +FR-Designer_Forum= +FR-Designer_Get-Cube= +FR-Designer_Help= +FR-Designer_Hide= +FR-Designer_Hyperlink= +FR-Designer_Hyperlink-Form_link= +FR-Designer_IDCard= +FR-Designer_Icon= +FR-Designer_Index= +FR-Designer_Input_Rule= +FR-Designer_Language_Default= +FR-Designer_Layout= +FR-Designer_Layout-HBox= +FR-Designer_Layout-Index= +FR-Designer_Layout_Constraints= +FR-Designer_Length= +FR-Designer_Loading_Data= +FR-Designer_M-Exit= +FR-Designer_M-Help= +FR-Designer_M-Insert= +FR-Designer_M-Repeat-Freeze= +FR-Designer_M-Server= +FR-Designer_M-SwitchWorkspace= +FR-Designer_M-Template= +FR-Designer_MDX_Explain= +FR-Designer_M_Help-About_Software= +FR-Designer_M_Help-Tutorial= +FR-Designer_Max_Value= +FR-Designer_Min_Value= +FR-Designer_MobilePhone= +FR-Designer_New_Value= +FR-Designer_None= +FR-Designer_PaperSize-Mobile= +FR-Designer_PaperSize-Mobile-Large= +FR-Designer_PaperSize-Mobile-Small= +FR-Designer_Para-Body= +FR-Designer_Parameters= +FR-Designer_Phone= +FR-Designer_PostCode= +FR-Designer_Present= +FR-Designer_Preview= +FR-Designer_Preview-Data-Confusion= +FR-Designer_Product_Demo= +FR-Designer_Query_Type= +FR-Designer_Refresh= +FR-Designer_Refresh_Parameter_In_SQL= +FR-Designer_Reg_Expressions= +FR-Designer_Reg_Max_Length= +FR-Designer_Reg_Min_Length= +FR-Designer_ReportColumns-Columns= +FR-Designer_Return-Date= +FR-Designer_RichText= +FR-Designer_RichTextEditor= +FR-Designer_Row= +FR-Designer_Row_Dimension= +FR-Designer_Save= +FR-Designer_Search=Search +FR-Designer_Set= +FR-Designer_Share-Template= +FR-Designer_Simple_general= +FR-Designer_Song_TypeFace=Song TypeFace +FR-Designer_Start-Date= +FR-Designer_Subscript= +FR-Designer_Superscript= +FR-Designer_Support_QQ= +FR-Designer_Swatch= +FR-Designer_Tab_title= +FR-Designer_TableData= +FR-Designer_Thank_guest= +FR-Designer_Thanks-To= +FR-Designer_Title= +FR-Designer_Total=Total +FR-Designer_UnSignIn= +FR-Designer_Underline= +FR-Designer_Used= +FR-Designer_User-defined-MDX= +FR-Designer_SampleText= +FR-Designer_Vertical-LeftToRight= +FR-Designer_Vertical-RightToLeft= +FR-Designer_VerticalBoxLayout= +FR-Designer_Visible= +FR-Designer_WLayout-Border-ToolTips= +FR-Designer_WaterMark= +FR-Designer_Widget= +FR-Designer_Widget-Settings= +FR-Designer_Widget-Visible= +FR-Designer_XMLA_Explain= +FR-Designer_bold= +FR-Designer_font= +FR-Designer_italic= +FR-Designer_product_feedback= +FR-Designer_XMLA= +FR-Designer-StyleAlignment_Layout_Default=Default +FR-Designer-StyleAlignment_Layout_Image_Titled=Titled +FR-Designer-StyleAlignment_Layout_Image_Extend=Extend +FR-Designer-StyleAlignment_Layout_Image_Adjust=Adapt +FR-Designer-StyleAlignment_Tooltips_Left=Left +FR-Designer-StyleAlignment_Tooltips_Center=Center +FR-Designer-StyleAlignment_Tooltips_Right=Right +FR-Designer-StyleAlignment_Tooltips_Distributed=Distributed +FR-Designer-StyleAlignment_Tooltips_DEFAULT=DEFAULT +FR-Designer-StyleAlignment_Tooltips_Top=Top +FR-Designer-StyleAlignment_Tooltips_Bottom=Bottom +FR-Designer-StyleAlignment_Pane_Horizontal=Horizontal +FR-Designer-StyleAlignment_Pane_Vertical=Vertical +FR-Designer-StyleAlignment_Pane_Style=Alignment-Style +FR-Designer-StyleAlignment_Style_Indentation=Indentation +FR-Designer-StyleAlignment_Style_Spacing=Spacing +FR-Designer-StyleAlignment_Style_Alignment=Alignment +FR-Designer-CommitTab_Submit=Submit +FR-Designer-CommitTab_SureToDelete=Sure to delete +FR-Designer-CommitTab_Remove=Remove +FR-Designer-Collect_Information_free=Free +FR-Designer-Collect_Information_Description=Description +FR-Designer-Collect_Information_Successfully=Collect Successfully +FR-Designer_Event_Set= +FR-Designer_Blow_set= +FR-Designer_I_Want_To_Set_Single= +FR-Designer_Using_Server_Report_View_Settings= +FR-Designer_ErrorHandlerTemplate= +FR-Designer_Save_Path= +FR-Designer_Chart_Acc_Set=Chart_Acc_Set +FR-Designer_Gradient-Color=Gradient Color +FR-Designer_DEFAULT=DEFAULT +FR-Designer_chart-PreStyle=Chart PreStyle +FR-Designer_Chart-PreStyle=Chart PreStyle +FR-Designer_Already_exist= +FR-Designer_Database=Database +FR-Designer_Model=Model +FR-Designer_Refresh_Successfully=Refresh Successfully +FR-Designer_SQL-Table=Table +FR-Designer_SQL-View=View +FR-Designer_Failed=SyncFailed +FR-Designer_Chart_Field_Name= +FR-Designer_FormulaD-Text=Text +FR-Designer_FormulaD-Logical=Logical Function +FR-Designer_FormulaD-Array=Array +FR-Designer_FormulaD-Report=Report Function +FR-Designer_FormulaD-Other=Other Function +FR-Designer_FormulaD-All=All Function +FR-Designer_Function=Function +FR-Designer_Select=Select +FR-Designer_Edit=Edit +FR-Designer_Description=Function Description +FR-Designer_Role_changed_isRefresh=Roles change, whether to refresh +FR-Designer_FS_Name=FS_Name +FR-Designer_Datasource-Parameter=Data Source +FR-Designer_Tree-ComboBox=Tree ComboBox +FR-Designer_Form-Iframe=Form-Iframe +FR-Designer_Type=Type +FR-Designer_User-defined=User_defined bapiFunction +FR-Designer_Simple_general_forV6=Simple general query for ECC6 +FR-Designer_Import=Import +FR-Designer_Export=Export +FR-Designer_Delete=Delete +FR-Designer_Sequenced_number=Sequenced number +FR-Designer_Parameters_name=parameters name +FR-Designer_SAP_datatype=SAP datatype +FR-Designer_Return_set_name=Return set +FR-Designer_Datatype=Datatype +FR-Designer_Corre_parameter=Corresponse parameter +FR-Designer_Default_value=Default value of parameter +FR-Designer_SAP_column_name=Column name +FR-Designer_Table_name=Table name +FR-Designer_Columns_choosed=Columns choosed by user +FR-Designer_Where_claus=Where claus of open sql +FR-Designer_PreStyle= +FR-Designer_Table= +FR-Designer_Loading= +FR-Designer_Name=Name +FR-Designer_EmailPane-tips= you can type $ {abc} as a parameter, abc is the parameter name; $ {today ()} as a formula, such as\: title text is "$ {today ()} statistics", addressed to "$ {p}, 123@gmail.com, mike ", where mike must has saved in the user management platform as username +FR-Designer_EmailPane-mailContent=Email Body +FR-Designer_EmailPane-BCC=BCC +FR-Designer_EmailPane-mailSubject=Email Subject +FR-Designer_EmailPane-warnings=You have not configured the sender mailbox, please visit the platform configuration or contact the administrator +FR-Designer_Email_sentEmail=sentEmail +FR-Designer_file-is-locked= +FR-Designer_Custom_Icon_Message1=The 16 * 16 standard PNG image is better. +FR-Designer_Add=Add +FR-Designer_Custom_Icon_Message2=The icon name is exist or your operation is unreasonable. +FR-Designer_Tooltips=Tooltips +FR-Designer_Remove=Remove +FR-Designer_Custom_Icon_SelectIcon=Select Icon +FR-Designer_Click_this_button=Click this button to set path +FR-Designer_Custom_Icon_Message3=The icon name is exist. +FR-Designer_Set_default_browser= +FR-Designer_Open=Open +FR-Designer_Utils-OpenDemoEnv= +FR-Designer_Utils-switch=\nThe current unsaved editing files will be saved under current envir0ment\uFF0C\n go on\uFF1F +FR-Designer_Utils-NewDemoEnv=Utils-NewDemoEnv +FR-Designer_Save_As_Global_Style=Save As Global Style +FR-Designer_Input_The_Name_Of_Gloabel_Style=Input The Name Of Gloabel Style +FR-Designer_This_Name_Has_Exsit=This Name Has Exist +FR-Designer_Shortcut_Set= +FR-Designer_Feature_Name= +FR-Designer_Cursor_to_next_column= +FR-Designer_Cursor_to_next_row= +FR-Designer_Current_keys= +FR-Designer_Exchange_key= +FR-Designer_System_default= +FR-Designer_Cursor_to_previous_column= +FR-Designer_Cursor_to_previous_row= +FR-Designer_Are_You_Sure_To_Delete_The_Data=Are_You_Sure_To_Delete_The_Data +FR-Designer_Show_Icon=Show_Icon +FR-Designer_Show_Text=Show_Text +FR-Designer_User_Defined_Event=User Defined Event +FR-Designer_Output_PDF=Output_PDF +FR-Designer_Output_Word=Output_Word +FR-Designer_Image=Image +FR-Designer_Flash_Print=Flash_Print +FR-Designer_PDF_Print=PDF_Print +FR-Designer_Applet_Print=Applet_Print +FR-Designer_Server_Print=Server_Print +FR-Designer_Use_ToolBar=Use ToolBar +FR-Designer_Report_Show_Location=Report Show Location +FR-Designer_Is_Paint_Page=Is_Paint_Page +FR-Designer_IS_Auto_Scale=Is auto scale in iframe +FR-Designer_IS_TD_HEAVY_EXPORT=Is TD Heavy Export +FR-Designer_Top=Top +FR-Designer_Bottom=Bottom +FR-Designer-Collect_OSXTips=Tip\: Press control + v to paste the activation code +FR-Designer_X_Coordinate=X Coordinate +FR-Designer_Y_Coordinate=Y Coordinate +FR-Designer_Widget_Width=Width +FR-Designer_Widget_Height=Height +FR-Designer_Min_Height=Min-Height +FR-Designer_LeftParent=Left Parent +FR-Designer-PluginLicense_Check_Failed=Your plugin license file has expired,please re-activate +FR-Designer-File_address=File address +FR-Designer-Local_file=Local file +FR-Designer_Selection=Selection +FR-Designer-Type_Parameter= +FR-Designer_Add_JS_warning=add js warning +FR-Designer-Encoding_Type=Encoding +FR-Designer-FirstRow_IS_ColumnName=First Row is Column name +FR-Designer_Dismenber=Dismenber +FR-Designer_TableDismember=Tab +FR-Designer_Space=Space +FR-Designer_CommaDismenber=CommaDismenber +FR-Designer_Other=Other +FR-Designer-Series_Dismenber_As_Single= +FR-Designer_KeyPoint=KeyPoint +FR-Designer_loadedTreeModel=loadedTreeModel +FR-Designer-Failed_to_load_the_plugin=Failed to load the plugin\uFF0Cplease update the plugin\: +FR-Designer-Plugin_Please_Update_Jar= +FR-Designer-Invalid_Page_Number=Invalid Page Number +FR-Designer_XMLA_Database=Database +FR-Designer_XMLA_UserName=User name +FR-Designer_XMLA_Password=Password +FR-Designer_XMLA_Get_Catalog=Get Catalog +FR-Designer_XMLA_Not_NULL=Can not be null +FR-Designer_Column-Axis=Column_Axis +FR-Designer_LiteCondition_Common=Common +FR-Designer_LiteCondition_Formula=Formula +FR-Designer_LiteCondition_ConditionB-AND=AND +FR-Designer_LiteCondition_ConditionB-OR=OR +FR-Designer_LiteCondition_Common_Condition=Common Condition +FR-Designer_LiteCondition_Formula_Condition=Formula Condition +FR-Designer_LiteCondition_Define=Define +FR-Designer_Normal= +FR-Designer_Alert= +FR-Designer_Select_All= +FR-Designer_Copy= +FR-Designer_Clear_All= +FR-Designer_Log= +FR-Designer-Plugin_Expire_Dialog_Title=Plug expired +FR-Designer-Plugin_Expire_Dialog_Text=Plugin expired, go sail soft application center to make a purchase. +FR-Designer-Plugin_Finerest_Addon=Fineres Addon +FR-Designer_Performance_First= +FR-Designer_Total_N_Grade=Total-N-Grade +FR-Designer-BBSLogin_Login-Title= +FR-Designer_time(s)= +FR-Designer_General= +FR-Designer_Advanced= +FR-Designer_Oracle_All_Tables= +FR-Designer_Product_improve= +FR-Designer_Join_Product_improve= +FR-Designer_Preference-Function= +FR-Designer_max_undo_limit= +FR-Designer_Surport_String_To_Formula= +FR-Designer_Always= +FR-Designer_Export_Setting= +FR-Designer_Select_Export_Log_Directory= +FR-Designer_Level_Setting= +FR-Designer_Choose_Language= +FR-Designer_Work_After_Restart_Designer= +FR-Designer_Setting-Ruler-Units= +FR-Designer_PageSetup-mm= +FR-Designer_Unit_CM= +FR-Designer_Page-Setup-Scale-Units= +FR-Designer_Report-Design-Ruler-Units= +FR-Designer_Web_Preview_Port_Setting= +FR-Designer_Designer_Language= +FR-Designer_Unit_INCH= +FR-Designer_Web_Preview_Port= +FR-Designer_Unit_PT= +FR-Designer-Write_Auto_Stash=auto stash +FR-Designer_Printer_Native_Button= +FR-Designer_Event_ShowWidgets= +FR-Designer_Current_Preview_Rows= +FR-Designer_Data=Data +FR-Designer_Error=Error +FR-Designer_formDesignerModule= +FR-Designer-Website_Url= +FR-Designer-BBSLogin_Download-Unlogin-Tip= +FR-Designer-App_ReLayout=AppRelayout +FR-Designer_Mobile-Attr= +FR-Designer_Mobile-Vertical= +FR-Designer_Mobile-Horizontal= +FR-Designer_COMMUNITY= +FR-Designer_COMMUNITY_BBS= +FR-Designer_COMMUNITY_VIDEO= +FR-Designer_COMMUNITY_HELP= +FR-Designer_COMMUNITY_UPDATE= +FR-Designer_COMMUNITY_NEED= +FR-Designer_COMMUNITY_BUG= +FR-Designer_COMMUNITY_SIGN= +FR-Designer_COMMUNITY_QUESTIONS= +FR-Designer_Mobile-Zoom= +FR-Designer_Mobile-Open= +FR-Designer_Mobile-Warning= +FR-Designer_Button-OK=OK +FR-Designer_Button-Cancel=Cancel +FR-Designer_Write-Save-Formula= +FR-Designer_Export-Save-Formula= +FR-Designer_Form-Fit-Tip= +FR-Designer_Form-Frozen-Tip= +FR-Designer_Form-Forzen-Speed= +FR-Designer_Attention= +FR-Designer_Forbid_Widgets_Intersects= +FR-Designer_Widget_Scaling_Mode_Fit= +FR-Designer_Widget_Scaling_Mode_Fixed= +FR-Designer-Widget_Area_Scaling= +FR-Designer-Widget_Scaling_Mode= +FR-Designer-QQLogin-Determine= +FR-Designer-QQLogin-Cancel= +FR-Designer-Reuse_Manager=Reuse Manager +FR-Designer_TableData-Default-Para=Default Para +FR-Designer_Layout_Block_Absolute=Absolute Layout Block +FR-Designer_Layout_Block_Tab=Tab Layout +FR-Designer_Allow-Blank= +FR-Designer_Layout_Block_Blank=Blank Block +FR-Designer_Attr_Layout=layout +FR-Designer_Attr_Layout_Type=layout type +FR-Designer_Attr_Bidirectional_Adaptive=Bidirectional Adaptive +FR-Designer-Selected_Widget= +FR-Designer_LocalWidget= +FR-Designer_AllCategories= +FR-Designer_SimpleDetail_Report= +FR-Designer_SimpleCross_Report= +FR-Designer_DoubleLayer_Report= +FR-Designer_Download_Template= +FR-Designer_Install_Template= +FR-Designer_Delete_Template= +FR-Designer_Mobile-Refresh=refresh +FR-Designer_Mobile-ToolBar=toolbar +FR-Designer_WLayout-Absolute-ToolTips= +FR-Designer_Reset= +FR-Designer_Add_all= diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties new file mode 100644 index 0000000000..a35606663b --- /dev/null +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -0,0 +1,446 @@ +# generated time: 星期四 十一月 24 11:56:39 CST 2016 +FR-Designer-BBSLogin_Account=User name +FR-Designer-BBSLogin_Connection-Failure=Connection failure, check your network status +FR-Designer-BBSLogin_Connection-Failure-Tip=Tip +FR-Designer-BBSLogin_Forgot-Password=Forget Password +FR-Designer-BBSLogin_Login=Login +FR-Designer-BBSLogin_Login-Failure-Tip=Incorrect username or password! please try again +FR-Designer-BBSLogin_Password=Password +FR-Designer-BBSLogin_Password-Empty-Tip=Password can not be null +FR-Designer-BBSLogin_Register-Account=Register Account +FR-Designer-BBSLogin_Switch-Account=Switch Account +FR-Designer-BBSLogin_Privite-Message=Privite Message +FR-Designer-BBSLogin_Times=times +FR-Designer-BBSLogin_Username-Empty-Tip=User name can not be null +FR-Designer-Basic_More_Color=More Color... +FR-Designer-Estate_Any=Any +FR-Designer-Estate_Default_Font=Default font +FR-Designer-Estate_Default_Null=Default null +FR-Designer-Estate_Default_Text=Default +FR-Designer-Estate_Parameter_Null_Text=Parameter is null, then display as +FR-Designer-Estate_Radio-Group=Common button group controls of real estate +FR-Designer-Estate_Selected_Font=Selected font +FR-Designer-Estate_Widget_Value=Control value +FR-Designer-Layout_Adaptive_Layout=Adaptive layout +FR-Designer-Output_Background_Set=Background set +FR-Designer-Output_Default_Background=Default background +FR-Designer-Output_Excel_Page=Excel Export(page break) +FR-Designer-Output_Excel_Sheet=Excel Export(one page per sheet) +FR-Designer-Output_Excel_Simple=Excel Export(original) +FR-Designer-Plugin_PluginMarket_Coding=Plugin store is developing, stay tuned +FR-Designer-Submit_Condition=Condition +FR-Designer-Widget-Title_border=Border +FR-Designer-Widget-Title_border_color=Color +FR-Designer_AbsoluteLayout=Absolute Layout +FR-Designer_Allow_Decimals=allow decimals +FR-Designer_Allow_Negative=allow negative +FR-Designer_Background-Click=Click Background +FR-Designer_Background-Initial=Initial Background +FR-Designer_Background-Over=Over Background +FR-Designer_Bar-Code-Exception-Tip=Data cannot be null +FR-Designer_Block-intersect=The overlap between block and block is prohibited +FR-Designer_BorderLayout=BorderLayout +FR-Designer_Button-Hotkeys=Hotkeys +FR-Designer_Button-Icon=Button Icon +FR-Designer_Button-Name=Button Name +FR-Designer_Button-Type=Button Type +FR-Designer_CardLayout=TabLayout +FR-Designer_Cell=cell +FR-Designer_Chart_Cell=Chart Hyperlink-Link Cell +FR-Designer_Chart_Float=Chart Hyperlink-Floating Elements +FR-Designer_Chart_Float_chart=Chart Hyperlink-Floating-window Chart +FR-Designer_Check-for-Updates=Check for Updates +FR-Designer_Choose-Data-Confusion-Tip=\ Please Choose the field needed to be confused and then preview +FR-Designer_Close=close +FR-Designer_Column=column +FR-Designer_Column_Measure=Column axis/measure +FR-Designer_Condition_Attributes=Condition attributes +FR-Designer_Confusion-Col-Name=Field Name +FR-Designer_Confusion-key=Confusion Key +FR-Designer_Currency_Line=currency line +FR-Designer_Current_tab=Current tab +FR-Designer_Custom=Custom +FR-Designer_Custom-Angle=Custom Angle +FR-Designer_DS-Dictionary=Data Dictionary +FR-Designer_Data-confusion=Data Confusion +FR-Designer_Data_Type=Data type +FR-Designer_Double_Click_Edit_OR_Clear=Double Click to Edit or Clear +FR-Designer_Email=Mail +FR-Designer_Enabled=Enabled +FR-Designer_End-Date=End Date +FR-Designer_ExportAndOutput=Export +FR-Designer_FRFont=Font +FR-Designer_FS_Close_Other_Templates=Close other templates +FR-Designer_File=file +FR-Designer_Filter_Conditions=Filter condition +FR-Designer_Finish-Modify-Share=Finish Modification And Share +FR-Designer_Fit-App=App self-adaption +FR-Designer_Font-Family=Font name +FR-Designer_Font-Size=Font size +FR-Designer_Forbid_Drag_into_Adapt_Pane=Form body cannot be dragged into the object +FR-Designer_Forbid_Drag_into_Para_Pane=The object cannot be dragged into the parameter panel +FR-Designer_Foreground=Foreground +FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=Form permissions edition is not supported +FR-Designer_Form-Report=Report block +FR-Designer_Form_EmbeddedTD=Form(built-in data) +FR-Designer_Form_Module=Form Module +FR-Designer_Format_explan=Format explain +FR-Designer_Allow-Blank=Allow Blank +FR-Designer_Formula=Formula +FR-Designer_Forum=Forum +FR-Designer_Get-CubeGetting cube= +FR-Designer_Help=Help +FR-Designer_Hide=Hide +FR-Designer_Hyperlink=Hyperlink +FR-Designer_Hyperlink-Form_link=Current form object +FR-Designer_IDCard=IDCard +FR-Designer_Icon=Icon +FR-Designer_Index=index +FR-Designer_Input_Rule=Input Rule +FR-Designer_Language_Default=Default +FR-Designer_Layout=Layout +FR-Designer_Layout-HBox=Horizontal Box Layout +FR-Designer_Layout-Index=Layout Index +FR-Designer_Layout_Constraints=Layout Constraints +FR-Designer_Length=Length +FR-Designer_Loading_Data=Loading Data +FR-Designer_M-Exit=Exit +FR-Designer_M-Help=Help +FR-Designer_M-Insert=Insert +FR-Designer_M-Repeat-Freeze=Duplicate and freeze +FR-Designer_M-Server=Server +FR-Designer_M-SwitchWorkspace=Switch Working Directory +FR-Designer_M-Template=Template +FR-Designer_MDX_Explain=Syntax Reference MDX syntax.\nFor example\:\nWITH\nMEMBER [Measures].[Special Discount] AS\n[Measures].[Discount Amount] * 1.5\nSELECT\n[Measures].[Special Discount] on COLUMNS,\nNON EMPTY [Product].[Product].MEMBERS ON Rows\nFROM [Adventure Works]\nWHERE [Product].[Category].[Bikes]\nNOTE\: COLUMNS, ROWS can be replaced by 0,1, the query axis only supports returning two axis +FR-Designer_M_Help-About_Software=About software +FR-Designer_M_Help-Tutorial=Help tutorial +FR-Designer_Max_Value=max value +FR-Designer_Min_Value=min value +FR-Designer_MobilePhone=Mobile phone +FR-Designer_New_Value=new value +FR-Designer_None=none +FR-Designer_PaperSize-Mobile=Mobile +FR-Designer_PaperSize-Mobile-Large=Large screen +FR-Designer_PaperSize-Mobile-Small=Small screen +FR-Designer_Para-Body=Parameter interface +FR-Designer_Parameters=Parameters +FR-Designer_Phone=Phone +FR-Designer_PostCode=Postcode +FR-Designer_Present=present +FR-Designer_Preview=Preview +FR-Designer_Preview-Data-Confusion=Preview Data After Confusion +FR-Designer_Product_Demo=Demo +FR-Designer_Query_Type=Query type +FR-Designer_Refresh=Refresh +FR-Designer_Refresh_Parameter_In_SQL=Whether to refresh parameters in the SQL +FR-Designer_Reg_Expressions=Regular expressions +FR-Designer_Reg_Max_Length=max length +FR-Designer_Reg_Min_Length=min length +FR-Designer_ReportColumns-Columns=Multi-columns/lines +FR-Designer_Return-Date=Return Date +FR-Designer_RichText=Insert Rich Text +FR-Designer_RichTextEditor=Rich Text Editor +FR-Designer_Row=Row +FR-Designer_Row_Dimension=Row/dimension +FR-Designer_Save=Save +FR-Designer_Search=Search +FR-Designer_Set=Set +FR-Designer_Share-Template=Share Template +FR-Designer_Simple_general=Simple custom query +FR-Designer_Song_TypeFace=song typeface +FR-Designer_Start-Date=Start Date +FR-Designer_Subscript=Subscript +FR-Designer_Superscript=Superscript +FR-Designer_Support_QQ=Support online +FR-Designer_Swatch=Swatch +FR-Designer_Tab_title=Tab title +FR-Designer_TableData=Data set +FR-Designer_Thank_guest=Special Thanks +FR-Designer_Thanks-To=Thanks +FR-Designer_Title=Title +FR-Designer_Total=Total +FR-Designer_UnSignIn=Not Sign In +FR-Designer_Underline=Underline +FR-Designer_Used=Recently Used +FR-Designer_User-defined-MDX=Custom MDX query +FR-Designer_SampleText=SampleText SampleText +FR-Designer_Vertical-LeftToRight=Vertical Text (Left to Right) +FR-Designer_Vertical-RightToLeft=Vertical Text (Right To Left) +FR-Designer_VerticalBoxLayout=Vertical Box Layout +FR-Designer_Visible=Visible +FR-Designer_WLayout-Border-ToolTips=The complete border layout container\uFF0Cis composed of central, eastern, western, northern and southern parts. You can adjust the height of the northern and southern ones and the width of the eastern and western ones. +FR-Designer_WaterMark=WaterMark +FR-Designer_Widget=Control +FR-Designer_Widget-Settings=Control Settings +FR-Designer_Widget-Visible=Visible +FR-Designer_XMLA_Explain=Before using the cube access data, you need a successfully multi-database connection. \ n There are two different access methods. \ n1. Simple custom queries: \ n it applies to FineBI and other multidimensional database. \ n FR will automatically read the hierarchy of the selected cube, you can directly select the metric and dimension, and add filter conditions, FR will automatically query the data based on your selections. \ n Simple custom query only support metric and dimensions query. \ n In the metric and dimension settings, currently you can only select the desired dimension, can not be modified manually. \ n Filters using OPEN SQL, you can type $ {abc} as a parameter, the method same with database data sets. \ n2. custom MDX query: \ n You can customize the MDX statement to query the desired result. \ n NOTE custom MDX query only support two axes queries. \ n You can type $ {abc} as a parameter, the method same with database data sets. \ nThe cube of FineBI does not support MDX queries. +FR-Designer_bold=Bold +FR-Designer_font=Font +FR-Designer_italic=Italic +FR-Designer_product_feedback=Product feedback +FR-Designer_XMLA=Multi-dimensional DB +FR-Designer-StyleAlignment_Layout_Default=Default +FR-Designer-StyleAlignment_Layout_Image_Titled=Tile +FR-Designer-StyleAlignment_Layout_Image_Extend=Stretch +FR-Designer-StyleAlignment_Layout_Image_Adjust=Adapt +FR-Designer-StyleAlignment_Tooltips_Left=Left +FR-Designer-StyleAlignment_Tooltips_Center=Center +FR-Designer-StyleAlignment_Tooltips_Right=Right +FR-Designer-StyleAlignment_Tooltips_Distributed=Distributed +FR-Designer-StyleAlignment_Tooltips_DEFAULT=Default +FR-Designer-StyleAlignment_Tooltips_Top=Top +FR-Designer-StyleAlignment_Tooltips_Bottom=Bottom +FR-Designer-StyleAlignment_Pane_Horizontal=Horizontal align +FR-Designer-StyleAlignment_Pane_Vertical=Vertical align +FR-Designer-StyleAlignment_Pane_Style=Alignment +FR-Designer-StyleAlignment_Style_Indentation=Indentation +FR-Designer-StyleAlignment_Style_Spacing=Spacing +FR-Designer-StyleAlignment_Style_Alignment=Alignment +FR-Designer-CommitTab_Submit=Submit +FR-Designer-CommitTab_SureToDelete=Sure to delete +FR-Designer-CommitTab_Remove=Remove +FR-Designer-Collect_Information_free=Free +FR-Designer-Collect_Information_Description=Description +FR-Designer-Collect_Information_Successfully=Collect Successfully +FR-Designer_Chart_Acc_Set=Acc +FR-Designer_Gradient-Color=Gradient +FR-Designer_DEFAULT=DEFAULT +FR-Designer_chart-PreStyle=Chart PreStyle +FR-Designer_Chart-PreStyle=Chart PreStyle +FR-Designer_Already_exist=Already Exist +FR-Designer_Database=DB +FR-Designer_Model=Model +FR-Designer_Refresh_Successfully=Refresh successfully +FR-Designer_SQL-Table=Tab +FR-Designer_SQL-View=View +FR-Designer_Failed=Failed +FR-Designer_Chart_Field_Name=FieldName +FR-Designer_FormulaD-Text=Text +FR-Designer_FormulaD-Logical=Logical Function +FR-Designer_FormulaD-Array=Array +FR-Designer_FormulaD-Report=Report Function +FR-Designer_FormulaD-Other=Other Functions +FR-Designer_FormulaD-All=All Functions +FR-Designer_Function=Function +FR-Designer_Select=Sel +FR-Designer_Edit=Edit +FR-Designer_Description=Description +FR-Designer_Role_changed_isRefresh=Roles change, whether to refresh +FR-Designer_FS_Name=FineBI +FR-Designer_Datasource-Parameter=Datasource Parameter +FR-Designer_Tree-ComboBox=Tree Combobox +FR-Designer_Form-Iframe=Iframe +FR-Designer_Type=Type +FR-Designer_User-defined=User_defined +FR-Designer_Simple_general_forV6=Simple general for Version6+ +FR-Designer_Import=Import +FR-Designer_Export=Export +FR-Designer_Delete=Delete +FR-Designer_Sequenced_number=Sequenced number +FR-Designer_Parameters_name=parameters name +FR-Designer_SAP_datatype=SAP datatype +FR-Designer_Return_set_name=Return set +FR-Designer_Datatype=Datatype +FR-Designer_Corre_parameter=Corresponse parameter +FR-Designer_Default_value=Default value +FR-Designer_SAP_column_name=Column name +FR-Designer_Table_name=Table name +FR-Designer_Columns_choosed=Columns choosed +FR-Designer_Where_claus=Where claus +FR-Designer_PreStyle=Pre Style +FR-Designer_Loading=Loading +FR-Designer_Table=Table +FR-Designer_Name=Name +FR-Designer_EmailPane-tips= You can type $ {abc} as a parameter, abc is the parameter name; $ {today ()} as a formula, such as\: title text is "$ {today ()} statistics", addressed to "$ {p}, 123@gmail.com, mike ", where mike must has saved in the user management platform as username +FR-Designer_EmailPane-mailContent=Email Body +FR-Designer_EmailPane-BCC=BCC +FR-Designer_EmailPane-mailSubject=Email Subject +FR-Designer_EmailPane-warnings=Visit platform or contact administrator to configure sender mailbox +FR-Designer_Email_sentEmail=Sent Email +FR-Designer_file-is-locked=File is locked by others. +FR-Designer_Custom_Icon_Message1=The 16 * 16 standard PNG image is better. +FR-Designer_Add=Add +FR-Designer_Custom_Icon_Message2=The icon name is already exist or your operation is unreasonable. +FR-Designer_Tooltips=Tooltips +FR-Designer_Remove=Remove +FR-Designer_Custom_Icon_SelectIcon=Select icon +FR-Designer_Click_this_button=Click this button to set path +FR-Designer_Custom_Icon_Message3=The icon name is already exist. +FR-Designer_Set_default_browser=Cannot find the default browser, please set default browser in Intenet options . +FR-Designer_Open=Open +FR-Designer_Utils-OpenDemoEnv=To open the demo, it needs to switch to the workspace\: +FR-Designer_Utils-switch=\nThe current unsaved editing files will be saved under current environment?\nGo on? +FR-Designer_Utils-NewDemoEnv=To open the demo,it needs to create the workspace\: +FR-Designer_Save_As_Global_Style=Save as Global Style +FR-Designer_Input_The_Name_Of_Gloabel_Style=Input the name of gloabel style +FR-Designer_This_Name_Has_Exsit=This name has existed +FR-Designer_Shortcut_Set=Shortcut Setting +FR-Designer_Feature_Name=Feature Name\: +FR-Designer_Cursor_to_next_column=Move cursor to next column +FR-Designer_Cursor_to_next_row=Move cursor to next row +FR-Designer_Current_keys=Current keys\: +FR-Designer_Exchange_key=Click to exchange shortcut key +FR-Designer_System_default=System default +FR-Designer_Cursor_to_previous_column=Move cursor to previous column\: +FR-Designer_Cursor_to_previous_row=Move cursor to previous row\: +FR-Designer_Are_You_Sure_To_Delete_The_Data=Are you sure to delete the data +FR-Designer_Show_Icon=Show Icon of the Button +FR-Designer_Show_Text=Show Name of the Button +FR-Designer_User_Defined_Event=User Defined Event +FR-Designer_Output_PDF=Output PDF +FR-Designer_Output_Word=Output Word +FR-Designer_Image=Image +FR-Designer_Flash_Print=Flash Print +FR-Designer_PDF_Print=PDF Print +FR-Designer_Applet_Print=Applet Print +FR-Designer_Server_Print=Server Print +FR-Designer_Use_ToolBar=Use toolbar +FR-Designer_Report_Show_Location=Report Show Location +FR-Designer_Is_Paint_Page=Show as image +FR-Designer_IS_Auto_Scale=Auto scale when iframe is embedded +FR-Designer_IS_TD_HEAVY_EXPORT=Heavy TD +FR-Designer_Top=Top +FR-Designer_Bottom=Bottom +FR-Designer_Event_Set=Event Setup +FR-Designer_Blow_set=Following Settings +FR-Designer_I_Want_To_Set_Single=Individually set for the report +FR-Designer_Using_Server_Report_View_Settings=Use server report settings +FR-Designer_ErrorHandlerTemplate=Error Template Definition +FR-Designer_Save_Path=Save Path +FR-Designer-Collect_OSXTips=Tip\: Press control + v to paste the activation code +FR-Designer_X_Coordinate=Abscissa +FR-Designer_Y_Coordinate=Ordinate +FR-Designer_Widget_Width=Width +FR-Designer_Widget_Height=Height +FR-Designer_Min_Height=minheight +FR-Designer_LeftParent=Left Parent Cell +FR-Designer-PluginLicense_Check_Failed=Your plugin license file has expired,please re-activate +FR-Designer-File_address=File address +FR-Designer-Local_file=Local file +FR-Designer_Selection=Selection +FR-Designer-Type_Parameter= You can type "${abc}" as a parameter, here, abc is a parameter name.
 for example
+FR-Designer_Add_JS_warning=Type the correct URL +FR-Designer-Encoding_Type=Encoding Type +FR-Designer-FirstRow_IS_ColumnName=First row contains column headings +FR-Designer_Dismenber=Separator +FR-Designer_TableDismember=Tab +FR-Designer_Space=Space +FR-Designer_CommaDismenber=Comma +FR-Designer_Other=Other +FR-Designer-Series_Dismenber_As_Single=Regard consecutive separators as one +FR-Designer_KeyPoint=KeyPoint +FR-Designer_loadedTreeModel=loadedTreeModel +FR-Designer-Failed_to_load_the_plugin=Failed to load the plugin\uFF0Cplease update the plugin\: +FR-Designer-Plugin_Please_Update_Jar=Please Update Jar +FR-Designer-Invalid_Page_Number=Invalid Page Number +FR-Designer_XMLA_Database=DB +FR-Designer_XMLA_UserName=User name +FR-Designer_XMLA_Password=Password +FR-Designer_XMLA_Get_Catalog=Getting Catalog +FR-Designer_XMLA_Not_NULL=NOT NULL +FR-Designer_Column-Axis=Column Axis +FR-Designer_LiteCondition_Common=Common +FR-Designer_LiteCondition_Formula=Formula +FR-Designer_LiteCondition_ConditionB-AND=AND +FR-Designer_LiteCondition_ConditionB-OR=OR +FR-Designer_LiteCondition_Common_Condition=Common Condition +FR-Designer_LiteCondition_Formula_Condition=Formula Condition +FR-Designer_LiteCondition_Define=Define +FR-Designer_Normal=Normal +FR-Designer_Alert=Alert +FR-Designer_Select_All=Select All +FR-Designer_Copy=Copy +FR-Designer_Clear_All=Clear All +FR-Designer_Log=Log +FR-Designer-Plugin_Expire_Dialog_Title=Plug expired +FR-Designer-Plugin_Expire_Dialog_Text=Plugin expired, go sail soft application center to make a purchase. +FR-Designer-Plugin_Finerest_Addon=Fineres Addon +FR-Designer_Performance_First=Performance First +FR-Designer_Total_N_Grade=Total\:${N}Layer +FR-Designer-BBSLogin_Login-Title=BBS Login +FR-Designer_time(s)=time(s) +FR-Designer_General=Common +FR-Designer_Advanced=Advanced +FR-Designer_Validate=Validate +FR-Designer_Oracle=All Tables +FR-Designer_Product_improve=Product improvement +FR-Designer_Join_Product_improve=Join product improvement plan +FR-Designer_Preference-Function=Function +FR-Designer_max_undo_limit=Max +FR-Designer_Surport_String_To_Formula=Surport String To Formula +FR-Designer_Always=Default execute this operation +FR-Designer_Export_Setting=Export Configuration +FR-Designer_Select_Export_Log_Directory=Select Export Log Directory +FR-Designer_Level_Setting=Level Setting +FR-Designer_Choose_Language=Choose Language +FR-Designer_Work_After_Restart_Designer=Take effect when the designer is restarted +FR-Designer_Setting-Ruler-Units=Ruler Units Setting +FR-Designer_PageSetup-mm=mm +FR-Designer_Unit_CM=CM +FR-Designer_Page-Setup-Scale-Units=Page Setup Scale Units +FR-Designer_Report-Design-Ruler-Units=Report design ruler unit +FR-Designer_Web_Preview_Port_Setting=Port Setting +FR-Designer_Designer_Language=Designer Language +FR-Designer_Unit_INCH=INCH +FR-Designer_Web_Preview_Port=Port number +FR-Designer_Oracle_All_Tables=All Tables +FR-Designer_Unit_PT=Pound +FR-Designer-Write_Auto_Stash=auto stash +FR-Designer_Printer_Native_Button=Native Print +FR-Designer_Event_ShowWidgets=Display widgets directly +FR-Designer_Current_Preview_Rows=Current Number of Preview Rows +FR-Designer_Data=Data +FR-Designer_Error=Error +FR-Designer_formDesignerModule=Form Designer +FR-Designer-Website_Url=http\://www.finereport.com/en +FR-Designer-BBSLogin_Download-Unlogin-Tip= +FR-Designer-App_ReLayout=AppRelayout +FR-Designer_Mobile-Attr=Mobile Attr +FR-Designer_Mobile-Vertical=Vertical Screen +FR-Designer_Mobile-Horizontal=Horizontal Screen +FR-Designer_COMMUNITY=community +FR-Designer_COMMUNITY_BBS=bbs +FR-Designer_COMMUNITY_VIDEO=video +FR-Designer_COMMUNITY_HELP=help +FR-Designer_COMMUNITY_UPDATE=update +FR-Designer_COMMUNITY_NEED=need +FR-Designer_COMMUNITY_BUG=bug report +FR-Designer_COMMUNITY_SIGN=sign +FR-Designer_COMMUNITY_QUESTIONS=questions +FR-Designer_Mobile-Zoom=zoom +FR-Designer_Mobile-Open=Open +FR-Designer_Mobile-Warning= +FR-Designer_Button-OK=OK +FR-Designer_Button-Cancel=Cancel +FR-Designer_Write-Save-Formula=Preserve formula when fill +FR-Designer_Export-Save-Formula=Preserve formula when export +FR-Designer_Form-Fit-Tip=Fit Plugin +FR-Designer_Form-Frozen-Tip=When Use Form Frozen, Suggest Install +FR-Designer_Form-Forzen-Speed=To Speed UP. +FR-Designer_Attention=attention +FR-Designer_Forbid_Widgets_Intersects=Forbid Widgets Intersects +FR-Designer_Widget_Scaling_Mode_Fit=Area-Fit +FR-Designer_Widget_Scaling_Mode_Fixed=Area-Fixed +FR-Designer-Widget_Area_Scaling=Widget Area Scaling +FR-Designer-Widget_Scaling_Mode=Widget Scaling Mode +FR-Designer-QQLogin-Determine=Determine +FR-Designer-QQLogin-Cancel=Cancel +FR-Designer-Reuse_Manager=Reuse Manager +FR-Designer_TableData-Default-Para=Default Para +FR-Designer_Layout_Block_Absolute=Absolute Layout Block +FR-Designer_Layout_Block_Tab=TabLayout +FR-Designer_Layout_Block_Blank=Blank Block +FR-Designer_Attr_Layout=layout +FR-Designer_Attr_Layout_Type=layout type +FR-Designer_Attr_Bidirectional_Adaptive=Bidirectional Adaptive +FR-Designer-Selected_Widget=selected widget +FR-Designer_LocalWidget=local widget +FR-Designer_AllCategories=all categories +FR-Designer_Download_Template=download template +FR-Designer_Install_Template=install template +FR-Designer_Delete_Template=delete template +FR-Designer_Mobile-Refresh=refresh +FR-Designer_Mobile-ToolBar=toolbar +FR-Designer_WLayout-Absolute-ToolTips=Freestyle layout, add control in any position of the layout +FR-Designer_Reset=reset +FR-Designer_Add_all=Add all diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties new file mode 100644 index 0000000000..2fe50ef9b5 --- /dev/null +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -0,0 +1,424 @@ +# generated time: 星期四 十一月 24 11:56:39 CST 2016 +FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6\u30FC\u540D +FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u73FE\u5728\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u72B6\u614B\u3092\u691C\u67FB\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer-BBSLogin_Connection-Failure-Tip=\u30D2\u30F3\u30C8 +FR-Designer-BBSLogin_Forgot-Password=\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5FD8\u308C\u305F +FR-Designer-BBSLogin_Login=\u30ED\u30B0\u30A4\u30F3 +FR-Designer-BBSLogin_Login-Failure-Tip=\u30E6\u30FC\u30B6\u30FC\u540D\u307E\u305F\u306F\u30D1\u30B9\u30EF\u30FC\u30C9\u30A8\u30E9\u30FC\u3067\u3059\u3002\u518D\u5EA6\u30ED\u30B0\u30A4\u30F3\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer-BBSLogin_Password=\u30D1\u30B9\u30EF\u30FC\u30C9 +FR-Designer-BBSLogin_Password-Empty-Tip=\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer-BBSLogin_Register-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u767B\u9332 +FR-Designer-BBSLogin_Switch-Account=\u30A2\u30AB\u30A6\u30F3\u30C8\u5207\u308A\u66FF\u3048 +FR-Designer-BBSLogin_Privite-Message=\u30D7\u30E9\u30A4\u30D9\u30FC\u30C8\u30E1\u30C3\u30BB\u30FC\u30B8 +FR-Designer-BBSLogin_Times=\u6B21 +FR-Designer-BBSLogin_Username-Empty-Tip=\u30E6\u30FC\u30B6\u30FC\u540D\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer-Basic_More_Color=\u3082\u3063\u3068\u8272 +FR-Designer-Estate_Any=\u4E0D\u9650 +FR-Designer-Estate_Default_Font=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D5\u30A9\u30F3\u30C8 +FR-Designer-Estate_Default_Null=\u30C7\u30D5\u30A9\u30EB\u30C8\u3092\u7A7A\u6B04\u306B\u3059\u308B +FR-Designer-Estate_Default_Text=\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 +FR-Designer-Estate_Parameter_Null_Text=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u7A7A\u6B04\u306B\u3057\u8868\u793A\u3059\u308B +FR-Designer-Estate_Radio-Group=\u4E0D\u52D5\u7523\u696D\u901A\u7528\u30DC\u30BF\u30F3\u30BB\u30C3\u30C8\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +FR-Designer-Estate_Selected_Font=\u9078\u629E\u3057\u305F\u30D5\u30A9\u30F3\u30C8 +FR-Designer-Estate_Widget_Value=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u5024 +FR-Designer-Layout_Adaptive_Layout=\u81EA\u9069\u5FDC\u914D\u7F6E +FR-Designer-Output_Background_Set=\u80CC\u666F\u8A2D\u5B9A +FR-Designer-Output_Default_Background=\u30C7\u30D5\u30A9\u30EB\u30C8\u80CC\u666F +FR-Designer-Output_Excel_Page=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u30FC\u30B8\u5225\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) +FR-Designer-Output_Excel_Sheet=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u30FC\u30B8\u5225\u30B7\u30FC\u30C8\u5225\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) +FR-Designer-Output_Excel_Simple=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u5143\u306E\u307E\u307E\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) +FR-Designer-Plugin_PluginMarket_Coding=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u306F\u958B\u767A\u4E2D\u3067\u3059\u3002\u3054\u671F\u5F85\u304F\u3060\u3055\u3044 +FR-Designer-Submit_Condition=\u6761\u4EF6 +FR-Designer-Widget-Title_border=\u30D5\u30EC\u30FC\u30E0 +FR-Designer-Widget-Title_border_color=\u8272 +FR-Designer_AbsoluteLayout=\u7D76\u5BFE\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Allow_Decimals=\u5C0F\u6570\u3092\u8A31\u53EF +FR-Designer_Allow_Negative=\u30DE\u30A4\u30CA\u30B9\u5024\u3092\u8A31\u53EF +FR-Designer_Background-Click=\u30DE\u30A6\u30B9\u30AF\u30EA\u30C3\u30AF\u80CC\u666F +FR-Designer_Background-Initial=\u521D\u671F\u80CC\u666F +FR-Designer_Background-Over=\u30DE\u30A6\u30B9\u30D5\u30ED\u30FC\u30C8\u80CC\u666F +FR-Designer_Bar-Code-Exception-Tip=\u30C7\u30FC\u30BF\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Block-intersect=\u30E2\u30B8\u30E5\u30FC\u30EB\u3068\u30E2\u30B8\u30E5\u30FC\u30EB\u9593\u3092\u91CD\u306D\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +FR-Designer_BorderLayout=\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Button-Hotkeys=\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC +FR-Designer_Button-Icon=\u30DC\u30BF\u30F3\u30A2\u30A4\u30B3\u30F3 +FR-Designer_Button-Name=\u30DC\u30BF\u30F3\u540D\u79F0 +FR-Designer_Button-Type=\u30DC\u30BF\u30F3\u30BF\u30A4\u30D7 +FR-Designer_CardLayout=Tab\u914D\u7F6E +FR-Designer_Cell=\u30BB\u30EB +FR-Designer_Chart_Cell=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30BB\u30EB +FR-Designer_Chart_Float=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u9023\u52D5\u30D5\u30ED\u30FC\u8981\u7D20 +FR-Designer_Chart_Float_chart=\u30B0\u30E9\u30D5\u30CF\u30A4\u30D1\u30FC\u30EA\u30F3\u30AF-\u30D5\u30ED\u30FC\u7A93\u30B0\u30E9\u30D5 +FR-Designer_Check-for-Updates=\u66F4\u65B0\u3092\u78BA\u8A8D +FR-Designer_Choose-Data-Confusion-Tip=\ \u6DF7\u4EA4\u3059\u308B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u9078\u629E\u5F8C\u30D7\u30EC\u30D3\u30E5\u30FC\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Designer_Close=\u30AF\u30ED\u30FC\u30BA +FR-Designer_Column=\u5217 +FR-Designer_Column_Measure=\u5217\u8EF8/\u5EA6\u91CF\u5024 +FR-Designer_Condition_Attributes=\u6761\u4EF6\u5C5E\u6027 +FR-Designer_Confusion-Col-Name=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u79F0 +FR-Designer_Confusion-key=\u6DF7\u4EA4\u3059\u308B\u30AD\u30FC\u30EF\u30FC\u30C9 +FR-Designer_Currency_Line=\u91D1\u984D\u7DDA +FR-Designer_Current_tab=\u73FE\u5728\u306E\u7DE8\u96C6tab +FR-Designer_Custom=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA +FR-Designer_Custom-Angle=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u89D2\u5EA6 +FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u5B57\u5178 +FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4EA4 +FR-Designer_Data_Type=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 +FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u307E\u305F\u306F\u30AF\u30EA\u30A2\u3059\u308B +FR-Designer_Email=\u30E1\u30FC\u30EB +FR-Designer_Enabled=\u4F7F\u7528\u53EF\u80FD +FR-Designer_End-Date=\u7D42\u4E86\u65E5\u671F +FR-Designer_ExportAndOutput=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8 +FR-Designer_FRFont=\u30D5\u30A9\u30F3\u30C8 +FR-Designer_FS_Close_Other_Templates=\u305D\u306E\u4ED6\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u9589\u3058\u308B +FR-Designer_File=\u30D5\u30A1\u30A4\u30EB +FR-Designer_Filter_Conditions=\u9078\u5225\u6761\u4EF6 +FR-Designer_Finish-Modify-Share=\u4FEE\u6B63\u3092\u5B8C\u4E86\u3057\u3066\u30B7\u30A7\u30A2 +FR-Designer_Fit-App=App\u81EA\u9069\u5FDC +FR-Designer_Font-Family=\u30D5\u30A9\u30F3\u30C8\u540D\u79F0 +FR-Designer_Font-Size=\u30D5\u30A9\u30F3\u30C8\u5927\u5C0F +FR-Designer_Forbid_Drag_into_Adapt_Pane=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u30D5\u30A9\u30FC\u30E0\u672C\u6587\u3092\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u3053\u3068\u306F\u8A31\u3055\u308C\u306A\u3044 +FR-Designer_Forbid_Drag_into_Para_Pane=\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u30D1\u30CD\u30EB\u306B\u30C9\u30E9\u30C3\u30B0\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Foreground=\u8272 +FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u8868\u306E\u6A29\u9650\u7DE8\u96C6\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093 +FR-Designer_Form-Report=\u5E33\u7968\u30E2\u30B8\u30E5\u30FC\u30EB +FR-Designer_Form_EmbeddedTD=\u8868(\u5185\u8535\u30C7\u30FC\u30BF) +FR-Designer_Form_Module=\u8868\u30E2\u30B8\u30E5\u30FC\u30EB +FR-Designer_Format_explan=\u66F8\u5F0F\u8AAC\u660E +FR-Designer_Formula=\u516C\u5F0F +FR-Designer_Forum=BBS +FR-Designer_Get-Cube=cube\u53D6\u5F97\u4E2D +FR-Designer_Help=\u30D8\u30EB\u30D7 +FR-Designer_Hide=\u96A0\u3059 +FR-Designer_Hyperlink=\u30B9\u30FC\u30D1\u30FC\u30EA\u30F3\u30AF +FR-Designer_Hyperlink-Form_link=\u73FE\u5728\u306E\u8868\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8 +FR-Designer_IDCard=\u8EAB\u5206\u8A3C\u660E\u66F8 +FR-Designer_Icon=\u30A2\u30A4\u30B3\u30F3 +FR-Designer_Index=\u5217\u8EF8/\u6307\u6A19 +FR-Designer_Input_Rule=\u30EB\u30FC\u30EB\u8A18\u5165 +FR-Designer_Language_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 +FR-Designer_Layout=\u914D\u7F6E +FR-Designer_Layout-HBox=\u6C34\u5E73\u30B1\u30FC\u30B9\u914D\u7F6E +FR-Designer_Layout-Index=\u7D22\u5F15 +FR-Designer_Layout_Constraints=\u4F4D\u7F6E\u3068\u5927\u5C0F +FR-Designer_Length=\u9577\u3055 +FR-Designer_Loading_Data=\u30C7\u30FC\u30BF\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059 +FR-Designer_M-Exit=\u9000\u51FA +FR-Designer_M-Help=\u30D8\u30EB\u30D7 +FR-Designer_M-Insert=\u633F\u5165 +FR-Designer_M-Repeat-Freeze=\u91CD\u8907\u3068\u30D5\u30EA\u30FC\u30BA\u8A2D\u5B9A +FR-Designer_M-Server=\u30B5\u30FC\u30D0\u30FC +FR-Designer_M-SwitchWorkspace=\u4F5C\u696D\u76EE\u6B21\u5207\u308A\u66FF\u3048 +FR-Designer_M-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8 +FR-Designer_MDX_Explain=\u6587\u6CD5\u66F8\u5F0F\u306FMDX\u6587\u6CD5\u3092\u53C2\u8003\u3002\n\u4F8B\u3048\u3070\uFF1A\nWITH\nMEMBER [Measures].[Special Discount] AS\n[Measures].[Discount Amount] * 1.5\nSELECT\n[Measures].[Special Discount] on COLUMNS,\nNON EMPTY [Product].[Product].MEMBERS ON Rows\nFROM [Adventure Works]\nWHERE [Product].[Category].[Bikes]\n\u6CE8\uFF1ACOLUMNS\u3001ROWS\u306F0\u30011\u3092\u4F7F\u7528\u3057\u3066\u4EE3\u66FF\u53EF\u80FD\u3067\u3059\u3002\u30AF\u30A8\u30EA\u8EF8\u306F\u4E8C\u3064\u306E\u8EF8\u623B\u3057\u306B\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002 +FR-Designer_M_Help-About_Software=\u30BD\u30D5\u30C8\u30A6\u30A7\u30A2\u306B\u3064\u3044\u3066 +FR-Designer_M_Help-Tutorial=\u30D8\u30EB\u30D7\u30C1\u30E5\u30FC\u30C8\u30EA\u30A2\u30EB +FR-Designer_Max_Value=\u6700\u5927\u5024 +FR-Designer_Min_Value=\u6700\u5C0F\u5024 +FR-Designer_MobilePhone=\u643A\u5E2F\u96FB\u8A71 +FR-Designer_New_Value=\u65B0\u5024 +FR-Designer_None=\u7121\u3057 +FR-Designer_PaperSize-Mobile=\u643A\u5E2F\u96FB\u8A71 +FR-Designer_PaperSize-Mobile-Large=\u643A\u5E2F\u96FB\u8A71\u5927\u30B9\u30AF\u30EA\u30FC\u30F3 +FR-Designer_PaperSize-Mobile-Small=\u643A\u5E2F\u96FB\u8A71\u5C0F\u30B9\u30AF\u30EA\u30FC\u30F3 +FR-Designer_Para-Body=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u753B\u9762 +FR-Designer_Parameters=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +FR-Designer_Phone=\u96FB\u8A71 +FR-Designer_PostCode=\u90F5\u4FBF\u756A\u53F7 +FR-Designer_Present=\u30D5\u30A9\u30EB\u30E0 +FR-Designer_Preview=\u30D7\u30EC\u30D3\u30E5\u30FC +FR-Designer_Preview-Data-Confusion=\u6DF7\u4EA4\u5F8C\u306E\u30C7\u30FC\u30BF\u3092\u30D7\u30EC\u30D3\u30E5\u30FC +FR-Designer_Product_Demo=\u88FD\u54C1\u30C7\u30E2 +FR-Designer_Query_Type=\u30AF\u30A8\u30EA\u65B9\u6CD5 +FR-Designer_Refresh=\u66F4\u65B0 +FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u66F4\u65B0\u3057\u307E\u3059\u304B +FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u73FE\u5F0F +FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u3055 +FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u3055 +FR-Designer_ReportColumns-Columns=\u6BB5\u7D44\u307F +FR-Designer_Return-Date=\u65E5\u671F\u306B\u623B\u308B +FR-Designer_RichText=\u30EA\u30C3\u30C1\u6587\u66F8\u633F\u5165 +FR-Designer_RichTextEditor=\u30EA\u30C3\u30C1\u6587\u66F8\u30A8\u30C7\u30A3\u30BF +FR-Designer_Row=\u884C +FR-Designer_Row_Dimension=\u884C\u8EF8/\u7DEF\u5EA6 +FR-Designer_Save=\u4FDD\u5B58 +FR-Designer_Search=\u691C\u7D22 +FR-Designer_Set=\u8A2D\u5B9A +FR-Designer_Share-Template=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30B7\u30A7\u30A2 +FR-Designer_Simple_general=\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA +FR-Designer_Song_TypeFace=\u5B8B\u4F53 +FR-Designer_Start-Date=\u958B\u59CB\u65E5\u671F +FR-Designer_Subscript=\u4E0B\u4ED8\u304D +FR-Designer_Superscript=\u4E0A\u4ED8\u304D +FR-Designer_Support_QQ=\u6280\u8853QQ +FR-Designer_Swatch=\u30B5\u30F3\u30D7\u30EB +FR-Designer_Tab_title=tab\u30BF\u30A4\u30C8\u30EB +FR-Designer_TableData=\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +FR-Designer_Thank_guest=\u7279\u306B\u5F53\u8A72\u30D0\u30FC\u30B8\u30E7\u30F3\u30C7\u30B6\u30A4\u30CA\u30FC\u306E\u4F7F\u3044\u3084\u3059\u3055\u306B\u3064\u3044\u3066\u8CA2\u732E\u3057\u3066\u304F\u308C\u305F\u4EE5\u4E0B\u306EBBS\u306E\u5E06\u30BD\u30D5\u30C8\u30D5\u30A1\u30F3\u306B\u611F\u8B1D\u3057\u307E\u3059 +FR-Designer_Thanks-To=\u611F\u8B1D +FR-Designer_Title=\u30BF\u30A4\u30C8\u30EB +FR-Designer_Total=\u5168\u90E8\u3067 +FR-Designer_UnSignIn=\u672A\u30ED\u30B0\u30A4\u30F3 +FR-Designer_Underline=\u30A2\u30F3\u30C0\u30FC\u30E9\u30A4\u30F3 +FR-Designer_Used=\u6700\u8FD1\u4F7F\u7528\u3057\u305F +FR-Designer_User-defined-MDX=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA +FR-Designer_SampleText=\u30C6\u30AD\u30B9\u30C8\u4F8B +FR-Designer_Vertical-LeftToRight=\u6587\u5B57\u7E26\u66F8(\u5DE6\u304B\u3089\u53F3\u3078\uFF09 +FR-Designer_Vertical-RightToLeft=\u6587\u5B57\u7E26\u66F8(\u53F3\u304B\u3089\u5DE6\u3078) +FR-Designer_VerticalBoxLayout=\u5782\u76F4\u30B1\u30FC\u30B9\u914D\u7F6E +FR-Designer_Visible=\u53EF\u8996 +FR-Designer_WLayout-Border-ToolTips=\u5B8C\u74A7\u306A\u30DC\u30FC\u30C0\u30FC\u30EC\u30A4\u30A2\u30A6\u30C8\u5BB9\u5668\u306F\u6771\u897F\u5357\u5317\u4E2D\u306E\u4E94\u3064\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u3089\u69CB\u6210\u3055\u308C\u307E\u3059\u3002\\uff4e\u305D\u306E\u3046\u3061\u3001\u5357\u5317\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u9AD8\u3055\u3092\u8ABF\u6574\u3067\u304D\u3001\u6771\u897F\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u5FC5\u8981\u306B\u5FDC\u3058\u3066\u5E45\u3092\u8ABF\u6574\u3067\u304D\u307E\u3059\u3002 +FR-Designer_WaterMark=\u900F\u304B\u3057 +FR-Designer_Widget=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB +FR-Designer_Widget-Settings=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u8A2D\u5B9A +FR-Designer_Widget-Visible=\u53EF\u8996 +FR-Designer_XMLA_Explain=\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u53D6\u308A\u51FA\u3057\u3092\u4F7F\u7528\u3059\u308B\u524D\u306B\u307E\u305A\u63A5\u7D9A\u306B\u6210\u529F\u3057\u305F\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u63A5\u7D9A\u304C\u5FC5\u8981\u3067\u3059\u3002\n\u30C7\u30FC\u30BF\u63A5\u7D9A\u8A2D\u5B9A\u5B8C\u4E86\u5F8C\u3001\u30AF\u30A8\u30EA\u30C7\u30FC\u30BF\u6642\u306B\u4E8C\u7A2E\u985E\u306E\u7570\u306A\u308B\u53D6\u308A\u51FA\u3057\u624B\u6BB5\u304C\u3042\u308A\u307E\u3059\u3002\n1.\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA\uFF1A\n\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA\u306FFineBI\u304A\u3088\u3073\u305D\u306E\u4ED6\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002\n\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA\u306E\u4F7F\u7528\u306B\u306F\u3001FR\u306Fcube\u306E\u5C64\u5225\u69CB\u9020\u3092\u81EA\u52D5\u3067\u8AAD\u307F\u53D6\u308A\u9078\u629E\u3057\u3001\u76F4\u63A5\u5FC5\u8981\u306A\u6240\u9700\u7684\u5EA6\u91CF\u5024\u304A\u3088\u3073\u7DEF\u5EA6\u3092\u9078\u629E\u3057\u9078\u5225\u6761\u4EF6\u3092\u8FFD\u52A0\u3059\u308C\u3070\u3001FR\u306F\u9078\u629E\u306B\u57FA\u3065\u3044\u3066\u81EA\u52D5\u7684\u306B\u30C7\u30FC\u30BF\u3092\u30AF\u30A8\u30EA\u3057\u307E\u3059\u3002\n\u30B7\u30F3\u30D7\u30EB\u901A\u7528\u30AF\u30A8\u30EA\u306F\u7DEF\u5EA6\u304A\u3088\u3073\u5EA6\u91CF\u5024\u3068\u3044\u3046\u4E8C\u3064\u306E\u8EF8\u306E\u30AF\u30A8\u30EA\u306B\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n\u5EA6\u91CF\u5024\u304A\u3088\u3073\u7DEF\u5EA6\u306E\u8A2D\u5B9A\u3067\u3001\u73FE\u5728\u5FC5\u8981\u306A\u7DEF\u5EA6\u3092\u9078\u629E\u3059\u308B\u3057\u304B\u306A\u304F\u3066\u3001\u624B\u52D5\u3067\u4FEE\u6B63\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\n\u9078\u5225\u6761\u4EF6\u306FOPEN SQL\u6587\u6CD5\u3092\u63A1\u7528\u3057\u3066\u304A\u308A\u3001${abc}\u3092\u5165\u529B\u3057\u3066\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u3001\u7528\u6CD5\u306F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3068\u540C\u69D8\u3067\u3059\u3002\n2.\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA\uFF1A\n\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u6587\u6CD5\u304C\u5FC5\u8981\u306A\u7D50\u679C\u3092\u30AF\u30A8\u30EA\u3057\u307E\u3059\u3002\n\u6CE8\u610F\uFF0C\u30AB\u30B9\u30BF\u30DE\u30A4\u30BAMDX\u30AF\u30A8\u30EA\u3082\u4E8C\u3064\u306E\u8EF8\u306E\u30AF\u30A8\u30EA\u306B\u306E\u307F\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n{abc}\u3092\u5165\u529B\u3057\u3066\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u3001\u7528\u6CD5\u306F\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8\u3068\u540C\u69D8\u3067\u3059\u3002\nFineBI\u306Ecube\u306FMDX\u30AF\u30A8\u30EA\u306B\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093\u3002 +FR-Designer_bold=\u592A\u304F\u3059\u308B +FR-Designer_font=\u30D5\u30A9\u30F3\u30C8 +FR-Designer_italic=\u30A4\u30BF\u30EA\u30C3\u30AF +FR-Designer_product_feedback=\u88FD\u54C1\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF +FR-Designer_XMLA=\u591A\u6B21\u5143\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +FR-Designer-StyleAlignment_Layout_Default=\u30C7\u30D5\u30A9\u30EB\u30C8 +FR-Designer-StyleAlignment_Layout_Image_Titled=\u5C55\u958B +FR-Designer-StyleAlignment_Layout_Image_Extend=\u5C55\u958B +FR-Designer-StyleAlignment_Layout_Image_Adjust=\u9069\u5FDC +FR-Designer-StyleAlignment_Tooltips_Left=\u5DE6\u8A70\u3081 +FR-Designer-StyleAlignment_Tooltips_Center=\u4E2D\u592E\u63C3\u3048 +FR-Designer-StyleAlignment_Tooltips_Right=\u53F3\u8A70\u3081 +FR-Designer-StyleAlignment_Tooltips_Distributed=\u5747\u7B49\u5272\u308A\u4ED8\u3051 +FR-Designer-StyleAlignment_Tooltips_DEFAULT=\u30C7\u30D5\u30A9\u30EB\u30C8 +FR-Designer-StyleAlignment_Tooltips_Top=\u4E0A\u8A70\u3081 +FR-Designer-StyleAlignment_Tooltips_Bottom=\u4E0B\u8A70\u3081 +FR-Designer-StyleAlignment_Pane_Horizontal=\u6C34\u5E73\u63C3\u3048 +FR-Designer-StyleAlignment_Pane_Vertical=\u5782\u76F4\u63C3\u3048 +FR-Designer-StyleAlignment_Pane_Style=\u30A2\u30E9\u30A4\u30F3\u30E1\u30F3\u30C8 +FR-Designer-StyleAlignment_Style_Indentation=\u30A4\u30F3\u30C7\u30F3\u30C8 +FR-Designer-StyleAlignment_Style_Spacing=\u9593\u9694\u8DDD\u96E2 +FR-Designer-StyleAlignment_Style_Alignment=\u63C3\u3048 +FR-Designer-CommitTab_Submit=\u63D0\u51FA\u3059\u308B +FR-Designer-CommitTab_SureToDelete=Sure to delete +FR-Designer-CommitTab_Remove=\u524A\u9664 +FR-Designer-Collect_Information_free=\u7121\u6599 +FR-Designer-Collect_Information_Description=\u8A18\u8FF0 +FR-Designer-Collect_Information_Successfully=\u53CE\u96C6\u6210\u529F +FR-Designer_Event_Set=\u30A4\u30D9\u30F3\u30C8\u8A2D\u5B9A +FR-Designer_Blow_set=\u4EE5\u4E0B\u8A2D\u5B9A +FR-Designer_I_Want_To_Set_Single=\u5F53\u8A72\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u3092\u5358\u72EC\u8A2D\u5B9A +FR-Designer_Using_Server_Report_View_Settings=\u30B5\u30FC\u30D0\u30FC\u8A2D\u5B9A\u63A1\u7528 +FR-Designer_ErrorHandlerTemplate=\u51FA\u9519\u6A21\u677F\u5B9A\u4E49 +FR-Designer_Save_Path=\u4FDD\u5B58\u8DEF\u5F84 +FR-Designer_Chart_Acc_Set=\u7CBE\u78BA\u8A2D\u5B9A +FR-Designer_Gradient-Color=\u8272\u3092\u5F90\u3005\u306B\u5909\u5316 +FR-Designer_DEFAULT=\u30C7\u30D5\u30A9\u30EB\u30C8 +FR-Designer_chart-PreStyle=\u30C1\u30E3\u30FC\u30C8\u306E\u5B9A\u7FA9\u3055\u308C\u305F\u30AB\u30E9\u30FC +FR-Designer_Chart-PreStyle=\u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u305F\u30AB\u30E9\u30FC\u30C1\u30E3\u30FC\u30C8 +FR-Designer_Already_exist=\u73FE\u5728\u306E\u74B0\u5883\u306B\u306F\u5B58\u5728\u3057\u3066\u3044\u307E\u3059\: +FR-Designer_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +FR-Designer_Model=\u30E2\u30C7\u30EB +FR-Designer_Refresh_Successfully=\u5237\u65B0\u6210\u529F +FR-Designer_SQL-Table=\u8868 +FR-Designer_SQL-View=\u30D3\u30E5\u30FC +FR-Designer_Failed=\u5931\u6557 +FR-Designer_Chart_Field_Name=\u30D5\u30A3\u30FC\u30EB\u30C9\u540D +FR-Designer_FormulaD-Text=\u30C6\u30AD\u30B9\u30C8\u95A2\u6570 +FR-Designer_FormulaD-Logical=\u30ED\u30B8\u30C3\u30AF\u95A2\u6570 +FR-Designer_FormulaD-Array=\u914D\u5217\u95A2\u6570 +FR-Designer_FormulaD-Report=\u5E33\u7968\u95A2\u6570 +FR-Designer_FormulaD-Other=\u305D\u306E\u4ED6\u95A2\u6570 +FR-Designer_FormulaD-All=\u5168\u3066\u306E\u95A2\u6570 +FR-Designer_Function=\u95A2\u6570 +FR-Designer_Select=\u9078\u629E +FR-Designer_Edit=\u7DE8\u96C6 +FR-Designer_Description=\u8AAC\u660E +FR-Designer_Role_changed_isRefresh=\u30ED\u30FC\u30EB\u306F\u3001\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5\u3059\u308B\u304B\u3069\u3046\u304B\u3001\u5909\u66F4 +FR-Designer_FS_Name=\u30C7\u30FC\u30BF\u51B3\u7B56\u30B7\u30B9\u30C6\u30E0 +FR-Designer_Datasource-Parameter=\u30C7\u30FC\u30BF\u30BD\u30FC\u30B9 +FR-Designer_Tree-ComboBox=\u30DA\u30FC\u30B8\u30DC\u30C3\u30AF\u30B9...... +FR-Designer_Form-Iframe=\u30DA\u30FC\u30B8\u30DC\u30C3\u30AF\u30B9 +FR-Designer_Type=\u30BF\u30A4\u30D7 +FR-Designer_User-defined=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA +FR-Designer_Simple_general_forV6=\u901A\u7528\u30AF\u30A8\u30EA(ECC 6\u4EE5\u4E0A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306B\u9069\u7528) +FR-Designer_Import=\u30A4\u30F3\u30DD\u30FC\u30C8 +FR-Designer_Export=\u51FA\u529B +FR-Designer_Delete=\u524A\u9664 +FR-Designer_Sequenced_number=\u30CA\u30F3\u30D0\u30FC +FR-Designer_Parameters_name=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u540D\u79F0 +FR-Designer_SAP_datatype=SAP\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 +FR-Designer_Return_set_name=\u30BB\u30C3\u30C8\u306B\u623B\u308B +FR-Designer_Datatype=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 +FR-Designer_Corre_parameter=\u5BFE\u5FDC\u3059\u308B\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC +FR-Designer_Default_value=\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u30C7\u30D5\u30A9\u30EB\u30C8\u5024 +FR-Designer_SAP_column_name=SAP\u5217\u540D +FR-Designer_Table_name=\u8868\u306E\u540D\u79F0 +FR-Designer_Columns_choosed=\u9078\u629E\u3057\u305F\u5217 +FR-Designer_Where_claus=\u9078\u5225\u6761\u4EF6 +FR-Designer_PreStyle=\u9810\u5B9A\u7FA9\u6A23\u5F0F +FR-Designer_Loading=\u30A2\u30C3\u30D7\u30ED\u30FC\u30C9\u3057\u3066\u3044\u307E\u3059 +FR-Designer_Table=\u8868 +FR-Designer_Name=\u540D\u79F0 +FR-Designer_EmailPane-tips=\u3042\u306A\u305F\u306F\u3001ABC\u306F\u3001\u30D1\u30E9\u30E1\u30FC\u30BF\u540D\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u3068\u3057\u3066${ABC}\u3092\u5165\u529B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3088\u3046\u306B\u3001\u5F0F\u3068\u3057\u3066${\u4ECA\u65E5\uFF08\uFF09}\uFF1A\u30BF\u30A4\u30C8\u30EB\u30C6\u30AD\u30B9\u30C8"${\u4ECA\u65E5\uFF08\uFF09}\u7D71\u8A08\u306F"\u3001"$ {\u306B\u30A2\u30C9\u30EC\u30B9\u6307\u5B9A\u3055\u308C\u3066\u3044\u308BP}\u3001123@gmail.com\u3001\u30DE\u30A4\u30AF\u306F\u3001\u30E6\u30FC\u30B6\u30FC\u540D\u30E6\u30FC\u30B6\u30FC\u7BA1\u7406\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306B\u4FDD\u5B58\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u30DE\u30A4\u30AF "\u3001 +FR-Designer_EmailPane-mailContent=\u30E1\u30FC\u30EB\u672C\u6587 +FR-Designer_EmailPane-BCC=\u5BC6\u9001 +FR-Designer_EmailPane-mailSubject=\u30E1\u30FC\u30EB\u30BF\u30A4\u30C8\u30EB +FR-Designer_EmailPane-warnings=\u9001\u4FE1\u30E1\u30FC\u30EB\u30A2\u30C9\u30EC\u30B9\u3092\u8A2D\u5B9A\u3057\u3066\u3044\u307E\u305B\u3093\u3002\u30ED\u30B0\u30A4\u30F3\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u8A2D\u5B9A\u3059\u308B\u304B\u7BA1\u7406\u8005\u306B\u9023\u7D61\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +FR-Designer_Email_sentEmail=\u30E1\u30FC\u30EB\u9001\u4FE1 +FR-Designer_file-is-locked=\u958B\u3053\u3046\u3068\u3057\u3066\u3044\u308B\u5E33\u7968\u306F\u73FE\u5728\u4ED6\u306E\u4EBA\u304C\u7DE8\u96C6\u3057\u3066\u3044\u307E\u3059\u3002\u5C11\u3057\u5F85\u3063\u3066\u304B\u3089\u958B\u3044\u3066\u304F\u3060\u3055\u3044 +FR-Designer_Custom_Icon_Message1=16 ?? 16\u306EPNG\u753B\u50CF\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u3092\u304A\u3059\u3059\u3081\u3057\u307E\u3059 +FR-Designer_Add=\u8FFD\u52A0 +FR-Designer_Custom_Icon_Message2=\u30AA\u30DA\u30EC\u30FC\u30B7\u30E7\u30F3\u306B\u4E0D\u9069\u5207\u306A\u70B9\u304C\u898B\u3089\u308C\u307E\u3059 +FR-Designer_Tooltips=\u30D2\u30F3\u30C8 +FR-Designer_Remove=\u524A\u9664 +FR-Designer_Custom_Icon_SelectIcon=\u30A2\u30A4\u30B3\u30F3\u3092\u9078\u629E +FR-Designer_Click_this_button=\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u30EB\u30FC\u30C8\u9078\u629E\u3092\u884C\u3046 +FR-Designer_Custom_Icon_Message3=\u30A2\u30A4\u30B3\u30F3\u540D\u79F0\u306F\u3059\u3067\u306B\u4F7F\u308F\u308C\u3066\u3044\u307E\u3059\u3002 +FR-Designer_Set_default_browser=\u30C7\u30D5\u30A9\u30EB\u30C8\u30D6\u30E9\u30A6\u30B6\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002Intenet\u30AA\u30D7\u30B7\u30E7\u30F3\u4E2D\u304B\u3089\u30B7\u30B9\u30C6\u30E0\u30C7\u30D5\u30A9\u30EB\u30C8\u30D6\u30E9\u30A6\u30B6\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +FR-Designer_Open=\u958B\u304F +FR-Designer_Utils-OpenDemoEnv=\u88FD\u54C1\u30C7\u30E2\u3001\u81EA\u52D5\u3067\u4F5C\u696D\u76EE\u6B21\u306B\u5207\u308A\u66FF\u3048\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 +FR-Designer_Utils-switch=\n\u73FE\u5728\u306E\u4FDD\u5B58\u3055\u308C\u3066\u3044\u306A\u3044\u30D5\u30A1\u30A4\u30EB\u306F\u73FE\u5728\u306E\u76EE\u6B21\u306B\u4FDD\u5B58\u3055\u308C\u307E\u3059\u3002\n\u7D9A\u884C\u3057\u307E\u3059\u304B\uFF1F +FR-Designer_Utils-NewDemoEnv=\u88FD\u54C1\u30C7\u30E2\u3001\u81EA\u52D5\u3067\u4F5C\u696D\u76EE\u6B21\u3092\u65B0\u898F\u4F5C\u6210\u3057\u307E\u3059\uFF1A +FR-Designer_Save_As_Global_Style=\u5168\u5C40\u66F8\u5F0F\u3068\u3057\u3066\u4FDD\u5B58 +FR-Designer_Input_The_Name_Of_Gloabel_Style=\u4FDD\u5B58\u3057\u3066\u3044\u308B\u5168\u5C40\u66F8\u5F0F\u306E\u540D\u79F0\u3092\u5165\u529B +FR-Designer_This_Name_Has_Exsit=\u3053\u306E\u540D\u524D\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059 +FR-Designer_Shortcut_Set=\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\u8A2D\u5B9A +FR-Designer_Feature_Name=\u6A5F\u80FD\u540D\u79F0\uFF1A +FR-Designer_Cursor_to_next_column=\u30AB\u30FC\u30BD\u30EB\u3092\u6B21\u306E\u4E00\u5217\u3078\u79FB\u52D5 +FR-Designer_Cursor_to_next_row=\u30AB\u30FC\u30BD\u30EB\u3092\u6B21\u306E\u4E00\u884C\u3078\u79FB\u52D5 +FR-Designer_Current_keys=\u73FE\u5728\u306E\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC\uFF1A +FR-Designer_Exchange_key=\u30AF\u30EA\u30C3\u30AF\u4E92\u63DB\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u30AD\u30FC +FR-Designer_System_default=\u30B7\u30B9\u30C6\u30E0\u3092\u30C7\u30D5\u30A9\u30EB\u30C8\u306B\u3059\u308B +FR-Designer_Cursor_to_previous_column=\u30AB\u30FC\u30BD\u30EB\u3092\u524D\u306E\u4E00\u5217\u3078\u79FB\u52D5\uFF1A +FR-Designer_Cursor_to_previous_row=\u30AB\u30FC\u30BD\u30EB\u3092\u524D\u306E\u4E00\u884C\u3078\u79FB\u52D5\uFF1A +FR-Designer_Are_You_Sure_To_Delete_The_Data=\u9078\u629E\u3055\u308C\u305F\u30C7\u30FC\u30BF\u3092\u524A\u9664\u3057\u307E\u3059\u304B\uFF1F +FR-Designer_Show_Icon=\u30DC\u30BF\u30F3\u30A2\u30A4\u30B3\u30F3\u3092\u8868\u793A +FR-Designer_Show_Text=\u30DC\u30BF\u30F3\u540D\u524D\u3092\u8868\u793A +FR-Designer_User_Defined_Event=\u30AB\u30B9\u30BF\u30DE\u30A4\u30BA\u4E8B\u4EF6 +FR-Designer_Output_PDF=PDF\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8 +FR-Designer_Output_Word=Word\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8 +FR-Designer_Image=\u30A4\u30E1\u30FC\u30B8 +FR-Designer_Flash_Print=Flash\u30D7\u30EA\u30F3\u30C8 +FR-Designer_PDF_Print=PDF\u30D7\u30EA\u30F3\u30C8 +FR-Designer_Applet_Print=\u30A2\u30D7\u30EC\u30C3\u30C8\u5370\u5237 +FR-Designer_Server_Print=\u30B5\u30FC\u30D0\u30FC\u7AEF\u672B\u30D7\u30EA\u30F3\u30C8 +FR-Designer_Use_ToolBar=\u30C4\u30FC\u30EB\u30D0\u30FC\u4F7F\u7528 +FR-Designer_Report_Show_Location=\u5E33\u7968\u8868\u793A\u4F4D\u7F6E +FR-Designer_Is_Paint_Page=\u753B\u50CF\u3067\u8868\u793A +FR-Designer_IS_Auto_Scale=iframeiframe\u306F\u3081\u8FBC\u307F\u6642\u81EA\u52D5\u30BA\u30FC\u30E0 +FR-Designer_IS_TD_HEAVY_EXPORT=\u91CD\u65B9\u6CD5\u683C\u5B50\u3092\u51FA\u529B +FR-Designer_Top=\u4E0A +FR-Designer_Bottom=\u4E0B +FR-Designer-Collect_OSXTips=\u30D2\u30F3\u30C8\uFF1A\u30D7\u30EC\u30B9 control + v \u30A2\u30AF\u30C6\u30A3\u30D9\u30FC\u30B7\u30E7\u30F3\u30B3\u30FC\u30C9\u3092\u8CBC\u308A\u4ED8\u3051 +FR-Designer_X_Coordinate=\u6A2A\u5EA7\u6A19 +FR-Designer_Y_Coordinate=\u7E26\u5EA7\u6A19 +FR-Designer_Widget_Width=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u5E45 +FR-Designer_Widget_Height=\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u9AD8\u3055 +FR-Designer_Min_Height=\u6700\u5C0F\u9AD8\u3055 +FR-Designer_LeftParent=\u5DE6\u89AA\u30BB\u30EB +FR-Designer-PluginLicense_Check_Failed=\u3042\u306A\u305F\u306E\u30D7\u30E9\u30B0\u8A8D\u8A3C\u30D5\u30A1\u30A4\u30EB\u306E\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u308B\u3001\u3057\u3066\u304F\u3060\u3055\u3044\u3001\u518D\u6D3B\u6027\u5316 +FR-Designer-File_address=\u30D5\u30A1\u30A4\u30EB\u30A2\u30C9\u30EC\u30B9 +FR-Designer-Local_file=\u30ED\u30FC\u30AB\u30EB\u30D5\u30A1\u30A4\u30EB +FR-Designer_Selection=\u9078\u629E +FR-Designer-Type_Parameter= ${abc}\u3092\u5165\u529B\u3057\u3066\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002
 \u3053\u3053\u3067abc\u3068\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u7684\u540D\u79F0\u3067\u3059\u3002\u4F8B\u3048\u3070\uFF1A
+FR-Designer_Add_JS_warning=\u4F8B\u306B\u793A\u3059\u3088\u3046\u306A\u6B63\u3057\u3044URL\u30A2\u30C9\u30EC\u30B9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\uFF01 +FR-Designer-Encoding_Type=\u30B3\u30FC\u30C9\u30BF\u30A4\u30D7 +FR-Designer-FirstRow_IS_ColumnName=\u7B2C\u4E00\u884C\u306F\u5217\u30BF\u30A4\u30C8\u30EB\u3092\u542B\u307F\u307E\u3059 +FR-Designer_Dismenber=\u533A\u5207\u308A\u7B26 +FR-Designer_TableDismember=\u30BF\u30D6\u6587\u5B57 +FR-Designer_Space=\u30B9\u30DA\u30FC\u30B9 +FR-Designer_CommaDismenber=\u30B3\u30F3\u30DE +FR-Designer_Other=\u305D\u306E\u4ED6 +FR-Designer-Series_Dismenber_As_Single=\u9023\u7D9A\u3059\u308B\u533A\u5207\u308A\u8A18\u53F7\u306F\u5358\u72EC\u51E6\u7406\u3068\u307F\u306A\u3055\u308C\u308B +FR-Designer_KeyPoint=\u30AD\u30FC\u306E\u30CE\u30FC\u30C9 +FR-Designer_loadedTreeModel=\u30ED\u30FC\u30C9\u304C\u5931\u6557\u3057\u3001\u78BA\u8A8D\u5F8C\u3001\u518D\u8A66\u884C +FR-Designer-Failed_to_load_the_plugin=\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3001\u30D7\u30E9\u30B0\u30A4\u30F3\u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\uFF1A +FR-Designer_XMLA_Database=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9 +FR-Designer_XMLA_UserName=\u30E6\u30FC\u30B6\u540D +FR-Designer_XMLA_Password=\u30D1\u30B9\u30EF\u30FC\u30C9 +FR-Designer_XMLA_Get_Catalog=\u30AB\u30BF\u30ED\u30B0\u3092\u691C\u7D22\u3059\u308B +FR-Designer_XMLA_Not_NULL=\u3053\u3053\u306F\u7A7A\u6B04\u306B\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093 +FR-Designer_Column-Axis=\u5217\u8EF8 +FR-Designer_LiteCondition_Common=\u4E00\u822C +FR-Designer_LiteCondition_Formula=\u516C\u5F0F +FR-Designer_LiteCondition_ConditionB-AND=\u30A2\u30F3\u30C9(AND) +FR-Designer_LiteCondition_ConditionB-OR=\u30AA\u30A2(OR) +FR-Designer_LiteCondition_Common_Condition=\u666E\u901A\u6761\u4EF6 +FR-Designer_LiteCondition_Formula_Condition=\u516C\u5F0F\u6761\u4EF6 +FR-Designer_LiteCondition_Define=\u5B9A\u7FA9 +FR-Designer_Select_All= +FR-Designer-Plugin_Expire_Dialog_Title=\u671F\u9650\u5207\u308C\u306E\u30D7\u30E9\u30B0\u30A4\u30F3 +FR-Designer-Plugin_Expire_Dialog_Text=\u30D7\u30E9\u30B0\u30A4\u30F3\u306F\u3001\u8CFC\u5165\u3092\u3059\u308B\u305F\u3081\u306B\u5E06\u30BD\u30D5\u30C8\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30BB\u30F3\u30BF\u30FC\u3092\u884C\u304F\u3001\u6709\u52B9\u671F\u9650\u304C\u5207\u308C\u3066\u3044\u307E\u3059\u3002 +FR-Designer-Plugin_Finerest_Addon=\u5E06\u8EDF\u5FDC\u7528\u30BB\u30F3\u30BF\u30FC +FR-Designer_Performance_First=\u6027\u80FD\u512A\u5148 +FR-Designer_Total_N_Grade=\u5168\u90E8\u3067\:${N}\u5C64 +FR-Designer_time(s)= +FR-Designer_General=\u5E38\u7528 +FR-Designer_Advanced=\u9AD8\u7D1A +FR-Designer_Oracle=\u3059\u3079\u3066\u306E\u30C6\u30FC\u30D6\u30EB +FR-Designer_Product_improve=\u88FD\u54C1\u6539\u5584 +FR-Designer_Join_Product_improve=\u88FD\u54C1\u6539\u5584\u30D7\u30E9\u30F3\u306B\u52A0\u3048\u308B +FR-Designer_Preference-Function=\u30D5\u30A1\u30F3\u30AF\u30B7\u30E7\u30F3\u8A2D\u5B9A +FR-Designer_max_undo_limit=\u6700\u5927\u53D6\u308A\u6D88\u3057\u56DE\u6570 +FR-Designer_Surport_String_To_Formula=\u30AD\u30E3\u30E9\u30AF\u30BF\u30FC\u6587\u5B57\u5217\u7DE8\u96C6\u3092\u516C\u5F0F\u3068\u3059\u308B\u3053\u3068\u306B\u30B5\u30DD\u30FC\u30C8 +FR-Designer_Always=\u30C7\u30D5\u30A9\u30EB\u30C8\u64CD\u4F5C\u5B9F\u884C +FR-Designer_Export_Setting=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u914D\u7F6E +FR-Designer_Select_Export_Log_Directory=\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8\u76EE\u6B21\u3092\u9078\u629E +FR-Designer_Level_Setting=\u30EC\u30D9\u30EB\u5225\u8A2D\u5B9A +FR-Designer_Choose_Language=\u8A00\u8A9E\u9078\u629E +FR-Designer_Work_After_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5\u5F8C\u6709\u52B9 +FR-Designer_Setting-Ruler-Units=\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D\u8A2D\u5B9A +FR-Designer_PageSetup-mm=\u30DF\u30EA\u30E1\u30FC\u30C8\u30EB +FR-Designer_Unit_CM=\u30BB\u30F3\u30C1\u30E1\u30FC\u30C8\u30EB +FR-Designer_Page-Setup-Scale-Units=\u30DA\u30FC\u30B8\u8A2D\u5B9A\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D +FR-Designer_Report-Design-Ruler-Units=\u5E33\u7968\u30C7\u30B6\u30A4\u30F3\u30EB\u30FC\u30E9\u30FC\u5358\u4F4D +FR-Designer_Web_Preview_Port_Setting=\u30DD\u30FC\u30C8\u8A2D\u5B9A +FR-Designer_Designer_Language=\u30C7\u30B6\u30A4\u30CA\u30FC\u8A00\u8A9E +FR-Designer_Unit_INCH=\u30A4\u30F3\u30C1 +FR-Designer_Web_Preview_Port=\u30DD\u30FC\u30C8\u756A\u53F7 +FR-Designer_Oracle_All_Tables=\u3059\u3079\u3066\u306E\u30C6\u30FC\u30D6\u30EB +FR-Designer_Unit_PT=\u30DD\u30F3\u30C9 +FR-Designer-Write_Auto_Stash=\u30AA\u30FC\u30C8\u30B9\u30AF\u30E9\u30C3\u30C1 +FR-Designer_Event_ShowWidgets=\u76F4\u63A5\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8868\u793A +FR-Designer_Current_Preview_Rows=\u73FE\u5728\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u884C\u6570 +FR-Designer_Data=\u30C7\u30FC\u30BF +FR-Designer_Error=\u30A8\u30E9\u30FC +FR-Designer-Website_Url=http\://www.finereport.com/jp +FR-Designer_formDesignerModule= +FR-Designer-BBSLogin_Login-Title= +FR-Designer_Get-CubeGetting= +FR-Designer-BBSLogin_Download-Unlogin-Tip= +FR-Designer-App_ReLayout=\u96FB\u8A71\u518D\u30EC\u30A4\u30A2\u30A6\u30C8 +FR-Designer_Mobile-Attr=\u30E2\u30D0\u30A4\u30EB\u7AEF\u672B\u5C5E\u6027 +FR-Designer_Mobile-Vertical=\u7E26 +FR-Designer_Mobile-Horizontal=\u6A2A +FR-Designer_Mobile-Zoom=\u5E33\u7968\u30BA\u30FC\u30E0 +FR-Designer_Mobile-Open=\u958B\u304F +FR-Designer_COMMUNITY=\u30B3\u30DF\u30E5\u30CB\u30C6\u30A3 +FR-Designer_COMMUNITY_BBS=\u5E06\u8EDF\u30D5\u30A9\u30FC\u30E9\u30E0 +FR-Designer_COMMUNITY_VIDEO=\u30D3\u30C7\u30AA +FR-Designer_COMMUNITY_HELP=\u30D8\u30EB\u30D7\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8 +FR-Designer_COMMUNITY_UPDATE=\u88FD\u54C1\u66F4\u65B0 +FR-Designer_COMMUNITY_NEED=\u9700\u8981\u306E\u63D0\u51FA +FR-Designer_COMMUNITY_BUG=Bug\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF +FR-Designer_COMMUNITY_SIGN=\u5E06\u8EDF\u8A8D\u8A3C +FR-Designer_COMMUNITY_QUESTIONS=\u554F\u984C\u306E\u554F\u3044\u5408\u308F\u305B +FR-Designer_Write-Save-Formula=\u8A18\u5165\u8A08\u7B97\u306B\u6570\u5F0F\u4FDD\u6301 +FR-Designer_Export-Save-Formula=\u7DE8\u96C6\u6642\u3001\u6570\u5F0F\u4FDD\u6301 +FR-Designer_Attention=\u6CE8\u610F\u3057\u307E\u3059 +FR-Designer_Forbid_Widgets_Intersects=\u7981\u6B62\u90E8\u54C1\u3092\u91CD\u306D\u3066 +FR-Designer_Widget_Scaling_Mode_Fit=\u9069\u5FDC\u533A\u57DF +FR-Designer_Widget_Scaling_Mode_Fixed=\u56FA\u5B9A\u30B5\u30A4\u30BA +FR-Designer-Widget_Area_Scaling=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u30A8\u30EA\u30A2\ +FR-Designer-QQLogin-Determine=\u6C7A\u5B9A\u3057\u307E\u3059 +FR-Designer-QQLogin-Cancel=\u30AD\u30E3\u30F3\u30BB\u30EB +FR-Designer-Reuse_Manager= +FR-Designer_Layout_Block_Absolute= +FR-Designer_Layout_Block_Tab= +FR-Designer_Layout_Block_Blank= +FR-Designer_Attr_Layout= +FR-Designer_Attr_Layout_Type= +FR-Designer_Attr_Bidirectional_Adaptive= +FR-Designer_Download_Template= +FR-Designer-Widget_Scaling_Mode=\u30B9\u30B1\u30FC\u30EA\u30F3\u30B0\u8AD6\u7406 +FR-Designer_Mobile-Refresh= +FR-Designer_Mobile-ToolBar= +FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u914D\u7F6E\u3067\u3059\u3002\u914D\u7F6E\u5185\u306E\u4EFB\u610F\u306E\u4F4D\u7F6E\u306B\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068 +FR-Designer_Add_all=\u3059\u3079\u3066\u8FFD\u52A0 diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties new file mode 100644 index 0000000000..137f253a35 --- /dev/null +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -0,0 +1,420 @@ +# generated time: 星期四 十一月 24 11:56:39 CST 2016 +FR-Designer-BBSLogin_Account=\u7528\u6237\u540D +FR-Designer-BBSLogin_Connection-Failure=\uB124\uD2B8\uC6CC\uD06C\uB9C1\uD06C\uC2E4\uD328.\uD604\uC7AC\uB124\uD2B8\uC6CC\uD06C\uC0C1\uD0DC\uB97C\uAC80\uC0AC\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer-BBSLogin_Connection-Failure-Tip=\uC54C\uB9BC +FR-Designer-BBSLogin_Forgot-Password=\u5FD8\u8BB0\u5BC6\u7801 +FR-Designer-BBSLogin_Login=\u767B\u5F55 +FR-Designer-BBSLogin_Login-Failure-Tip=\uC0AC\uC6A9\uC790\uC774\uB984\uB610\uB294\uBE44\uBC00\uBC88\uD638\uC785\uB825\uC624\uB958.\uB2E4\uC2DC\uB85C\uADF8\uC778\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer-BBSLogin_Password=\u5BC6\u7801 +FR-Designer-BBSLogin_Password-Empty-Tip=\uC554\uD638\uB294\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer-BBSLogin_Register-Account=\u6CE8\u518C\u8D26\u53F7 +FR-Designer-BBSLogin_Switch-Account=\uC804\uD658\uACC4\uC815\uBC88\uD638 +FR-Designer-BBSLogin_Privite-Message=\uAC1C\uC778\u0020\uBA54\uC2DC\uC9C0 +FR-Designer-BBSLogin_Times=\uD68C +FR-Designer-BBSLogin_Username-Empty-Tip=\uC0AC\uC6A9\uC790\uC774\uB984\uC740\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer-Basic_More_Color=\uC0C9\uB354\uBCF4\uAE30... +FR-Designer-Estate_Any=\uC81C\uD55C\uC5C6\uC74C +FR-Designer-Estate_Default_Font=\uAE30\uBCF8\uAE00\uAF34 +FR-Designer-Estate_Default_Null=\uAE30\uBCF8\uBE44\uC5B4\uC788\uC74C +FR-Designer-Estate_Default_Text=\uAE30\uBCF8\uAC12 +FR-Designer-Estate_Parameter_Null_Text=\uB9E4\uAC1C\uBCC0\uC218\uAC00\uBE44\uC5B4\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer-Estate_Radio-Group=\uBD80\uB3D9\uC0B0\uC5C5\uACC4\uBC94\uC6A9\uD0A4\uD328\uB4DC\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4 +FR-Designer-Estate_Selected_Font=\uC120\uD0DD\uD55C\uAE00\uAF34 +FR-Designer-Estate_Widget_Value=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uAC12 +FR-Designer-Layout_Adaptive_Layout=\uC790\uAE30\uC801\uC751\uB808\uC774\uC544\uC6C3 +FR-Designer-Output_Background_Set=\uBC30\uACBD\uC124\uC815 +FR-Designer-Output_Default_Background=\uAE30\uBCF8\uBC30\uACBD +FR-Designer-Output_Excel_Page=Excel\uCD9C\uB825(\uD398\uC774\uC9C0\uB098\uB204\uAE30\uB0B4\uBCF4\uB0B4\uAE30) +FR-Designer-Output_Excel_Sheet=Excel\uCD9C\uB825(\uD398\uC774\uC9C0\uB098\uB204\uAE30Sheet\uB0B4\uBCF4\uB0B4\uAE30) +FR-Designer-Output_Excel_Simple=Excel\uCD9C\uB825(\uC6D0\uB798\uBAA8\uC2B5\uB0B4\uBCF4\uB0B4\uAE30) +FR-Designer-Plugin_PluginMarket_Coding=\uD50C\uB7EC\uADF8\uC778\uC2A4\uD1A0\uC5B4\uB97C\uAC1C\uBC1C\uC911\uC785\uB2C8\uB2E4.\uAE30\uB2E4\uB824\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer-Submit_Condition=\uC870\uAC74 +FR-Designer-Widget-Title_border=\uD14C\uB450\uB9AC +FR-Designer-Widget-Title_border_color=\uC0C9 +FR-Designer_AbsoluteLayout=\uC808\uB300 \uB808\uC774\uC544\uC6C3 +FR-Designer_Allow_Decimals=\uC18C\uC218\uD5C8\uC6A9 +FR-Designer_Allow_Negative=\uB9C8\uC774\uB108\uC2A4\uAC12\uD5C8\uC6A9 +FR-Designer_Background-Click=\uB9C8\uC6B0\uC2A4\uB85C\uBC30\uACBD\uD074\uB9AD +FR-Designer_Background-Initial=\uCD08\uAE30\uBC30\uACBD +FR-Designer_Background-Over=\uB9C8\uC6B0\uC2A4\uD50C\uB85C\uD305\uBC30\uACBD +FR-Designer_Bar-Code-Exception-Tip=\uB370\uC774\uD130\uB294\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer_Block-intersect=\uBE14\uB7ED\uACFC\uBE14\uB7ED\uC740\uC911\uCCA9\uB420\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer_BorderLayout=\uACBD\uACC4\uC120\uB808\uC774\uC544\uC6C3 +FR-Designer_Button-Hotkeys=\uB2E8\uCD95\uD0A4 +FR-Designer_Button-Icon=\uD0A4\uC544\uC774\uCF58 +FR-Designer_Button-Name=\uD0A4\uBA85\uCE6D +FR-Designer_Button-Type=\uD0A4\uC720\uD615 +FR-Designer_CardLayout=Tab\uB808\uC774\uC544\uC6C3 +FR-Designer_Cell=\uC140 +FR-Designer_Chart_Cell=\uCC28\uD2B8 \uD558\uC774\uD37C\uB9C1\uD06C-\uC140 \uC5F0\uB3D9 +FR-Designer_Chart_Float=\uCC28\uD2B8\uD558\uC774\uD37C\uB9C1\uD06C-\uC5F0\uB3D9\uC11C\uC2A4\uD39C\uC2A4\uC694\uC18C +FR-Designer_Chart_Float_chart=\uCC28\uD2B8 \uD558\uC774\uD37C\uB9C1\uD06C-\uC704\uC82F \uCC28\uD2B8 +FR-Designer_Check-for-Updates=\uC5C5\uB370\uC774\uD2B8\uAC80\uC0AC +FR-Designer_Choose-Data-Confusion-Tip=\\ud63c\uD569\uD560\uD544\uB4DC\uB97C\uC120\uD0DD\uD6C4\uBBF8\uB9AC\uBCF4\uAE30 +FR-Designer_Close=\uB2EB\uAE30 +FR-Designer_Column=\uC5F4 +FR-Designer_Column_Measure=\uC5F4\uCD95/\uCE21\uC815\uAC12 +FR-Designer_Condition_Attributes=\uC870\uAC74\uC18D\uC131 +FR-Designer_Confusion-Col-Name=\uD544\uB4DC\uC774\uB984 +FR-Designer_Confusion-key=\uD63C\uD569\uD0A4\uC6CC\uB4DC +FR-Designer_Currency_Line=\uAE08\uC561\uC120 +FR-Designer_Current_tab=\uD604\uC7AC\uD3B8\uC9D1tab +FR-Designer_Custom=\uC0AC\uC6A9\uC790\uC815\uC758 +FR-Designer_Custom-Angle=\uC0AC\uC6A9\uC790\uC815\uC758\uAC01\uB3C4 +FR-Designer_DS-Dictionary=\uB370\uC774\uD130\uC0AC\uC804 +FR-Designer_Data-confusion=\uB370\uC774\uD130\uD63C\uD569 +FR-Designer_Data_Type=\uB370\uC774\uD130\uC720\uD615 +FR-Designer_Double_Click_Edit_OR_Clear=\uB354\uBE14\uD074\uB9AD\uD558\uC5EC\uD3B8\uC9D1\uB610\uB294\uD074\uB9AC\uC5B4\uC2E4\uD589 +FR-Designer_Email=\uBA54\uC77C +FR-Designer_Enabled=\uC0AC\uC6A9\uAC00\uB2A5 +FR-Designer_End-Date=\uC885\uB8CC\uB0A0\uC9DC +FR-Designer_ExportAndOutput=\uB0B4\uBCF4\uB0B4\uAE30 +FR-Designer_FRFont=\uAE00\uAF34 +FR-Designer_FS_Close_Other_Templates=\uAE30\uD0C0\uD15C\uD50C\uB9BF\uB2EB\uAE30 +FR-Designer_File=\uD30C\uC77C +FR-Designer_Filter_Conditions=\uD544\uD130\uC870\uAC74 +FR-Designer_Finish-Modify-Share=\uC218\uC815\uC644\uB8CC\uBC0F\uACF5\uC720 +FR-Designer_Fit-App=App\uC790\uAE30\uC801\uC751 +FR-Designer_Font-Family=\uAE00\uAF34\uBA85\uCE6D +FR-Designer_Font-Size=\uAE00\uAF34\uD06C\uAE30 +FR-Designer_Forbid_Drag_into_Adapt_Pane=\uD574\uB2F9\uAC1D\uCCB4\uB294\uD3FC\uD14C\uC774\uBE14\uBC14\uB514\uB4DC\uB798\uADF8\uB97C\uD5C8\uC6A9\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +FR-Designer_Forbid_Drag_into_Para_Pane=\uD574\uB2F9\uAC1D\uCCB4\uB294\uB9E4\uAC1C\uBCC0\uC218\uD328\uB110\uC744\uB4DC\uB798\uADF8\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer_Foreground=\uC0C9 +FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\uD3FC\uAD8C\uD55C\uD3B8\uC9D1\uC744\uC9C0\uC6D0\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +FR-Designer_Form-Report=\uBB38\uC11C\uBE14\uB7ED +FR-Designer_Form_EmbeddedTD=\uD3FC(\uB0B4\uC7A5\uB370\uC774\uD130) +FR-Designer_Form_Module=\uD3FC\uBAA8\uB4C8 +FR-Designer_Format_explan=\uC11C\uC2DD\uC124\uBA85 +FR-Designer_Formula=\uC218\uC2DD +FR-Designer_Forum=\uD3EC\uB7FC +FR-Designer_Get-Cube=Cube\uB97C\uC5BB\uB294\uC911 +FR-Designer_Help=\uB3C4\uC6C0\uB9D0 +FR-Designer_Hide=\uC228\uAE30\uAE30 +FR-Designer_Hyperlink=\uD558\uC774\uD37C\uB9C1\uD06C +FR-Designer_Hyperlink-Form_link=\uD604\uC7AC\uD3FC\uAC1D\uCCB4 +FR-Designer_IDCard=ID \uCE74\uB4DC +FR-Designer_Icon=\uC544\uC774\uCF58 +FR-Designer_Index=\uC5F4\uCD95/\uC778\uB371\uC2A4 +FR-Designer_Input_Rule=\uC791\uC131\uADDC\uCE59 +FR-Designer_Language_Default=\uAE30\uBCF8 +FR-Designer_Layout=\uB808\uC774\uC544\uC6C3 +FR-Designer_Layout-HBox=\uC218\uD3C9\uBC15\uC2A4\uB808\uC774\uC544\uC6C3 +FR-Designer_Layout-Index=\uC0C9\uC778 +FR-Designer_Layout_Constraints=\uC704\uCE58\uC640\uD06C\uAE30 +FR-Designer_Length=\uAE38\uC774 +FR-Designer_Loading_Data=\uB85C\uB529\uB370\uC774\uD130\uB85C\uB529\uC911 +FR-Designer_M-Exit=\uB098\uAC00\uAE30 +FR-Designer_M-Help=\uB3C4\uC6C0\uB9D0 +FR-Designer_M-Insert=\uC0BD\uC785 +FR-Designer_M-Repeat-Freeze=\uC911\uBCF5\uBC0F\uACE0\uC815\uC124\uC815 +FR-Designer_M-Server=\uC11C\uBC84 +FR-Designer_M-SwitchWorkspace=\uC804\uD658\uC791\uC5C5\uB514\uB809\uD130\uB9AC +FR-Designer_M-Template=\uD15C\uD50C\uB9BF +FR-Designer_MDX_Explain=\uADF8\uB798\uBA38\uC11C\uC2DD\uC740MDX\uADF8\uB798\uBA38\uCC38\uC870.\ n\uC608\uFF1A\nWITH\nMEMBER [Measures].[Special Discount] AS\n[Measures].[Discount Amount] * 1.5\nSELECT\n[Measures].[Special Discount] on COLUMNS,\nNON EMPTY [Product].[Product].MEMBERS ON Rows\nFROM [Adventure Works]\nWHERE [Product].[Category].[Bikes]\n\uBE44\uACE0\uFF1ACOLUMNS, ROWS\uB2940, 1\uB85C\uB300\uCCB4\uD560\uC218\uC788\uC73C\uBA70,\uCC3E\uC544\uBCF4\uAE30\uCD95\uC740\uB3CC\uC544\uAC00\uAE30\uB450\uCD95\uB9CC\uC9C0\uC6D0\uD568. +FR-Designer_M_Help-About_Software=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC5D0\uB300\uD558\uC5EC +FR-Designer_M_Help-Tutorial=\uB3C4\uC6C0\uB9D0\uD14D\uC2A4\uD2B8\uBD81 +FR-Designer_Max_Value=\uCD5C\uB300\uAC12 +FR-Designer_Min_Value=\uCD5C\uC18C\uAC12 +FR-Designer_MobilePhone=\uD734\uB300\uD3F0 +FR-Designer_New_Value=\uC0C8\uB85C\uC6B4\uAC12 +FR-Designer_None=\uC5C6\uC74C +FR-Designer_PaperSize-Mobile=\uD734\uB300\uD3F0 +FR-Designer_PaperSize-Mobile-Large=\uD734\uB300\uD3F0\uB300\uD615\uD654\uBA74 +FR-Designer_PaperSize-Mobile-Small=\uD734\uB300\uD3F0\uC18C\uD615\uD654\uBA74 +FR-Designer_Para-Body=\uB9E4\uAC1C\uBCC0\uC218\uC0AC\uC6A9\uC790\uC778\uD130\uD398\uC774\uC2A4 +FR-Designer_Parameters=\uB9E4\uAC1C\uBCC0\uC218 +FR-Designer_Phone=\uC804\uD654 +FR-Designer_PostCode=\uC6B0\uD3B8\uBC88\uD638 +FR-Designer_Present=\uD615\uD0DC +FR-Designer_Preview=\uBBF8\uB9AC\uBCF4\uAE30 +FR-Designer_Preview-Data-Confusion=\uD63C\uD569\uD6C4\uC758\uB370\uC774\uD130\uBBF8\uB9AC\uBCF4\uAE30 +FR-Designer_Product_Demo=\uC81C\uD488\uC2DC\uC5F0 +FR-Designer_Query_Type=\uCC3E\uC544\uBCF4\uAE30\uBC29\uC2DD +FR-Designer_Refresh=\uC0C8\uB85C\uACE0\uCE68 +FR-Designer_Refresh_Parameter_In_SQL=SQL\uC758\uB9E4\uAC1C\uBCC0\uC218\uB97C\uC0C8\uB85C\uACE0\uCE68\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C +FR-Designer_Reg_Expressions=\uC815\uADDC\uD45C\uD604\uC2DD +FR-Designer_Reg_Max_Length=\uCD5C\uB300\uAE38\uC774 +FR-Designer_Reg_Min_Length=\uCD5C\uC18C\uAE38\uC774 +FR-Designer_ReportColumns-Columns=\uC140\uB098\uB204\uAE30 +FR-Designer_Return-Date=\uB0A0\uC9DC\uB3CC\uC544\uAC00\uAE30 +FR-Designer_RichText=\uB9AC\uCE58\uD14D\uC2A4\uD2B8\uBC15\uC2A4\uC0BD\uC785 +FR-Designer_RichTextEditor=\uB9AC\uCE58\uD14D\uC2A4\uD2B8\uBC15\uC2A4\uD3B8\uC9D1\uAE30 +FR-Designer_Row=\uD589 +FR-Designer_Row_Dimension=\uD589\uCD95/\uCC28\uC6D0 +FR-Designer_Save=\uC800\uC7A5 +FR-Designer_Search=\uAC80\uC0C9 +FR-Designer_Set=\uC124\uC815 +FR-Designer_Share-Template=\uD15C\uD50C\uB9BF\uACF5\uC720 +FR-Designer_Simple_general=\uB2E8\uC21C\uBC94\uC6A9\uCC3E\uC544\uBCF4\uAE30 +FR-Designer_Song_TypeFace=\uC1A1\uCCB4 +FR-Designer_Start-Date=\uC2DC\uC791\uB0A0\uC9DC +FR-Designer_Subscript=\uBC11\uC904 +FR-Designer_Superscript=\uC717\uC904 +FR-Designer_Support_QQ=\uAE30\uC220QQ +FR-Designer_Swatch=\uC0D8\uD50C +FR-Designer_Tab_title=tab \uC81C\uBAA9 +FR-Designer_TableData=\uB370\uC774\uD130\uC138\uD2B8 +FR-Designer_Thank_guest=\uD3EC\uB7FC\uD310\uC288\uC758\uD574\uB2F9\uBC84\uC804\uC124\uACC4\uAE30\uC0AC\uC6A9\uC131\uC5D0\uB300\uD55C\uD070\uACF5\uD5CC\uC5D0\uAC10\uC0AC\uB4DC\uB9BD\uB2C8\uB2E4. +FR-Designer_Thanks-To=\uC778\uC0AC\uB9D0 +FR-Designer_Title=\uC81C\uBAA9 +FR-Designer_Total=\uCD1D +FR-Designer_UnSignIn=\uC544\uC9C1 \uB4F1\uB85D +FR-Designer_Underline=\uBC11\uC904 +FR-Designer_Used=\uCD5C\uADFC\uC0AC\uC6A9 +FR-Designer_User-defined-MDX=\uC0AC\uC6A9\uC790\uC815\uC758 MDX\uCC3E\uC544\uBCF4\uAE30 +FR-Designer_SampleText=\uC608\uC2DC\uD14D\uC2A4\uD2B8\uC608\uC2DC\uD14D\uC2A4\uD2B8 +FR-Designer_Vertical-LeftToRight=\uD14D\uC2A4\uD2B8\uC138\uB85C\uC904(\uC67C\uCABD\uC5D0\uC11C\uC624\uB978\uCABD\uC73C\uB85C) +FR-Designer_Vertical-RightToLeft=\uD14D\uC2A4\uD2B8\uC138\uB85C\uC904(\uC624\uB978\uCABD\uC5D0\uC11C\uC67C\uCABD\uC73C\uB85C) +FR-Designer_VerticalBoxLayout=\uC218\uC9C1\uBC15\uC2A4\uB808\uC774\uC544\uC6C3 +FR-Designer_Visible=\uBCFC\uC218\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer_WLayout-Border-ToolTips=\uC644\uC804\uD55C\uACBD\uACC4\uC120\uB808\uC774\uC544\uC6C3\uCEE8\uD14C\uC774\uB108\uB294\uB3D9\uB0A8\uC11C\uBD81\uC911\uAC04\uC7585\uBE14\uB7ED\uC73C\uB85C\uAD6C\uC131\uB418\uC5B4\uC788\uC73C\uBA70,\n\uC774\uC911\uB0A8\uBD81\uBE14\uB7ED\uC740\uD544\uC694\uC5D0\uB530\uB77C\uB192\uC774\uB97C\uC870\uC815\uD560\uC218\uC788\uC73C\uBA70\uB3D9\uC11C\uBE14\uB7ED\uC740\uD544\uC694\uC5D0\uB530\uB77C\uB108\uBE44\uB97C\uC870\uC815\uD560\uC218\uC788\uB2E4. +FR-Designer_WaterMark=\uC6CC\uD130\uB9C8\uD06C +FR-Designer_Widget=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4 +FR-Designer_Widget-Settings=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC124\uC815 +FR-Designer_Widget-Visible=\uBCFC\uC218\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer_XMLA_Explain=\uB2E4\uCC28\uC6D0\uB370\uC774\uD130\uC138\uD2B8\uB97C\uC774\uC6A9\uD574\uAC12\uC744\uC5BB\uC73C\uB824\uBA74\uC5F0\uACB0\uAC00\uB2A5\uD55C\uB2E4\uCC28\uC6D0\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB9C1\uD06C\uAC00\uD544\uC694\uD569\uB2C8\uB2E4.\ n \uB370\uC774\uD130\uC5F0\uACB0\uC744\uC124\uC815\uD55C\uD6C4\uB370\uC774\uD130\uCC3E\uAE30\uC2DC\uAC12\uC744\uC5BB\uC744\uC218\uC788\uB294\uBC29\uBC95\uC740\uB450\uAC00\uC9C0\uC785\uB2C8\uB2E4.\ n1.\uB2E8\uC21C\uBC94\uC6A9\uCC3E\uC544\uBCF4\uAE30\uFF1A\n\uB2E8\uC21C\uBC94\uC6A9\uCC3E\uAE30\uB294FineBI \uBC0F\uAE30\uD0C0\uB2E4\uCC28\uC6D0\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uC5D0\uC801\uC6A9\uB429\uB2C8\uB2E4.\ n\uB2E8\uC21C\uBC94\uC6A9\uC73C\uB85C\uCC3E\uACE0,FR\uC740 cube\uB97C\uC120\uD0DD\uD55C\uACC4\uCE35\uC11C\uBE0C\uAD6C\uC870\uB97C\uC790\uB3D9\uC73C\uB85C\uC77D\uC2B5\uB2C8\uB2E4.\uB2F9\uC2E0\uC740\uD544\uC694\uD55C\uCE21\uC815\uAC12\uBC0F\uCC28\uC6D0\uC744\uC9C1\uC811\uC120\uD0DD\uD560\uC218\uC788\uC73C\uBA70,\uD544\uD130\uB9C1\uC870\uAC74\uC744\uCD94\uAC00\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. FR\uC740\uB2F9\uC2E0\uC758\uC120\uD0DD\uC5D0\uB530\uB77C\uB370\uC774\uD130\uB97C\uC790\uB3D9\uC73C\uB85C\uCC3E\uC2B5\uB2C8\uB2E4.\ n\uB2E8\uC21C\uBC94\uC6A9\uCC3E\uC544\uBCF4\uAE30\uB294\uCC28\uC6D0\uBC0F\uCE21\uC815\uAC12\uB450\uCD95\uC758\uCC3E\uC544\uBCF4\uAE30\uB9CC\uC9C0\uC6D0\uD569\uB2C8\uB2E4.\ n\uCE21\uC815\uAC12\uBC0F\uCC28\uC6D0\uC124\uC815\uC911,\uD604\uC7AC\uB2F9\uC2E0\uC740\uD544\uC694\uD55C\uCC28\uC6D0\uB9CC\uC120\uD0DD\uD560\uC218\uC788\uC73C\uBA70\uC218\uB3D9\uC73C\uB85C\uC218\uC815\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. \ n\uD544\uD130\uC870\uAC74\uC740OPEN SQL\uADF8\uB798\uBA38\uB97C\uC0AC\uC6A9\uD558\uBA70,${abc}\uB97C\uB9E4\uAC1C\uBCC0\uC218\uB85C\uC785\uB825\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4.\uC0AC\uC6A9\uBC95\uC740\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB370\uC774\uD130\uC138\uD2B8\uC640\uAC19\uC2B5\uB2C8\uB2E4. \ n2.\uC0AC\uC6A9\uC790\uC815\uC758 MDX\uCC3E\uC544\uBCF4\uAE30\uFF1A\n \uC0AC\uC6A9\uC790\uC815\uC758 MDX\uCC3E\uC544\uBCF4\uAE30\uB97C\uC774\uC6A9\uD558\uC5EC\uC0AC\uC6A9\uC790\uC815\uC758 MDXJScript\uCC3E\uC544\uBCF4\uAE30\uC5D0\uD544\uC694\uD55C\uACB0\uACFC\uB97C\uCC3E\uC744\uC218\uC788\uC2B5\uB2C8\uB2E4.\ n\uC8FC\uC758\uFF0C\uC0AC\uC6A9\uC790\uC815\uC758 MDX\uCC3E\uC544\uBCF4\uAE30\uB3C4\uB450\uCD95\uC758\uCC3E\uC544\uBCF4\uAE30\uB9CC\uC9C0\uC6D0\uD569\uB2C8\uB2E4.\ n${abc}\uB97C\uB9E4\uAC1C\uBCC0\uC218\uB85C\uC785\uB825\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4.\uC0AC\uC6A9\uBC95\uC740\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uB370\uC774\uD130\uC138\uD2B8\uC640\uAC19\uC2B5\uB2C8\uB2E4\ nFineBI\uC758 cube\uB294 MDX\uCC3E\uC544\uBCF4\uAE30\uB97C\uC9C0\uC6D0\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. +FR-Designer_bold=\uAD75\uAC8C +FR-Designer_font=\uAE00\uAF34 +FR-Designer_italic=\uAE30\uC6B8\uAE30 +FR-Designer_product_feedback=\uC81C\uD488\uD53C\uB4DC\uBC31 +FR-Designer_XMLA=\uB2E4\uCC28\uC6D0\uB370\uC774\uD130\uBCA0\uC774\uC2A4 +FR-Designer-StyleAlignment_Layout_Default=\uAE30\uBCF8 +FR-Designer-StyleAlignment_Layout_Image_Titled=\uD0C0\uC77C +FR-Designer-StyleAlignment_Layout_Image_Extend=\uC7A1\uC544\uB2F9\uAE40 +FR-Designer-StyleAlignment_Layout_Image_Adjust=\uC801\uC6A9 +FR-Designer-StyleAlignment_Tooltips_Left=\uC67C\uCABD\uC5D0\uB9DE\uCDA4 +FR-Designer-StyleAlignment_Tooltips_Center=\uAC00\uC6B4\uB370\uC815\uB82C +FR-Designer-StyleAlignment_Tooltips_Right=\uC624\uB978\uCABD\uC5D0\uB9DE\uCDA4 +FR-Designer-StyleAlignment_Tooltips_Distributed=\uBD84\uC0B0\uC815\uB82C +FR-Designer-StyleAlignment_Tooltips_DEFAULT=\uAE30\uBCF8 +FR-Designer-StyleAlignment_Tooltips_Top=\uC704\uC5D0\uB9DE\uCDA4 +FR-Designer-StyleAlignment_Tooltips_Bottom=\uC544\uB798\uC5D0\uB9DE\uCDA4 +FR-Designer-StyleAlignment_Pane_Horizontal=\uC218\uD3C9\uC815\uB82C +FR-Designer-StyleAlignment_Pane_Vertical=\uC218\uC9C1\uC815\uB82C +FR-Designer-StyleAlignment_Pane_Style=\uC815\uB82C\uBC29\uC2DD +FR-Designer-StyleAlignment_Style_Indentation=\uB4E4\uC5EC\uC4F0\uAE30 +FR-Designer-StyleAlignment_Style_Spacing=\uAC04\uACA9 +FR-Designer-StyleAlignment_Style_Alignment=\uC815\uB82C +FR-Designer-CommitTab_Submit=\uC81C\uCD9C +FR-Designer-CommitTab_SureToDelete=\uC0AD\uC81C\uD655\uC778 +FR-Designer-CommitTab_Remove=\uC0AD\uC81C +FR-Designer-Collect_Information_free=\uBB34\uB8CC +FR-Designer-Collect_Information_Description=\uC124\uBA85 +FR-Designer-Collect_Information_Successfully=\uC218\uC9D1\uC131\uACF5 +FR-Designer_Event_Set=\uC774\uBCA4\uD2B8\uC124\uC815 +FR-Designer_Blow_set=\uB2E4\uC74C\uC124\uC815 +FR-Designer_I_Want_To_Set_Single=\uD574\uB2F9\uD15C\uD50C\uB9BF\uC5D0\uB300\uD55C\uB2E8\uB3C5\uC124\uC815 +FR-Designer_Using_Server_Report_View_Settings=\uC11C\uBC84\uC124\uC815\uC0AC\uC6A9 +FR-Designer_ErrorHandlerTemplate=\uD15C\uD50C\uB9BF\uC815\uC758\uC624\uB958 +FR-Designer_Save_Path=\uC800\uC7A5\uACBD\uB85C +FR-Designer_Chart_Acc_Set=\uC815\uD655\uD55C\uC124\uC815 +FR-Designer_Gradient-Color=\uADF8\uB77C\uB370\uC774\uC158\uC0C9\uC0C1 +FR-Designer_DEFAULT=\uAE30\uBCF8 +FR-Designer_chart-PreStyle=\uCC28\uD2B8\uC0AC\uC804\uC815\uC758\uB41C\uC0C9\uBC30\uD569 +FR-Designer_Chart-PreStyle=\uCC28\uD2B8\uC0AC\uC804\uC815\uC758\uB41C\uC0C9\uBC30\uD569 +FR-Designer_Already_exist=\uD604\uC7AC\uD658\uACBD\uC774\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4\: +FR-Designer_Database=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 +FR-Designer_Model=\uBAA8\uB4DC +FR-Designer_Refresh_Successfully=\uC0C8\uB85C\uACE0\uCE68\uC131\uACF5 +FR-Designer_SQL-Table=\uD45C +FR-Designer_SQL-View=\uBDF0 +FR-Designer_Failed=\uC2E4\uD328 +FR-Designer_Chart_Field_Name=\uD544\uB4DC\uBA85 +FR-Designer_FormulaD-Text=\uD14D\uC2A4\uD2B8\uD568\uC218 +FR-Designer_FormulaD-Logical=\uB17C\uB9AC\uD568\uC218 +FR-Designer_FormulaD-Array=\uBC30\uC5F4\uD568\uC218 +FR-Designer_FormulaD-Report=\uBB38\uC11C\uD568\uC218 +FR-Designer_FormulaD-Other=\uAE30\uD0C0\uD568\uC218 +FR-Designer_FormulaD-All=\uBAA8\uB4E0\uD568\uC218 +FR-Designer_Function=\uD568\uC218 +FR-Designer_Select=\uC120\uD0DD +FR-Designer_Edit=\uD3B8\uC9D1 +FR-Designer_Description=\uC124\uBA85 +FR-Designer_Role_changed_isRefresh=\uC5ED\uD560\uC774\uBCC0\uACBD\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\uC0C8\uB85C\uACE0\uCE68\uC744\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +FR-Designer_FS_Name=\uB370\uC774\uD130\uC815\uCC45\uC2DC\uC2A4\uD15C +FR-Designer_Datasource-Parameter=\uB370\uC774\uD130\uC18C\uC2A4\uB9E4\uAC1C\uBCC0\uC218 +FR-Designer_Tree-ComboBox=\uD2B8\uB9AC\uD480\uB2E4\uC6B4 +FR-Designer_Form-Iframe=\uC6F9\uD398\uC774\uC9C0\uD504\uB808\uC784 +FR-Designer_Type=\uC720\uD615 +FR-Designer_User-defined=\uC0AC\uC6A9\uC790\uC815\uC758 +FR-Designer_Simple_general_forV6=\uBC94\uC6A9\uCC3E\uC544\uBCF4\uAE30(ECC 6 \uC774\uC0C1\uBC84\uC804\uC5D0\uC801\uC6A9) +FR-Designer_Import=\uC785\uB825 +FR-Designer_Export=\uCD9C\uB825 +FR-Designer_Delete=\uC0AD\uC81C +FR-Designer_Sequenced_number=\uBC88\uD638 +FR-Designer_Parameters_name=\uB9E4\uAC1C\uBCC0\uC218\uBA85\uCE6D +FR-Designer_SAP_datatype=SAP\uB370\uC774\uD130\uC720\uD615 +FR-Designer_Return_set_name=\uC138\uD2B8(\u96C6)\uB85C\uB3CC\uC544\uAC00\uAE30 +FR-Designer_Datatype=\uB370\uC774\uD130\uC720\uD615 +FR-Designer_Corre_parameter=\uC0C1\uC751\uD558\uB294\uB9E4\uAC1C\uBCC0\uC218 +FR-Designer_Default_value=\uB9E4\uAC1C\uBCC0\uC218\uAE30\uBCF8\uAC12 +FR-Designer_SAP_column_name=SAP\uC5F4\uC774\uB984 +FR-Designer_Table_name=\uD45C\uC774\uB984 +FR-Designer_Columns_choosed=\uC120\uD0DD\uD55C\uC5F4 +FR-Designer_Where_claus=\uD544\uD130\uC870\uAC74 +FR-Designer_PreStyle=\uC0AC\uC804\uC815\uC758\uB41C\uC591\uC2DD +FR-Designer_Loading=\uB85C\uB529\uC911 +FR-Designer_Table=\uD45C +FR-Designer_Name=\uC774\uB984 +FR-Designer_EmailPane-tips=${abc}\uB97C\uB9E4\uAC1C\uBCC0\uC218\uB85C\uC785\uB825\uD558\uACE0,abc\uB294\uB9E4\uAC1C\uBCC0\uC218\uBA85\uCE6D\uC774\uB429\uB2C8\uB2E4.${today()}\uC5D0\uB530\uB77C\uC81C\uBAA9\uBCF8\uBB38\uC740"${today()}\uD1B5\uACC4\uC0C1\uD669"\uFF0C\uC218\uC2E0\uC778\uC740"${p},123@gmail.com,mike"\uB85C\uD558\uACE0,mike\uB294\uD50C\uB7AB\uD3FC\uC0AC\uC6A9\uC790\uAD00\uB9AC\uC5D0\uC800\uC7A5\uB418\uC5B4\uC788\uB294\uC0AC\uC6A9\uC790\uC774\uB984\uC774\uC5B4\uC57C\uD569\uB2C8\uB2E4. +FR-Designer_EmailPane-mailContent=\uBA54\uC77C\uBCF8\uBB38 +FR-Designer_EmailPane-BCC=\uC228\uC740\uCC38\uC870 +FR-Designer_EmailPane-mailSubject=\uBA54\uC77C\uC81C\uBAA9 +FR-Designer_EmailPane-warnings=\uBA54\uC77C\uBC1C\uC1A1\uAD6C\uC131\uC774\uD615\uC131\uB418\uC9C0\uC54A\uC558\uC2B5\uB2C8\uB2E4.\uD50C\uB7AB\uD3FC\uC744\uB4F1\uB85D\uD558\uC5EC\uAD6C\uC131\uD558\uAC70\uB098\uAD00\uB9AC\uC790\uC5D0\uAC8C\uC5F0\uB77D\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer_Email_sentEmail=\uBA54\uC77C\uBC1C\uC1A1 +FR-Designer_file-is-locked=\uC5F4\uB824\uB294\uBB38\uC11C\uB97C\uB2E4\uB978\uC0AC\uB78C\uC774\uC0AC\uC6A9\uC911\uC774\uB2C8\uC7A0\uC2DC\uD6C4\uC5D0\uC5F4\uC5B4\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer_Custom_Icon_Message1=16 \u00D7 16\uADDC\uACA9\uC758 PNG\uC774\uBBF8\uC9C0\uC0AC\uC6A9\uAD8C\uC7A5 +FR-Designer_Add=\uCD94\uAC00 +FR-Designer_Custom_Icon_Message2=\uC870\uC791\uC774\uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4. +FR-Designer_Tooltips=\uC54C\uB9BC +FR-Designer_Remove=\uC0AD\uC81C +FR-Designer_Custom_Icon_SelectIcon=\uC544\uC774\uCF58\uC120\uD0DD +FR-Designer_Click_this_button=\uBCF8\uD0A4\uB97C\uD074\uB9AD\uD558\uC5EC\uACBD\uB85C\uC120\uD0DD +FR-Designer_Custom_Icon_Message3=\uC544\uC774\uCF58\uC774\uB984\uC774\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4. +FR-Designer_Set_default_browser=\uAE30\uBCF8\uC6F9\uBE0C\uB77C\uC6B0\uC800\uB97C\uCC3E\uC744\uC218\uC5C6\uC2B5\uB2C8\uB2E4. Intenet \uC635\uC158\uC5D0\uC11C\uC2DC\uC2A4\uD15C\uAE30\uBCF8\uC6F9\uBE0C\uB77C\uC6B0\uC800\uB97C\uC124\uC815\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer_Open=\uC5F4\uAE30 +FR-Designer_Utils-OpenDemoEnv=\uC81C\uD488\uC2DC\uC5F0.\uC791\uC5C5\uB514\uB809\uD130\uB9AC\uB85C\uC790\uB3D9\uC804\uD658\uD574\uC57C\uD569\uB2C8\uB2E4\uFF1A +FR-Designer_Utils-switch=\n\uD604\uC7AC\uC800\uC7A5\uB418\uC9C0\uC54A\uC740\uD30C\uC77C\uC774\uD604\uC7AC\uB514\uB809\uD130\uB9AC\uC5D0\uC800\uC7A5\uB418\uB824\uD569\uB2C8\uB2E4.\n\uACC4\uC18D\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?\uFF1F +FR-Designer_Utils-NewDemoEnv=\uC81C\uD488\uC2DC\uC5F0.\uC790\uB3D9\uC73C\uB85C\uC791\uC5C5\uB514\uB809\uD130\uB9AC\uAC00\uB9CC\uB4E4\uC5B4\uC9D1\uB2C8\uB2E4: +FR-Designer_Save_As_Global_Style=\uC804\uC5ED\uC11C\uC2DD\uC73C\uB85C\uC800\uC7A5 +FR-Designer_Input_The_Name_Of_Gloabel_Style=\uC800\uC7A5\uB41C\uBAA8\uB4E0\uC11C\uC2DD\uBA85\uCE6D\uC785\uB825 +FR-Designer_This_Name_Has_Exsit=\uC774\uC774\uB984\uC740\uC774\uBBF8\uC874\uC7AC\uD569\uB2C8\uB2E4. +FR-Designer_Shortcut_Set=\uB2E8\uCD95\uD0A4\uC124\uC815 +FR-Designer_Feature_Name=\uAE30\uB2A5\uBA85\uCE6D\uFF1A +FR-Designer_Cursor_to_next_column=\uCEE4\uC11C\uB97C\uB2E4\uC74C\uC5F4\uB85C\uC774\uB3D9 +FR-Designer_Cursor_to_next_row=\uCEE4\uC11C\uB97C\uB2E4\uC74C\uD589\uC73C\uB85C\uC774\uB3D9 +FR-Designer_Current_keys=\uD604\uC7AC\uB2E8\uCD95\uD0A4\uFF1A +FR-Designer_Exchange_key=\uAD50\uD658\uB2E8\uCD95\uD0A4\uD074\uB9AD +FR-Designer_System_default=\uC2DC\uC2A4\uD15C\uC774\uAE30\uBCF8\uC744 +FR-Designer_Cursor_to_previous_column=\uCEE4\uC11C\uB97C\uC774\uC804\uC5F4\uB85C\uC774\uB3D9\uFF1A +FR-Designer_Cursor_to_previous_row=\uCEE4\uC11C\uB97C\uC774\uC804\uD589\uC73C\uB85C\uC774\uB3D9\uFF1A +FR-Designer_Are_You_Sure_To_Delete_The_Data=\uC120\uD0DD\uD55C\uB370\uC774\uD130\uB97C\uC0AD\uC81C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? +FR-Designer_Show_Icon=\uD0A4\uC544\uC774\uCF58\uBCF4\uC774\uAE30 +FR-Designer_Show_Text=\uD0A4\uC774\uB984\uBCF4\uC774\uAE30 +FR-Designer_User_Defined_Event=\uC0AC\uC6A9\uC790\uC815\uC758\uC774\uBCA4\uD2B8 +FR-Designer_Output_PDF=PDF\uCD9C\uB825 +FR-Designer_Output_Word=Word\uCD9C\uB825 +FR-Designer_Image=\uC774\uBBF8\uC9C0 +FR-Designer_Flash_Print=Flash\uC778\uC1C4 +FR-Designer_PDF_Print=PDF\uC778\uC1C4 +FR-Designer_Applet_Print=Applet\uC778\uC1C4 +FR-Designer_Server_Print=\uC11C\uBC84\uB2E8\uC778\uC1C4 +FR-Designer_Use_ToolBar=\uD234\uBC14\uC0AC\uC6A9 +FR-Designer_Report_Show_Location=\uBB38\uC11C\uBCF4\uC774\uAE30\uC704\uCE58 +FR-Designer_Is_Paint_Page=\uC774\uBBF8\uC9C0\uB85C\uBCF4\uC774\uAE30 +FR-Designer_IS_Auto_Scale=iframe \uC0BD\uC785 \uC2DC \uC790\uB3D9 \uCD95\uC18C +FR-Designer_IS_TD_HEAVY_EXPORT=\uC911(\u91CD)\uBC29\uC2DD\uCD9C\uB825\uADF8\uB9AC\uB4DC +FR-Designer_Top=\uC704 +FR-Designer_Bottom=\uC544\uB798 +FR-Designer-Collect_OSXTips=\uC54C\uB9BC\uFF1Acontrol+v\uB97C\uB20C\uB7EC\uD65C\uC131\uCF54\uB4DC\uBD99\uC5EC\uB123\uAE30 +FR-Designer_X_Coordinate=\uAC00\uB85C\uC88C\uD45C +FR-Designer_Y_Coordinate=\uC138\uB85C\uC88C\uD45C +FR-Designer_Widget_Width=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uB108\uBE44 +FR-Designer_Widget_Height=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uB192\uC774 +FR-Designer_Min_Height=\uCD5C\uC18C\uB192\uC774 +FR-Designer_LeftParent=\uC67C\uCABD\uBD80\uBAA8\uC140 +FR-Designer-PluginLicense_Check_Failed=\uD50C\uB7EC\uADF8\uC778\uAD8C\uD55C\uBD80\uC5EC\uD30C\uC77C\uC774\uAE30\uAC04\uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC\uD65C\uC131\uD654\uD558\uC2ED\uC2DC\uC624. +FR-Designer-File_address=\uD30C\uC77C\uC8FC\uC18C +FR-Designer-Local_file=\uB85C\uCEEC\uD30C\uC77C +FR-Designer_Selection=\uC120\uD0DD +FR-Designer-Type_Parameter= ${abc}\uB97C\uB9E4\uAC1C\uBCC0\uC218\uB85C\uC785\uB825\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4.\uC774abc\uB294\uB9E4\uAC1C\uBCC0\uC218\uC758\uC774\uB984\uC785\uB2C8\uB2E4. \uC608\uFF1A
+FR-Designer_Add_JS_warning=\uC608\uC2DC\uC0C1\uC5D0\uC788\uB294\uC815\uD655\uD55C url\uC8FC\uC18C\\ub97c\uC785\uB825\uD574\uC8FC\uC2ED\uC2DC\uC624! +FR-Designer-Encoding_Type=\uCF54\uB529\uC720\uD615 +FR-Designer-FirstRow_IS_ColumnName=\uCCAB\uBC88\uC9F8\uD589\uC5D0\uC5F4\uC81C\uBAA9\uD3EC\uD568 +FR-Designer_Dismenber=\uAD6C\uBD84\uBB38\uC790 +FR-Designer_TableDismember=\uD0ED\uAE30\uD638 +FR-Designer_Space=\uACF5\uBC31 +FR-Designer_CommaDismenber=\uC27C\uD45C +FR-Designer_Other=\uAE30\uD0C0 +FR-Designer-Series_Dismenber_As_Single=\uC5F0\uC18D\uB41C\uAD6C\uBD84\uC790\uB294\uB2E8\uC77C\uCC98\uB9AC\uB85C\uAC04\uC8FC +FR-Designer_KeyPoint=\uD575\uC2EC\uB178\uB4DC +FR-Designer_loadedTreeModel=\uB85C\uB529\uC5D0\uC2E4\uD328\uD558\uC600\uC2B5\uB2C8\uB2E4.\uAC80\uC0AC\uD6C4\uB2E4\uC2DC\uC2DC\uB3C4\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer-Failed_to_load_the_plugin=\uD50C\uB7EC\uADF8\uC778\uC744\uB85C\uB529\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4.\uD50C\uB7EC\uADF8\uC778\uC744\uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694. +FR-Designer-Plugin_Please_Update_Jar=Jar\uD329\uC744\uC5C5\uB370\uC774\uD2B8\uD574\uC8FC\uC138\uC694.\uD50C\uB7EC\uADF8\uC778\uC740\uCD5C\uC800\uBC84\uC804\uC774\uC788\uC5B4\uC57C\uD569\uB2C8\uB2E4. +FR-Designer_Get-CubeGetting=cube\uD68D\uB4DD +FR-Designer_XMLA_Database=\uB370\uC774\uD130\uBCA0\uC774\uC2A4 +FR-Designer_XMLA_UserName=\uC0AC\uC6A9\uC790\uC774\uB984 +FR-Designer_XMLA_Password=\uC554\uD638 +FR-Designer_XMLA_Get_Catalog=catalog\uB97C\uC5BB\uB294\uC911 +FR-Designer_XMLA_Not_NULL=\uBE48\uCE78\uC73C\uB85C\uB458\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Designer_Column-Axis=\uC5F4\uCD95 +FR-Designer_LiteCondition_Common=\uC77C\uBC18 +FR-Designer_LiteCondition_Formula=\uC218\uC2DD +FR-Designer_LiteCondition_ConditionB-AND=~\uC640(AND) +FR-Designer_LiteCondition_ConditionB-OR=\uB610\uB294 (OR) +FR-Designer_LiteCondition_Common_Condition=\uC77C\uBC18\uC870\uAC74 +FR-Designer_LiteCondition_Formula_Condition=\uC218\uC2DD\uC870\uAC74 +FR-Designer_LiteCondition_Define=\uC815\uC758 +FR-Designer_Normal=\uC815\uC0C1 +FR-Designer_Alert=\uACBD\uACE0 +FR-Designer_Select_All=\uBAA8\uB450\uC120\uD0DD +FR-Designer_Clear_All=\uBAA8\uB450\uD074\uB9AC\uC5B4 +FR-Designer_Copy=\uBCF5\uC0AC +FR-Designer_Log=\uB85C\uADF8 +FR-Designer-Plugin_Expire_Dialog_Title=\uD50C\uB7EC\uADF8\uC778\uAE30\uAC04\uCD08\uACFC +FR-Designer-Plugin_Expire_Dialog_Text=\uD50C\uB7EC\uADF8\uC778\uAE30\uAC04\uC774\uCD08\uACFC\uB418\uC5C8\uC2B5\uB2C8\uB2E4.\uD310\uB87C\uC571\uC13C\uD130\uC5D0\uC11C\uAD6C\uB9E4\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Designer-Plugin_Finerest_Addon=\uD310\uB87C\uC571\uC13C\uD130 +FR-Designer_Performance_First=\uC131\uB2A5\uC6B0\uC120\uC21C\uC704 +FR-Designer_Total_N_Grade=\uCD1D\:${N}\uACC4\uCE35 +FR-Designer-BBSLogin_Login-Title=\uD3EC\uB7FC\uACC4\uC815\uC73C\uB85C\uB85C\uADF8\uC778 +FR-Designer_time(s)=\uD68C +FR-Designer_General=\uC77C\uBC18 +FR-Designer_Advanced=\uACE0\uAE09 +FR-Designer_Oracle=\uBAA8\uB4E0\uD45C +FR-Designer_Product_improve=\uC81C\uD488\uAC1C\uB7C9 +FR-Designer_Join_Product_improve=\uC81C\uD488\uAC1C\uB7C9\uACC4\uD68D\uCD94\uAC00 +FR-Designer_Preference-Function=\uAE30\uB2A5\uC124\uC815 +FR-Designer_max_undo_limit=\uCD5C\uB300\uD574\uC81C\uD69F\uC218 +FR-Designer_Surport_String_To_Formula=\uBB38\uC790\uC5F4\uC744\uC218\uC2DD\uC73C\uB85C\uD3B8\uC9D1\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer_Always=\uD574\uB2F9\uC870\uC791\uAE30\uBCF8\uC2E4\uD589 +FR-Designer_Export_Setting=\uB0B4\uBCF4\uB0B4\uAE30\uAD6C\uC131 +FR-Designer_Select_Export_Log_Directory=\uB514\uB809\uD130\uB9AC\uB0B4\uBCF4\uB0B4\uAE30\uC120\uD0DD +FR-Designer_Level_Setting=\uB4F1\uAE09\uC124\uC815 +FR-Designer_Choose_Language=\uC5B8\uC5B4\uC120\uD0DD +FR-Designer_Work_After_Restart_Designer=\uC124\uACC4\uAE30\uB97C\uC7AC\uBD80\uD305\uD574\uC57C\uC720\uD6A8\uD569\uB2C8\uB2E4. +FR-Designer_Setting-Ruler-Units=\uB208\uAE08\uC790\uB2E8\uC704\uC124\uC815 +FR-Designer_PageSetup-mm=\uBC00\uB9AC\uBBF8\uD130 +FR-Designer_Unit_CM=\uC13C\uD2F0\uBBF8\uD130 +FR-Designer_Page-Setup-Scale-Units=\uC6F9\uD398\uC774\uC9C0\uC124\uC815\uB208\uAE08\uC790\uB2E8\uC704 +FR-Designer_Report-Design-Ruler-Units=\uBB38\uC11C\uB514\uC790\uC778\uB208\uAE08\uC790\uB2E8\uC704 +FR-Designer_Web_Preview_Port_Setting=\uD3EC\uD2B8\uC124\uC815 +FR-Designer_Designer_Language=\uC124\uACC4\uAE30\uC5B8\uC5B4 +FR-Designer_Unit_INCH=\uC778\uCE58 +FR-Designer_Web_Preview_Port=\uD3EC\uD2B8\uBC88\uD638 +FR-Designer_Oracle_All_Tables=\uBAA8\uB4E0\uD45C +FR-Designer_Unit_PT=\uD30C\uC6B4\uB4DC +FR-Designer-Write_Auto_Stash=\uC790\uB3D9\uC784\uC2DC\uC800\uC7A5 +FR-Designer_Printer_Native_Button=\uB85C\uCEEC\uC778\uC1C4 +FR-Designer_Event_ShowWidgets=\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uC9C1\uC811\uBCF4\uC774\uAE30 +FR-Designer_Current_Preview_Rows=\uD604\uC7AC\uD589\uC218\uBBF8\uB9AC\uBCF4\uAE30 +FR-Designer_Data=\uB370\uC774\uD130 +FR-Designer_Error=\uC624\uB958 +FR-Designer-Website_Url=http\://www.finereport.com/ +FR-Designer-BBSLogin_Download-Unlogin-Tip= +FR-Designer-App_ReLayout=\uC804\uD654 \uB808\uC774\uC544\uC6C3 \uC791\uC5C5 +FR-Designer_Write-Save-Formula=\uAE30\uC785\uD558\uC5EC \uBCF4\uACE0\uD558\uB2E4 \uBCF4\uAD00 \uACF5\uC2DD +FR-Designer_Export-Save-Formula=\uB0B4\uBCF4\uB0B4\uAE30 \uC720\uBCF4 \uACF5\uC2DD +FR-Designer_Attention=\uC8FC\uC758 +FR-Designer_Forbid_Widgets_Intersects=\uC11C\uB85C \uACB9\uCE58\uB294 \uAE08\uC9C0 \uAD6C\uC131 \uC694\uC18C +FR-Designer_Widget_Scaling_Mode_Fit=\uC801\uC751 \uAD6C\uC5ED +FR-Designer_Widget_Scaling_Mode_Fixed=\uACE0\uC815 \uD06C\uAE30 +FR-Designer-Widget_Area_Scaling=\uAD6C\uC131 \uC694\uC18C \uC601\uC5ED \uD06C\uAE30 \uC870\uC815 +FR-Designer-Widget_Scaling_Mode=\uD655\uB300 / \uCD95\uC18C \uB17C\uB9AC +FR-Designer-QQLogin-Determine=\uACB0\uC815 +FR-Designer-QQLogin-Cancel=\uCDE8\uC18C +FR-Designer-Reuse_Manager= +FR-Designer_Layout_Block_Absolute= +FR-Designer_Layout_Block_Tab= +FR-Designer_Layout_Block_Blank= +FR-Designer_Attr_Layout= +FR-Designer_Attr_Layout_Type= +FR-Designer_Attr_Bidirectional_Adaptive= +FR-Designer-Selected_Widget= +FR-Designer_SimpleDetail_Report= +FR-Designer_Download_Template= +FR-Designer_Install_Template= +FR-Designer_Mobile-Refresh= +FR-Designer_Mobile-ToolBar= +FR-Designer_WLayout-Absolute-ToolTips=\uC790\uC720\uC2DD\uB808\uC774\uC544\uC6C3\uC740\uB808\uC774\uC544\uC6C3\uC548\uC5D0\uC11C\uC5B4\uB290\uC704\uCE58\uC5D0\uB3C4\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uB97C\uCD94\uAC00\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. +FR-Designer_Add_all=\uBAA8\uB450\uCD94\uAC00 +FR-Designer_Reset= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties new file mode 100644 index 0000000000..a83c0e8b4d --- /dev/null +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -0,0 +1,450 @@ +# generated time: 星期四 十一月 24 11:56:39 CST 2016 +FR-Designer-BBSLogin_Account=\u7528\u6237\u540D +FR-Designer-BBSLogin_Connection-Failure=\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5F53\u524D\u7F51\u7EDC\u72B6\u6001 +FR-Designer-BBSLogin_Connection-Failure-Tip=\u63D0\u793A +FR-Designer-BBSLogin_Forgot-Password=\u5FD8\u8BB0\u5BC6\u7801 +FR-Designer-BBSLogin_Login=\u767B\u5F55 +FR-Designer-BBSLogin_Login-Failure-Tip=\u7528\u6237\u540D\u6216\u5BC6\u7801\u9519\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u767B\u9646 +FR-Designer-BBSLogin_Password=\u5BC6\u7801 +FR-Designer-BBSLogin_Password-Empty-Tip=\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A +FR-Designer-BBSLogin_Register-Account=\u6CE8\u518C\u8D26\u53F7 +FR-Designer-BBSLogin_Switch-Account=\u5207\u6362\u8D26\u53F7 +FR-Designer-BBSLogin_Privite-Message=\u79C1\u4EBA\u6D88\u606F +FR-Designer-BBSLogin_Times=\u6B21 +FR-Designer-BBSLogin_Username-Empty-Tip=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A +FR-Designer-Basic_More_Color=\u66F4\u591A\u989C\u8272... +FR-Designer-Estate_Any=\u4E0D\u9650 +FR-Designer-Estate_Default_Font=\u9ED8\u8BA4\u5B57\u4F53 +FR-Designer-Estate_Default_Null=\u9ED8\u8BA4\u4E3A\u7A7A +FR-Designer-Estate_Default_Text=\u9ED8\u8BA4\u503C +FR-Designer-Estate_Parameter_Null_Text=\u53C2\u6570\u4E3A\u7A7A\u663E\u793A\u4E3A +FR-Designer-Estate_Radio-Group=\u5730\u4EA7\u884C\u4E1A\u901A\u7528\u6309\u94AE\u7EC4\u63A7\u4EF6 +FR-Designer-Estate_Selected_Font=\u9009\u4E2D\u5B57\u4F53 +FR-Designer-Estate_Widget_Value=\u63A7\u4EF6\u503C +FR-Designer-Layout_Adaptive_Layout=\u81EA\u9002\u5E94\u5E03\u5C40 +FR-Designer-Output_Background_Set=\u80CC\u666F\u8BBE\u7F6E +FR-Designer-Output_Default_Background=\u9ED8\u8BA4\u80CC\u666F +FR-Designer-Output_Excel_Page=Excel\u8F93\u51FA(\u5206\u9875\u5BFC\u51FA) +FR-Designer-Output_Excel_Sheet=Excel\u8F93\u51FA(\u5206\u9875\u5206Sheet\u5BFC\u51FA) +FR-Designer-Output_Excel_Simple=Excel\u8F93\u51FA(\u539F\u6837\u5BFC\u51FA) +FR-Designer-Plugin_PluginMarket_Coding=\u63D2\u4EF6\u5546\u5E97\u6B63\u5728\u5F00\u53D1\u4E2D\uFF0C\u656C\u8BF7\u671F\u5F85 +FR-Designer-Submit_Condition=\u6761\u4EF6 +FR-Designer-Widget-Title_border=\u8FB9\u6846 +FR-Designer-Widget-Title_border_color=\u989C\u8272 +FR-Designer_AbsoluteLayout=\u7EDD\u5BF9\u5E03\u5C40 +FR-Designer_Allow_Decimals=\u5141\u8BB8\u5C0F\u6570 +FR-Designer_Allow_Negative=\u5141\u8BB8\u8D1F\u503C +FR-Designer_Background-Click=\u9F20\u6807\u70B9\u51FB\u80CC\u666F +FR-Designer_Background-Initial=\u521D\u59CB\u80CC\u666F +FR-Designer_Background-Over=\u9F20\u6807\u6D6E\u52A8\u80CC\u666F +FR-Designer_Bar-Code-Exception-Tip=\u6570\u636E\u4E0D\u80FD\u4E3A\u7A7A +FR-Designer_Block-intersect=\u7981\u6B62\u5757\u4E0E\u5757\u4E4B\u95F4\u7684\u91CD\u53E0 +FR-Designer_BorderLayout=\u8FB9\u754C\u5E03\u5C40 +FR-Designer_Button-Hotkeys=\u5FEB\u6377\u952E +FR-Designer_Button-Icon=\u6309\u94AE\u56FE\u6807 +FR-Designer_Button-Name=\u6309\u94AE\u540D\u79F0 +FR-Designer_Button-Type=\u6309\u94AE\u7C7B\u578B +FR-Designer_CardLayout=Tab\u5E03\u5C40 +FR-Designer_Cell=\u5355\u5143\u683C +FR-Designer_Chart_Cell=\u56FE\u8868\u8D85\u94FE-\u8054\u52A8\u5355\u5143\u683C +FR-Designer_Chart_Float=\u56FE\u8868\u8D85\u94FE-\u8054\u52A8\u60AC\u6D6E\u5143\u7D20 +FR-Designer_Chart_Float_chart=\u56FE\u8868\u8D85\u94FE-\u60AC\u6D6E\u7A97\u56FE\u8868 +FR-Designer_Check-for-Updates=\u68C0\u67E5\u66F4\u65B0 +FR-Designer_Choose-Data-Confusion-Tip=\ \u8BF7\u9009\u62E9\u9700\u8981\u6DF7\u6DC6\u7684\u5B57\u6BB5\u540E\u9884\u89C8 +FR-Designer_Close=\u5173\u95ED +FR-Designer_Column=\u5217 +FR-Designer_Column_Measure=\u5217\u8F74/\u5EA6\u91CF\u503C +FR-Designer_Condition_Attributes=\u6761\u4EF6\u5C5E\u6027 +FR-Designer_Confusion-Col-Name=\u5B57\u6BB5\u540D\u79F0 +FR-Designer_Confusion-key=\u6DF7\u6DC6\u5173\u952E\u5B57 +FR-Designer_Currency_Line=\u91D1\u989D\u7EBF +FR-Designer_Current_tab=\u5F53\u524D\u7F16\u8F91tab +FR-Designer_Custom=\u81EA\u5B9A\u4E49 +FR-Designer_Custom-Angle=\u81EA\u5B9A\u4E49\u89D2\u5EA6 +FR-Designer_DS-Dictionary=\u6570\u636E\u5B57\u5178 +FR-Designer_Data-confusion=\u6570\u636E\u6DF7\u6DC6 +FR-Designer_Data_Type=\u6570\u636E\u7C7B\u578B +FR-Designer_Double_Click_Edit_OR_Clear=\u53CC\u51FB\u8FDB\u884C\u7F16\u8F91\u6216\u6E05\u9664 +FR-Designer_Email=\u90AE\u4EF6 +FR-Designer_Enabled=\u53EF\u7528 +FR-Designer_End-Date=\u7ED3\u675F\u65E5\u671F +FR-Designer_ExportAndOutput=\u5BFC\u51FA +FR-Designer_FRFont=\u5B57\u4F53 +FR-Designer_FS_Close_Other_Templates=\u5173\u95ED\u5176\u4ED6\u6A21\u677F +FR-Designer_File=\u6587\u4EF6 +FR-Designer_Filter_Conditions=\u8FC7\u6EE4\u6761\u4EF6 +FR-Designer_Finish-Modify-Share=\u5B8C\u6210\u4FEE\u6539\u5E76\u5206\u4EAB +FR-Designer_Fit-App=App\u81EA\u9002\u5E94 +FR-Designer_Font-Family=\u5B57\u4F53\u540D\u79F0 +FR-Designer_Font-Size=\u5B57\u4F53\u5927\u5C0F +FR-Designer_Forbid_Drag_into_Adapt_Pane=\u8BE5\u5BF9\u8C61\u4E0D\u5141\u8BB8\u62D6\u5165\u8868\u5355\u4E3B\u4F53 +FR-Designer_Forbid_Drag_into_Para_Pane=\u8BE5\u5BF9\u8C61\u4E0D\u80FD\u62D6\u5165\u53C2\u6570\u9762\u677F +FR-Designer_Foreground=\u989C\u8272 +FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u6682\u4E0D\u652F\u6301\u8868\u5355\u6743\u9650\u7F16\u8F91 +FR-Designer_Form-Report=\u62A5\u8868\u5757 +FR-Designer_Form_EmbeddedTD=\u8868\u5355(\u5185\u7F6E\u6570\u636E) +FR-Designer_Form_Module=\u8868\u5355\u6A21\u5757 +FR-Designer_Format_explan=\u683C\u5F0F\u8BF4\u660E +FR-Designer_Formula=\u516C\u5F0F +FR-Designer_Forum=\u8BBA\u575B +FR-Designer_Get-Cube=\u6B63\u5728\u83B7\u53D6cube +FR-Designer_Help=\u5E2E\u52A9 +FR-Designer_Hide=\u9690\u85CF +FR-Designer_Hyperlink=\u8D85\u7EA7\u94FE\u63A5 +FR-Designer_Hyperlink-Form_link=\u5F53\u524D\u8868\u5355\u5BF9\u8C61 +FR-Designer_IDCard=\u8EAB\u4EFD\u8BC1 +FR-Designer_Icon=\u56FE\u6807 +FR-Designer_Index=\u5217\u8F74/\u6307\u6807 +FR-Designer_Input_Rule=\u586B\u5199\u89C4\u5219 +FR-Designer_Language_Default=\u9ED8\u8BA4 +FR-Designer_Layout=\u5E03\u5C40 +FR-Designer_Layout-HBox=\u6C34\u5E73\u76D2\u5B50\u5E03\u5C40 +FR-Designer_Layout-Index=\u7D22\u5F15 +FR-Designer_Layout_Constraints=\u4F4D\u7F6E\u548C\u5927\u5C0F +FR-Designer_Length=\u957F\u5EA6 +FR-Designer_Loading_Data=\u6B63\u5728\u52A0\u8F7D\u6570\u636E +FR-Designer_M-Exit=\u9000\u51FA +FR-Designer_Allow-Blank=\u5141\u8BB8\u4E3A\u7A7A +FR-Designer_M-Help=\u5E2E\u52A9 +FR-Designer_M-Insert=\u63D2\u5165 +FR-Designer_M-Repeat-Freeze=\u91CD\u590D\u4E0E\u51BB\u7ED3\u8BBE\u7F6E +FR-Designer_M-Server=\u670D\u52A1\u5668 +FR-Designer_M-SwitchWorkspace=\u5207\u6362\u5DE5\u4F5C\u76EE\u5F55 +FR-Designer_M-Template=\u6A21\u677F +FR-Designer_MDX_Explain=\u8BED\u6CD5\u683C\u5F0F\u53C2\u8003MDX\u8BED\u6CD5\u3002\n\u4F8B\u5982\uFF1A\nWITH\nMEMBER [Measures].[Special Discount] AS\n[Measures].[Discount Amount] * 1.5\nSELECT\n[Measures].[Special Discount] on COLUMNS,\nNON EMPTY [Product].[Product].MEMBERS ON Rows\nFROM [Adventure Works]\nWHERE [Product].[Category].[Bikes]\n\u6CE8\uFF1ACOLUMNS\u3001ROWS\u53EF\u4EE5\u4F7F\u75280\u30011\u4EE3\u66FF\uFF0C\u67E5\u8BE2\u8F74\u53EA\u652F\u6301\u8FD4\u56DE\u4E24\u4E2A\u8F74\u3002 +FR-Designer_M_Help-About_Software=\u5173\u4E8E\u8F6F\u4EF6 +FR-Designer_M_Help-Tutorial=\u5E2E\u52A9\u6559\u7A0B +FR-Designer_Max_Value=\u6700\u5927\u503C +FR-Designer_Min_Value=\u6700\u5C0F\u503C +FR-Designer_MobilePhone=\u624B\u673A +FR-Designer_New_Value=\u65B0\u503C +FR-Designer_None=\u65E0 +FR-Designer_PaperSize-Mobile=\u624B\u673A +FR-Designer_PaperSize-Mobile-Large=\u624B\u673A\u5927\u5C4F +FR-Designer_PaperSize-Mobile-Small=\u624B\u673A\u5C0F\u5C4F +FR-Designer_Para-Body=\u53C2\u6570\u754C\u9762 +FR-Designer_Parameters=\u53C2\u6570 +FR-Designer_Phone=\u7535\u8BDD +FR-Designer_PostCode=\u90AE\u7F16 +FR-Designer_Present=\u5F62\u6001 +FR-Designer_Preview=\u9884\u89C8 +FR-Designer_Preview-Data-Confusion=\u9884\u89C8\u6DF7\u6DC6\u540E\u7684\u6570\u636E +FR-Designer_Product_Demo=\u4EA7\u54C1\u6F14\u793A +FR-Designer_Query_Type=\u67E5\u8BE2\u65B9\u5F0F +FR-Designer_Refresh=\u5237\u65B0 +FR-Designer_Refresh_Parameter_In_SQL=\u662F\u5426\u5237\u65B0SQL\u4E2D\u7684\u53C2\u6570 +FR-Designer_Reg_Expressions=\u6B63\u5219\u8868\u8FBE\u5F0F +FR-Designer_Reg_Max_Length=\u6700\u5927\u957F\u5EA6 +FR-Designer_Reg_Min_Length=\u6700\u5C0F\u957F\u5EA6 +FR-Designer_ReportColumns-Columns=\u5206\u680F +FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F +FR-Designer_RichText=\u63D2\u5165\u5BCC\u6587\u672C +FR-Designer_RichTextEditor=\u5BCC\u6587\u672C\u7F16\u8F91\u5668 +FR-Designer_Row=\u884C +FR-Designer_Row_Dimension=\u884C\u8F74/\u7EF4\u5EA6 +FR-Designer_Save=\u4FDD\u5B58 +FR-Designer_Search=\u641C\u7D22 +FR-Designer_Set=\u8BBE\u7F6E +FR-Designer_Share-Template=\u5206\u4EAB\u6A21\u677F +FR-Designer_Simple_general=\u7B80\u5355\u901A\u7528\u67E5\u8BE2 +FR-Designer_Song_TypeFace=\u5B8B\u4F53 +FR-Designer_Start-Date=\u8D77\u59CB\u65E5\u671F +FR-Designer_Subscript=\u4E0B\u6807 +FR-Designer_Superscript=\u4E0A\u6807 +FR-Designer_Support_QQ=\u6280\u672FQQ +FR-Designer_Swatch=\u6837\u54C1 +FR-Designer_Tab_title=tab\u6807\u9898 +FR-Designer_TableData=\u6570\u636E\u96C6 +FR-Designer_Thank_guest=\u7279\u522B\u9E23\u8C22\u4EE5\u4E0B\u8BBA\u575B\u5E06\u85AF\u5BF9\u8BE5\u7248\u672C\u8BBE\u8BA1\u5668\u6613\u7528\u6027\u505A\u51FA\u7684\u7A81\u51FA\u8D21\u732E +FR-Designer_Thanks-To=\u9E23\u8C22 +FR-Designer_Title=\u6807\u9898 +FR-Designer_Total=\u603B\u5171 +FR-Designer_UnSignIn=\u672A\u767B\u5F55 +FR-Designer_Underline=\u4E0B\u5212\u7EBF +FR-Designer_Used=\u6700\u8FD1\u4F7F\u7528 +FR-Designer_User-defined-MDX=\u81EA\u5B9A\u4E49MDX\u67E5\u8BE2 +FR-Designer_SampleText=\u793A\u4F8B\u6587\u672C \u793A\u4F8B\u6587\u672C +FR-Designer_Vertical-LeftToRight=\u6587\u5B57\u7AD6\u6392(\u4ECE\u5DE6\u5411\u53F3) +FR-Designer_Vertical-RightToLeft=\u6587\u5B57\u7AD6\u6392(\u4ECE\u53F3\u5411\u5DE6) +FR-Designer_VerticalBoxLayout=\u5782\u76F4\u76D2\u5B50\u5E03\u5C40 +FR-Designer_Visible=\u53EF\u89C1 +FR-Designer_WLayout-Border-ToolTips=\u5B8C\u6574\u7684\u8FB9\u754C\u5E03\u5C40\u5BB9\u5668\uFF0C\u7531\u4E1C\u5357\u897F\u5317\u4E2D\u4E94\u5757\u5171\u540C\u6784\u6210\uFF0C\n\u5176\u4E2D\u5357\u5317\u5757\u53EF\u4EE5\u6839\u636E\u9700\u8981\u8C03\u6574\u9AD8\u5EA6\uFF0C\u4E1C\u897F\u5757\u53EF\u4EE5\u6839\u636E\u9700\u8981\u8C03\u6574\u5BBD\u5EA6\u3002 +FR-Designer_WaterMark=\u6C34\u5370 +FR-Designer_Widget=\u63A7\u4EF6 +FR-Designer_Widget-Settings=\u63A7\u4EF6\u8BBE\u7F6E +FR-Designer_Widget-Visible=\u53EF\u89C1 +FR-Designer_XMLA_Explain=\u5728\u4F7F\u7528\u591A\u7EF4\u6570\u636E\u96C6\u53D6\u6570\u524D\uFF0C\u60A8\u9996\u5148\u9700\u8981\u4E00\u4E2A\u53EF\u6210\u529F\u8FDE\u63A5\u7684\u591A\u7EF4\u6570\u636E\u5E93\u8FDE\u63A5\u3002\n\u8BBE\u7F6E\u5B8C\u6570\u636E\u8FDE\u63A5\u540E\uFF0C\u67E5\u8BE2\u6570\u636E\u65F6,\u6709\u4E24\u79CD\u4E0D\u540C\u7684\u53D6\u6570\u624B\u6BB5\u3002\n1.\u7B80\u5355\u901A\u7528\u67E5\u8BE2\uFF1A\n\u7B80\u5355\u901A\u7528\u67E5\u8BE2\u9002\u7528\u4E8EFineBI\u53CA\u5176\u4ED6\u591A\u7EF4\u6570\u636E\u5E93\u3002\n\u4F7F\u7528\u7B80\u5355\u901A\u7528\u67E5\u8BE2\uFF0CFR\u5C06\u81EA\u52A8\u8BFB\u53D6\u9009\u62E9cube\u7684\u5C42\u6B21\u7ED3\u6784\uFF0C\u60A8\u53EF\u4EE5\u76F4\u63A5\u9009\u62E9\u6240\u9700\u7684\u5EA6\u91CF\u503C\u53CA\u7EF4\u5EA6\uFF0C\u5E76\u6DFB\u52A0\u7B5B\u9009\u6761\u4EF6\uFF0CFR\u4F1A\u6839\u636E\u60A8\u7684\u9009\u62E9\u81EA\u52A8\u67E5\u8BE2\u6570\u636E\u3002\n\u7B80\u5355\u901A\u7528\u67E5\u8BE2\u4EC5\u652F\u6301\u7EF4\u5EA6\u53CA\u5EA6\u91CF\u503C\u4E24\u4E2A\u8F74\u7684\u67E5\u8BE2\u3002\n\u5728\u5EA6\u91CF\u503C\u53CA\u7EF4\u5EA6\u8BBE\u7F6E\u4E2D\uFF0C\u76EE\u524D\u60A8\u53EA\u80FD\u9009\u62E9\u6240\u9700\u7EF4\u5EA6\uFF0C\u65E0\u6CD5\u624B\u52A8\u4FEE\u6539\u3002\n\u8FC7\u6EE4\u6761\u4EF6\u91C7\u7528OPEN SQL\u8BED\u6CD5\uFF0C\u60A8\u53EF\u4EE5\u952E\u5165${abc}\u4F5C\u4E3A\u4E00\u4E2A\u53C2\u6570\uFF0C\u7528\u6CD5\u540C\u6570\u636E\u5E93\u6570\u636E\u96C6\u3002\n2.\u81EA\u5B9A\u4E49MDX\u67E5\u8BE2\uFF1A\n\u4F7F\u7528\u81EA\u5B9A\u4E49MDX\u67E5\u8BE2\uFF0C\u60A8\u53EF\u4EE5\u81EA\u5B9A\u4E49MDX\u8BED\u53E5\u67E5\u8BE2\u6240\u9700\u7ED3\u679C\u3002\n\u6CE8\u610F\uFF0C\u81EA\u5B9A\u4E49MDX\u67E5\u8BE2\u4E5F\u53EA\u652F\u6301\u4E24\u4E2A\u8F74\u7684\u67E5\u8BE2\u3002\n\u60A8\u53EF\u952E\u5165${abc}\u505A\u4E3A\u4E00\u4E2A\u53C2\u6570\uFF0C\u7528\u6CD5\u540C\u6570\u636E\u5E93\u6570\u636E\u96C6\u3002\nFineBI\u7684cube\u4E0D\u652F\u6301MDX\u67E5\u8BE2\u3002 +FR-Designer_bold=\u52A0\u7C97 +FR-Designer_font=\u5B57\u4F53 +FR-Designer_italic=\u659C\u4F53 +FR-Designer_product_feedback=\u4EA7\u54C1\u53CD\u9988 +FR-Designer_XMLA=\u591A\u7EF4\u6570\u636E\u5E93 +FR-Designer-StyleAlignment_Layout_Default=\u9ED8\u8BA4 +FR-Designer-StyleAlignment_Layout_Image_Titled=\u5E73\u94FA +FR-Designer-StyleAlignment_Layout_Image_Extend=\u62C9\u4F38 +FR-Designer-StyleAlignment_Layout_Image_Adjust=\u9002\u5E94 +FR-Designer-StyleAlignment_Tooltips_Left=\u9760\u5DE6 +FR-Designer-StyleAlignment_Tooltips_Center=\u5C45\u4E2D +FR-Designer-StyleAlignment_Tooltips_Right=\u9760\u53F3 +FR-Designer-StyleAlignment_Tooltips_Distributed=\u5206\u6563\u5BF9\u9F50 +FR-Designer-StyleAlignment_Tooltips_DEFAULT=\u9ED8\u8BA4 +FR-Designer-StyleAlignment_Tooltips_Top=\u9760\u4E0A +FR-Designer-StyleAlignment_Tooltips_Bottom=\u9760\u4E0B +FR-Designer-StyleAlignment_Pane_Horizontal=\u6C34\u5E73\u5BF9\u9F50 +FR-Designer-StyleAlignment_Pane_Vertical=\u5782\u76F4\u5BF9\u9F50 +FR-Designer-StyleAlignment_Pane_Style=\u5BF9\u9F50\u65B9\u5F0F +FR-Designer-StyleAlignment_Style_Indentation=\u7F29\u8FDB +FR-Designer-StyleAlignment_Style_Spacing=\u95F4\u8DDD +FR-Designer-StyleAlignment_Style_Alignment=\u5BF9\u9F50 +FR-Designer-CommitTab_Submit=\u63D0\u4EA4 +FR-Designer-CommitTab_SureToDelete=\u786E\u8BA4\u5220\u9664 +FR-Designer-CommitTab_Remove=\u5220\u9664 +FR-Designer-Collect_Information_free=\u514D\u8D39 +FR-Designer-Collect_Information_Description=\u63CF\u8FF0 +FR-Designer-Collect_Information_Successfully=\u6536\u96C6\u6210\u529F +FR-Designer_Event_Set=\u4E8B\u4EF6\u8BBE\u7F6E +FR-Designer_Blow_set=\u4EE5\u4E0B\u8BBE\u7F6E +FR-Designer_I_Want_To_Set_Single=\u4E3A\u8BE5\u6A21\u677F\u5355\u72EC\u8BBE\u7F6E +FR-Designer_Using_Server_Report_View_Settings=\u91C7\u7528\u670D\u52A1\u5668\u8BBE\u7F6E +FR-Designer_ErrorHandlerTemplate=\u51FA\u9519\u6A21\u677F\u5B9A\u4E49 +FR-Designer_Save_Path=\u4FDD\u5B58\u8DEF\u5F84 +FR-Designer_Chart_Acc_Set=\u7CBE\u786E\u8BBE\u7F6E +FR-Designer_Gradient-Color=\u6E10\u53D8\u8272 +FR-Designer_DEFAULT=\u9ED8\u8BA4 +FR-Designer_chart-PreStyle=\u56FE\u8868\u9884\u5B9A\u4E49\u914D\u8272 +FR-Designer_Chart-PreStyle=\u56FE\u8868\u9884\u5B9A\u4E49\u914D\u8272 +FR-Designer_Already_exist=\u5F53\u524D\u73AF\u5883\u5DF2\u5B58\u5728\: +FR-Designer_Database=\u6570\u636E\u5E93 +FR-Designer_Model=\u6A21\u5F0F +FR-Designer_Refresh_Successfully=\u5237\u65B0\u6210\u529F +FR-Designer_SQL-Table=\u8868 +FR-Designer_SQL-View=\u89C6\u56FE +FR-Designer_Failed=\u5931\u8D25 +FR-Designer_Chart_Field_Name=\u5B57\u6BB5\u540D +FR-Designer_FormulaD-Text=\u6587\u672C\u51FD\u6570 +FR-Designer_FormulaD-Logical=\u903B\u8F91\u51FD\u6570 +FR-Designer_FormulaD-Array=\u6570\u7EC4\u51FD\u6570 +FR-Designer_FormulaD-Report=\u62A5\u8868\u51FD\u6570 +FR-Designer_FormulaD-Other=\u5176\u5B83\u51FD\u6570 +FR-Designer_FormulaD-All=\u5168\u90E8\u51FD\u6570 +FR-Designer_Function=\u51FD\u6570 +FR-Designer_Select=\u9009\u62E9 +FR-Designer_Edit=\u7F16\u8F91 +FR-Designer_Description=\u63CF\u8FF0 +FR-Designer_Role_changed_isRefresh=\u89D2\u8272\u5DF2\u53D8\u52A8\uFF0C\u662F\u5426\u5237\u65B0 +FR-Designer_FS_Name=\u6570\u636E\u51B3\u7B56\u7CFB\u7EDF +FR-Designer_Datasource-Parameter=\u6570\u636E\u6E90\u53C2\u6570 +FR-Designer_Tree-ComboBox=\u4E0B\u62C9\u6811 +FR-Designer_Form-Iframe=\u7F51\u9875\u6846 +FR-Designer_Type=\u7C7B\u578B +FR-Designer_User-defined=\u81EA\u5B9A\u4E49 +FR-Designer_Simple_general_forV6=\u901A\u7528\u67E5\u8BE2(\u9002\u7528\u4E8EECC 6\u4EE5\u4E0A\u7248\u672C) +FR-Designer_Import=\u8F93\u5165 +FR-Designer_Export=\u8F93\u51FA +FR-Designer_Delete=\u5220\u9664 +FR-Designer_Sequenced_number=\u5E8F\u53F7 +FR-Designer_Parameters_name=\u53C2\u6570\u540D\u79F0 +FR-Designer_SAP_datatype=SAP\u6570\u636E\u7C7B\u578B +FR-Designer_Return_set_name=\u8FD4\u56DE\u96C6 +FR-Designer_Datatype=\u6570\u636E\u7C7B\u578B +FR-Designer_Corre_parameter=\u5BF9\u5E94\u53C2\u6570 +FR-Designer_Default_value=\u53C2\u6570\u9ED8\u8BA4\u503C +FR-Designer_SAP_column_name=SAP\u5217\u540D +FR-Designer_Table_name=\u8868\u7684\u540D\u79F0 +FR-Designer_Columns_choosed=\u9009\u62E9\u7684\u5217 +FR-Designer_Where_claus=\u8FC7\u6EE4\u6761\u4EF6 +FR-Designer_PreStyle=\u9884\u5B9A\u4E49\u6837\u5F0F +FR-Designer_Loading=\u6B63\u5728\u52A0\u8F7D +FR-Designer_Table=\u8868 +FR-Designer_Name=\u540D\u5B57 +FR-Designer_EmailPane-tips=\u60A8\u53EF\u4EE5\u952E\u5165${abc}\u4F5C\u4E3A\u4E00\u4E2A\u53C2\u6570\uFF0Cabc\u4E3A\u53C2\u6570\u540D\u79F0\uFF1B${today()}\u4F5C\u4E3A\u516C\u5F0F\uFF0C\u4F8B\u5982\uFF1A\u6807\u9898\u6B63\u6587\u4E3A"${today()}\u7EDF\u8BA1\u60C5\u51B5"\uFF0C\u6536\u4EF6\u4EBA\u4E3A"${p},123@gmail.com,mike"\uFF0C\u8FD9\u91CCmike\u5FC5\u987B\u662F\u5DF2\u4FDD\u5B58\u5728\u5E73\u53F0\u7528\u6237\u7BA1\u7406\u91CC\u7684\u7528\u6237\u540D +FR-Designer_EmailPane-mailContent=\u90AE\u4EF6\u6B63\u6587 +FR-Designer_EmailPane-BCC=\u5BC6\u9001 +FR-Designer_EmailPane-mailSubject=\u90AE\u4EF6\u6807\u9898 +FR-Designer_EmailPane-warnings=\u60A8\u5C1A\u672A\u914D\u7F6E\u53D1\u4EF6\u90AE\u7BB1\uFF0C\u8BF7\u767B\u5F55\u5E73\u53F0\u8FDB\u884C\u914D\u7F6E\u6216\u8005\u8054\u7CFB\u7BA1\u7406\u5458 +FR-Designer_Email_sentEmail=\u53D1\u9001\u90AE\u4EF6 +FR-Designer_file-is-locked=\u60A8\u6240\u8981\u6253\u5F00\u7684\u62A5\u8868\u6B63\u5728\u88AB\u5176\u4ED6\u4EBA\u7F16\u8F91\uFF0C\u8BF7\u7A0D\u5019\u6253\u5F00 +FR-Designer_Custom_Icon_Message1=\u5EFA\u8BAE\u4F7F\u752816 \u00D7 16\u89C4\u683C\u7684PNG\u56FE\u7247 +FR-Designer_Add=\u589E\u52A0 +FR-Designer_Custom_Icon_Message2=\u60A8\u7684\u64CD\u4F5C\u5B58\u5728\u4E0D\u5408\u7406\u4E4B\u5904\u3002 +FR-Designer_Tooltips=\u63D0\u793A +FR-Designer_Remove=\u5220\u9664 +FR-Designer_Custom_Icon_SelectIcon=\u9009\u62E9\u56FE\u6807 +FR-Designer_Click_this_button=\u70B9\u51FB\u6B64\u6309\u94AE\u8FDB\u884C\u8DEF\u5F84\u9009\u62E9 +FR-Designer_Custom_Icon_Message3=\u56FE\u6807\u540D\u79F0\u5DF2\u7ECF\u5B58\u5728\u3002 +FR-Designer_Set_default_browser=\u6CA1\u6709\u627E\u5230\u9ED8\u8BA4\u6D4F\u89C8\u5668\uFF0C\u8BF7\u5728Intenet\u9009\u9879\u4E2D\u8BBE\u7F6E\u7CFB\u7EDF\u9ED8\u8BA4\u6D4F\u89C8\u5668\u3002 +FR-Designer_Open=\u6253\u5F00 +FR-Designer_Utils-OpenDemoEnv=\u4EA7\u54C1\u6F14\u793A\uFF0C\u9700\u8981\u81EA\u52A8\u5207\u6362\u81F3\u5DE5\u4F5C\u76EE\u5F55\uFF1A +FR-Designer_Utils-switch=\n\u60A8\u5F53\u524D\u672A\u88AB\u4FDD\u5B58\u6587\u4EF6\u5C06\u88AB\u4FDD\u5B58\u5728\u5F53\u524D\u76EE\u5F55\u4E0B\uFF0C\n\u662F\u5426\u7EE7\u7EED\uFF1F +FR-Designer_Utils-NewDemoEnv=\u4EA7\u54C1\u6F14\u793A\uFF0C\u5C06\u4E3A\u60A8\u81EA\u52A8\u521B\u5EFA\u5DE5\u4F5C\u76EE\u5F55\uFF1A +FR-Designer_Save_As_Global_Style=\u4FDD\u5B58\u4E3A\u5168\u5C40\u683C\u5F0F +FR-Designer_Input_The_Name_Of_Gloabel_Style=\u8F93\u5165\u6240\u4FDD\u5B58\u7684\u5168\u5C40\u683C\u5F0F\u540D\u79F0 +FR-Designer_This_Name_Has_Exsit=\u8FD9\u4E2A\u540D\u5B57\u5DF2\u7ECF\u5B58\u5728 +FR-Designer_Shortcut_Set=\u5FEB\u6377\u952E\u8BBE\u7F6E +FR-Designer_Feature_Name=\u529F\u80FD\u540D\u79F0\uFF1A +FR-Designer_Cursor_to_next_column=\u5149\u6807\u79FB\u5230\u4E0B\u4E00\u5217 +FR-Designer_Cursor_to_next_row=\u5149\u6807\u79FB\u5230\u4E0B\u4E00\u884C +FR-Designer_Current_keys=\u5F53\u524D\u5FEB\u6377\u952E\uFF1A +FR-Designer_Exchange_key=\u70B9\u51FB\u4E92\u6362\u5FEB\u6377\u952E +FR-Designer_System_default=\u7CFB\u7EDF\u5C06\u9ED8\u8BA4 +FR-Designer_Cursor_to_previous_column=\u5149\u6807\u79FB\u5230\u4E0A\u4E00\u5217\u4E3A\uFF1A +FR-Designer_Cursor_to_previous_row=\u5149\u6807\u79FB\u5230\u4E0A\u4E00\u884C\u4E3A\uFF1A +FR-Designer_Are_You_Sure_To_Delete_The_Data=\u786E\u5B9A\u5220\u9664\u9009\u4E2D\u6570\u636E\u5417 +FR-Designer_Show_Icon=\u663E\u793A\u6309\u94AE\u56FE\u6807 +FR-Designer_Show_Text=\u663E\u793A\u6309\u94AE\u540D\u5B57 +FR-Designer_User_Defined_Event=\u81EA\u5B9A\u4E49\u4E8B\u4EF6 +FR-Designer_Output_PDF=PDF\u8F93\u51FA +FR-Designer_Output_Word=Word\u8F93\u51FA +FR-Designer_Image=\u56FE\u7247 +FR-Designer_Flash_Print=Flash\u6253\u5370 +FR-Designer_PDF_Print=PDF\u6253\u5370 +FR-Designer_Applet_Print=Applet\u6253\u5370 +FR-Designer_Server_Print=\u670D\u52A1\u5668\u7AEF\u6253\u5370 +FR-Designer_Use_ToolBar=\u4F7F\u7528\u5DE5\u5177\u680F +FR-Designer_Report_Show_Location=\u62A5\u8868\u663E\u793A\u4F4D\u7F6E +FR-Designer_Is_Paint_Page=\u4EE5\u56FE\u7247\u65B9\u5F0F\u663E\u793A +FR-Designer_IS_Auto_Scale=iframe\u5D4C\u5165\u65F6\u81EA\u52A8\u7F29\u653E +FR-Designer_IS_TD_HEAVY_EXPORT=\u91CD\u65B9\u5F0F\u8F93\u51FA\u683C\u5B50 +FR-Designer_Top=\u4E0A +FR-Designer_Bottom=\u4E0B +FR-Designer-Collect_OSXTips=\u5C0F\u63D0\u793A\uFF1A\u8BF7\u6309control+v\u6765\u7C98\u8D34\u6FC0\u6D3B\u7801 +FR-Designer_X_Coordinate=\u6A2A\u5750\u6807 +FR-Designer_Y_Coordinate=\u7EB5\u5750\u6807 +FR-Designer_Widget_Width=\u63A7\u4EF6\u5BBD\u5EA6 +FR-Designer_Widget_Height=\u63A7\u4EF6\u9AD8\u5EA6 +FR-Designer_Min_Height=\u6700\u5C0F\u9AD8\u5EA6 +FR-Designer_LeftParent=\u5DE6\u7236\u683C +FR-Designer-PluginLicense_Check_Failed=\u60A8\u7684\u63D2\u4EF6\u6388\u6743\u6587\u4EF6\u5DF2\u7ECF\u8FC7\u671F\uFF0C\u8BF7\u91CD\u65B0\u6FC0\u6D3B +FR-Designer-File_address=\u6587\u4EF6\u5730\u5740 +FR-Designer-Local_file=\u672C\u5730\u6587\u4EF6 +FR-Designer_Selection=\u9009\u62E9 +FR-Designer-Type_Parameter= \u60A8\u53EF\u4EE5\u952E\u5165${abc}\u4F5C\u4E3A\u4E00\u4E2A\u53C2\u6570\uFF0C\u8FD9\u91CCabc\u662F\u53C2\u6570\u7684\u540D\u79F0\u3002\u4F8B\u5982\uFF1A
+FR-Designer_Add_JS_warning=\u8BF7\u8F93\u5165\u5982\u5B9E\u4F8B\u6240\u793A\u7684\u6B63\u786E\u7684url\u5730\u5740\! +FR-Designer-Encoding_Type=\u7F16\u7801\u7C7B\u578B +FR-Designer-FirstRow_IS_ColumnName=\u7B2C\u4E00\u884C\u5305\u542B\u5217\u6807\u9898 +FR-Designer_Dismenber=\u5206\u9694\u7B26 +FR-Designer_TableDismember=\u5236\u8868\u7B26 +FR-Designer_Space=\u7A7A\u683C +FR-Designer_CommaDismenber=\u9017\u53F7 +FR-Designer_Other=\u5176\u4ED6 +FR-Designer-Series_Dismenber_As_Single=\u8FDE\u7EED\u5206\u9694\u7B26\u89C6\u4E3A\u5355\u4E2A\u5904\u7406 +FR-Designer_KeyPoint=\u5173\u952E\u8282\u70B9 +FR-Designer_loadedTreeModel=\u52A0\u8F7D\u5931\u8D25,\u8BF7\u68C0\u67E5\u540E\u91CD\u8BD5 +FR-Designer-Failed_to_load_the_plugin=\u65E0\u6CD5\u52A0\u8F7D\u63D2\u4EF6\uFF0C\u8BF7\u66F4\u65B0\u63D2\u4EF6\uFF1A +FR-Designer-Plugin_Please_Update_Jar=\u8BF7\u66F4\u65B0Jar\u5305, \u63D2\u4EF6\u9700\u6C42\u6700\u4F4E\u7248\u672C +FR-Designer-Invalid_Page_Number=\u65E0\u6548\u9875\u7801 +FR-Designer_Get-CubeGetting=\u83B7\u53D6cube +FR-Designer_XMLA_Database=\u6570\u636E\u5E93 +FR-Designer_XMLA_UserName=\u7528\u6237\u540D +FR-Designer_XMLA_Password=\u5BC6\u7801 +FR-Designer_XMLA_Get_Catalog=\u6B63\u5728\u83B7\u53D6catalog +FR-Designer_XMLA_Not_NULL=\u4E0D\u80FD\u4E3A\u7A7A +FR-Designer_Column-Axis=\u5217\u8F74 +FR-Designer_LiteCondition_Common=\u666E\u901A +FR-Designer_LiteCondition_Formula=\u516C\u5F0F +FR-Designer_LiteCondition_ConditionB-AND=\u4E0E(AND) +FR-Designer_LiteCondition_ConditionB-OR=\u6216(OR) +FR-Designer_LiteCondition_Common_Condition=\u666E\u901A\u6761\u4EF6 +FR-Designer_LiteCondition_Formula_Condition=\u516C\u5F0F\u6761\u4EF6 +FR-Designer_LiteCondition_Define=\u5B9A\u4E49 +FR-Designer_Normal=\u6B63\u5E38 +FR-Designer_Alert=\u8B66\u544A +FR-Designer_Select_All=\u5168\u9009 +FR-Designer_Clear_All=\u6E05\u9664\u5168\u90E8 +FR-Designer_Copy=\u590D\u5236 +FR-Designer_Log=\u65E5\u5FD7 +FR-Designer-Plugin_Expire_Dialog_Title=\u63D2\u4EF6\u8FC7\u671F +FR-Designer-Plugin_Expire_Dialog_Text=\u63D2\u4EF6\u8FC7\u671F,\u8BF7\u524D\u5F80\u5E06\u8F6F\u5E94\u7528\u4E2D\u5FC3\u8FDB\u884C\u8D2D\u4E70\u3002 +FR-Designer-Plugin_Finerest_Addon=\u5E06\u8F6F\u5E94\u7528\u4E2D\u5FC3 +FR-Designer_Performance_First=\u6027\u80FD\u4F18\u5148 +FR-Designer_Total_N_Grade=\u603B\u5171\:${N}\u5C42 +FR-Designer-BBSLogin_Login-Title=\u8BBA\u575B\u8D26\u53F7\u767B\u9646 +FR-Designer_time(s)=\u6B21 +FR-Designer_General=\u5E38\u7528 +FR-Designer_Advanced=\u9AD8\u7EA7 +FR-Designer_Validate=\u6821\u9A8C +FR-Designer_Oracle=\u6240\u6709\u8868 +FR-Designer_Product_improve=\u4EA7\u54C1\u6539\u826F +FR-Designer_Join_Product_improve=\u52A0\u5165\u4EA7\u54C1\u6539\u826F\u8BA1\u5212 +FR-Designer_Preference-Function=\u529F\u80FD\u8BBE\u7F6E +FR-Designer_max_undo_limit=\u6700\u5927\u64A4\u9500\u6B21\u6570 +FR-Designer_Surport_String_To_Formula=\u652F\u6301\u5B57\u7B26\u4E32\u7F16\u8F91\u4E3A\u516C\u5F0F +FR-Designer_Always=\u9ED8\u8BA4\u6267\u884C\u8BE5\u64CD\u4F5C +FR-Designer_Export_Setting=\u5BFC\u51FA\u914D\u7F6E +FR-Designer_Select_Export_Log_Directory=\u9009\u62E9\u5BFC\u51FA\u76EE\u5F55 +FR-Designer_Level_Setting=\u7EA7\u522B\u8BBE\u7F6E +FR-Designer_Choose_Language=\u8BED\u8A00\u9009\u62E9 +FR-Designer_Work_After_Restart_Designer=\u91CD\u542F\u8BBE\u8BA1\u5668\u540E\u751F\u6548 +FR-Designer_Setting-Ruler-Units=\u6807\u5C3A\u5355\u4F4D\u8BBE\u7F6E +FR-Designer_PageSetup-mm=\u6BEB\u7C73 +FR-Designer_Unit_CM=\u5398\u7C73 +FR-Designer_Page-Setup-Scale-Units=\u9875\u9762\u8BBE\u7F6E\u6807\u5C3A\u5355\u4F4D +FR-Designer_Report-Design-Ruler-Units=\u62A5\u8868\u8BBE\u8BA1\u6807\u5C3A\u5355\u4F4D +FR-Designer_Web_Preview_Port_Setting=\u7AEF\u53E3\u8BBE\u7F6E +FR-Designer_Designer_Language=\u8BBE\u8BA1\u5668\u8BED\u8A00 +FR-Designer_Unit_INCH=\u82F1\u5BF8 +FR-Designer_Web_Preview_Port=\u7AEF\u53E3\u53F7 +FR-Designer_Oracle_All_Tables=\u6240\u6709\u8868 +FR-Designer_Unit_PT=\u78C5 +FR-Designer-Write_Auto_Stash=\u81EA\u52A8\u6682\u5B58 +FR-Designer_Printer_Native_Button=\u672C\u5730\u6253\u5370 +FR-Designer_Event_ShowWidgets=\u76F4\u63A5\u663E\u793A\u63A7\u4EF6 +FR-Designer_Current_Preview_Rows=\u5F53\u524D\u9884\u89C8\u884C\u6570 +FR-Designer_Data=\u6570\u636E +FR-Designer_Error=\u9519\u8BEF +FR-Designer_formDesignerModule=\u8868\u5355\u8BBE\u8BA1\u5668\u6A21\u5757 +FR-Designer-Website_Url=http\://www.finereport.com/ +FR-Designer-BBSLogin_Download-Unlogin-Tip=\u767B\u5F55\u540E\u624D\u80FD\u4E0B\u8F7D +FR-Designer-App_ReLayout=\u624B\u673A\u91CD\u5E03\u5C40 +FR-Designer_Mobile-Attr=\u79FB\u52A8\u7AEF\u5C5E\u6027 +FR-Designer_Mobile-Vertical=\u7AD6\u5C4F +FR-Designer_Mobile-Horizontal=\u6A2A\u5C4F +FR-Designer_COMMUNITY=\u793E\u533A +FR-Designer_COMMUNITY_BBS=\u5E06\u8F6F\u8BBA\u575B +FR-Designer_COMMUNITY_VIDEO=\u5165\u95E8\u89C6\u9891 +FR-Designer_COMMUNITY_HELP=\u5E2E\u52A9\u6587\u6863 +FR-Designer_COMMUNITY_UPDATE=\u4EA7\u54C1\u66F4\u65B0 +FR-Designer_COMMUNITY_NEED=\u9700\u6C42\u63D0\u4EA4 +FR-Designer_COMMUNITY_BUG=BUG\u53CD\u9988 +FR-Designer_COMMUNITY_SIGN=\u5E06\u8F6F\u8BA4\u8BC1 +FR-Designer_COMMUNITY_QUESTIONS=\u95EE\u9898\u6C42\u52A9 +FR-Designer_Mobile-Zoom=\u62A5\u8868\u7F29\u653E +FR-Designer_Mobile-Open=\u5F00\u542F +FR-Designer_Mobile-Warning=\u6700\u5927\u9AD8\u5EA6\u4E0D\u53EF\u8D85\u8FC7\u663E\u793A\u533A\u57DF\u768480% +FR-Designer_Button-OK=\u77E5\u9053\u4E86 +FR-Designer_Button-Cancel=\u53D6\u6D88 +FR-Designer_Write-Save-Formula=\u586B\u62A5/\u5206\u6790\u65F6\uFF0C\u4FDD\u7559\u516C\u5F0F\u7528\u4E8E\u8BA1\u7B97 +FR-Designer_Export-Save-Formula=\u5BFC\u51FA/\u7F16\u8F91\u7ED3\u679C\u65F6,\u4FDD\u7559\u516C\u5F0F +FR-Designer_Form-Fit-Tip=\u81EA\u9002\u5E94\u63D2\u4EF6 +FR-Designer_Form-Frozen-Tip=\u4F7F\u7528\u51BB\u7ED3\u65F6, \u5EFA\u8BAE\u5B89\u88C5 +FR-Designer_Form-Forzen-Speed=, \u5E76\u4F7F\u7528\u6A2A\u5411\u6216\u53CC\u5411\u81EA\u9002\u5E94\u6765\u63D0\u5347\u5C55\u73B0\u901F\u5EA6. +FR-Designer_Attention=\u6CE8\u610F +FR-Designer_Forbid_Widgets_Intersects=\u7981\u6B62\u7EC4\u4EF6\u76F8\u4E92\u91CD\u53E0 +FR-Designer_Widget_Scaling_Mode_Fit=\u9002\u5E94\u533A\u57DF +FR-Designer_Widget_Scaling_Mode_Fixed=\u56FA\u5B9A\u5927\u5C0F +FR-Designer-Widget_Area_Scaling=\u7EC4\u4EF6\u533A\u57DF\u7F29\u653E +FR-Designer-Widget_Scaling_Mode=\u7F29\u653E\u903B\u8F91 +FR-Designer-QQLogin-Determine=\u786E\u5B9A +FR-Designer-QQLogin-Cancel=\u53D6\u6D88 +FR-Designer-Reuse_Manager=\u7EC4\u4EF6\u7BA1\u7406 +FR-Designer_TableData-Default-Para=\u6570\u636E\u96C6\u9ED8\u8BA4\u53C2\u6570 +FR-Designer_Layout_Block_Absolute=\u7EDD\u5BF9\u753B\u5E03\u5757 +FR-Designer_Layout_Block_Tab=Tab\u5757 +FR-Designer_Layout_Block_Blank=\u7A7A\u767D\u5757 +FR-Designer_Attr_Layout=\u5E03\u5C40 +FR-Designer_Attr_Layout_Type=\u5E03\u5C40\u65B9\u5F0F +FR-Designer_Attr_Bidirectional_Adaptive=\u53CC\u5411\u81EA\u9002\u5E94 +FR-Designer-Selected_Widget=\u5F53\u524D\u63A7\u4EF6 +FR-Designer_LocalWidget=\u672C\u5730\u7EC4\u4EF6\u5E93 +FR-Designer_AllCategories=\u6240\u6709\u5206\u7C7B +FR-Designer_SimpleDetail_Report=\u7B80\u5355\u660E\u7EC6\u8868 +FR-Designer_SimpleCross_Report=\u7B80\u5355\u4EA4\u53C9\u8868 +FR-Designer_DoubleLayer_Report=\u53CC\u5C42\u8868\u5934 +FR-Designer_Download_Template=\u4E0B\u8F7D\u7EC4\u4EF6 +FR-Designer_Install_Template=\u5B89\u88C5\u7EC4\u4EF6 +FR-Designer_Delete_Template=\u5220\u9664\u7EC4\u4EF6 +FR-Designer_Mobile-ToolBar=\u5DE5\u5177\u680F +FR-Designer_Mobile-Refresh=\u5237\u65B0 +FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF\u4EE5\u5728\u5E03\u5C40\u5185\u4EFB\u610F\u4F4D\u7F6E\u6DFB\u52A0\u63A7\u4EF6 +FR-Designer_Reset=\u53D6\u6D88\u5220\u9664 +FR-Designer_Add_all=\u5168\u90E8\u6DFB\u52A0 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties new file mode 100644 index 0000000000..6bf0d2df3b --- /dev/null +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -0,0 +1,439 @@ +# generated time: 星期四 十一月 24 11:56:39 CST 2016 +FR-Designer-BBSLogin_Account=\u767B\u5165\u5E33\u865F +FR-Designer-BBSLogin_Connection-Failure=\u767B\u5165\u9023\u63A5\u5931\u6557\uFF0C\u8ACB\u6AA2\u67E5\u7576\u524D\u7DB2\u8DEF\u72C0\u614B +FR-Designer-BBSLogin_Connection-Failure-Tip=\u9023\u7DDA\u5931\u6557\u63D0\u793A +FR-Designer-BBSLogin_Forgot-Password=\u5FD8\u8A18\u5BC6\u78BC +FR-Designer-BBSLogin_Login=\u767B\u9304 +FR-Designer-BBSLogin_Login-Failure-Tip=\u5E33\u865F\u6216\u5BC6\u78BC\u932F\u8AA4\uFF0C\u8ACB\u91CD\u65B0\u767B\u9304 +FR-Designer-BBSLogin_Password=\u5BC6 \u78BC +FR-Designer-BBSLogin_Password-Empty-Tip=\u5BC6\u78BC\u4E0D\u80FD\u70BA\u7A7A +FR-Designer-BBSLogin_Register-Account=\u8A3B\u518A\u5E33\u865F +FR-Designer-BBSLogin_Switch-Account=\u5207\u63DB\u5E33\u865F +FR-Designer-BBSLogin_Privite-Message=\u79C1\u4EBA\u6D88\u606F +FR-Designer-BBSLogin_Times=\u6B21 +FR-Designer-BBSLogin_Username-Empty-Tip=\u4F7F\u7528\u8005\u70BA\u7A7A\u63D0\u793A +FR-Designer-Basic_More_Color=\u66F4\u591A\u984F\u8272... +FR-Designer-Estate_Any=\u4E0D\u9650 +FR-Designer-Estate_Default_Font=\u9810\u8A2D\u5B57\u9AD4 +FR-Designer-Estate_Default_Null=\u9810\u8A2D\u70BA\u7A7A +FR-Designer-Estate_Default_Text=\u9810\u8A2D\u70BA\u6587\u5B57 +FR-Designer-Estate_Parameter_Null_Text=\u53C3\u6578\u70BA\u7A7A\u986F\u793A\u70BA +FR-Designer-Estate_Radio-Group=\u901A\u7528\u6309\u9215\u7D44\u63A7\u5236\u9805 +FR-Designer-Estate_Selected_Font=\u9078\u4E2D\u5B57\u9AD4 +FR-Designer-Estate_Widget_Value=\u5C0F\u5DE5\u5177\u503C +FR-Designer-Layout_Adaptive_Layout=\u81EA\u9069\u61C9\u4F48\u5C40 +FR-Designer-Output_Background_Set=\u80CC\u666F\u8A2D\u5B9A +FR-Designer-Output_Default_Background=\u9810\u8A2D\u80CC\u666F +FR-Designer-Output_Excel_Page=Excel(\u5206\u9801\u532F\u51FA) +FR-Designer-Output_Excel_Sheet=Excel\u8F38\u51FA(\u5206\u9801\u5206Sheet\u532F\u51FA) +FR-Designer-Output_Excel_Simple=Excel\u8F38\u51FA(\u539F\u6A23\u532F\u51FA) +FR-Designer-Plugin_PluginMarket_Coding=\u63D2\u4EF6\u5546\u5E97\u6B63\u5728\u958B\u767C\u4E2D\uFF0C\u656C\u8ACB\u671F\u5F85 +FR-Designer-Submit_Condition=\u63D0\u4EA4\u689D\u4EF6 +FR-Designer-Widget-Title_border=\u6A19\u984C\u6846\u7DDA +FR-Designer-Widget-Title_border_color=\u6A19\u984C\u6846\u7DDA\u984F\u8272 +FR-Designer_AbsoluteLayout=\u7D55\u5C0D\u4F48\u5C40 +FR-Designer_Allow_Decimals=\u5141\u8A31\u5C0F\u6578 +FR-Designer_Allow_Negative=\u5141\u8A31\u8CA0\u503C +FR-Designer_Background-Click=\u6ED1\u9F20\u9EDE\u64CA\u80CC\u666F +FR-Designer_Background-Initial=\u521D\u59CB\u80CC\u666F +FR-Designer_Background-Over=\u6ED1\u9F20\u61F8\u6D6E\u80CC\u666F +FR-Designer_Bar-Code-Exception-Tip=\u689D\u78BC\u4F8B\u5916\u63D0\u793A +FR-Designer_Block-intersect=\u5340\u584A\u91CD\u758A +FR-Designer_BorderLayout=\u908A\u754C\u5E03\u5C40 +FR-Designer_Button-Hotkeys=\u5FEB\u6377\u9375 +FR-Designer_Button-Icon=\u6309\u9215\u5716\u793A +FR-Designer_Button-Name=\u6309\u9215\u540D\u7A31 +FR-Designer_Button-Type=\u6309\u9215\u985E\u578B +FR-Designer_CardLayout=\u5361\u7247\u8A2D\u8A08 +FR-Designer_Cell=\u5132\u5B58\u683C +FR-Designer_Chart_Cell=\u5716\u8868\u5132\u5B58\u683C +FR-Designer_Chart_Float=\u5716\u8868\u8D85\u93C8-\u806F\u52D5\u61F8\u6D6E\u5143\u7D20 +FR-Designer_Chart_Float_chart=\u5716\u8868\u8D85\u93C8-\u61F8\u6D6E\u7A97\u5716\u8868 +FR-Designer_Check-for-Updates=\u6AA2\u67E5\u66F4\u65B0 +FR-Designer_Choose-Data-Confusion-Tip=\u8ACB\u9078\u64C7\u9700\u8981\u6DF7\u6DC6\u7684\u6B04\u4F4D\u5F8C\u9810\u89BD +FR-Designer_Close=\u95DC\u9589 +FR-Designer_Column=\u6B04 +FR-Designer_Column_Measure=\u6B04\u4F4D\u6E2C\u91CF +FR-Designer_Condition_Attributes=\u689D\u4EF6\u5C6C\u6027 +FR-Designer_Confusion-Col-Name=\u6B04\u4F4D\u540D\u7A31 +FR-Designer_Confusion-key=\u6DF7\u6DC6\u95DC\u9375\u5B57 +FR-Designer_Currency_Line=\u9322\u5E63\u7DDA +FR-Designer_Current_tab=\u7576\u524D\u7DE8\u8F2FTab +FR-Designer_Custom=\u81EA\u5B9A\u7FA9 +FR-Designer_Custom-Angle=\u81EA\u5B9A\u7FA9\u89D2\u5EA6 +FR-Designer_DS-Dictionary=\u8CC7\u6599\u5B57\u5178 +FR-Designer_Data-confusion=\u8CC7\u6599\u6DF7\u6DC6 +FR-Designer_Data_Type=\u8CC7\u6599\u985E\u578B +FR-Designer_Double_Click_Edit_OR_Clear=\u96D9\u64CA\u9032\u884C\u7DE8\u8F2F\u6216\u6E05\u9664 +FR-Designer_Email=\u90F5\u4EF6 +FR-Designer_Enabled=\u53EF\u7528 +FR-Designer_End-Date=\u7D50\u675F\u65E5\u671F +FR-Designer_ExportAndOutput=\u532F\u51FA +FR-Designer_FRFont=\u5B57\u9AD4 +FR-Designer_FS_Close_Other_Templates=\u95DC\u9589\u5176\u4ED6\u7BC4\u672C +FR-Designer_File=\u6A94\u6848 +FR-Designer_Filter_Conditions=\u904E\u6FFE\u689D\u4EF6 +FR-Designer_Finish-Modify-Share=\u5B8C\u6210\u4FEE\u6539\u4E26\u5206\u4EAB +FR-Designer_Fit-App=App\u81EA\u9069\u61C9 +FR-Designer_Font-Family=\u5B57\u9AD4\u540D\u7A31 +FR-Designer_Font-Size=\u5B57\u9AD4\u5927\u5C0F +FR-Designer_Forbid_Drag_into_Adapt_Pane=\u8A72\u5C0D\u8C61\u4E0D\u5141\u8A31\u62D6\u5165\u8868\u55AE\u4E3B\u9AD4 +FR-Designer_Forbid_Drag_into_Para_Pane=\u8A72\u5C0D\u8C61\u4E0D\u80FD\u62D6\u5165\u53C3\u6578\u9762\u677F +FR-Designer_Foreground=\u984F\u8272 +FR-Designer_Form-AuthorityEdited_Cannot_be_Supported=\u66AB\u4E0D\u652F\u6301\u8868\u55AE\u6B0A\u9650\u7DE8\u8F2F +FR-Designer_Form-Report=\u5831\u8868\u683C\u5F0F +FR-Designer_Form_EmbeddedTD=\u5167\u5D01\u683C\u5F0F +FR-Designer_Form_Module=\u6A21\u7D44\u683C\u5F0F +FR-Designer_Format_explan=\u683C\u5F0F\u8AAA\u660E +FR-Designer_Formula=\u516C\u5F0F +FR-Designer_Forum=\u8AD6\u58C7 +FR-Designer_Get-Cube=\u6B63\u5728\u7372\u53D6cube +FR-Designer_Help=\u8AAA\u660E +FR-Designer_Hide=\u96B1\u85CF +FR-Designer_Hyperlink=\u8D85\u7D1A\u93C8\u63A5 +FR-Designer_Hyperlink-Form_link=\u7576\u524D\u8868\u55AE\u5C0D\u8C61 +FR-Designer_IDCard=\u8EAB\u4EFD\u8B49 +FR-Designer_Icon=\u5716\u793A +FR-Designer_Index=\u7D22\u5F15 +FR-Designer_Input_Rule=\u8F38\u5165\u898F\u5247 +FR-Designer_Language_Default=\u9810\u8A2D\u8A9E\u8A00 +FR-Designer_Layout=\u5E03\u5C40\u3001\u898F\u5283 +FR-Designer_Layout-HBox=\u6C34\u5E73\u76D2\u5B50\u5E03\u5C40 +FR-Designer_Layout-Index=\u7D22\u5F15\u898F\u5283 +FR-Designer_Layout_Constraints=\u898F\u5283\u7D04\u675F +FR-Designer_Length=\u9577\u5EA6 +FR-Designer_Loading_Data=\u6B63\u5728\u8F09\u5165\u8CC7\u6599 +FR-Designer_M-Exit=\u9000\u51FA +FR-Designer_M-Help=\u8AAA\u660E +FR-Designer_M-Insert=\u63D2\u5165 +FR-Designer_M-Repeat-Freeze=\u91CD\u8907\u8207\u51CD\u7D50 +FR-Designer_M-Server=\u4F3A\u670D\u5668 +FR-Designer_M-SwitchWorkspace=\u5207\u63DB\u5DE5\u4F5C\u5340\u9593 +FR-Designer_M-Template=\u7BC4\u672C +FR-Designer_MDX_Explain=\u8A9E\u6CD5\u683C\u5F0F\u53C3\u8003MDX\u8A9E\u6CD5\u3002\n\u4F8B\u5982\uFF1A\nWITH\nMEMBER [Measures].[Special Discount] AS\n[Measures].[Discount Amount] * 1.5\nSELECT\n[Measures].[Special Discount] on COLUMNS,\nNON EMPTY [Product].[Product].MEMBERS ON Rows\nFROM [Adventure Works]\nWHERE [Product].[Category].[Bikes]\n\u8A3B\uFF1ACOLUMNS\u3001ROWS\u53EF\u4EE5\u4F7F\u75280\u30011\u4EE3\u66FF\u67E5\u8EF8\u53EA\u652F\u6301\u8FD4\u56DE\u5169\u500B\u8EF8\u3002 +FR-Designer_M_Help-About_Software=\u95DC\u65BC\u8EDF\u9AD4 +FR-Designer_M_Help-Tutorial=\u64CD\u4F5C\u8AAA\u660E +FR-Designer_Max_Value=\u6700\u5927\u503C +FR-Designer_Min_Value=\u6700\u5C0F\u503C +FR-Designer_MobilePhone=\u624B\u6A5F +FR-Designer_New_Value=\u65B0\u503C +FR-Designer_None=\u7121 +FR-Designer_PaperSize-Mobile=\u624B\u6A5F +FR-Designer_PaperSize-Mobile-Large=\u624B\u6A5F\u5927\u87A2\u5E55 +FR-Designer_PaperSize-Mobile-Small=\u624B\u6A5F\u5C0F\u87A2\u5E55 +FR-Designer_Para-Body=\u53C3\u6578\u672C\u6587 +FR-Designer_Parameters=\u53C3\u6578 +FR-Designer_Phone=\u96FB\u8A71 +FR-Designer_PostCode=\u90F5\u905E\u5340\u865F +FR-Designer_Present=\u7576\u4E0B +FR-Designer_Preview=\u9810\u89BD +FR-Designer_Preview-Data-Confusion=\u6DF7\u6DC6\u8CC7\u6599\u9810\u89BD +FR-Designer_Product_Demo=\u7522\u54C1\u5C55\u793A +FR-Designer_Query_Type=\u67E5\u8A62\u985E\u578B +FR-Designer_Refresh=\u91CD\u65B0\u6574\u7406 +FR-Designer_Refresh_Parameter_In_SQL=\u5728SQL\u4E2D\u91CD\u65B0\u6574\u7406\u7684\u53C3\u6578 +FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u9054\u5F0F +FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u5EA6 +FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u5EA6 +FR-Designer_ReportColumns-Columns=\u5831\u8868\u6B04\u4F4D +FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F +FR-Designer_RichText= RTF +FR-Designer_RichTextEditor=RTF\u7DE8\u8F2F\u5668 +FR-Designer_Row=\u5217 +FR-Designer_Row_Dimension=\u5217\u7DAD\u5EA6 +FR-Designer_Save=\u5132\u5B58 +FR-Designer_Search=\u641C\u5C0B +FR-Designer_Set=\u8A2D\u5B9A +FR-Designer_Share-Template=\u5206\u4EAB\u7BC4\u672C +FR-Designer_Simple_general=\u7C21\u55AE\u901A\u7528 +FR-Designer_Song_TypeFace=\u5B8B\u9AD4 +FR-Designer_Start-Date=\u958B\u59CB\u65E5\u671F +FR-Designer_Subscript=\u4E0B\u6A19 +FR-Designer_Superscript=\u4E0A\u6A19 +FR-Designer_Support_QQ=\u652F\u63F4QQ +FR-Designer_Swatch=\u6A23\u54C1 +FR-Designer_Tab_title=tab\u6A19\u984C +FR-Designer_TableData=\u8CC7\u6599\u96C6 +FR-Designer_Thank_guest=\u611F\u8B1D\u5BA2\u6236 +FR-Designer_Thanks-To=\u9CF4\u8B1D +FR-Designer_Title=\u6A19\u984C +FR-Designer_Total=\u7E3D\u5171 +FR-Designer_UnSignIn=\u672A\u767B\u9304 +FR-Designer_Underline=\u5E95\u7DDA +FR-Designer_Used=\u6700\u8FD1\u4F7F\u7528 +FR-Designer_User-defined-MDX=\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62 +FR-Designer_Vertical-LeftToRight=\u6587\u5B57\u8C4E\u6392(\u5F9E\u5DE6\u5411\u53F3) +FR-Designer_Vertical-RightToLeft=\u6587\u5B57\u8C4E\u6392(\u5F9E\u53F3\u5411\u5DE6) +FR-Designer_VerticalBoxLayout=\u6A6B\u5411\u4F48\u5C40 +FR-Designer_Visible=\u53EF\u898B +FR-Designer_WLayout-Border-ToolTips=\u908A\u754C\u4F48\u5C40 +FR-Designer_WaterMark=\u6C34\u5370 +FR-Designer_Widget=\u5C0F\u5DE5\u5177 +FR-Designer_Widget-Settings=\u8A2D\u5B9A +FR-Designer_Widget-Visible=\u53EF\u898B +FR-Designer_XMLA_Explain=\u5728\u4F7F\u7528\u591A\u7DAD\u8CC7\u6599\u96C6\u53D6\u6578\u524D\uFF0C\u60A8\u9996\u5148\u9700\u8981\u4E00\u500B\u53EF\u6210\u529F\u9023\u63A5\u7684\u591A\u7DAD\u8CC7\u6599\u5EAB\u9023\u63A5\u3002\n\u8A2D\u5B9A\u5B8C\u8CC7\u6599\u9023\u63A5\u5F8C\uFF0C\u67E5\u8A62\u8CC7\u6599\u6642,\u6709\u5169\u7A2E\u4E0D\u540C\u7684\u53D6\u6578\u624B\u6BB5\u3002\n1.\u7C21\u55AE\u901A\u7528\u67E5\u8A62\uFF1A\n\u7C21\u55AE\u901A\u7528\u67E5\u8A62\u9069\u7528\u65BCFineBI\u53CA\u5176\u4ED6\u591A\u7DAD\u8CC7\u6599\u5EAB\u3002\n\u4F7F\u7528\u7C21\u55AE\u901A\u7528\u67E5\u8A62\uFF0CFR\u5C07\u81EA\u52D5\u8B80\u53D6\u9078\u64C7cube\u7684\u5C64\u6B21\u7D50\u69CB\uFF0C\u60A8\u53EF\u4EE5\u76F4\u63A5\u9078\u64C7\u6240\u9700\u7684\u5EA6\u91CF\u503C\u53CA\u7DAD\u5EA6\uFF0C\u4E26\u6DFB\u52A0\u7BE9\u9078\u689D\u4EF6\uFF0CFR\u6703\u6839\u64DA\u60A8\u7684\u9078\u64C7\u81EA\u52D5\u67E5\u8A62\u8CC7\u6599\u3002\n\u7C21\u55AE\u901A\u7528\u67E5\u8A62\u50C5\u652F\u6301\u7DAD\u5EA6\u53CA\u5EA6\u91CF\u503C\u5169\u500B\u8EF8\u7684\u67E5\u8A62\u3002\n\u5728\u5EA6\u91CF\u503C\u53CA\u7DAD\u5EA6\u8A2D\u5B9A\u4E2D\uFF0C\u76EE\u524D\u60A8\u53EA\u80FD\u9078\u64C7\u6240\u9700\u7DAD\u5EA6\uFF0C\u7121\u6CD5\u624B\u52D5\u4FEE\u6539\u3002\n\u904E\u6FFE\u689D\u4EF6\u63A1\u7528OPEN SQL\u8A9E\u6CD5\uFF0C\u60A8\u53EF\u4EE5\u9375\u5165${abc}\u4F5C\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u7528\u6CD5\u540C\u8CC7\u6599\u5EAB\u8CC7\u6599\u96C6\u3002\n2.\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62\uFF1A\n\u4F7F\u7528\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62\uFF0C\u60A8\u53EF\u4EE5\u81EA\u5B9A\u7FA9\u7FA9MDX\u8A9E\u53E5\u67E5\u8A62\u6240\u9700\u7D50\u679C\u3002\n\u6CE8\u610F\uFF0C\u81EA\u5B9A\u7FA9MDX\u67E5\u8A62\u4E5F\u53EA\u652F\u6301\u5169\u500B\u8EF8\u7684\u67E5\u8A62\u3002\n\u60A8\u53EF\u9375\u5165${abc}\u4F5C\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u7528\u6CD5\u540C\u8CC7\u6599\u5EAB\u8CC7\u6599\u96C6\u3002\nFineBI\u7684cube\u4E0D\u652F\u6301MDX\u67E5\u8A62\u3002 +FR-Designer_bold=\u7C97\u9AD4 +FR-Designer_font=\u5B57\u9AD4 +FR-Designer_italic=\u659C\u9AD4 +FR-Designer_product_feedback=\u554F\u984C\u53CD\u994B +FR-Designer_SampleText=\u793A\u4F8B\u6587\u672C \u793A\u4F8B\u6587\u672C +FR-Designer_XMLA=\u591A\u7DAD\u8CC7\u6599\u5EAB +FR-Designer-StyleAlignment_Layout_Default=\u9810\u8A2D +FR-Designer-StyleAlignment_Layout_Image_Titled=\u5E73\u92EA +FR-Designer-StyleAlignment_Layout_Image_Extend=\u62C9\u4F38 +FR-Designer-StyleAlignment_Layout_Image_Adjust=\u9069\u61C9 +FR-Designer-StyleAlignment_Tooltips_Left=\u9760\u5DE6 +FR-Designer-StyleAlignment_Tooltips_Center=\u5C45\u4E2D +FR-Designer-StyleAlignment_Tooltips_Right=\u9760\u53F3 +FR-Designer-StyleAlignment_Tooltips_Distributed=\u5206\u6563\u5C0D\u9F4A +FR-Designer-StyleAlignment_Tooltips_DEFAULT=\u9810\u8A2D +FR-Designer-StyleAlignment_Tooltips_Top=\u9760\u4E0A +FR-Designer-StyleAlignment_Tooltips_Bottom=\u9760\u4E0B +FR-Designer-StyleAlignment_Pane_Horizontal=\u6C34\u5E73\u5C0D\u9F4A +FR-Designer-StyleAlignment_Pane_Vertical=\u5782\u76F4\u5C0D\u9F4A +FR-Designer-StyleAlignment_Pane_Style=\u5C0D\u9F4A\u65B9\u5F0F +FR-Designer-StyleAlignment_Style_Indentation=\u7E2E\u9032 +FR-Designer-StyleAlignment_Style_Spacing=\u9593\u8DDD +FR-Designer-StyleAlignment_Style_Alignment=\u5C0D\u9F4A +FR-Designer-CommitTab_Submit=\u63D0\u4EA4 +FR-Designer-CommitTab_SureToDelete=\u78BA\u8A8D\u522A\u9664 +FR-Designer-CommitTab_Remove=\u522A\u9664 +FR-Designer-Collect_Information_free=\u514D\u8CBB +FR-Designer-Collect_Information_Description=\u63CF\u8FF0 +FR-Designer-Collect_Information_Successfully=\u6536\u96C6\u6210\u529F +FR-Designer_Event_Set=\u4E8B\u4EF6\u8A2D\u5B9A +FR-Designer_Blow_set=\u4EE5\u4E0B\u8A2D\u5B9A +FR-Designer_I_Want_To_Set_Single=\u70BA\u8A72\u6A21\u677F\u55AE\u7368\u8A2D\u5B9A +FR-Designer_Using_Server_Report_View_Settings=\u63A1\u7528\u4F3A\u670D\u5668\u8A2D\u5B9A +FR-Designer_ErrorHandlerTemplate=\u51FA\u932F\u6A21\u677F\u5B9A\u7FA9 +FR-Designer_Save_Path=\u5B58\u5132\u8DEF\u5F91 +FR-Designer_Chart_Acc_Set=\u7CBE\u78BA\u8A2D\u5B9A +FR-Designer_Gradient-Color=\u6F38\u8B8A\u8272 +FR-Designer_DEFAULT=\u9810\u8A2D +FR-Designer_chart-PreStyle=\u5716\u8868\u9810\u5B9A\u7FA9\u914D\u8272 +FR-Designer_Chart-PreStyle=\u5716\u8868\u9810\u5B9A\u7FA9\u914D\u8272 +FR-Designer_Already_exist=\u7576\u524D\u74B0\u5883\u5DF2\u5B58\u5728 +FR-Designer_Database=\u8CC7\u6599\u5EAB +FR-Designer_Model=\u6A21\u5F0F +FR-Designer_Refresh_Successfully=\u91CD\u65B0\u6574\u7406\u6210\u529F +FR-Designer_SQL-Table=\u8868 +FR-Designer_SQL-View=\u6AA2\u8996\u8868 +FR-Designer_Failed=\u5931\u6557 +FR-Designer_Chart_Field_Name=\u6B04\u4F4D\u540D +FR-Designer_FormulaD-Text=\u6587\u672C\u51FD\u6578 +FR-Designer_FormulaD-Logical=\u908F\u8F2F\u51FD\u6578 +FR-Designer_FormulaD-Array=\u6578\u7D44\u51FD\u6578 +FR-Designer_FormulaD-Report=\u5831\u8868\u51FD\u6578 +FR-Designer_FormulaD-Other=\u5176\u5B83\u51FD\u6578 +FR-Designer_FormulaD-All=\u5168\u90E8\u51FD\u6578 +FR-Designer_Function=\u51FD\u6578 +FR-Designer_Select=\u9078\u64C7 +FR-Designer_Edit=\u7DE8\u8F2F +FR-Designer_Description=\u63CF\u8FF0 +FR-Designer_Role_changed_isRefresh=\u89D2\u8272\u5DF2\u8B8A\u52D5\uFF0C\u662F\u5426\u91CD\u65B0\u6574\u7406 +FR-Designer_FS_Name=\u8CC7\u6599\u6C7A\u7B56\u7CFB\u7D71 +FR-Designer_Datasource-Parameter=\u8CC7\u6599\u6E90\u53C3\u6578 +FR-Designer_Tree-ComboBox=\u4E0B\u62C9\u6A39 +FR-Designer_Form-Iframe=\u7DB2\u9801\u6846 +FR-Designer_Type=\u985E\u578B +FR-Designer_User-defined=\u81EA\u5B9A\u7FA9 +FR-Designer_Simple_general_forV6=\u901A\u7528\u67E5\u8A62(\u9069\u7528\u65BCECC 6\u4EE5\u4E0A\u7248\u672C) +FR-Designer_Import=\u8F38\u5165 +FR-Designer_Export=\u8F38\u51FA +FR-Designer_Delete=\u522A\u9664 +FR-Designer_Sequenced_number=\u5E8F\u865F +FR-Designer_Parameters_name=\u53C3\u6578\u540D\u7A31 +FR-Designer_SAP_datatype=SAP\u8CC7\u6599\u985E\u578B +FR-Designer_Return_set_name=\u8FD4\u56DE\u96C6 +FR-Designer_Datatype=\u8CC7\u6599\u985E\u578B +FR-Designer_Corre_parameter=\u5C0D\u61C9\u53C3\u6578 +FR-Designer_Default_value=\u53C3\u6578\u9ED8\u8A8D\u503C +FR-Designer_SAP_column_name=SAP\u5217\u540D +FR-Designer_Table_name=\u8868\u7684\u540D\u7A31 +FR-Designer_Columns_choosed=\u9078\u64C7\u7684\u5217 +FR-Designer_Where_claus=\u904E\u6FFE\u689D\u4EF6 +FR-Designer_PreStyle=\u9810\u5B9A\u7FA9\u6A23\u5F0F +FR-Designer_Table=\u8868 +FR-Designer_Loading=\u6B63\u5728\u52A0\u8F09 +FR-Designer_Name=\u540D\u5B57 +FR-Designer_EmailPane-tips=\u60A8\u53EF\u4EE5\u9375\u5165${abc}\u4F5C\u70BA\u4E00\u500B\u53C3\u6578\uFF0Cabc\u70BA\u53C3\u6578\u540D\u7A31\uFF1B${today()}\u4F5C\u70BA\u516C\u5F0F\uFF0C\u4F8B\u5982\uFF1A\u6A19\u984C\u6B63\u6587\u70BA"${today()}\u7D71\u8A08\u60C5\u6CC1"\uFF0C\u6536\u4EF6\u4EBA\u70BA"${ p},123@gmail.com,mike"\uFF0C\u9019\u88E1mike\u5FC5\u9808\u662F\u5DF2\u5132\u5B58\u5728\u5E73\u53F0\u7528\u6236\u7BA1\u7406\u88E1\u7684\u5E33\u865F +FR-Designer_EmailPane-mailContent=\u90F5\u4EF6\u6B63\u6587 +FR-Designer_EmailPane-BCC=\u5BC6\u9001 +FR-Designer_EmailPane-mailSubject=\u90F5\u4EF6\u6A19\u984C +FR-Designer_EmailPane-warnings=\u60A8\u5C1A\u672A\u914D\u7F6E\u767C\u4EF6\u90F5\u7BB1\uFF0C\u8ACB\u767B\u9304\u5E73\u53F0\u9032\u884C\u914D\u7F6E\u6216\u8005\u806F\u7E6B\u7BA1\u7406\u54E1 +FR-Designer_Email_sentEmail=\u767C\u9001\u90F5\u4EF6 +FR-Designer_file-is-locked=\u60A8\u6240\u8981\u6253\u958B\u7684\u5831\u8868\u6B63\u5728\u88AB\u5176\u4ED6\u4EBA\u7DE8\u8F2F\uFF0C\u8ACB\u7A0D\u5019\u6253\u958B\u60A8\u6240\u8981\u6253\u958B\u7684\u5831\u8868\u6B63\u5728\u88AB\u5176\u4ED6\u4EBA\u7DE8\u8F2F\uFF0C\u8ACB\u7A0D\u5019\u6253\u958B +FR-Designer_Custom_Icon_Message1=\u5EFA\u8B70\u4F7F\u752816 ?? 16\u898F\u683C\u7684PNG\u5716\u7247 +FR-Designer_Add=\u589E\u52A0 +FR-Designer_Custom_Icon_Message2=\u5716\u6A19\u540D\u7A31\u5DF2\u7D93\u5B58\u5728\uFF0C\u6216\u8005\u60A8\u7684\u64CD\u4F5C\u5B58\u5728\u4E0D\u5408\u7406\u4E4B\u8655\u3002 +FR-Designer_Tooltips=\u63D0\u793A +FR-Designer_Remove=\u522A\u9664 +FR-Designer_Custom_Icon_SelectIcon=\u9078\u64C7\u5716\u6A19 +FR-Designer_Click_this_button=\u9EDE\u64CA\u6B64\u6309\u9215\u9032\u884C\u8DEF\u5F91\u9078\u64C7 +FR-Designer_Custom_Icon_Message3=\u5716\u6A19\u540D\u7A31\u5DF2\u7D93\u5B58\u5728\u3002 +FR-Designer_Set_default_browser=\u6C92\u6709\u627E\u5230\u9810\u8A2D\u700F\u89BD\u5668\uFF0C\u8ACB\u5728Intenet\u9078\u9805\u4E2D\u8A2D\u5B9A\u7CFB\u7D71\u9810\u8A2D\u700F\u89BD\u5668\u3002 +FR-Designer_Open=\u6253\u958B +FR-Designer_Utils-OpenDemoEnv=\u529F\u80FD\u5C55\u793A\uFF0C\u9700\u8981\u81EA\u52D5\u5207\u63DB\u81F3\u5DE5\u4F5C\u76EE\u9304\uFF1A +FR-Designer_Utils-switch=\n\u60A8\u7576\u524D\u672A\u88AB\u5132\u5B58\u7684\u6A94\u6848\u5C07\u88AB\u5132\u5B58\u5728\u7576\u524D\u76EE\u9304\u4E0B\uFF0C\n\u662F\u5426\u7E7C\u7E8C\uFF1F +FR-Designer_Utils-NewDemoEnv=\u529F\u80FD\u5C55\u793A\uFF0C\u5C07\u70BA\u60A8\u81EA\u52D5\u5275\u5EFA\u5DE5\u4F5C\u76EE\u9304\uFF1A +FR-Designer_Save_As_Global_Style=\u5132\u5B58\u70BA\u5168\u5C40\u683C\u5F0F +FR-Designer_Input_The_Name_Of_Gloabel_Style=\u8F38\u5165\u6240\u5132\u5B58\u7684\u5168\u5C40\u683C\u5F0F\u540D\u7A31 +FR-Designer_This_Name_Has_Exsit=\u9019\u500B\u540D\u5B57\u5DF2\u7D93\u5B58\u5728 +FR-Designer_Shortcut_Set=\u5FEB\u6377\u9375\u8A2D\u5B9A +FR-Designer_Feature_Name=\u529F\u80FD\u540D\u7A31\uFF1A +FR-Designer_Cursor_to_next_column=\u5149\u6A19\u79FB\u5230\u4E0B\u4E00\u6B04 +FR-Designer_Cursor_to_next_row=\u5149\u6A19\u79FB\u5230\u4E0B\u4E00\u5217 +FR-Designer_Current_keys=\u7576\u524D\u5FEB\u6377\u9375\uFF1A +FR-Designer_Exchange_key=\u9EDE\u64CA\u4E92\u63DB\u5FEB\u6377\u9375 +FR-Designer_System_default=\u7CFB\u7D71\u5C07\u9810\u8A2D +FR-Designer_Cursor_to_previous_column=\u5149\u6A19\u79FB\u5230\u4E0A\u4E00\u6B04\u70BA\uFF1A +FR-Designer_Cursor_to_previous_row=\u5149\u6A19\u79FB\u5230\u4E0A\u4E00\u5217\u70BA\uFF1A +FR-Designer_Are_You_Sure_To_Delete_The_Data=\u78BA\u5B9A\u4E0A\u9664\u9078\u4E2D\u8CC7\u6599\u55CE +FR-Designer_Show_Icon=\u986F\u793A\u6309\u9215\u5716\u793A +FR-Designer_Show_Text=\u986F\u793A\u6309\u9215\u540D\u5B57 +FR-Designer_User_Defined_Event=\u81EA\u5B9A\u7FA9\u4E8B\u4EF6 +FR-Designer_Output_PDF=PDF\u8F38\u51FA +FR-Designer_Output_Word=Word\u8F38\u51FA +FR-Designer_Image=\u5716\u7247 +FR-Designer_Flash_Print=Flash\u5217\u5370 +FR-Designer_PDF_Print=PDF\u5217\u5370 +FR-Designer_Applet_Print=Applet\u5217\u5370 +FR-Designer_Server_Print=\u4F3A\u670D\u5668\u7AEF\u5217\u5370 +FR-Designer_Use_ToolBar=\u4F7F\u7528\u5DE5\u5177\u6B04 +FR-Designer_Report_Show_Location=\u5831\u8868\u986F\u793A\u4F4D\u7F6E +FR-Designer_Is_Paint_Page=\u4EE5\u5716\u7247\u65B9\u5F0F\u986F\u793A +FR-Designer_IS_Auto_Scale=iframe\u5D4C\u5165\u6642\u81EA\u52D5\u7E2E\u653E +FR-Designer_IS_TD_HEAVY_EXPORT=\u91CD\u65B9\u5F0F\u8F38\u51FA\u683C\u5B50 +FR-Designer_Top=\u4E0A +FR-Designer_Bottom=\u4E0B +FR-Designer-Collect_OSXTips=\u5C0F\u63D0\u793A\uFF1A\u8ACB\u6309control+v\u4F86\u7C98\u8CBC\u6FC0\u6D3B\u78BC +FR-Designer_X_Coordinate=\u6A6B\u5EA7\u6A19 +FR-Designer_Y_Coordinate=\u7E31\u5EA7\u6A19 +FR-Designer_Widget_Width=\u63A7\u5236\u9805\u5BEC\u5EA6 +FR-Designer_Widget_Height=\u63A7\u5236\u9805\u9AD8\u5EA6 +FR-Designer_Min_Height=\u6700\u5C0F\u9AD8\u5EA6 +FR-Designer_LeftParent=\u5DE6\u7236\u683C +FR-Designer-PluginLicense_Check_Failed=\u60A8\u7684\u63D2\u4EF6\u6388\u6B0A\u6587\u4EF6\u5DF2\u7D93\u904E\u671F\uFF0C\u8ACB\u91CD\u65B0\u6FC0\u6D3B +FR-Designer-File_address=\u6A94\u6848\u5730\u5740 +FR-Designer-Local_file=\u672C\u6A5F\u6A94\u6848 +FR-Designer_Selection=\u9078\u64C7 +FR-Designer-Type_Parameter= \u60A8\u53EF\u4EE5\u9375\u5165${abc}\u4F5C\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u9019\u88E1abc\u662F\u53C3\u6578\u7684\u540D\u7A31\u3002\u4F8B\u5982\uFF1A
+FR-Designer_Add_JS_warning=\u8ACB\u8F38\u51FA\u6B63\u78BA\u7684url\u5730\u5740\uFF01 +FR-Designer-Encoding_Type=\u7DE8\u78BC\u985E\u578B +FR-Designer-FirstRow_IS_ColumnName=\u7B2C\u4E00\u5217\u5305\u542B\u6B04\u6A19\u984C +FR-Designer_Dismenber=\u5206\u9694\u7B26 +FR-Designer_TableDismember=\u88FD\u9336\u7B26 +FR-Designer_Space=\u7A7A\u683C +FR-Designer_CommaDismenber=\u9017\u865F +FR-Designer_Other=\u5176\u4ED6 +FR-Designer-Series_Dismenber_As_Single=\u9023\u7E8C\u5206\u9694\u7B26\u8996\u70BA\u55AE\u500B\u8655\u7406 +FR-Designer_KeyPoint=\u95DC\u9375\u7BC0\u9EDE +FR-Designer_loadedTreeModel=\u52A0\u8F09\u5931\u6557,\u8ACB\u6AA2\u67E5\u5F8C\u91CD\u8A66 +FR-Designer-Failed_to_load_the_plugin=\u7121\u6CD5\u52A0\u8F09\u63D2\u4EF6\uFF0C\u8ACB\u66F4\u65B0\u63D2\u4EF6\uFF1A +FR-Designer-Plugin_Please_Update_Jar=\u8ACB\u66F4\u65B0Jar\u5305, \u63D2\u4EF6\u9700\u6C42\u6700\u4F4E\u7248\u672C +FR-Designer-Invalid_Page_Number=\u7121\u6548\u9801\u78BC +FR-Designer_Get-CubeGetting=\u7372\u53D6cube +FR-Designer_XMLA_Database=\u8CC7\u6599\u5EAB +FR-Designer_XMLA_UserName=\u5E33\u865F +FR-Designer_XMLA_Password=\u5BC6\u78BC +FR-Designer_XMLA_Get_Catalog=\u6B63\u5728\u7372\u53D6catalog +FR-Designer_XMLA_Not_NULL=\u4E0D\u80FD\u70BA\u7A7A +FR-Designer_Column-Axis=\u6B04\u8EF8 +FR-Designer_LiteCondition_Common=\u666E\u901A +FR-Designer_LiteCondition_Formula=\u516C\u5F0F +FR-Designer_LiteCondition_ConditionB-AND=\u8207(AND) +FR-Designer_LiteCondition_ConditionB-OR=\u6216(OR) +FR-Designer_LiteCondition_Common_Condition=\u666E\u901A\u689D\u4EF6 +FR-Designer_LiteCondition_Formula_Condition=\u516C\u5F0F\u689D\u4EF6 +FR-Designer_LiteCondition_Define=\u5B9A\u7FA9 +FR-Designer_Normal=\u6B63\u5E38 +FR-Designer_Alert=\u8B66\u544A +FR-Designer_Select_All=\u5168\u9078 +FR-Designer_Copy=\u8907\u88FD +FR-Designer_Clear_All=\u6E05\u9664\u5168\u90E8 +FR-Designer_Log=\u65E5\u8A8C +FR-Designer-Plugin_Expire_Dialog_Title=\u63D2\u4EF6\u904E\u671F +FR-Designer-Plugin_Expire_Dialog_Text=\u63D2\u4EF6\u904E\u671F,\u8ACB\u524D\u5F80\u5E06\u8EDF\u61C9\u7528\u4E2D\u5FC3\u9032\u884C\u8CFC\u8CB7\u3002 +FR-Designer-Plugin_Finerest_Addon=\u5E06\u8F6F\u5E94\u7528\u4E2D\u5FC3 +FR-Designer_Performance_First=\u6027\u80FD\u512A\u5148 +FR-Designer_Total_N_Grade=\u7E3D\u5171\:${N}\u5C64 +FR-Designer-BBSLogin_Login-Title=\u8AD6\u58C7\u8CEC\u865F\u767B\u9678 +FR-Designer_time(s)=\u6B21 +FR-Designer_General=\u5E38\u7528 +FR-Designer_Advanced=\u9032\u968E +FR-Designer_Oracle=\u6240\u6709\u8868 +FR-Designer_Product_improve=\u7522\u54C1\u6539\u826F +FR-Designer_Join_Product_improve=\u52A0\u5165\u7522\u54C1\u6539\u826F\u8A08\u5283 +FR-Designer_Preference-Function=\u529F\u80FD\u8A2D\u5B9A +FR-Designer_max_undo_limit=\u6700\u5927\u5FA9\u539F\u6B21\u6578 +FR-Designer_Surport_String_To_Formula=\u652F\u6301\u5B57\u5143\u4E32\u7DE8\u8F2F\u70BA\u516C\u5F0F +FR-Designer_Always=\u59CB\u7D42 +FR-Designer_Export_Setting=\u532F\u51FA\u914D\u7F6E +FR-Designer_Select_Export_Log_Directory=\u9078\u64C7\u532F\u51FA\u76EE\u9304 +FR-Designer_Level_Setting=\u7D1A\u5225\u8A2D\u5B9A +FR-Designer_Choose_Language=\u8A9E\u8A00\u9078\u64C7 +FR-Designer_Work_After_Restart_Designer=\u91CD\u555F\u8A2D\u8A08\u5668\u5F8C\u751F\u6548 +FR-Designer_Setting-Ruler-Units=\u6A19\u5C3A\u55AE\u4F4D\u8A2D\u5B9A +FR-Designer_PageSetup-mm=\u516C\u5398 +FR-Designer_Unit_CM=\u516C\u5206 +FR-Designer_Page-Setup-Scale-Units=\u9801\u9762\u8A2D\u5B9A\u6A19\u5C3A\u55AE\u4F4D +FR-Designer_Report-Design-Ruler-Units=\u5831\u8868\u8A2D\u8A08\u6A19\u5C3A\u55AE\u4F4D +FR-Designer_Web_Preview_Port_Setting=\u57E0\u8A2D\u5B9A +FR-Designer_Designer_Language=\u8A2D\u8A08\u5668\u8A9E\u8A00 +FR-Designer_Unit_INCH=\u82F1\u5BF8 +FR-Designer_Web_Preview_Port=\u57E0\u865F +FR-Designer_Oracle_All_Tables=\u6240\u6709\u8868 +FR-Designer_Unit_PT=\u78C5 +FR-Designer-Write_Auto_Stash=\u81EA\u52D5\u66AB\u5B58 +FR-Designer_Printer_Native_Button=\u672C\u5730\u6253\u5370 +FR-Designer_Event_ShowWidgets=\u76F4\u63A5\u986F\u793A\u5C0F\u5DE5\u5177 +FR-Designer_Current_Preview_Rows=\u7576\u524D\u9810\u89BD\u5217\u6578 +FR-Designer_Data=\u8CC7\u6599 +FR-Designer_Error=\u932F\u8AA4 +FR-Designer_formDesignerModule=\u8868\u55AE\u8A2D\u8A08\u5668\u6A21\u584A +FR-Designer-Website_Url=http\://www.finereport.com/tw +FR-Designer-BBSLogin_Download-Unlogin-Tip=\u767B\u9304\u5F8C\u624D\u80FD\u4E0B\u8F09 +FR-Designer-App_ReLayout=\u624B\u6A5F\u91CD\u4F48\u5C40 +FR-Designer_Mobile-Attr=\u79FB\u52D5\u7AEF\u5C6C\u6027 +FR-Designer_Mobile-Horizontal=\u6A6B\u5C4F +FR-Designer_Mobile-Vertical=\u8C4E\u5C4F +FR-Designer_COMMUNITY_QUESTIONS=\u554F\u984C\u6C42\u52A9 +FR-Designer_COMMUNITY_SIGN=\u5E06\u8EDF\u8A8D\u8B49 +FR-Designer_COMMUNITY_BUG=BUG\u53CD\u994B +FR-Designer_COMMUNITY_NEED=\u9700\u6C42\u63D0\u4EA4 +FR-Designer_COMMUNITY_UPDATE=\u7522\u54C1\u66F4\u65B0 +FR-Designer_COMMUNITY_HELP=\u5E6B\u52A9\u6587\u6A94 +FR-Designer_COMMUNITY_VIDEO=\u5165\u9580\u8996\u983B +FR-Designer_COMMUNITY_BBS=\u5E06\u8EDF\u8AD6\u58C7 +FR-Designer_COMMUNITY=\u793E\u5340 +FR-Designer_Mobile-Open=\u958B\u555F +FR-Designer_Mobile-Zoom=\u5831\u8868\u7E2E\u653E +FR-Designer_Mobile-Warning=\u6700\u5927\u9AD8\u5EA6\u4E0D\u53EF\u8D85\u904E\u986F\u793A\u5340\u57DF\u768480% +FR-Designer_Button-OK=\u77E5\u9053\u4E86 +FR-Designer_Button-Cancel=\u53D6\u6D88 +FR-Designer_Write-Save-Formula=\u586B\u5831/\u5206\u6790\u6642\uFF0C\u4FDD\u7559\u516C\u5F0F\u7528\u65BC\u8A08\u7B97 +FR-Designer_Export-Save-Formula=\u532F\u51FA/\u7DE8\u8F2F\u7D50\u679C\u6642,\u4FDD\u7559\u516C\u5F0F +FR-Designer_Form-Fit-Tip=\u81EA\u9069\u61C9\u63D2\u4EF6 +FR-Designer_Form-Frozen-Tip=\u4F7F\u7528\u51CD\u7D50\u6642, \u5EFA\u8B70\u5B89\u88DD +FR-Designer_Form-Forzen-Speed=, \u5E76\u4F7F\u7528\u6A6B\u5411\u6216\u96D9\u5411\u81EA\u9069\u61C9\u4F86\u63D0\u5347\u5C55\u73FE\u901F\u5EA6. +FR-Designer_Attention=\u6CE8\u610F +FR-Designer_Forbid_Widgets_Intersects=\u7981\u6B62\u7D44\u4EF6\u76F8\u4E92\u91CD\u758A +FR-Designer_Widget_Scaling_Mode_Fit=\u9069\u61C9\u5340\u57DF +FR-Designer_Widget_Scaling_Mode_Fixed=\u56FA\u5B9A\u5927\u5C0F +FR-Designer-Widget_Area_Scaling=\u7D44\u4EF6\u5340\u57DF\u7E2E\u653E +FR-Designer-Widget_Scaling_Mode=\u7E2E\u653E\u908F\u8F2F +FR-Designer-QQLogin-Determine=\u78BA\u5B9A +FR-Designer-QQLogin-Cancel=\u53D6\u6D88 +FR-Designer-Reuse_Manager=\u7D44\u4EF6\u7BA1\u7406 +FR-Designer_TableData-Default-Para=\u6578\u64DA\u96C6\u9ED8\u8A8D\u53C3\u6578 +FR-Designer_Layout_Block_Absolute= +FR-Designer_Layout_Block_Tab= +FR-Designer_Layout_Block_Blank= +FR-Designer_Attr_Layout= +FR-Designer_Attr_Layout_Type= +FR-Designer_Attr_Bidirectional_Adaptive= +FR-Designer_Mobile-Refresh=\u5237\u65B0 +FR-Designer_Mobile-ToolBar=\u5DE5\u5177\u6B04 +FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF\u4EE5\u5728\u5E03\u5C40\u5167\u4EFB\u610F\u4F4D\u7F6E\u65B0\u589E\u63A7\u5236\u9805 +FR-Designer_Reset= +FR-Designer_Add_all=\u5168\u90E8\u65B0\u589E From 15fd6fa87631dad213bd0bc6fd7072dae3a1ef80 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 24 Nov 2016 12:03:54 +0800 Subject: [PATCH 57/86] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=81=97=E6=BC=8F=E7=9A=84=E5=9B=BD=E9=99=85=E5=8C=96=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 28 ++++++++++++++++++- .../design/locale/designer_en_US.properties | 28 ++++++++++++++++++- .../design/locale/designer_ja_JP.properties | 28 ++++++++++++++++++- .../design/locale/designer_ko_KR.properties | 28 ++++++++++++++++++- .../design/locale/designer_zh_CN.properties | 28 ++++++++++++++++++- .../design/locale/designer_zh_TW.properties | 28 ++++++++++++++++++- 6 files changed, 162 insertions(+), 6 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index c524eb93d5..bcc777385c 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 11:56:39 CST 2016 +# generated time: 星期四 十一月 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account= FR-Designer-BBSLogin_Connection-Failure= FR-Designer-BBSLogin_Connection-Failure-Tip= @@ -28,6 +28,32 @@ FR-Designer-Output_Excel_Page= FR-Designer-Output_Excel_Sheet= FR-Designer-Output_Excel_Simple= FR-Designer-Plugin_PluginMarket_Coding= +FR-Desinger-Plugin_Updater_UpdateAndUpgrade= +FR-Desinger-Plugin_Updater_Checking_Jar_Update= +FR-Desinger-Plugin_Updater_Checking_Version_Update= +FR-Desinger-Plugin_Updater_Update= +FR-Desinger-Plugin_Updater_Upgrade= +FR-Desinger-Plugin_Updater_Restore= +FR-Desinger-Plugin_Updater_New_Version_Available= +FR-Desinger-Plugin_Updater_JarUpdate= +FR-Desinger-Plugin_Updater_VersionUpgrade= +FR-Desinger-Plugin_Updater_Previous_Version= +FR-Desinger-Plugin_Updater_Current_Version= +FR-Desinger-Plugin_Updater_Not_Install_Version= +FR-Desinger-Plugin_Updater_Latest_Version= +FR-Desinger-Plugin_Updater_Jar_Downloading= +FR-Desinger-Plugin_Updater_Version_Downloading= +FR-Desinger-Plugin_Updater_Restart_Designer= +FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed= +FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed= +FR-Desinger-Plugin_Updater_Already_Latest_Version= +FR-Desinger-Plugin_Updater_Backup_OldJar_To= +FR-Desinger-Plugin_Updater_Backup_OldVersion_To= +FR-Desinger-Plugin_Updater_Please_Restart= +FR-Desinger-Plugin_Updater_Jar_Restore= +FR-Desinger-Plugin_Updater_Version_Restore= +FR-Desinger-Plugin_Updater_Restore_To= +FR-Desinger-Plugin_Updater_WorksAfterRestart= FR-Designer-Submit_Condition= FR-Designer-Widget-Title_border= FR-Designer-Widget-Title_border_color= diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index a35606663b..d3e02f0072 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 11:56:39 CST 2016 +# generated time: 星期四 十一月 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=User name FR-Designer-BBSLogin_Connection-Failure=Connection failure, check your network status FR-Designer-BBSLogin_Connection-Failure-Tip=Tip @@ -28,6 +28,32 @@ FR-Designer-Output_Excel_Page=Excel Export(page break) FR-Designer-Output_Excel_Sheet=Excel Export(one page per sheet) FR-Designer-Output_Excel_Simple=Excel Export(original) FR-Designer-Plugin_PluginMarket_Coding=Plugin store is developing, stay tuned +FR-Desinger-Plugin_Updater_UpdateAndUpgrade=Update&Upgrade +FR-Desinger-Plugin_Updater_Checking_Jar_Update=Checking jarpackage update +FR-Desinger-Plugin_Updater_Checking_Version_Update=Checking version update +FR-Desinger-Plugin_Updater_Update=update +FR-Desinger-Plugin_Updater_Upgrade=upgrade +FR-Desinger-Plugin_Updater_Restore=restore +FR-Desinger-Plugin_Updater_New_Version_Available=New version available +FR-Desinger-Plugin_Updater_JarUpdate=Jar pack Update: +FR-Desinger-Plugin_Updater_VersionUpgrade=Version Upgrade: +FR-Desinger-Plugin_Updater_Previous_Version=to previous version? +FR-Desinger-Plugin_Updater_Current_Version=to current version +FR-Desinger-Plugin_Updater_Not_Install_Version=not install version +FR-Desinger-Plugin_Updater_Latest_Version=latest version +FR-Desinger-Plugin_Updater_Jar_Downloading=Jar package is downloading +FR-Desinger-Plugin_Updater_Version_Downloading=New version is downloading +FR-Desinger-Plugin_Updater_Restart_Designer=Restart designer +FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=Cannot connect to version-update-server +FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=Cannot connect to version-upgrade-server +FR-Desinger-Plugin_Updater_Already_Latest_Version=This is the latest version +FR-Desinger-Plugin_Updater_Backup_OldJar_To=Already backup the old jar package to: +FR-Desinger-Plugin_Updater_Backup_OldVersion_To=Already backup the old version package to: +FR-Desinger-Plugin_Updater_Please_Restart=,restart designer +FR-Desinger-Plugin_Updater_Jar_Restore=Jar package restore +FR-Desinger-Plugin_Updater_Version_Restore=Version restore +FR-Desinger-Plugin_Updater_Restore_To=Restore to +FR-Desinger-Plugin_Updater_WorksAfterRestart=version, take effect after restart FR-Designer-Submit_Condition=Condition FR-Designer-Widget-Title_border=Border FR-Designer-Widget-Title_border_color=Color diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 2fe50ef9b5..ca4a6d066d 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 11:56:39 CST 2016 +# generated time: 星期四 十一月 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6\u30FC\u540D FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u73FE\u5728\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u72B6\u614B\u3092\u691C\u67FB\u3057\u3066\u304F\u3060\u3055\u3044 FR-Designer-BBSLogin_Connection-Failure-Tip=\u30D2\u30F3\u30C8 @@ -28,6 +28,32 @@ FR-Designer-Output_Excel_Page=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u FR-Designer-Output_Excel_Sheet=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u30DA\u30FC\u30B8\u5225\u30B7\u30FC\u30C8\u5225\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) FR-Designer-Output_Excel_Simple=Excel\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8(\u5143\u306E\u307E\u307E\u30A2\u30A6\u30C8\u30D7\u30C3\u30C8) FR-Designer-Plugin_PluginMarket_Coding=\u30D7\u30E9\u30B0\u30A4\u30F3\u30DE\u30FC\u30B1\u30C3\u30C8\u306F\u958B\u767A\u4E2D\u3067\u3059\u3002\u3054\u671F\u5F85\u304F\u3060\u3055\u3044 +FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\u66F4\u65B0\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Checking_Jar_Update=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u30C1\u30A7\u30C3\u30AF\u66F4\u65B0\u4E2D +FR-Desinger-Plugin_Updater_Checking_Version_Update=\u30D0\u30FC\u30B8\u30E7\u30F3\u30C1\u30A7\u30C3\u30AF\u66F4\u65B0\u4E2D +FR-Desinger-Plugin_Updater_Update=\u66F4\u65B0 +FR-Desinger-Plugin_Updater_Upgrade=\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8 +FR-Desinger-Plugin_Updater_Restore=\u5FA9\u5143 +FR-Desinger-Plugin_Updater_New_Version_Available=\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3\u6709\u308A +FR-Desinger-Plugin_Updater_JarUpdate=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u66F4\u65B0 +FR-Desinger-Plugin_Updater_VersionUpgrade=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7 +FR-Desinger-Plugin_Updater_Previous_Version=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u307E\u3067\u306B +FR-Desinger-Plugin_Updater_Current_Version=\u73FE\u30D0\u30FC\u30B8\u30E7\u30F3 +FR-Desinger-Plugin_Updater_Not_Install_Version=\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u30D0\u30FC\u30B8\u30E7\u30F3\u3067\u306F\u306A\u3044 +FR-Desinger-Plugin_Updater_Latest_Version=\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3 +FR-Desinger-Plugin_Updater_Jar_Downloading=Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5B8C\u6210\u5F85\u3061 +FR-Desinger-Plugin_Updater_Version_Downloading=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30D1\u30C3\u30B1\u30FC\u30B8\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u5B8C\u6210\u5F85\u3061 +FR-Desinger-Plugin_Updater_Restart_Designer=\u30C7\u30B6\u30A4\u30CA\u30FC\u518D\u8D77\u52D5 +FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u66F4\u65B0\u30B5\u30FC\u30D0\u30FC\u63A5\u7D9A\u3067\u304D\u306A\u3044 +FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u30D0\u30FC\u30B8\u30E7\u30F3\u30A2\u30C3\u30D7\u30C7\u30FC\u30C8\u30B5\u30FC\u30D0\u30FC\u63A5\u7D9A\u3067\u304D\u306A\u3044 +FR-Desinger-Plugin_Updater_Already_Latest_Version=\u65E2\u306B\u6700\u65B0\u30D0\u30FC\u30B8\u30E7\u30F3 +FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u65E7Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u65E2\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 +FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u65E7\u30D0\u30FC\u30B8\u30E7\u30F3\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u65E2\u306B\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7 +FR-Desinger-Plugin_Updater_Please_Restart=\u30C7\u30B6\u30A4\u30CA\u30FC\u306F\u518D\u8D77\u52D5\u3057\u3066\u304F\u3060\u3055\u3044 +FR-Desinger-Plugin_Updater_Jar_Restore=\u65E7Jar\u30D1\u30C3\u30B1\u30FC\u30B8\u5FA9\u5143 +FR-Desinger-Plugin_Updater_Version_Restore=\u30D0\u30FC\u30B8\u30E7\u30F3\u5FA9\u5143 +FR-Desinger-Plugin_Updater_Restore_To=\u5FA9\u5143 +FR-Desinger-Plugin_Updater_WorksAfterRestart=\u30D0\u30FC\u30B8\u30E7\u30F3\u306F\u518D\u8D77\u52D5\u5F8C\u306B\u6709\u52B9\u3059\u308B FR-Designer-Submit_Condition=\u6761\u4EF6 FR-Designer-Widget-Title_border=\u30D5\u30EC\u30FC\u30E0 FR-Designer-Widget-Title_border_color=\u8272 diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 137f253a35..7c434320cd 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 11:56:39 CST 2016 +# generated time: 星期四 十一月 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u7528\u6237\u540D FR-Designer-BBSLogin_Connection-Failure=\uB124\uD2B8\uC6CC\uD06C\uB9C1\uD06C\uC2E4\uD328.\uD604\uC7AC\uB124\uD2B8\uC6CC\uD06C\uC0C1\uD0DC\uB97C\uAC80\uC0AC\uD574\uC8FC\uC2ED\uC2DC\uC624. FR-Designer-BBSLogin_Connection-Failure-Tip=\uC54C\uB9BC @@ -28,6 +28,32 @@ FR-Designer-Output_Excel_Page=Excel\uCD9C\uB825(\uD398\uC774\uC9C0\uB098\uB204\u FR-Designer-Output_Excel_Sheet=Excel\uCD9C\uB825(\uD398\uC774\uC9C0\uB098\uB204\uAE30Sheet\uB0B4\uBCF4\uB0B4\uAE30) FR-Designer-Output_Excel_Simple=Excel\uCD9C\uB825(\uC6D0\uB798\uBAA8\uC2B5\uB0B4\uBCF4\uB0B4\uAE30) FR-Designer-Plugin_PluginMarket_Coding=\uD50C\uB7EC\uADF8\uC778\uC2A4\uD1A0\uC5B4\uB97C\uAC1C\uBC1C\uC911\uC785\uB2C8\uB2E4.\uAE30\uB2E4\uB824\uC8FC\uC2ED\uC2DC\uC624. +FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\uC5C5\uB370\uC774\uD2B8\uC5C5\uADF8\uB808\uC774\uB4DC +FR-Desinger-Plugin_Updater_Checking_Jar_Update=Jar\uC5C5\uB370\uC774\uD2B8\uAC80\uC0AC\uC911 +FR-Desinger-Plugin_Updater_Checking_Version_Update=\uBC84\uC804\uC5C5\uB370\uC774\uD2B8\uAC80\uC0AC\uC911 +FR-Desinger-Plugin_Updater_Update=\uC5C5\uB370\uC774\uD2B8 +FR-Desinger-Plugin_Updater_Upgrade=\uC5C5\uADF8\uB808\uC774\uB4DC +FR-Desinger-Plugin_Updater_Restore=\uBCF5\uC6D0 +FR-Desinger-Plugin_Updater_New_Version_Available=\uC0C8\uB85C\uC6B4\uBC84\uC804\uC774\uC788\uC2B5\uB2C8\uB2E4. +FR-Desinger-Plugin_Updater_JarUpdate=Jar\uD329\uC5C5\uB370\uC774\uD2B8\uFF1A +FR-Desinger-Plugin_Updater_VersionUpgrade=\uBC84\uC804\uC5C5\uADF8\uB808\uC774\uB4DC\uFF1A +FR-Desinger-Plugin_Updater_Previous_Version=\uC774\uC804\uBC84\uC804\uC73C\uB85C\uAC00\uC2DC\uACA0\uC2B5\uB2C8\uAE4C\uFF1F +FR-Desinger-Plugin_Updater_Current_Version=\uD604\uC7AC\uBC84\uC804\uFF1A +FR-Desinger-Plugin_Updater_Not_Install_Version=\uC124\uCE58\uB41C\uBC84\uC804\uC774\uC544\uB2D9\uB2C8\uB2E4. +FR-Desinger-Plugin_Updater_Latest_Version=\uCD5C\uC2E0\uBC84\uC804\uFF1A +FR-Desinger-Plugin_Updater_Jar_Downloading=jar\uD329\uB2E4\uC6B4\uB85C\uB4DC\uC644\uB8CC\uB97C\uAE30\uB2E4\uB9AC\uACE0\uC788\uC2B5\uB2C8\uB2E4. +FR-Desinger-Plugin_Updater_Version_Downloading=\uC5C5\uADF8\uB808\uC774\uB4DC\uD329\uB2E4\uC6B4\uB85C\uB4DC\uC644\uB8CC\uB97C\uAE30\uB2E4\uB9AC\uACE0\uC788\uC2B5\uB2C8\uB2E4. +FR-Desinger-Plugin_Updater_Restart_Designer=\uC7AC\uBD80\uD305\uC124\uACC4\uAE30 +FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\uBC84\uC804\uC5C5\uB370\uC774\uD2B8\uC11C\uBC84\uB97C\uC5F0\uACB0\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\uBC84\uC804\uC5C5\uADF8\uB808\uC774\uB4DC\uC11C\uBC84\uB97C\uC5F0\uACB0\uD560\uC218\uC5C6\uC2B5\uB2C8\uB2E4. +FR-Desinger-Plugin_Updater_Already_Latest_Version=\uCD5C\uC2E0\uBC84\uC804\uC785\uB2C8\uB2E4. +FR-Desinger-Plugin_Updater_Backup_OldJar_To=\uAE30\uC874 jar\uD329\uC744\uBC31\uC5C5\uD558\uC600\uC2B5\uB2C8\uB2E4. +FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\uAE30\uC874\uBC84\uC804\uD329\uC744\uBC31\uC5C5\uD558\uC600\uC2B5\uB2C8\uB2E4. +FR-Desinger-Plugin_Updater_Please_Restart=\uC124\uACC4\uAE30\uB97C\uC7AC\uBD80\uD305\uD574\uC8FC\uC2ED\uC2DC\uC624. +FR-Desinger-Plugin_Updater_Jar_Restore=Jar\uD329\uBCF5\uC6D0 +FR-Desinger-Plugin_Updater_Version_Restore=\uBC84\uC804\uBCF5\uC6D0 +FR-Desinger-Plugin_Updater_Restore_To=\uB85C\uBCF5\uC6D0 +FR-Desinger-Plugin_Updater_WorksAfterRestart=\uBC84\uC804.\uC7AC\uBD80\uD305\uC720\uD6A8\uD568 FR-Designer-Submit_Condition=\uC870\uAC74 FR-Designer-Widget-Title_border=\uD14C\uB450\uB9AC FR-Designer-Widget-Title_border_color=\uC0C9 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index a83c0e8b4d..8ee044e6e7 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 11:56:39 CST 2016 +# generated time: 星期四 十一月 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u7528\u6237\u540D FR-Designer-BBSLogin_Connection-Failure=\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5F53\u524D\u7F51\u7EDC\u72B6\u6001 FR-Designer-BBSLogin_Connection-Failure-Tip=\u63D0\u793A @@ -28,6 +28,32 @@ FR-Designer-Output_Excel_Page=Excel\u8F93\u51FA(\u5206\u9875\u5BFC\u51FA) FR-Designer-Output_Excel_Sheet=Excel\u8F93\u51FA(\u5206\u9875\u5206Sheet\u5BFC\u51FA) FR-Designer-Output_Excel_Simple=Excel\u8F93\u51FA(\u539F\u6837\u5BFC\u51FA) FR-Designer-Plugin_PluginMarket_Coding=\u63D2\u4EF6\u5546\u5E97\u6B63\u5728\u5F00\u53D1\u4E2D\uFF0C\u656C\u8BF7\u671F\u5F85 +FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\u66F4\u65B0\u5347\u7EA7 +FR-Desinger-Plugin_Updater_Checking_Jar_Update=\u6B63\u5728\u68C0\u6D4BJar\u66F4\u65B0 +FR-Desinger-Plugin_Updater_Checking_Version_Update=\u6B63\u5728\u68C0\u6D4B\u7248\u672C\u66F4\u65B0 +FR-Desinger-Plugin_Updater_Update=\u66F4\u65B0 +FR-Desinger-Plugin_Updater_Upgrade=\u5347\u7EA7 +FR-Desinger-Plugin_Updater_Restore=\u8FD8\u539F +FR-Desinger-Plugin_Updater_New_Version_Available=\u6709\u65B0\u7248\u672C +FR-Desinger-Plugin_Updater_JarUpdate=Jar\u5305\u66F4\u65B0\uFF1A +FR-Desinger-Plugin_Updater_VersionUpgrade=\u7248\u672C\u5347\u7EA7\uFF1A +FR-Desinger-Plugin_Updater_Previous_Version=\u5230\u4EE5\u524D\u7684\u7248\u672C\uFF1F +FR-Desinger-Plugin_Updater_Current_Version=\u5F53\u524D\u7248\u672C\uFF1A +FR-Desinger-Plugin_Updater_Not_Install_Version=\u4E0D\u662F\u5B89\u88C5\u7248\u672C +FR-Desinger-Plugin_Updater_Latest_Version=\u6700\u65B0\u7248\u672C\uFF1A +FR-Desinger-Plugin_Updater_Jar_Downloading=\u6B63\u5728\u7B49\u5F85jar\u5305\u4E0B\u8F7D\u5B8C\u6210 +FR-Desinger-Plugin_Updater_Version_Downloading=\u6B63\u5728\u7B49\u5F85\u5347\u7EA7\u5305\u4E0B\u8F7D\u5B8C\u6210 +FR-Desinger-Plugin_Updater_Restart_Designer=\u91CD\u542F\u8BBE\u8BA1\u5668 +FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u65E0\u6CD5\u8FDE\u63A5\u7248\u672C\u66F4\u65B0\u670D\u52A1\u5668 +FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u65E0\u6CD5\u8FDE\u63A5\u7248\u672C\u5347\u7EA7\u670D\u52A1\u5668 +FR-Desinger-Plugin_Updater_Already_Latest_Version=\u5DF2\u7ECF\u662F\u6700\u65B0\u7248\u672C +FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u5DF2\u5C06\u65E7jar\u5305\u5907\u4EFD\u5230\uFF1A +FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u5DF2\u5C06\u65E7\u7248\u672C\u5305\u5907\u4EFD\u5230\uFF1A +FR-Desinger-Plugin_Updater_Please_Restart=\uFF0C\u8BF7\u91CD\u542F\u8BBE\u8BA1\u5668 +FR-Desinger-Plugin_Updater_Jar_Restore=Jar\u5305\u8FD8\u539F +FR-Desinger-Plugin_Updater_Version_Restore=\u7248\u672C\u8FD8\u539F +FR-Desinger-Plugin_Updater_Restore_To=\u8FD8\u539F\u5230 +FR-Desinger-Plugin_Updater_WorksAfterRestart=\u7248\u672C\uFF0C\u91CD\u542F\u751F\u6548 FR-Designer-Submit_Condition=\u6761\u4EF6 FR-Designer-Widget-Title_border=\u8FB9\u6846 FR-Designer-Widget-Title_border_color=\u989C\u8272 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 6bf0d2df3b..551ff97ef5 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 11:56:39 CST 2016 +# generated time: 星期四 十一月 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u767B\u5165\u5E33\u865F FR-Designer-BBSLogin_Connection-Failure=\u767B\u5165\u9023\u63A5\u5931\u6557\uFF0C\u8ACB\u6AA2\u67E5\u7576\u524D\u7DB2\u8DEF\u72C0\u614B FR-Designer-BBSLogin_Connection-Failure-Tip=\u9023\u7DDA\u5931\u6557\u63D0\u793A @@ -28,6 +28,32 @@ FR-Designer-Output_Excel_Page=Excel(\u5206\u9801\u532F\u51FA) FR-Designer-Output_Excel_Sheet=Excel\u8F38\u51FA(\u5206\u9801\u5206Sheet\u532F\u51FA) FR-Designer-Output_Excel_Simple=Excel\u8F38\u51FA(\u539F\u6A23\u532F\u51FA) FR-Designer-Plugin_PluginMarket_Coding=\u63D2\u4EF6\u5546\u5E97\u6B63\u5728\u958B\u767C\u4E2D\uFF0C\u656C\u8ACB\u671F\u5F85 +FR-Desinger-Plugin_Updater_UpdateAndUpgrade=\u66F4\u65B0\u5347\u7D1A +FR-Desinger-Plugin_Updater_Checking_Jar_Update=\u6B63\u5728\u6AA2\u6E2CJar\u66F4\u65B0 +FR-Desinger-Plugin_Updater_Checking_Version_Update=\u6B63\u5728\u6AA2\u6E2C\u7248\u672C\u66F4\u65B0 +FR-Desinger-Plugin_Updater_Update=\u66F4\u65B0 +FR-Desinger-Plugin_Updater_Upgrade=\u5347\u7D1A +FR-Desinger-Plugin_Updater_Restore=\u9084\u539F +FR-Desinger-Plugin_Updater_New_Version_Available=\u6709\u65B0\u7248\u672C +FR-Desinger-Plugin_Updater_JarUpdate=Jar\u5305\u66F4\u65B0\uFF1A +FR-Desinger-Plugin_Updater_VersionUpgrade=\u7248\u672C\u5347\u7D1A\uFF1A +FR-Desinger-Plugin_Updater_Previous_Version=\u5230\u4EE5\u524D\u7684\u7248\u672C\uFF1F +FR-Desinger-Plugin_Updater_Current_Version=\u7576\u524D\u7248\u672C\uFF1A +FR-Desinger-Plugin_Updater_Not_Install_Version=\u4E0D\u662F\u5B89\u88DD\u7248\u672C +FR-Desinger-Plugin_Updater_Latest_Version=\u6700\u65B0\u7248\u672C\uFF1A +FR-Desinger-Plugin_Updater_Jar_Downloading=\u6B63\u5728\u7B49\u5F85jar\u5305\u4E0B\u8F09\u5B8C\u6210 +FR-Desinger-Plugin_Updater_Version_Downloading=\u6B63\u5728\u7B49\u5F85\u5347\u7D1A\u5305\u4E0B\u8F09\u5B8C\u6210 +FR-Desinger-Plugin_Updater_Restart_Designer=\u91CD\u555F\u8A2D\u8A08\u5668 +FR-Desinger-Plugin_Updater_Connect_VersionUpdateServer_Failed=\u7121\u6CD5\u9023\u63A5\u7248\u672C\u66F4\u65B0\u670D\u52D9\u5668 +FR-Desinger-Plugin_Updater_Connect_VersionUpgradeServer_Failed=\u7121\u6CD5\u9023\u63A5\u7248\u672C\u5347\u7D1A\u670D\u52D9\u5668 +FR-Desinger-Plugin_Updater_Already_Latest_Version=\u5DF2\u7D93\u662F\u6700\u65B0\u7248\u672C +FR-Desinger-Plugin_Updater_Backup_OldJar_To=\u5DF2\u5C07\u820Ajar\u5305\u5099\u4EFD\u5230\uFF1A +FR-Desinger-Plugin_Updater_Backup_OldVersion_To=\u5DF2\u5C07\u820A\u7248\u672C\u5305\u5099\u4EFD\u5230\uFF1A +FR-Desinger-Plugin_Updater_Please_Restart=\uFF0C\u8ACB\u91CD\u555F\u8A2D\u8A08\u5668 +FR-Desinger-Plugin_Updater_Jar_Restore=Jar\u5305\u9084\u539F +FR-Desinger-Plugin_Updater_Version_Restore=\u7248\u672C\u9084\u539F +FR-Desinger-Plugin_Updater_Restore_To=\u9084\u539F\u5230 +FR-Desinger-Plugin_Updater_WorksAfterRestart=\u7248\u672C\uFF0C\u91CD\u555F\u751F\u6548 FR-Designer-Submit_Condition=\u63D0\u4EA4\u689D\u4EF6 FR-Designer-Widget-Title_border=\u6A19\u984C\u6846\u7DDA FR-Designer-Widget-Title_border_color=\u6A19\u984C\u6846\u7DDA\u984F\u8272 From 2e6cae4233fed717c366437290b8141bebd335ee Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 24 Nov 2016 16:59:37 +0800 Subject: [PATCH 58/86] =?UTF-8?q?=E5=8A=A0=E8=BD=BDdesign=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E4=B8=AD=E7=9A=84=E5=9B=BD=E9=99=85=E5=8C=96=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/module/DesignModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/module/DesignModule.java b/designer_base/src/com/fr/design/module/DesignModule.java index 7dca3803ff..14ed20aea8 100644 --- a/designer_base/src/com/fr/design/module/DesignModule.java +++ b/designer_base/src/com/fr/design/module/DesignModule.java @@ -62,7 +62,7 @@ public abstract class DesignModule extends TopModule { * @return 国际化文件路径 */ public String[] getLocaleFile() { - return ArrayUtils.EMPTY_STRING_ARRAY; + return new String[]{"com/fr/design/locale/designer"}; } public Class[] actionsForInsertCellElement() { From e46f1fe461c77b19eb66c940ceb3292c96f614a1 Mon Sep 17 00:00:00 2001 From: sunmondong Date: Fri, 25 Nov 2016 10:19:53 +0800 Subject: [PATCH 59/86] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=9Aapplet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.dev.gradle | 10 ++--- build.dev.gradle.bak | 4 +- build.master.gradle | 10 ++--- build.master.gradle.bak | 86 ++++++++++++++++++++++++++++++++++++++++ build.release.gradle | 10 ++--- build.release.gradle.bak | 85 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 188 insertions(+), 17 deletions(-) create mode 100644 build.master.gradle.bak create mode 100644 build.release.gradle.bak diff --git a/build.dev.gradle b/build.dev.gradle index c5cc1b92da..1efdd55cc8 100644 --- a/build.dev.gradle +++ b/build.dev.gradle @@ -13,7 +13,7 @@ def branchName=buildDir.substring(buildDir.lastIndexOf ("\\")+1) task appletJar<<{ ant{ - mkdir(dir:"${libDir}/tmp-${branchName}") + mkdir(dir:"./tmp") mkdir(dir:"build/classes/") copy(todir:"build/classes/"){ fileset(dir:"${basicDir}/finereport-core-stable/${branchName}/build/classes/main") @@ -27,8 +27,8 @@ task appletJar<<{ fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") } - unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"${libDir}/tmp-${branchName}") - unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"./tmp") + unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"./tmp") jar(jarfile:"build/libs/fr-applet-8.0.jar"){ fileset(dir:"build/classes"){ exclude(name:"*.*") @@ -44,7 +44,7 @@ task appletJar<<{ exclude(name:"com/fr/start/**") exclude(name:"com/fr/process/**") } - fileset(dir:"${libDir}/tmp-${branchName}"){ + fileset(dir:"./tmp"){ include(name:"javax/mail/**") include(name:"javax/servlet/**") include(name:"org/freehep/**") @@ -60,7 +60,7 @@ task appletJar<<{ include(name:"com/fr/web/attr/*.class") } } - delete(dir:"${libDir}/tmp-${branchName}") + delete(dir:"./tmp") def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" def keystore="frapplet.store" def keycert="fr.cert" diff --git a/build.dev.gradle.bak b/build.dev.gradle.bak index cc3bea2327..c5cc1b92da 100644 --- a/build.dev.gradle.bak +++ b/build.dev.gradle.bak @@ -27,8 +27,8 @@ task appletJar<<{ fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") } - unjar(src:"${libDir}/3rd.jar",dest:"${libDir}/tmp-${branchName}") - unjar(src:"${libDir}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") jar(jarfile:"build/libs/fr-applet-8.0.jar"){ fileset(dir:"build/classes"){ exclude(name:"*.*") diff --git a/build.master.gradle b/build.master.gradle index c5cc1b92da..1efdd55cc8 100644 --- a/build.master.gradle +++ b/build.master.gradle @@ -13,7 +13,7 @@ def branchName=buildDir.substring(buildDir.lastIndexOf ("\\")+1) task appletJar<<{ ant{ - mkdir(dir:"${libDir}/tmp-${branchName}") + mkdir(dir:"./tmp") mkdir(dir:"build/classes/") copy(todir:"build/classes/"){ fileset(dir:"${basicDir}/finereport-core-stable/${branchName}/build/classes/main") @@ -27,8 +27,8 @@ task appletJar<<{ fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") } - unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"${libDir}/tmp-${branchName}") - unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"./tmp") + unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"./tmp") jar(jarfile:"build/libs/fr-applet-8.0.jar"){ fileset(dir:"build/classes"){ exclude(name:"*.*") @@ -44,7 +44,7 @@ task appletJar<<{ exclude(name:"com/fr/start/**") exclude(name:"com/fr/process/**") } - fileset(dir:"${libDir}/tmp-${branchName}"){ + fileset(dir:"./tmp"){ include(name:"javax/mail/**") include(name:"javax/servlet/**") include(name:"org/freehep/**") @@ -60,7 +60,7 @@ task appletJar<<{ include(name:"com/fr/web/attr/*.class") } } - delete(dir:"${libDir}/tmp-${branchName}") + delete(dir:"./tmp") def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" def keystore="frapplet.store" def keycert="fr.cert" diff --git a/build.master.gradle.bak b/build.master.gradle.bak new file mode 100644 index 0000000000..c5cc1b92da --- /dev/null +++ b/build.master.gradle.bak @@ -0,0 +1,86 @@ +apply plugin: "java" +tasks.withType(JavaCompile){ + options.encoding = "UTF-8" +} + +def basicDir="../../" +def libDir="${basicDir}/finereport-lib-stable" +//获取什么分支名 +FileTree files =fileTree(dir:"./",include:"build.*.gradle") +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ("\\")) +def branchName=buildDir.substring(buildDir.lastIndexOf ("\\")+1) + +task appletJar<<{ + + ant{ + mkdir(dir:"${libDir}/tmp-${branchName}") + mkdir(dir:"build/classes/") + copy(todir:"build/classes/"){ + fileset(dir:"${basicDir}/finereport-core-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-chart-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-report-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-platform-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") + + } + unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + jar(jarfile:"build/libs/fr-applet-8.0.jar"){ + fileset(dir:"build/classes"){ + exclude(name:"*.*") + exclude(name:"bin/*.*") + exclude(name:"classes/**") + exclude(name:"com/fr/schedule/**") + exclude(name:"com/fr/cell/**") + exclude(name:"com/fr/dialog/**") + exclude(name:"com/fr/view/**") + exclude(name:"com/fr/web/**") + exclude(name:"com/fr/fs/**") + exclude(name:"com/fr/design/**") + exclude(name:"com/fr/start/**") + exclude(name:"com/fr/process/**") + } + fileset(dir:"${libDir}/tmp-${branchName}"){ + include(name:"javax/mail/**") + include(name:"javax/servlet/**") + include(name:"org/freehep/**") + include(name:"com/fr/third/JAI/**") + include(name:"com/fr/third/antlr/**") + include(name:"com/fr/third/javax/**") + include(name:"com/sun/xml/**") + include(name:"javax/xml/**") + + } + fileset(dir:"build/classes"){ + include(name:"com/fr/web/*.class") + include(name:"com/fr/web/attr/*.class") + } + } + delete(dir:"${libDir}/tmp-${branchName}") + def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" + def keystore="frapplet.store" + def keycert="fr.cert" + def keypassword="123456" + def keyalias="fr" + + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-genkey -dname "CN=FineReport L=NanJing C=China" -keystore ${keystore} -alias ${keyalias} -validity 3650 -storepass ${keypassword}") + } + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-export -keystore ${keystore} -alias ${keyalias} -file ${keycert} -storepass ${keypassword}") + } + + exec(executable:"${jdk6home}/bin/jarsigner"){ + arg(line:"-keystore ${keystore} -storepass ${keypassword} 'build/libs/fr-applet-8.0.jar' ${keyalias}") + } + delete(file:"${keystore}") + delete(file:"${keycert}") + delete(dir:"build/classes") + + } + +} \ No newline at end of file diff --git a/build.release.gradle b/build.release.gradle index 44aacadb4d..1c00529e68 100644 --- a/build.release.gradle +++ b/build.release.gradle @@ -12,7 +12,7 @@ def branchName=buildDir.substring(buildDir.lastIndexOf ("\\")+1) task appletJar<<{ ant{ - mkdir(dir:"${libDir}/tmp-${branchName}") + mkdir(dir:"./tmp") mkdir(dir:"build/classes/") copy(todir:"build/classes/"){ fileset(dir:"${basicDir}/finereport-core-stable/${branchName}/build/classes/main") @@ -26,8 +26,8 @@ task appletJar<<{ fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") } - unjar(src:"${libDir}/3rd.jar",dest:"${libDir}/tmp-${branchName}") - unjar(src:"${libDir}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/3rd.jar",dest:"./tmp") + unjar(src:"${libDir}/servlet-api.jar",dest:"./tmp") jar(jarfile:"build/libs/fr-applet-8.0.jar"){ fileset(dir:"build/classes"){ exclude(name:"*.*") @@ -43,7 +43,7 @@ task appletJar<<{ exclude(name:"com/fr/start/**") exclude(name:"com/fr/process/**") } - fileset(dir:"${libDir}/tmp-${branchName}"){ + fileset(dir:"./tmp"){ include(name:"javax/mail/**") include(name:"javax/servlet/**") include(name:"org/freehep/**") @@ -59,7 +59,7 @@ task appletJar<<{ include(name:"com/fr/web/attr/*.class") } } - delete(dir:"${libDir}/tmp-${branchName}") + delete(dir:"./tmp") def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" def keystore="frapplet.store" def keycert="fr.cert" diff --git a/build.release.gradle.bak b/build.release.gradle.bak new file mode 100644 index 0000000000..44aacadb4d --- /dev/null +++ b/build.release.gradle.bak @@ -0,0 +1,85 @@ +apply plugin: "java" +tasks.withType(JavaCompile){ + options.encoding = "UTF-8" +} +def basicDir="../../" +def libDir="${basicDir}/finereport-lib-stable/master" +//获取什么分支名 +FileTree files =fileTree(dir:"./",include:"build.*.gradle") +def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ("\\")) +def branchName=buildDir.substring(buildDir.lastIndexOf ("\\")+1) + +task appletJar<<{ + + ant{ + mkdir(dir:"${libDir}/tmp-${branchName}") + mkdir(dir:"build/classes/") + copy(todir:"build/classes/"){ + fileset(dir:"${basicDir}/finereport-core-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-chart-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-report-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-platform-stable/${branchName}/build/classes/main") + + fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") + + } + unjar(src:"${libDir}/3rd.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + jar(jarfile:"build/libs/fr-applet-8.0.jar"){ + fileset(dir:"build/classes"){ + exclude(name:"*.*") + exclude(name:"bin/*.*") + exclude(name:"classes/**") + exclude(name:"com/fr/schedule/**") + exclude(name:"com/fr/cell/**") + exclude(name:"com/fr/dialog/**") + exclude(name:"com/fr/view/**") + exclude(name:"com/fr/web/**") + exclude(name:"com/fr/fs/**") + exclude(name:"com/fr/design/**") + exclude(name:"com/fr/start/**") + exclude(name:"com/fr/process/**") + } + fileset(dir:"${libDir}/tmp-${branchName}"){ + include(name:"javax/mail/**") + include(name:"javax/servlet/**") + include(name:"org/freehep/**") + include(name:"com/fr/third/JAI/**") + include(name:"com/fr/third/antlr/**") + include(name:"com/fr/third/javax/**") + include(name:"com/sun/xml/**") + include(name:"javax/xml/**") + + } + fileset(dir:"build/classes"){ + include(name:"com/fr/web/*.class") + include(name:"com/fr/web/attr/*.class") + } + } + delete(dir:"${libDir}/tmp-${branchName}") + def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" + def keystore="frapplet.store" + def keycert="fr.cert" + def keypassword="123456" + def keyalias="fr" + + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-genkey -dname "CN=FineReport L=NanJing C=China" -keystore ${keystore} -alias ${keyalias} -validity 3650 -storepass ${keypassword}") + } + exec(executable:"${jdk6home}/bin/keytool"){ + arg(line:"-export -keystore ${keystore} -alias ${keyalias} -file ${keycert} -storepass ${keypassword}") + } + + exec(executable:"${jdk6home}/bin/jarsigner"){ + arg(line:"-keystore ${keystore} -storepass ${keypassword} 'build/libs/fr-applet-8.0.jar' ${keyalias}") + } + delete(file:"${keystore}") + delete(file:"${keycert}") + delete(dir:"build/classes") + + } + +} \ No newline at end of file From 2686f1f4661893c3ce75f8243d25e2aa22d4f7e9 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 25 Nov 2016 10:26:59 +0800 Subject: [PATCH 60/86] =?UTF-8?q?REPORT-881=20=E8=BF=9C=E7=A8=8B=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=EF=BC=8C=E9=9D=9E=E7=AE=A1=E7=90=86=E5=91=98=E8=BF=9E?= =?UTF-8?q?=E6=8E=A5=EF=BC=8C=E4=B8=8D=E5=BA=94=E8=AF=A5=E7=9C=8B=E5=88=B0?= =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=A0=8F=E7=9A=84=E2=80=9C=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E2=80=9D=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/toolbar/ToolBarMenuDock.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 8df23d70d9..3e862cf288 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -133,7 +133,9 @@ public abstract class ToolBarMenuDock { menuList.addAll(Arrays.asList(menuDefs)); // 添加服务器菜单 - menuList.add(createServerMenuDef(plus)); + if (FRContext.getCurrentEnv() != null && FRContext.getCurrentEnv().isRoot()) { + menuList.add(createServerMenuDef(plus)); + } // 添加帮助菜单 menuList.add(createHelpMenuDef()); @@ -245,11 +247,6 @@ public abstract class ToolBarMenuDock { protected MenuDef createServerMenuDef(ToolBarMenuDockPlus plus) { MenuDef menuDef = new MenuDef(Inter.getLocText("FR-Designer_M-Server"), 'S'); - if (FRContext.getCurrentEnv() == null || !FRContext.getCurrentEnv().isRoot()) { - menuDef.addShortCut(new ConnectionListAction()); - return menuDef; - } - if (!BaseUtils.isAuthorityEditing()) { menuDef.addShortCut( new ConnectionListAction(), From 87718bd2263227d2b192189e147e54ea867ce7aa Mon Sep 17 00:00:00 2001 From: zack Date: Fri, 25 Nov 2016 10:40:02 +0800 Subject: [PATCH 61/86] =?UTF-8?q?REPORT-841=20=E9=AA=8C=E6=94=B6=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/FormCreatorDropTarget.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java index 18ad2ab71c..6390b64f89 100644 --- a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java +++ b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java @@ -15,6 +15,7 @@ import com.fr.design.icon.IconPathConstants; import com.fr.design.utils.ComponentUtils; import com.fr.form.share.ShareLoader; import com.fr.form.ui.ElCaseBindInfo; +import com.fr.form.ui.ElementCaseEditor; import com.fr.form.ui.SharableElementCaseEditor; import com.fr.form.ui.Widget; import com.fr.general.Inter; @@ -79,6 +80,7 @@ public class FormCreatorDropTarget extends DropTarget { //SetSelection时要确保选中的是最顶层的布局 //tab布局添加的时候是初始化了XWCardLayout,实际上最顶层的布局是XWCardMainBorderLayout XCreator addingXCreator = addingModel.getXCreator(); + Widget widget = (addingXCreator.getTopLayout() != null) ? (addingXCreator.getTopLayout().toData()) : addingXCreator.toData(); if (addingXCreator.isShared()) { String shareId = addingXCreator.getShareId(); SharableElementCaseEditor sharableEditor = ShareLoader.getLoader().getSharedElCaseEditorById(shareId); @@ -86,10 +88,11 @@ public class FormCreatorDropTarget extends DropTarget { if (sharableEditor != null && bindInfo != null) { Map tdNameMap = TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()).addTableData(bindInfo.getName(), sharableEditor.getTableDataSource()); //合并数据集之后,可能会有数据集名称变化,做一下联动 - sharableEditor.batchRenameTdName(tdNameMap); + //共享的组件拿的时候都是克隆的,这边改拖拽中克隆的对象而非新克隆对象,上面这个新克隆的对象只是为了拿数据集 + ElementCaseEditor elementCaseEditor = (ElementCaseEditor) widget; + elementCaseEditor.batchRenameTdName(tdNameMap); } } - Widget widget = (addingXCreator.getTopLayout() != null) ? (addingXCreator.getTopLayout().toData()) : addingXCreator.toData(); designer.getSelectionModel().setSelectedCreators( FormSelectionUtils.rebuildSelection(xCreator, new Widget[]{widget})); designer.getEditListenerTable().fireCreatorModified(addingModel.getXCreator(), DesignerEvent.CREATOR_ADDED); From 1f1904409a34e69be0482970d3f8ea797b4d65d0 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Fri, 25 Nov 2016 14:15:59 +0800 Subject: [PATCH 62/86] =?UTF-8?q?=E5=AD=97=E6=AF=8D=E6=8B=BC=E9=94=99?= =?UTF-8?q?=E4=BA=86=EF=BC=8C=E8=A7=A3=E5=86=B3=E5=9B=BD=E9=99=85=E5=8C=96?= =?UTF-8?q?=E6=89=BE=E4=B8=8D=E5=88=B0=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/design/report/mobile/MobileToolBarPane.java | 2 +- .../src/com/fr/design/form/mobile/MobileToolBarPane.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java b/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java index bea0745cb5..a365416614 100644 --- a/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java +++ b/designer/src/com/fr/design/report/mobile/MobileToolBarPane.java @@ -65,6 +65,6 @@ public class MobileToolBarPane extends BasicBeanPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer_Mobile-Toolbar"); + return Inter.getLocText("FR-Designer_Mobile-ToolBar"); } } diff --git a/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java b/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java index c46c98ec27..1dddf42cfc 100644 --- a/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java +++ b/designer_form/src/com/fr/design/form/mobile/MobileToolBarPane.java @@ -58,7 +58,7 @@ public class MobileToolBarPane extends BasicBeanPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer_Mobile-Toolbar"); + return Inter.getLocText("FR-Designer_Mobile-ToolBar"); } } From 7a1a7f9926a853e942c4e0e061e8dacce63400ba Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 25 Nov 2016 15:25:19 +0800 Subject: [PATCH 63/86] =?UTF-8?q?REPORT-842=20=E6=8A=A5=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=94=AF=E6=8C=81=E5=9C=86=E8=A7=92=E8=BE=B9?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/XBorderStyleWidgetCreator.java | 5 ++-- .../design/designer/creator/XElementCase.java | 4 +-- .../creator/XWAbsoluteBodyLayout.java | 2 +- .../fr/design/gui/xpane/LayoutBorderPane.java | 29 +++++++++++++++++-- 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java b/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java index 61bd612ad6..07a61f0d4d 100644 --- a/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java @@ -27,8 +27,7 @@ import com.fr.stable.StringUtils; */ public class XBorderStyleWidgetCreator extends XWidgetCreator{ - private int cornerSize = 15; - private int noneSize = 0; + private int noneSize = 0; protected static final Dimension BORDER_PREFERRED_SIZE = new Dimension(250, 150); @@ -59,7 +58,7 @@ public class XBorderStyleWidgetCreator extends XWidgetCreator{ protected void initBorderStyle() { LayoutBorderStyle style = toData().getBorderStyle(); if (style != null && style.getBorder() != Constants.LINE_NONE) { - this.setBorder(new UIRoundedBorder(style.getBorder(), style.getColor(), style.isCorner() ? cornerSize : noneSize)); + this.setBorder(new UIRoundedBorder(style.getBorder(), style.getColor(), style.isCorner() ? style.getRoundRadius() : noneSize)); } else { this.setBorder(DEFALUTBORDER); } diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index f2fa5cfa12..66e5adb163 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -84,7 +84,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme new CRPropertyDescriptor("widgetName", this.data.getClass()) .setI18NName(Inter.getLocText("Form-Widget_Name")), new CRPropertyDescriptor("borderStyle", this.data.getClass()).setEditorClass( - WLayoutBorderStyleEditor.class).setRendererClass(LayoutBorderStyleRenderer.class).setI18NName( + WLayoutBorderStyleEditor.class).setI18NName( Inter.getLocText("FR-Designer-Widget_Style")).putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") .setPropertyChangeListener(new PropertyChangeAdapter() { @@ -94,7 +94,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme } }), new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) - .setRendererClass(PaddingMarginCellRenderer.class).setI18NName(Inter.getLocText("FR-Layout_Padding")) + .setI18NName(Inter.getLocText("FR-Layout_Padding")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), new CRPropertyDescriptor("showToolBar", this.data.getClass()).setEditorClass(BooleanEditor.class) .setI18NName(Inter.getLocText("Form-EC_toolbar")) diff --git a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteBodyLayout.java b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteBodyLayout.java index e41ac8cba5..291a0f88d5 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteBodyLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteBodyLayout.java @@ -75,7 +75,7 @@ public class XWAbsoluteBodyLayout extends XWAbsoluteLayout { new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter .getLocText("FR-Designer_Form-Widget_Name")), new CRPropertyDescriptor("borderStyle", this.data.getClass()).setEditorClass( - WLayoutBorderStyleEditor.class).setRendererClass(LayoutBorderStyleRenderer.class).setI18NName( + WLayoutBorderStyleEditor.class).setI18NName( Inter.getLocText("FR-Engine_Style")).putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") .setPropertyChangeListener(new PropertyChangeAdapter() { diff --git a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java index 45713c623e..9c4385b6ed 100644 --- a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java +++ b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java @@ -19,6 +19,7 @@ import com.fr.design.gui.icombobox.LineComboBox; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.gui.style.BackgroundNoImagePane; import com.fr.design.gui.style.BackgroundSpecialPane; import com.fr.design.gui.style.FRFontPane; @@ -67,7 +68,8 @@ public class LayoutBorderPane extends BasicPane { private UIComboBox borderStyleCombo; //边框粗细 private LineComboBox currentLineCombo; - + //边框圆角 + private UISpinner borderCornerSpinner; //边框颜色 private UIColorButton currentLineColorPane; //主体背景 @@ -136,7 +138,17 @@ public class LayoutBorderPane extends BasicPane { this.currentLineCombo = currentLineCombo; } - public UIColorButton getCurrentLineColorPane() { + + public UISpinner getBorderCornerSpinner() { + return borderCornerSpinner; + } + + public void setBorderCornerSpinner(UISpinner borderCornerSpinner) { + this.borderCornerSpinner = borderCornerSpinner; + } + + + public UIColorButton getCurrentLineColorPane() { return currentLineColorPane; } @@ -337,6 +349,7 @@ public class LayoutBorderPane extends BasicPane { this.borderStyleCombo = new UIComboBox(BORDER_STYLE); this.currentLineCombo = new LineComboBox(BORDER_LINE_STYLE_ARRAY); this.currentLineColorPane = new UIColorButton(null); + this.borderCornerSpinner = new UISpinner(0,1000,1,0); currentLineColorPane.setUI(getButtonUI(currentLineColorPane)); currentLineColorPane.set4ToolbarButton(); currentLineColorPane.setPreferredSize(new Dimension(20,20)); @@ -356,6 +369,7 @@ public class LayoutBorderPane extends BasicPane { {new UILabel(Inter.getLocText("FR-Designer-Widget-Style_Render_Style")), borderStyleCombo}, {new UILabel(Inter.getLocText("FR-Designer-Widget-Style_Border_Line")), currentLineCombo}, {new UILabel(Inter.getLocText("FR-Designer-Widget-Style_Border_Color")), buttonPane}, + {new UILabel(Inter.getLocText("plugin-ChartF_Radius")+":"),borderCornerSpinner}, {new UILabel(Inter.getLocText("FR-Designer-Widget-Style_Body_Background")), backgroundPane}, {new UILabel(""),new UILabel(Inter.getLocText("FR-Designer-Widget-Style_Alpha"))}, {new UILabel(""),transparencyPane}, @@ -373,6 +387,7 @@ public class LayoutBorderPane extends BasicPane { protected JPanel initBodyRightTopPane(){ this.borderTypeCombo = new UIComboBox(BORDER_TYPE); this.borderStyleCombo = new UIComboBox(BORDER_STYLE); + this.borderCornerSpinner = new UISpinner(0,1000,1,0); this.currentLineCombo = new LineComboBox(BORDER_LINE_STYLE_ARRAY); this.currentLineColorPane = new UIColorButton(null); @@ -490,11 +505,12 @@ public class LayoutBorderPane extends BasicPane { LayoutBorderStyle style = new LayoutBorderStyle(); style.setType(borderTypeCombo.getSelectedIndex()); style.setBorderStyle(borderStyleCombo.getSelectedIndex()); + style.setRoundRadius((int)borderCornerSpinner.getValue()); style.setBorder(currentLineCombo.getSelectedLineStyle()); style.setColor(currentLineColorPane.getColor()); style.setBackground(backgroundPane.update()); style.setAlpha((float)(numberDragPane.updateBean()/maxNumber)); - + style.setCorner(true); WidgetTitle title = style.getTitle() == null ? new WidgetTitle() : style.getTitle(); title.setTextObject(formulaPane.updateBean()); FRFont frFont = title.getFrFont(); @@ -557,6 +573,13 @@ public class LayoutBorderPane extends BasicPane { paintPreviewPane(); } }); + this.borderCornerSpinner.setValue(borderStyle.getRoundRadius()); + this.borderCornerSpinner.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + paintPreviewPane(); + } + }); this.currentLineCombo.setSelectedLineStyle(borderStyle.getBorder()); this.currentLineCombo.addItemListener(new ItemListener() { @Override From bb622b1fd718eb9c6f7dadbda81b150e647d5656 Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 25 Nov 2016 16:04:18 +0800 Subject: [PATCH 64/86] =?UTF-8?q?REPORT-842=20=E6=8A=A5=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=94=AF=E6=8C=81=E5=9C=86=E8=A7=92=E8=BE=B9?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/designer/creator/XBorderStyleWidgetCreator.java | 2 +- .../src/com/fr/design/gui/xpane/LayoutBorderPane.java | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java b/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java index 07a61f0d4d..1b532f7f99 100644 --- a/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java @@ -58,7 +58,7 @@ public class XBorderStyleWidgetCreator extends XWidgetCreator{ protected void initBorderStyle() { LayoutBorderStyle style = toData().getBorderStyle(); if (style != null && style.getBorder() != Constants.LINE_NONE) { - this.setBorder(new UIRoundedBorder(style.getBorder(), style.getColor(), style.isCorner() ? style.getRoundRadius() : noneSize)); + this.setBorder(new UIRoundedBorder(style.getBorder(), style.getColor(), style.isCorner() ? style.getBorderRadius() : noneSize)); } else { this.setBorder(DEFALUTBORDER); } diff --git a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java index 9c4385b6ed..1a1dd071ce 100644 --- a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java +++ b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java @@ -505,7 +505,7 @@ public class LayoutBorderPane extends BasicPane { LayoutBorderStyle style = new LayoutBorderStyle(); style.setType(borderTypeCombo.getSelectedIndex()); style.setBorderStyle(borderStyleCombo.getSelectedIndex()); - style.setRoundRadius((int)borderCornerSpinner.getValue()); + style.setBorderRadius((int)borderCornerSpinner.getValue()); style.setBorder(currentLineCombo.getSelectedLineStyle()); style.setColor(currentLineColorPane.getColor()); style.setBackground(backgroundPane.update()); @@ -573,7 +573,7 @@ public class LayoutBorderPane extends BasicPane { paintPreviewPane(); } }); - this.borderCornerSpinner.setValue(borderStyle.getRoundRadius()); + this.borderCornerSpinner.setValue(borderStyle.getBorderRadius()); this.borderCornerSpinner.addChangeListener(new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { From 5ca2af057fba416e658388661e5c613d32f9ea6f Mon Sep 17 00:00:00 2001 From: kerry Date: Sat, 26 Nov 2016 14:31:59 +0800 Subject: [PATCH 65/86] =?UTF-8?q?REPORT-842=20=E6=8A=A5=E8=A1=A8=E5=BF=AB?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E6=94=AF=E6=8C=81=E5=9C=86=E8=A7=92=E8=BE=B9?= =?UTF-8?q?=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/XElementCase.java | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index 66e5adb163..543762ba21 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -100,20 +100,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme .setI18NName(Inter.getLocText("Form-EC_toolbar")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") }; - - //这边有个插件兼容问题,之后还是要改回process才行 - Set set = ExtraDesignClassManager.getInstance().getArray(AbstractFormElementCaseEditorProvider.MARK_STRING); - for (FormElementCaseEditorProvider provider : set) { - if (provider == null) { - continue; - } - this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); - FormProvider formProvider = designer.getTarget(); - ElementCaseEditorProvider elementCaseEditorProvider = this.toData(); - PropertyDescriptor[] extraEditor = provider.createPropertyDescriptor(this.data.getClass(), formProvider, elementCaseEditorProvider); - propertyTableEditor = (CRPropertyDescriptor[]) ArrayUtils.addAll(propertyTableEditor, extraEditor); - } - + resolveCompatible(propertyTableEditor); FormElementCaseEditorProcessor processor = ExtraDesignClassManager.getInstance().getSingle(FormElementCaseEditorProcessor.MARK_STRING); if (processor == null) { return propertyTableEditor; @@ -131,10 +118,25 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme if (editor.getReportFitAttr() == null) { editor.setReportFitInPc(processor.getFitStateInPC(fitAttr)); } - return (CRPropertyDescriptor[]) ArrayUtils.addAll(propertyTableEditor, extraEditor); } + + private void resolveCompatible (CRPropertyDescriptor[] propertyTableEditor) { + //这边有个插件兼容问题,之后还是要改回process才行 + Set set = ExtraDesignClassManager.getInstance().getArray(AbstractFormElementCaseEditorProvider.MARK_STRING); + for (FormElementCaseEditorProvider provider : set) { + if (provider == null) { + continue; + } + this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); + FormProvider formProvider = designer.getTarget(); + ElementCaseEditorProvider elementCaseEditorProvider = this.toData(); + PropertyDescriptor[] extraEditor = provider.createPropertyDescriptor(this.data.getClass(), formProvider, elementCaseEditorProvider); + propertyTableEditor = (CRPropertyDescriptor[]) ArrayUtils.addAll(propertyTableEditor, extraEditor); + } + } + @Override protected String getIconName() { return "text_field_16.png"; From cfb08a1d0a28a89ae5e48046531b43b6ce49bc7d Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 28 Nov 2016 11:09:12 +0800 Subject: [PATCH 66/86] =?UTF-8?q?=E5=B0=86=E5=8E=9F=E5=85=88=E7=9A=84?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=9C=86=E8=A7=92=E5=B1=9E=E6=80=A7=E6=8D=A2?= =?UTF-8?q?=E6=88=90=E5=9C=86=E8=A7=92=E5=8D=8A=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/creator/XBorderStyleWidgetCreator.java | 8 +++----- .../com/fr/design/gui/xpane/LayoutBorderPane.java | 12 ++++++------ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java b/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java index 1b532f7f99..5fb559fc4d 100644 --- a/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XBorderStyleWidgetCreator.java @@ -27,8 +27,6 @@ import com.fr.stable.StringUtils; */ public class XBorderStyleWidgetCreator extends XWidgetCreator{ - private int noneSize = 0; - protected static final Dimension BORDER_PREFERRED_SIZE = new Dimension(250, 150); public XBorderStyleWidgetCreator(Widget widget, Dimension initSize) { @@ -58,7 +56,7 @@ public class XBorderStyleWidgetCreator extends XWidgetCreator{ protected void initBorderStyle() { LayoutBorderStyle style = toData().getBorderStyle(); if (style != null && style.getBorder() != Constants.LINE_NONE) { - this.setBorder(new UIRoundedBorder(style.getBorder(), style.getColor(), style.isCorner() ? style.getBorderRadius() : noneSize)); + this.setBorder(new UIRoundedBorder(style.getBorder(), style.getColor(), style.getBorderRadius())); } else { this.setBorder(DEFALUTBORDER); } @@ -108,8 +106,8 @@ public class XBorderStyleWidgetCreator extends XWidgetCreator{ //标题的边框样式目前是取对应的控件的边框样式 title.setBorder(style.getBorder()); title.setColor(style.getColor()); - title.setCorner(style.isCorner()); - +// title.setCorner(style.isCorner()); + WidgetTitle wTitle = style.getTitle(); //设置成随机不重复的, 不然都用一个名字的话, 联动只能联动一个 title.setWidgetName(wTitle.TITLE_NAME_INDEX + this.toData().getWidgetName()); diff --git a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java index 1a1dd071ce..26f407702d 100644 --- a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java +++ b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPane.java @@ -58,6 +58,7 @@ public class LayoutBorderPane extends BasicPane { private static final int RIGHTANGLE_BORDERS = 1; private static final int ROUNDED_BORDERS = 2; private static final int MAX_WIDTH = 220; + private static final int NO_RADIUS = 0; private LayoutBorderStyle borderStyle = new LayoutBorderStyle(); @@ -362,7 +363,7 @@ public class LayoutBorderPane extends BasicPane { transparencyPane.add(new UILabel(" %"), BorderLayout.EAST); double p = TableLayout.PREFERRED; - double[] rowSize = {p,p,p,p,p,p,p}; + double[] rowSize = {p,p,p,p,p,p,p,p}; double[] columnSize = { p, MAX_WIDTH}; JPanel rightTopContentPane = TableLayoutHelper.createCommonTableLayoutPane(new JComponent[][]{ {new UILabel(Inter.getLocText("FR-Designer-Widget-Style_Frame_Style")), borderTypeCombo}, @@ -510,7 +511,6 @@ public class LayoutBorderPane extends BasicPane { style.setColor(currentLineColorPane.getColor()); style.setBackground(backgroundPane.update()); style.setAlpha((float)(numberDragPane.updateBean()/maxNumber)); - style.setCorner(true); WidgetTitle title = style.getTitle() == null ? new WidgetTitle() : style.getTitle(); title.setTextObject(formulaPane.updateBean()); FRFont frFont = title.getFrFont(); @@ -774,9 +774,9 @@ public class LayoutBorderPane extends BasicPane { public void populate(LayoutBorderStyle style) { if(style.getBorder() == Constants.LINE_NONE) { group.setSelected(noBorder.getModel(), true); - } else if(style.isCorner()) { - group.setSelected(RoundedBorder.getModel(), true); - } else { + } else if(style.getBorderRadius() != NO_RADIUS) { + group.setSelected(RoundedBorder.getModel(), true); + } else { group.setSelected(normalBorder.getModel(), true); } } @@ -817,7 +817,7 @@ public class LayoutBorderPane extends BasicPane { } else { borderStyle.setColor(currentLineColorPane.getColor()); borderStyle.setBorder(currentLineCombo.getSelectedLineStyle()); - borderStyle.setCorner(border != RIGHTANGLE_BORDERS); + borderStyle.setBorderRadius((int)borderCornerSpinner.getValue()); } layoutBorderPreviewPane.repaint(); From 602dfc2de13ed260779397cc2aa0f66ff3f3793d Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 28 Nov 2016 15:22:50 +0800 Subject: [PATCH 67/86] =?UTF-8?q?REPORT-875=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E8=AF=AD=E8=A8=80=E5=90=8E,=20=E5=BA=94?= =?UTF-8?q?=E8=AF=A5=E7=BB=99=E4=B8=AA=E6=8F=90=E7=A4=BA,=20=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E9=87=8D=E5=90=AF,=20=E5=B0=B1=E8=B7=9F=E8=A3=85?= =?UTF-8?q?=E5=AE=8C=E6=8F=92=E4=BB=B6=E4=B8=80=E6=A0=B7.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/actions/file/PreferencePane.java | 75 +++++++++++++++++++ .../src/com/fr/design/dialog/BasicDialog.java | 4 +- .../com/fr/design/locale/designer.properties | 3 +- .../design/locale/designer_en_US.properties | 3 +- .../design/locale/designer_zh_CN.properties | 3 +- .../design/locale/designer_zh_TW.properties | 3 +- 6 files changed, 85 insertions(+), 6 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/file/PreferencePane.java b/designer_base/src/com/fr/design/actions/file/PreferencePane.java index c3944afd13..6de8d60e81 100644 --- a/designer_base/src/com/fr/design/actions/file/PreferencePane.java +++ b/designer_base/src/com/fr/design/actions/file/PreferencePane.java @@ -1,10 +1,13 @@ package com.fr.design.actions.file; import com.fr.base.BaseUtils; +import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; +import com.fr.design.RestartHelper; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.dialog.DialogActionListener; import com.fr.design.editor.editor.IntegerEditor; import com.fr.design.gui.frpane.UITabbedPane; import com.fr.design.gui.ibutton.UIButton; @@ -78,6 +81,7 @@ public class PreferencePane extends BasicPane { getLocaledLanguage("Traditional_Chinese_Language", Locale.TRADITIONAL_CHINESE), getLocaledLanguage("Korea_Language",Locale.KOREA), }; + private static int designerEnvLanguageIndex; // 打开设置对话框时,设计器使用的语言 //设置是否支持undo private UICheckBox supportUndoCheckBox; @@ -527,6 +531,7 @@ public class PreferencePane extends BasicPane { this.logLevelComboBox.setSelectedItem(FRLevel.getByLevel(designerEnvManager.getLogLevel())); this.languageComboBox.setSelectedItem(LANGUAGE[designerEnvManager.getLanguage()]); + designerEnvLanguageIndex = designerEnvManager.getLanguage(); this.pageLengthComboBox.setSelectedIndex(designerEnvManager.getPageLengthUnit()); this.reportLengthComboBox.setSelectedIndex(designerEnvManager.getReportLengthUnit()); @@ -621,4 +626,74 @@ public class PreferencePane extends BasicPane { } return l; } + + /** + * 显示窗口 + * + * @param window 窗口 + * @param l 对话框监听器 + * @return 对话框 + */ + @Override + public BasicDialog showWindow(Window window, DialogActionListener l) { + BasicDialog dg; + if (window instanceof Frame) { + dg = new DIALOG((Frame) window); + } else { + dg = new DIALOG((Dialog) window); + } + + if (l != null) { + dg.addDialogActionListener(l); + } + + dg.setBasicDialogSize(BasicDialog.DEFAULT); + GUICoreUtils.centerWindow(dg); + dg.setResizable(false); + return dg; + } + + private class DIALOG extends BasicDialog { + public DIALOG(Frame parent) { + super(parent, PreferencePane.this); + this.setTitle(PreferencePane.this.title4PopupWindow()); + } + + public DIALOG(Dialog parent) { + super(parent, PreferencePane.this); + this.setTitle(PreferencePane.this.title4PopupWindow()); + } + + /** + * 确定操作 + * + */ + @Override + public void doOK() { + super.doOK(); + if (languageComboBox.getSelectedIndex() != designerEnvLanguageIndex) { + int rv = JOptionPane.showOptionDialog( + null, + Inter.getLocText("FR-Designer-Language_Change_Successful"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.YES_NO_OPTION, + JOptionPane.INFORMATION_MESSAGE, + null, + new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later")}, + null + ); + if (rv == JOptionPane.OK_OPTION) { + RestartHelper.restart(); + } + } + } + + /** + * Check valid. + */ + public void checkValid() throws Exception { + PreferencePane.this.checkValid(); + } + + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/dialog/BasicDialog.java b/designer_base/src/com/fr/design/dialog/BasicDialog.java index 703b192055..b2246dbc6c 100644 --- a/designer_base/src/com/fr/design/dialog/BasicDialog.java +++ b/designer_base/src/com/fr/design/dialog/BasicDialog.java @@ -39,11 +39,11 @@ public abstract class BasicDialog extends UIDialog { super(parent, pane, isNeedButtonPane); } - protected void setBasicDialogSize(Dimension d) { + public void setBasicDialogSize(Dimension d) { super.setSize(d.width, d.height); } - protected void setBasicDialogSize(int w, int h) { + public void setBasicDialogSize(int w, int h) { super.setSize(w, h); } diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index bcc777385c..27615ac778 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 12:02:51 CST 2016 +# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account= FR-Designer-BBSLogin_Connection-Failure= FR-Designer-BBSLogin_Connection-Failure-Tip= @@ -471,3 +471,4 @@ FR-Designer_Mobile-ToolBar=toolbar FR-Designer_WLayout-Absolute-ToolTips= FR-Designer_Reset= FR-Designer_Add_all= +FR-Designer-Language_Change_Successful= diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index d3e02f0072..21bb7d2d8e 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 12:02:51 CST 2016 +# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=User name FR-Designer-BBSLogin_Connection-Failure=Connection failure, check your network status FR-Designer-BBSLogin_Connection-Failure-Tip=Tip @@ -470,3 +470,4 @@ FR-Designer_Mobile-ToolBar=toolbar FR-Designer_WLayout-Absolute-ToolTips=Freestyle layout, add control in any position of the layout FR-Designer_Reset=reset FR-Designer_Add_all=Add all +FR-Designer-Language_Change_Successful=New language setting will be enabled when designer is restarted diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 8ee044e6e7..1d92c5219a 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 12:02:51 CST 2016 +# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u7528\u6237\u540D FR-Designer-BBSLogin_Connection-Failure=\u7F51\u7EDC\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5F53\u524D\u7F51\u7EDC\u72B6\u6001 FR-Designer-BBSLogin_Connection-Failure-Tip=\u63D0\u793A @@ -474,3 +474,4 @@ FR-Designer_Mobile-Refresh=\u5237\u65B0 FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF\u4EE5\u5728\u5E03\u5C40\u5185\u4EFB\u610F\u4F4D\u7F6E\u6DFB\u52A0\u63A7\u4EF6 FR-Designer_Reset=\u53D6\u6D88\u5220\u9664 FR-Designer_Add_all=\u5168\u90E8\u6DFB\u52A0 +FR-Designer-Language_Change_Successful=\u65B0\u7684\u8BED\u8A00\u8BBE\u7F6E\u5C06\u5728\u91CD\u65B0\u542F\u52A8\u8BBE\u8BA1\u5668\u65F6\u88AB\u542F\u7528 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 551ff97ef5..8844b1cb4b 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 12:02:51 CST 2016 +# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u767B\u5165\u5E33\u865F FR-Designer-BBSLogin_Connection-Failure=\u767B\u5165\u9023\u63A5\u5931\u6557\uFF0C\u8ACB\u6AA2\u67E5\u7576\u524D\u7DB2\u8DEF\u72C0\u614B FR-Designer-BBSLogin_Connection-Failure-Tip=\u9023\u7DDA\u5931\u6557\u63D0\u793A @@ -463,3 +463,4 @@ FR-Designer_Mobile-ToolBar=\u5DE5\u5177\u6B04 FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF\u4EE5\u5728\u5E03\u5C40\u5167\u4EFB\u610F\u4F4D\u7F6E\u65B0\u589E\u63A7\u5236\u9805 FR-Designer_Reset= FR-Designer_Add_all=\u5168\u90E8\u65B0\u589E +FR-Designer-Language_Change_Successful=\u65B0\u7684\u8A9E\u8A00\u8A2D\u5B9A\u5C07\u5728\u91CD\u65B0\u555F\u52D5\u8A2D\u8A08\u5668\u6642\u88AB\u555F\u7528 From 5c9c82c4f6165a416b2533df8078b1630aed0d5e Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 28 Nov 2016 15:44:36 +0800 Subject: [PATCH 68/86] =?UTF-8?q?REPORT-747=20=E4=B9=8B=E5=89=8D=E6=B2=A1?= =?UTF-8?q?=E8=80=83=E8=99=91=E4=B8=8D=E5=90=8C=E6=A8=A1=E6=9D=BF=E4=B9=8B?= =?UTF-8?q?=E9=97=B4=E5=A4=8D=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cell/clipboard/CellElementsClip.java | 47 +++++++++++-------- designer/src/com/fr/grid/GridUtils.java | 2 +- .../com/fr/grid/selection/CellSelection.java | 12 ++++- 3 files changed, 38 insertions(+), 23 deletions(-) diff --git a/designer/src/com/fr/design/cell/clipboard/CellElementsClip.java b/designer/src/com/fr/design/cell/clipboard/CellElementsClip.java index 44621af89d..64d649d3d3 100644 --- a/designer/src/com/fr/design/cell/clipboard/CellElementsClip.java +++ b/designer/src/com/fr/design/cell/clipboard/CellElementsClip.java @@ -12,27 +12,32 @@ import com.fr.report.cell.CellElement; import com.fr.report.cell.CellElementComparator; import com.fr.report.cell.TemplateCellElement; import com.fr.report.elementcase.TemplateElementCase; +import com.fr.stable.unit.FU; /** * The clip of CellElement. */ public class CellElementsClip implements Cloneable, java.io.Serializable { - private int column; - private int row; private int columnSpan = 0; private int rowSpan = 0; - + private FU[] columnWidth; + private FU[] rowHeight; private TemplateCellElement[] clips; - public CellElementsClip(int column, int row, int columnSpan, int rowSpan, TemplateCellElement[] clips) { - this.column = column; - this.row = row; + public CellElementsClip(int columnSpan, int rowSpan, FU[] columnWidth , FU[] rowHeight, TemplateCellElement[] clips) { this.columnSpan = columnSpan; this.rowSpan = rowSpan; - + this.columnWidth = columnWidth ; + this.rowHeight = rowHeight; this.clips = clips; } - + + public CellElementsClip(int columnSpan, int rowSpan, TemplateCellElement[] clips) { + this.columnSpan = columnSpan; + this.rowSpan = rowSpan; + this.clips = clips; + } + public String compateExcelPaste() { Arrays.sort(this.clips, CellElementComparator.getRowFirstComparator()); @@ -63,9 +68,9 @@ public class CellElementsClip implements Cloneable, java.io.Serializable { return sbuf.toString(); } - + public CellSelection pasteAt(TemplateElementCase ec, int column, int row) { - + Iterator cells = ec.intersect(column, row, columnSpan, rowSpan); while (cells.hasNext()) { TemplateCellElement cellElement = (TemplateCellElement)cells.next(); @@ -79,28 +84,30 @@ public class CellElementsClip implements Cloneable, java.io.Serializable { FRContext.getLogger().error(e.getMessage(), e); return null; } - + // peter:因为前面已经将这个位置的元素删除了,所以不需要override了. ec.addCellElement((TemplateCellElement) cellElement.deriveCellElement( - column + cellElement.getColumn(), row + cellElement.getRow() + column + cellElement.getColumn(), row + cellElement.getRow() ), false); } //设置单元格的宽高 - pasteWidthAndHeight(ec, column, row, columnSpan, rowSpan); + if(this.columnWidth != null && this.rowHeight != null){ + pasteWidthAndHeight(ec, column, row, columnSpan, rowSpan); + } return new CellSelection(column, row, columnSpan, rowSpan); } public void pasteWidthAndHeight(TemplateElementCase ec, int column, int row, int columnSpan, int rowSpan){ - for(int i = 0; i Date: Mon, 28 Nov 2016 15:50:24 +0800 Subject: [PATCH 69/86] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89SQL=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=95=B0=E6=8D=AE=E9=9B=86=E6=80=BB=E8=A1=8C=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tabledatapane/DBTableDataPane.java | 165 +++++++++++------- 1 file changed, 98 insertions(+), 67 deletions(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index b0fba71c96..81a50d2ac2 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -57,7 +57,8 @@ public class DBTableDataPane extends AbstractTableDataPane { private UICheckBox isShareCheckBox; private MaxMemRowCountPanel maxPanel; private String pageQuery = null; - + private String customCountQuery = null; + public DBTableDataPane() { this.setLayout(new BorderLayout(4, 4)); @@ -134,23 +135,24 @@ public class DBTableDataPane extends AbstractTableDataPane { this.add(mainSplitPane, BorderLayout.CENTER); } - private boolean isPreviewOrRefreshButton (FocusEvent e) { - if (e.getOppositeComponent() != null) { - String name = e.getOppositeComponent().getName(); - return ComparatorUtils.equals(name, PREVIEW_BUTTON) || ComparatorUtils.equals(name, REFRESH_BUTTON); - } - return false; - } + private boolean isPreviewOrRefreshButton (FocusEvent e) { + if (e.getOppositeComponent() != null) { + String name = e.getOppositeComponent().getName(); + return ComparatorUtils.equals(name, PREVIEW_BUTTON) || ComparatorUtils.equals(name, REFRESH_BUTTON); + } + return false; + } @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer-DS-Database_Query"); + return Inter.getLocText("DS-Database_Query"); } private void refresh() { - String[] paramTexts = new String[2]; + String[] paramTexts = new String[3]; paramTexts[0] = sqlTextPane.getText(); paramTexts[1] = pageQuery; + paramTexts[2] = customCountQuery; List existParameterList = editorPane.update(); Parameter[] ps = existParameterList == null ? new Parameter[0] : existParameterList.toArray(new Parameter[existParameterList.size()]); @@ -164,9 +166,11 @@ public class DBTableDataPane extends AbstractTableDataPane { toolBarDef.addShortCut(new PreviewAction()); toolBarDef.addShortCut(SeparatorDef.DEFAULT); toolBarDef.addShortCut(new EditPageQueryAction()); - isShareCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Is_Share_DBTableData")); + toolBarDef.addShortCut(SeparatorDef.DEFAULT); + toolBarDef.addShortCut(new EditCustomCountQueryAction()); + isShareCheckBox = new UICheckBox(Inter.getLocText("Is_Share_DBTableData")); maxPanel = new MaxMemRowCountPanel(); - maxPanel.setBorder(null); + maxPanel.setBorder(null); UIToolbar editToolBar = ToolBarDef.createJToolBar(); toolBarDef.updateToolBar(editToolBar); editToolBar.add(isShareCheckBox); @@ -175,9 +179,10 @@ public class DBTableDataPane extends AbstractTableDataPane { } private void checkParameter() { - String[] paramTexts = new String[2]; + String[] paramTexts = new String[3]; paramTexts[0] = sqlTextPane.getText(); paramTexts[1] = pageQuery; + paramTexts[2] = customCountQuery; Parameter[] parameters = ParameterHelper.analyze4Parameters(paramTexts, false); @@ -222,6 +227,7 @@ public class DBTableDataPane extends AbstractTableDataPane { isShare = dbtabledata.isShare(); maxMemeryRow = dbtabledata.getMaxMemRowCount(); this.pageQuery = dbtabledata.getPageQuerySql(); + this.customCountQuery = dbtabledata.getCustomCountQuery(); this.connectionTableProcedurePane.setSelectedDatabaseConnection(db); this.sqlTextPane.setText(query); @@ -258,6 +264,7 @@ public class DBTableDataPane extends AbstractTableDataPane { dbTableData.setShare(isShareCheckBox.isSelected()); dbTableData.setMaxMemRowCount(maxPanel.getValue()); dbTableData.setPageQuerySql(this.pageQuery); + dbTableData.setCustomCountQuery(this.customCountQuery); return dbTableData; } @@ -285,64 +292,88 @@ public class DBTableDataPane extends AbstractTableDataPane { } public void actionPerformed(ActionEvent evt) { - checkParameter(); - PreviewTablePane.previewTableData(DBTableDataPane.this.updateBean()); + checkParameter(); + PreviewTablePane.previewTableData(DBTableDataPane.this.updateBean()); + } + } + + private class EditCustomCountQueryAction extends UpdateAction { + public EditCustomCountQueryAction() { + this.setName(Inter.getLocText("FR-Designer-LayerPageReport_CustomCountQuery")); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/text.png")); + } + + @Override + public void actionPerformed(ActionEvent e) { + final QueryPane editPane = new QueryPane(Inter.getLocText("FR-Designer-LayerPageReport_Define_CustomCountQuery")); + editPane.populate(customCountQuery); + BasicDialog dialog = editPane.showWindow(DesignerContext.getDesignerFrame()); + dialog.addDialogActionListener(new DialogActionAdapter() { + public void doOk() { + customCountQuery = editPane.update(); + checkParameter(); + } + }); + dialog.setVisible(true); + + } + } + + private class EditPageQueryAction extends UpdateAction { + public EditPageQueryAction() { + this.setName(Inter.getLocText("FR-Designer-LayerPageReport_PageQuery")); + this.setMnemonic('L'); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/text.png")); + } + + public void actionPerformed(ActionEvent e) { + final QueryPane pane = new QueryPane(Inter.getLocText("FR-Designer-LayerPageReport_Define_PageQuerySQL")); + pane.populate(pageQuery); + BasicDialog dialog = pane.showWindow(DesignerContext.getDesignerFrame()); + dialog.addDialogActionListener(new DialogActionAdapter() { + public void doOk() { + pageQuery = pane.update(); + checkParameter(); + } + }); + dialog.setVisible(true); } } - - private class EditPageQueryAction extends UpdateAction { - public EditPageQueryAction() { - this.setName(Inter.getLocText("FR-Designer-LayerPageReport_PageQuery")); - this.setMnemonic('L'); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/text.png")); - } - - public void actionPerformed(ActionEvent e) { - final PageQueryPane pane = new PageQueryPane(); - pane.populate(pageQuery); - BasicDialog dialog = pane.showWindow(DesignerContext.getDesignerFrame()); - dialog.addDialogActionListener(new DialogActionAdapter() { - public void doOk() { - pageQuery = pane.update(); - checkParameter(); - } - }); - dialog.setVisible(true); - } - } - - private class PageQueryPane extends BasicPane { - private SQLEditPane pageQueryPane; - - public PageQueryPane() { - this.initComponents(); - } - - public void initComponents() { - this.setLayout(new BorderLayout()); - pageQueryPane = new SQLEditPane(); - this.add(new JScrollPane(pageQueryPane)); - } - - public void populate(String text) { - if (StringUtils.isBlank(text)) { - return; - } - pageQueryPane.setText(text); - } - - public String update() { - String text = pageQueryPane.getText(); - if (StringUtils.isBlank(text)) { - return null; - } else { - return text; - } - } + + private class QueryPane extends BasicPane { + private SQLEditPane pageQueryPane; + private String title; + + public QueryPane(String title) { + this.title = title; + this.initComponents(); + } + + public void initComponents() { + this.setLayout(new BorderLayout()); + pageQueryPane = new SQLEditPane(); + this.add(new JScrollPane(pageQueryPane)); + } + + public void populate(String text) { + if (StringUtils.isBlank(text)) { + return; + } + pageQueryPane.setText(text); + } + + public String update() { + String text = pageQueryPane.getText(); + if (StringUtils.isBlank(text)) { + return null; + } else { + return text; + } + } @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer-LayerPageReport_Define_PageQuerySQL"); + return title; } - } + } } \ No newline at end of file From a72ce46cc96155e22026e056b11c961eba86fcbf Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 28 Nov 2016 16:12:21 +0800 Subject: [PATCH 70/86] rt --- .../tabledatapane/DBTableDataPane.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index 81a50d2ac2..553e6814c0 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -145,7 +145,7 @@ public class DBTableDataPane extends AbstractTableDataPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("DS-Database_Query"); + return Inter.getLocText("FR-Designer-DS-Database_Query"); } private void refresh() { @@ -168,7 +168,7 @@ public class DBTableDataPane extends AbstractTableDataPane { toolBarDef.addShortCut(new EditPageQueryAction()); toolBarDef.addShortCut(SeparatorDef.DEFAULT); toolBarDef.addShortCut(new EditCustomCountQueryAction()); - isShareCheckBox = new UICheckBox(Inter.getLocText("Is_Share_DBTableData")); + isShareCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Is_Share_DBTableData")); maxPanel = new MaxMemRowCountPanel(); maxPanel.setBorder(null); UIToolbar editToolBar = ToolBarDef.createJToolBar(); @@ -297,46 +297,46 @@ public class DBTableDataPane extends AbstractTableDataPane { } } - private class EditCustomCountQueryAction extends UpdateAction { - public EditCustomCountQueryAction() { - this.setName(Inter.getLocText("FR-Designer-LayerPageReport_CustomCountQuery")); + private class EditPageQueryAction extends UpdateAction { + public EditPageQueryAction() { + this.setName(Inter.getLocText("FR-Designer-LayerPageReport_PageQuery")); + this.setMnemonic('L'); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/text.png")); } - @Override public void actionPerformed(ActionEvent e) { - final QueryPane editPane = new QueryPane(Inter.getLocText("FR-Designer-LayerPageReport_Define_CustomCountQuery")); - editPane.populate(customCountQuery); - BasicDialog dialog = editPane.showWindow(DesignerContext.getDesignerFrame()); + final QueryPane pane = new QueryPane(Inter.getLocText("FR-Designer-LayerPageReport_Define_PageQuerySQL")); + pane.populate(pageQuery); + BasicDialog dialog = pane.showWindow(DesignerContext.getDesignerFrame()); dialog.addDialogActionListener(new DialogActionAdapter() { public void doOk() { - customCountQuery = editPane.update(); + pageQuery = pane.update(); checkParameter(); } }); dialog.setVisible(true); - } } - private class EditPageQueryAction extends UpdateAction { - public EditPageQueryAction() { - this.setName(Inter.getLocText("FR-Designer-LayerPageReport_PageQuery")); - this.setMnemonic('L'); + private class EditCustomCountQueryAction extends UpdateAction { + public EditCustomCountQueryAction() { + this.setName(Inter.getLocText("FR-Designer-LayerPageReport_CustomCountQuery")); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/text.png")); } + @Override public void actionPerformed(ActionEvent e) { - final QueryPane pane = new QueryPane(Inter.getLocText("FR-Designer-LayerPageReport_Define_PageQuerySQL")); - pane.populate(pageQuery); - BasicDialog dialog = pane.showWindow(DesignerContext.getDesignerFrame()); + final QueryPane editPane = new QueryPane(Inter.getLocText("FR-Designer-LayerPageReport_Define_CustomCountQuery")); + editPane.populate(customCountQuery); + BasicDialog dialog = editPane.showWindow(DesignerContext.getDesignerFrame()); dialog.addDialogActionListener(new DialogActionAdapter() { public void doOk() { - pageQuery = pane.update(); + customCountQuery = editPane.update(); checkParameter(); } }); dialog.setVisible(true); + } } From fe2996616ec38b0f7b3aec2e2f4099ef1056ad06 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 28 Nov 2016 16:21:05 +0800 Subject: [PATCH 71/86] =?UTF-8?q?REPORT-875=20=E4=BF=AE=E6=94=B9=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E6=96=87=E4=BB=B6=EF=BC=8C=E5=8A=A0=E5=85=A5?= =?UTF-8?q?FR-Designer-Language=5FChange=5FSuccessful?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/locale/designer.properties | 2 +- .../src/com/fr/design/locale/designer_ja_JP.properties | 3 ++- .../src/com/fr/design/locale/designer_ko_KR.properties | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 27615ac778..144903763c 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -471,4 +471,4 @@ FR-Designer_Mobile-ToolBar=toolbar FR-Designer_WLayout-Absolute-ToolTips= FR-Designer_Reset= FR-Designer_Add_all= -FR-Designer-Language_Change_Successful= +FR-Designer-Language_Change_Successful=New language setting will be enabled when designer is restarted\ \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index ca4a6d066d..b06bbf0e30 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 12:02:51 CST 2016 +# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u30E6\u30FC\u30B6\u30FC\u540D FR-Designer-BBSLogin_Connection-Failure=\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F\u3002\u73FE\u5728\u306E\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u72B6\u614B\u3092\u691C\u67FB\u3057\u3066\u304F\u3060\u3055\u3044 FR-Designer-BBSLogin_Connection-Failure-Tip=\u30D2\u30F3\u30C8 @@ -448,3 +448,4 @@ FR-Designer_Mobile-Refresh= FR-Designer_Mobile-ToolBar= FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u914D\u7F6E\u3067\u3059\u3002\u914D\u7F6E\u5185\u306E\u4EFB\u610F\u306E\u4F4D\u7F6E\u306B\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068 FR-Designer_Add_all=\u3059\u3079\u3066\u8FFD\u52A0 +FR-Designer-Language_Change_Successful= \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 7c434320cd..ed5ad41bfd 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -1,4 +1,4 @@ -# generated time: 星期四 十一月 24 12:02:51 CST 2016 +# generated time: \u661F\u671F\u56DB \u5341\u4E00\u6708 24 12:02:51 CST 2016 FR-Designer-BBSLogin_Account=\u7528\u6237\u540D FR-Designer-BBSLogin_Connection-Failure=\uB124\uD2B8\uC6CC\uD06C\uB9C1\uD06C\uC2E4\uD328.\uD604\uC7AC\uB124\uD2B8\uC6CC\uD06C\uC0C1\uD0DC\uB97C\uAC80\uC0AC\uD574\uC8FC\uC2ED\uC2DC\uC624. FR-Designer-BBSLogin_Connection-Failure-Tip=\uC54C\uB9BC @@ -444,3 +444,4 @@ FR-Designer_Mobile-ToolBar= FR-Designer_WLayout-Absolute-ToolTips=\uC790\uC720\uC2DD\uB808\uC774\uC544\uC6C3\uC740\uB808\uC774\uC544\uC6C3\uC548\uC5D0\uC11C\uC5B4\uB290\uC704\uCE58\uC5D0\uB3C4\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uB97C\uCD94\uAC00\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. FR-Designer_Add_all=\uBAA8\uB450\uCD94\uAC00 FR-Designer_Reset= +FR-Designer-Language_Change_Successful= \ No newline at end of file From c0892fd1f7ab3584a05264a6dcb51869c43279f2 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 29 Nov 2016 09:41:32 +0800 Subject: [PATCH 72/86] =?UTF-8?q?REPORT-875=E3=80=82=E5=B0=86setBasicDialo?= =?UTF-8?q?gSize=E6=96=B9=E6=B3=95=E7=9A=84=E8=AE=BF=E9=97=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E6=94=B9=E5=9B=9Eprotected?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/actions/file/PreferencePane.java | 6 +----- .../src/com/fr/design/dialog/BasicDialog.java | 4 ++-- .../src/com/fr/design/dialog/BasicPane.java | 13 +++++++++++++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/file/PreferencePane.java b/designer_base/src/com/fr/design/actions/file/PreferencePane.java index 6de8d60e81..0557eb5875 100644 --- a/designer_base/src/com/fr/design/actions/file/PreferencePane.java +++ b/designer_base/src/com/fr/design/actions/file/PreferencePane.java @@ -646,11 +646,7 @@ public class PreferencePane extends BasicPane { if (l != null) { dg.addDialogActionListener(l); } - - dg.setBasicDialogSize(BasicDialog.DEFAULT); - GUICoreUtils.centerWindow(dg); - dg.setResizable(false); - return dg; + return showWindow(dg); } private class DIALOG extends BasicDialog { diff --git a/designer_base/src/com/fr/design/dialog/BasicDialog.java b/designer_base/src/com/fr/design/dialog/BasicDialog.java index b2246dbc6c..703b192055 100644 --- a/designer_base/src/com/fr/design/dialog/BasicDialog.java +++ b/designer_base/src/com/fr/design/dialog/BasicDialog.java @@ -39,11 +39,11 @@ public abstract class BasicDialog extends UIDialog { super(parent, pane, isNeedButtonPane); } - public void setBasicDialogSize(Dimension d) { + protected void setBasicDialogSize(Dimension d) { super.setSize(d.width, d.height); } - public void setBasicDialogSize(int w, int h) { + protected void setBasicDialogSize(int w, int h) { super.setSize(w, h); } diff --git a/designer_base/src/com/fr/design/dialog/BasicPane.java b/designer_base/src/com/fr/design/dialog/BasicPane.java index 9bc96f6439..eb1b413055 100644 --- a/designer_base/src/com/fr/design/dialog/BasicPane.java +++ b/designer_base/src/com/fr/design/dialog/BasicPane.java @@ -52,6 +52,19 @@ public abstract class BasicPane extends JPanel { return dg; } + /** + * 显示窗口 + * + * @param dg 已添加监听器的对话框实例 + * @return 对话框 + */ + public BasicDialog showWindow(BasicDialog dg) { + dg.setBasicDialogSize(BasicDialog.DEFAULT); + GUICoreUtils.centerWindow(dg); + dg.setResizable(false); + return dg; + } + /** * 显示窗口 * From 894d5bdb18595bcf7e902fa3b433f8651664a557 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 29 Nov 2016 09:51:07 +0800 Subject: [PATCH 73/86] =?UTF-8?q?REPORT-748=20=E6=A8=A1=E6=9D=BF>=E6=A8=A1?= =?UTF-8?q?=E6=9D=BFWeb=E5=B1=9E=E6=80=A7=E7=82=B9=E8=BF=9B=E5=8E=BB?= =?UTF-8?q?=E4=B9=8B=E5=90=8E=E5=BC=B9=E5=87=BA=E7=AA=97=E5=8F=A3=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E4=B8=8D=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/design/webattr/ReportWebAttrPane.java | 2 +- designer_base/src/com/fr/design/locale/designer.properties | 3 ++- .../src/com/fr/design/locale/designer_en_US.properties | 1 + .../src/com/fr/design/locale/designer_ja_JP.properties | 3 ++- .../src/com/fr/design/locale/designer_ko_KR.properties | 3 ++- .../src/com/fr/design/locale/designer_zh_CN.properties | 1 + .../src/com/fr/design/locale/designer_zh_TW.properties | 2 +- 7 files changed, 10 insertions(+), 5 deletions(-) diff --git a/designer/src/com/fr/design/webattr/ReportWebAttrPane.java b/designer/src/com/fr/design/webattr/ReportWebAttrPane.java index 6330ee87fd..ed1079f929 100644 --- a/designer/src/com/fr/design/webattr/ReportWebAttrPane.java +++ b/designer/src/com/fr/design/webattr/ReportWebAttrPane.java @@ -58,7 +58,7 @@ public class ReportWebAttrPane extends LoadingBasicPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("ReportD-Report_Web_Attributes"); + return Inter.getLocText("FR-Designer-Template_Web_Attributes"); } public void populate(ReportWebAttr reportWebAttr) { diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 144903763c..751e14b11b 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -471,4 +471,5 @@ FR-Designer_Mobile-ToolBar=toolbar FR-Designer_WLayout-Absolute-ToolTips= FR-Designer_Reset= FR-Designer_Add_all= -FR-Designer-Language_Change_Successful=New language setting will be enabled when designer is restarted\ \ No newline at end of file +FR-Designer-Language_Change_Successful=New language setting will be enabled when designer is restarted +FR-Designer-Template_Web_Attributes=Web Attributes diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 21bb7d2d8e..da00526cfc 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -471,3 +471,4 @@ FR-Designer_WLayout-Absolute-ToolTips=Freestyle layout, add control in any posit FR-Designer_Reset=reset FR-Designer_Add_all=Add all FR-Designer-Language_Change_Successful=New language setting will be enabled when designer is restarted +FR-Designer-Template_Web_Attributes=Web Attributes diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index b06bbf0e30..255abf73ce 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -448,4 +448,5 @@ FR-Designer_Mobile-Refresh= FR-Designer_Mobile-ToolBar= FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u914D\u7F6E\u3067\u3059\u3002\u914D\u7F6E\u5185\u306E\u4EFB\u610F\u306E\u4F4D\u7F6E\u306B\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068 FR-Designer_Add_all=\u3059\u3079\u3066\u8FFD\u52A0 -FR-Designer-Language_Change_Successful= \ No newline at end of file +FR-Designer-Language_Change_Successful= +FR-Designer-Template_Web_Attributes= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index ed5ad41bfd..5ea4a3ab6b 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -444,4 +444,5 @@ FR-Designer_Mobile-ToolBar= FR-Designer_WLayout-Absolute-ToolTips=\uC790\uC720\uC2DD\uB808\uC774\uC544\uC6C3\uC740\uB808\uC774\uC544\uC6C3\uC548\uC5D0\uC11C\uC5B4\uB290\uC704\uCE58\uC5D0\uB3C4\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uB97C\uCD94\uAC00\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. FR-Designer_Add_all=\uBAA8\uB450\uCD94\uAC00 FR-Designer_Reset= -FR-Designer-Language_Change_Successful= \ No newline at end of file +FR-Designer-Language_Change_Successful= +FR-Designer-Template_Web_Attributes= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 1d92c5219a..6e837afbed 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -475,3 +475,4 @@ FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF FR-Designer_Reset=\u53D6\u6D88\u5220\u9664 FR-Designer_Add_all=\u5168\u90E8\u6DFB\u52A0 FR-Designer-Language_Change_Successful=\u65B0\u7684\u8BED\u8A00\u8BBE\u7F6E\u5C06\u5728\u91CD\u65B0\u542F\u52A8\u8BBE\u8BA1\u5668\u65F6\u88AB\u542F\u7528 +FR-Designer-Template_Web_Attributes=\u6A21\u677FWeb\u5C5E\u6027 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 8844b1cb4b..7b81457f0e 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -461,6 +461,6 @@ FR-Designer_Attr_Bidirectional_Adaptive= FR-Designer_Mobile-Refresh=\u5237\u65B0 FR-Designer_Mobile-ToolBar=\u5DE5\u5177\u6B04 FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF\u4EE5\u5728\u5E03\u5C40\u5167\u4EFB\u610F\u4F4D\u7F6E\u65B0\u589E\u63A7\u5236\u9805 -FR-Designer_Reset= FR-Designer_Add_all=\u5168\u90E8\u65B0\u589E FR-Designer-Language_Change_Successful=\u65B0\u7684\u8A9E\u8A00\u8A2D\u5B9A\u5C07\u5728\u91CD\u65B0\u555F\u52D5\u8A2D\u8A08\u5668\u6642\u88AB\u555F\u7528 +FR-Designer-Template_Web_Attributes=\u5831\u8868Web\u5C6C\u6027 From 72337a2dbe322ee988223b32e5cd527ee6776b70 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 29 Nov 2016 11:52:28 +0800 Subject: [PATCH 74/86] =?UTF-8?q?REPORT-875=20=E4=BF=AE=E6=94=B9=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=AF=B9=E8=AF=9D=E6=A1=86=E7=9A=84=E6=96=B9=E5=BC=8F?= =?UTF-8?q?=EF=BC=8C=E5=8E=BB=E6=8E=89=E6=8B=B7=E8=B4=9D=E8=BF=87=E6=9D=A5?= =?UTF-8?q?=E7=9A=84=E9=87=8D=E5=A4=8D=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/actions/file/PreferencePane.java | 80 +++++-------------- 1 file changed, 19 insertions(+), 61 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/file/PreferencePane.java b/designer_base/src/com/fr/design/actions/file/PreferencePane.java index 0557eb5875..4aadbf4d23 100644 --- a/designer_base/src/com/fr/design/actions/file/PreferencePane.java +++ b/designer_base/src/com/fr/design/actions/file/PreferencePane.java @@ -627,69 +627,27 @@ public class PreferencePane extends BasicPane { return l; } - /** - * 显示窗口 - * - * @param window 窗口 - * @param l 对话框监听器 - * @return 对话框 - */ @Override - public BasicDialog showWindow(Window window, DialogActionListener l) { - BasicDialog dg; - if (window instanceof Frame) { - dg = new DIALOG((Frame) window); - } else { - dg = new DIALOG((Dialog) window); - } - - if (l != null) { - dg.addDialogActionListener(l); - } - return showWindow(dg); - } - - private class DIALOG extends BasicDialog { - public DIALOG(Frame parent) { - super(parent, PreferencePane.this); - this.setTitle(PreferencePane.this.title4PopupWindow()); - } - - public DIALOG(Dialog parent) { - super(parent, PreferencePane.this); - this.setTitle(PreferencePane.this.title4PopupWindow()); - } - - /** - * 确定操作 - * - */ - @Override - public void doOK() { - super.doOK(); - if (languageComboBox.getSelectedIndex() != designerEnvLanguageIndex) { - int rv = JOptionPane.showOptionDialog( - null, - Inter.getLocText("FR-Designer-Language_Change_Successful"), - Inter.getLocText("FR-Designer-Plugin_Warning"), - JOptionPane.YES_NO_OPTION, - JOptionPane.INFORMATION_MESSAGE, - null, - new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later")}, - null - ); - if (rv == JOptionPane.OK_OPTION) { - RestartHelper.restart(); + public BasicDialog showWindow(Window window) { + return showWindow(window, new DialogActionAdapter() { + @Override + public void doOk() { + if (languageComboBox.getSelectedIndex() != designerEnvLanguageIndex) { + int rv = JOptionPane.showOptionDialog( + null, + Inter.getLocText("FR-Designer-Language_Change_Successful"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.YES_NO_OPTION, + JOptionPane.INFORMATION_MESSAGE, + null, + new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later")}, + null + ); + if (rv == JOptionPane.OK_OPTION) { + RestartHelper.restart(); + } } } - } - - /** - * Check valid. - */ - public void checkValid() throws Exception { - PreferencePane.this.checkValid(); - } - + }); } } \ No newline at end of file From 01f2ddcbe3d43cb42f647adf7348034d11704bfc Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 29 Nov 2016 12:07:41 +0800 Subject: [PATCH 75/86] =?UTF-8?q?REPORT-748=20=E4=BF=AE=E6=94=B9=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96=E7=9A=84key=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/design/webattr/ReportWebAttrPane.java | 2 +- .../src/com/fr/design/actions/file/PreferencePane.java | 2 +- designer_base/src/com/fr/design/locale/designer.properties | 4 ++-- .../src/com/fr/design/locale/designer_en_US.properties | 4 ++-- .../src/com/fr/design/locale/designer_ja_JP.properties | 4 ++-- .../src/com/fr/design/locale/designer_ko_KR.properties | 4 ++-- .../src/com/fr/design/locale/designer_zh_CN.properties | 4 ++-- .../src/com/fr/design/locale/designer_zh_TW.properties | 4 ++-- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/designer/src/com/fr/design/webattr/ReportWebAttrPane.java b/designer/src/com/fr/design/webattr/ReportWebAttrPane.java index ed1079f929..d3454ed89d 100644 --- a/designer/src/com/fr/design/webattr/ReportWebAttrPane.java +++ b/designer/src/com/fr/design/webattr/ReportWebAttrPane.java @@ -58,7 +58,7 @@ public class ReportWebAttrPane extends LoadingBasicPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer-Template_Web_Attributes"); + return Inter.getLocText("FR-Designer_Template_Web_Attributes"); } public void populate(ReportWebAttr reportWebAttr) { diff --git a/designer_base/src/com/fr/design/actions/file/PreferencePane.java b/designer_base/src/com/fr/design/actions/file/PreferencePane.java index 4aadbf4d23..30628c3f14 100644 --- a/designer_base/src/com/fr/design/actions/file/PreferencePane.java +++ b/designer_base/src/com/fr/design/actions/file/PreferencePane.java @@ -635,7 +635,7 @@ public class PreferencePane extends BasicPane { if (languageComboBox.getSelectedIndex() != designerEnvLanguageIndex) { int rv = JOptionPane.showOptionDialog( null, - Inter.getLocText("FR-Designer-Language_Change_Successful"), + Inter.getLocText("FR-Designer_Language_Change_Successful"), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE, diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 751e14b11b..c191e5e63c 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -471,5 +471,5 @@ FR-Designer_Mobile-ToolBar=toolbar FR-Designer_WLayout-Absolute-ToolTips= FR-Designer_Reset= FR-Designer_Add_all= -FR-Designer-Language_Change_Successful=New language setting will be enabled when designer is restarted -FR-Designer-Template_Web_Attributes=Web Attributes +FR-Designer_Language_Change_Successful=New language setting will be enabled when designer is restarted +FR-Designer_Template_Web_Attributes=Web Attributes diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index da00526cfc..3cd4673299 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -470,5 +470,5 @@ FR-Designer_Mobile-ToolBar=toolbar FR-Designer_WLayout-Absolute-ToolTips=Freestyle layout, add control in any position of the layout FR-Designer_Reset=reset FR-Designer_Add_all=Add all -FR-Designer-Language_Change_Successful=New language setting will be enabled when designer is restarted -FR-Designer-Template_Web_Attributes=Web Attributes +FR-Designer_Language_Change_Successful=New language setting will be enabled when designer is restarted +FR-Designer_Template_Web_Attributes=Web Attributes diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 255abf73ce..180eec99ea 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -448,5 +448,5 @@ FR-Designer_Mobile-Refresh= FR-Designer_Mobile-ToolBar= FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u914D\u7F6E\u3067\u3059\u3002\u914D\u7F6E\u5185\u306E\u4EFB\u610F\u306E\u4F4D\u7F6E\u306B\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3092\u8FFD\u52A0\u3059\u308B\u3053\u3068 FR-Designer_Add_all=\u3059\u3079\u3066\u8FFD\u52A0 -FR-Designer-Language_Change_Successful= -FR-Designer-Template_Web_Attributes= +FR-Designer_Language_Change_Successful= +FR-Designer_Template_Web_Attributes= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 5ea4a3ab6b..2d029ec720 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -444,5 +444,5 @@ FR-Designer_Mobile-ToolBar= FR-Designer_WLayout-Absolute-ToolTips=\uC790\uC720\uC2DD\uB808\uC774\uC544\uC6C3\uC740\uB808\uC774\uC544\uC6C3\uC548\uC5D0\uC11C\uC5B4\uB290\uC704\uCE58\uC5D0\uB3C4\uC18C\uD504\uD2B8\uC6E8\uC5B4\uC81C\uC5B4\uB97C\uCD94\uAC00\uD560\uC218\uC788\uC2B5\uB2C8\uB2E4. FR-Designer_Add_all=\uBAA8\uB450\uCD94\uAC00 FR-Designer_Reset= -FR-Designer-Language_Change_Successful= -FR-Designer-Template_Web_Attributes= +FR-Designer_Language_Change_Successful= +FR-Designer_Template_Web_Attributes= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 6e837afbed..b1b0fa697d 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -474,5 +474,5 @@ FR-Designer_Mobile-Refresh=\u5237\u65B0 FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF\u4EE5\u5728\u5E03\u5C40\u5185\u4EFB\u610F\u4F4D\u7F6E\u6DFB\u52A0\u63A7\u4EF6 FR-Designer_Reset=\u53D6\u6D88\u5220\u9664 FR-Designer_Add_all=\u5168\u90E8\u6DFB\u52A0 -FR-Designer-Language_Change_Successful=\u65B0\u7684\u8BED\u8A00\u8BBE\u7F6E\u5C06\u5728\u91CD\u65B0\u542F\u52A8\u8BBE\u8BA1\u5668\u65F6\u88AB\u542F\u7528 -FR-Designer-Template_Web_Attributes=\u6A21\u677FWeb\u5C5E\u6027 +FR-Designer_Language_Change_Successful=\u65B0\u7684\u8BED\u8A00\u8BBE\u7F6E\u5C06\u5728\u91CD\u65B0\u542F\u52A8\u8BBE\u8BA1\u5668\u65F6\u88AB\u542F\u7528 +FR-Designer_Template_Web_Attributes=\u6A21\u677FWeb\u5C5E\u6027 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 7b81457f0e..1c4e13a3b5 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -462,5 +462,5 @@ FR-Designer_Mobile-Refresh=\u5237\u65B0 FR-Designer_Mobile-ToolBar=\u5DE5\u5177\u6B04 FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF\u4EE5\u5728\u5E03\u5C40\u5167\u4EFB\u610F\u4F4D\u7F6E\u65B0\u589E\u63A7\u5236\u9805 FR-Designer_Add_all=\u5168\u90E8\u65B0\u589E -FR-Designer-Language_Change_Successful=\u65B0\u7684\u8A9E\u8A00\u8A2D\u5B9A\u5C07\u5728\u91CD\u65B0\u555F\u52D5\u8A2D\u8A08\u5668\u6642\u88AB\u555F\u7528 -FR-Designer-Template_Web_Attributes=\u5831\u8868Web\u5C6C\u6027 +FR-Designer_Language_Change_Successful=\u65B0\u7684\u8A9E\u8A00\u8A2D\u5B9A\u5C07\u5728\u91CD\u65B0\u555F\u52D5\u8A2D\u8A08\u5668\u6642\u88AB\u555F\u7528 +FR-Designer_Template_Web_Attributes=\u5831\u8868Web\u5C6C\u6027 From 2f92f8ef0a6457bf41d8561ed3bdad050604ef9e Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 29 Nov 2016 15:16:16 +0800 Subject: [PATCH 76/86] =?UTF-8?q?=E4=BF=AE=E6=94=B9ReportWebAttrPane?= =?UTF-8?q?=E4=B8=AD=E7=94=A8=E5=88=B0=E7=9A=84=E9=83=A8=E5=88=86=E5=9B=BD?= =?UTF-8?q?=E9=99=85=E5=8C=96key=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/webattr/ReportWebAttrPane.java | 16 ++++++++-------- .../src/com/fr/design/locale/designer.properties | 8 ++++++++ .../fr/design/locale/designer_en_US.properties | 8 ++++++++ .../fr/design/locale/designer_ja_JP.properties | 8 ++++++++ .../fr/design/locale/designer_ko_KR.properties | 8 ++++++++ .../fr/design/locale/designer_zh_CN.properties | 8 ++++++++ .../fr/design/locale/designer_zh_TW.properties | 8 ++++++++ 7 files changed, 56 insertions(+), 8 deletions(-) diff --git a/designer/src/com/fr/design/webattr/ReportWebAttrPane.java b/designer/src/com/fr/design/webattr/ReportWebAttrPane.java index d3454ed89d..a4e877c564 100644 --- a/designer/src/com/fr/design/webattr/ReportWebAttrPane.java +++ b/designer/src/com/fr/design/webattr/ReportWebAttrPane.java @@ -44,16 +44,16 @@ public class ReportWebAttrPane extends LoadingBasicPane { //Tabbed Pane tabbedPane = new UITabbedPane(); defaultPane.add(tabbedPane, BorderLayout.CENTER); - tabbedPane.addTab(Inter.getLocText("ReportServerP-Basic"), commonPane = new CommonPane()); - tabbedPane.addTab(Inter.getLocText("ReportServerP-Printers(Server)"), serverPrintPane = new ReportServerPrinterPane()); + tabbedPane.addTab(Inter.getLocText("FR-Designer_Basic"), commonPane = new CommonPane()); + tabbedPane.addTab(Inter.getLocText("FR-Designer_Printers(Server)"), serverPrintPane = new ReportServerPrinterPane()); - tabbedPane.add(Inter.getLocText("WEB-Pagination_Setting"), pageWeb = new PageWebSettingPane()); - tabbedPane.add(Inter.getLocText("WEB-Write_Setting"), writeWeb = new WriteWebSettingPane()); - tabbedPane.add(Inter.getLocText("M-Data_Analysis_Settings"), viewWeb = new ViewWebSettingPane()); + tabbedPane.add(Inter.getLocText("FR-Designer_Pagination_Setting"), pageWeb = new PageWebSettingPane()); + tabbedPane.add(Inter.getLocText("FR-Designer_Write_Setting"), writeWeb = new WriteWebSettingPane()); + tabbedPane.add(Inter.getLocText("FR-Designer_Data_Analysis_Settings"), viewWeb = new ViewWebSettingPane()); - tabbedPane.addTab(Inter.getLocText("ReportServerP-Browser_Background"), backgroundPane = new BackgroundPane4Browser()); - tabbedPane.addTab(Inter.getLocText("ReportServerP-Import_Css"), cssPane = new WebCssPane()); - tabbedPane.addTab(Inter.getLocText("ReportServerP-Import_JavaScript"), jsPane = new WebJsPane()); + tabbedPane.addTab(Inter.getLocText("FR-Designer_Browser_Background"), backgroundPane = new BackgroundPane4Browser()); + tabbedPane.addTab(Inter.getLocText("FR-Designer_Import_Css"), cssPane = new WebCssPane()); + tabbedPane.addTab(Inter.getLocText("FR-Designer_Import_JavaScript"), jsPane = new WebJsPane()); } @Override diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index c191e5e63c..34e998867c 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -473,3 +473,11 @@ FR-Designer_Reset= FR-Designer_Add_all= FR-Designer_Language_Change_Successful=New language setting will be enabled when designer is restarted FR-Designer_Template_Web_Attributes=Web Attributes +FR-Designer_Basic=Basic +FR-Designer_Printers(Server)=Printer(Server) +FR-Designer_Pagination_Setting=Pagination Setting +FR-Designer_Write_Setting=Write Setting +FR-Designer_Data_Analysis_Settings=Data Analysis Settings +FR-Designer_Browser_Background=Browser Background +FR-Designer_Import_Css=Import Css +FR-Designer_Import_JavaScript=Import JavaScript diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 3cd4673299..91b97a86c1 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -472,3 +472,11 @@ FR-Designer_Reset=reset FR-Designer_Add_all=Add all FR-Designer_Language_Change_Successful=New language setting will be enabled when designer is restarted FR-Designer_Template_Web_Attributes=Web Attributes +FR-Designer_Basic=Basic +FR-Designer_Printers(Server)=Printer(Server) +FR-Designer_Pagination_Setting=Page Break Preview +FR-Designer_Write_Setting=Filling Settings +FR-Designer_Data_Analysis_Settings=Data Analysis Settings +FR-Designer_Browser_Background=Browser Background +FR-Designer_Import_Css=Reference Css +FR-Designer_Import_JavaScript=Reference JavaScript diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 180eec99ea..e4e36a2958 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -450,3 +450,11 @@ FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u914D\u7F6E\u3067\u3059 FR-Designer_Add_all=\u3059\u3079\u3066\u8FFD\u52A0 FR-Designer_Language_Change_Successful= FR-Designer_Template_Web_Attributes= +FR-Designer_Basic=\u57FA\u672C +FR-Designer_Printers(Server)=\u30D7\u30EA\u30F3\u30BF\u30FC(\u30B5\u30FC\u30D0) +FR-Designer_Pagination_Setting=\u30DA\u30FC\u30B8\u5225\u30D7\u30EC\u30D3\u30E5\u30FC\u8A2D\u5B9A +FR-Designer_Write_Setting=\u5831\u544A\u30DA\u30FC\u30B8\u8A2D\u5B9A +FR-Designer_Data_Analysis_Settings=\u30C7\u30FC\u30BF\u5206\u6790\u8A2D\u5B9A +FR-Designer_Browser_Background=\u30D6\u30E9\u30A6\u30B6\u80CC\u666F +FR-Designer_Import_Css=Css\u5F15\u7528 +FR-Designer_Import_JavaScript=JavaScript\u5F15\u7528 diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 2d029ec720..8877b8a9fe 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -446,3 +446,11 @@ FR-Designer_Add_all=\uBAA8\uB450\uCD94\uAC00 FR-Designer_Reset= FR-Designer_Language_Change_Successful= FR-Designer_Template_Web_Attributes= +FR-Designer_Basic=\uAE30\uBCF8 +FR-Designer_Printers(Server)=\uD504\uB9B0\uD130(\uC11C\uBC84) +FR-Designer_Pagination_Setting=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uBBF8\uB9AC\uBCF4\uAE30\uC124\uC815 +FR-Designer_Write_Setting=\uC6F9\uD398\uC774\uC9C0\uC124\uC815\uAE30\uC785 +FR-Designer_Data_Analysis_Settings=\uB370\uC774\uD130\uBD84\uC11D\uC124\uC815 +FR-Designer_Browser_Background=\uC6F9\uBE0C\uB77C\uC6B0\uC800\uBC30\uACBD +FR-Designer_Import_Css=Css\uC778\uC6A9 +FR-Designer_Import_JavaScript=JavaScript\uC778\uC6A9 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index b1b0fa697d..a849a9b480 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -476,3 +476,11 @@ FR-Designer_Reset=\u53D6\u6D88\u5220\u9664 FR-Designer_Add_all=\u5168\u90E8\u6DFB\u52A0 FR-Designer_Language_Change_Successful=\u65B0\u7684\u8BED\u8A00\u8BBE\u7F6E\u5C06\u5728\u91CD\u65B0\u542F\u52A8\u8BBE\u8BA1\u5668\u65F6\u88AB\u542F\u7528 FR-Designer_Template_Web_Attributes=\u6A21\u677FWeb\u5C5E\u6027 +FR-Designer_Basic=\u57FA\u672C +FR-Designer_Printers(Server)=\u6253\u5370\u673A(\u670D\u52A1\u5668) +FR-Designer_Pagination_Setting=\u5206\u9875\u9884\u89C8\u8BBE\u7F6E +FR-Designer_Write_Setting=\u586B\u62A5\u9875\u9762\u8BBE\u7F6E +FR-Designer_Data_Analysis_Settings=\u6570\u636E\u5206\u6790\u8BBE\u7F6E +FR-Designer_Browser_Background=\u6D4F\u89C8\u5668\u80CC\u666F +FR-Designer_Import_Css=\u5F15\u7528Css +FR-Designer_Import_JavaScript=\u5F15\u7528JavaScript diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 1c4e13a3b5..2e05b1790b 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -464,3 +464,11 @@ FR-Designer_WLayout-Absolute-ToolTips=\u81EA\u7531\u5F0F\u5E03\u5C40\uFF0C\u53EF FR-Designer_Add_all=\u5168\u90E8\u65B0\u589E FR-Designer_Language_Change_Successful=\u65B0\u7684\u8A9E\u8A00\u8A2D\u5B9A\u5C07\u5728\u91CD\u65B0\u555F\u52D5\u8A2D\u8A08\u5668\u6642\u88AB\u555F\u7528 FR-Designer_Template_Web_Attributes=\u5831\u8868Web\u5C6C\u6027 +FR-Designer_Basic=\u57FA\u672C +FR-Designer_Printers(Server)=\u5370\u8868\u6A5F(\u4F3A\u670D\u5668) +FR-Designer_Pagination_Setting=\u5206\u9801\u9810\u89BD\u8A2D\u5B9A +FR-Designer_Write_Setting=\u586B\u5831\u9801\u9762\u8A2D\u5B9A +FR-Designer_Data_Analysis_Settings=\u8CC7\u6599\u5206\u6790\u8A2D\u5B9A +FR-Designer_Browser_Background=\u700F\u89BD\u5668\u80CC\u666F +FR-Designer_Import_Css=\u5F15\u7528Css +FR-Designer_Import_JavaScript=\u5F15\u7528JavaScript From b7550cfb6d2fdd49f18f3afb2bcba039ed4631a4 Mon Sep 17 00:00:00 2001 From: vito Date: Wed, 30 Nov 2016 17:57:22 +0800 Subject: [PATCH 77/86] =?UTF-8?q?REPORT-916=20[=E6=8F=92=E4=BB=B6=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=E6=8F=90=E7=A4=BA=E4=B8=8B=E8=BD=BD=EF=BC=8C?= =?UTF-8?q?=E7=82=B9=E5=8F=96=E6=B6=88=E5=B0=B1=E5=BC=B9=E5=87=BA=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E7=A9=BA=E7=99=BD=E7=9A=84=E7=AA=97=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../freeze/RepeatAndFreezeSettingPane.java | 12 +- .../actions/server/PluginManagerAction.java | 12 +- .../actions/server/ReuseManagerAction.java | 53 ------ .../com/fr/design/extra/ShopManagerPane.java | 117 +----------- .../com/fr/design/extra/WebDialogFactory.java | 169 ++++++++++++++++++ .../design/extra/WebManagerPaneFactory.java | 99 ---------- .../src/com/fr/start/BaseDesigner.java | 14 +- 7 files changed, 177 insertions(+), 299 deletions(-) delete mode 100644 designer_base/src/com/fr/design/actions/server/ReuseManagerAction.java create mode 100644 designer_base/src/com/fr/design/extra/WebDialogFactory.java delete mode 100644 designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java diff --git a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java index 2624318aed..5591fa0db4 100644 --- a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java +++ b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java @@ -9,16 +9,11 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import com.fr.design.dialog.BasicPane; -import com.fr.design.dialog.UIDialog; -import com.fr.design.extra.ShopManagerPane; -import com.fr.design.extra.ShopDialog; -import com.fr.design.extra.PluginWebBridge; -import com.fr.design.extra.WebManagerPaneFactory; +import com.fr.design.extra.WebDialogFactory; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.ActionLabel; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.DesignerContext; import com.fr.general.Inter; import com.fr.page.ReportPageAttrProvider; import com.fr.stable.ColumnRow; @@ -552,10 +547,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane { public void actionPerformed(ActionEvent e) { try { //Desktop.getDesktop().browse(new URI(url)); - BasicPane managerPane = new WebManagerPaneFactory().createPluginPane(); - UIDialog dlg = new ShopDialog(DesignerContext.getDesignerFrame(), managerPane); - PluginWebBridge.getHelper().setDialogHandle(dlg); - dlg.setVisible(true); + new WebDialogFactory().createPluginDialog(); RepeatAndFreezeSettingPane.this.getTopLevelAncestor().setVisible(false); } catch (Exception exp) { diff --git a/designer_base/src/com/fr/design/actions/server/PluginManagerAction.java b/designer_base/src/com/fr/design/actions/server/PluginManagerAction.java index fee4678202..77a1ae9a86 100644 --- a/designer_base/src/com/fr/design/actions/server/PluginManagerAction.java +++ b/designer_base/src/com/fr/design/actions/server/PluginManagerAction.java @@ -2,12 +2,7 @@ package com.fr.design.actions.server; import com.fr.base.BaseUtils; import com.fr.design.actions.UpdateAction; -import com.fr.design.dialog.BasicPane; -import com.fr.design.dialog.UIDialog; -import com.fr.design.extra.PluginWebBridge; -import com.fr.design.extra.ShopDialog; -import com.fr.design.extra.WebManagerPaneFactory; -import com.fr.design.mainframe.DesignerContext; +import com.fr.design.extra.WebDialogFactory; import com.fr.design.menu.MenuKeySet; import com.fr.general.Inter; @@ -30,10 +25,7 @@ public class PluginManagerAction extends UpdateAction { @Override public void actionPerformed(ActionEvent e) { - BasicPane managerPane = new WebManagerPaneFactory().createPluginPane(); - UIDialog dlg = new ShopDialog(DesignerContext.getDesignerFrame(), managerPane); - PluginWebBridge.getHelper().setDialogHandle(dlg); - dlg.setVisible(true); + new WebDialogFactory().createPluginDialog(); } public static final MenuKeySet PLUGIN_MANAGER = new MenuKeySet() { diff --git a/designer_base/src/com/fr/design/actions/server/ReuseManagerAction.java b/designer_base/src/com/fr/design/actions/server/ReuseManagerAction.java deleted file mode 100644 index 3bd21a0d91..0000000000 --- a/designer_base/src/com/fr/design/actions/server/ReuseManagerAction.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.fr.design.actions.server; - -import com.fr.base.BaseUtils; -import com.fr.design.actions.UpdateAction; -import com.fr.design.dialog.BasicPane; -import com.fr.design.dialog.UIDialog; -import com.fr.design.extra.ShopDialog; -import com.fr.design.extra.PluginWebBridge; -import com.fr.design.extra.WebManagerPaneFactory; -import com.fr.design.mainframe.DesignerContext; -import com.fr.design.menu.MenuKeySet; -import com.fr.general.Inter; - -import javax.swing.*; -import java.awt.event.ActionEvent; - -/** - * Created by vito on 2016/9/27. - */ -public class ReuseManagerAction extends UpdateAction { - - public ReuseManagerAction() { - this.setMenuKeySet(REUSE_MANAGER); - this.setName(getMenuKeySet().getMenuKeySetName()); - this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/server/plugin.png")); - } - - @Override - public void actionPerformed(ActionEvent e) { - BasicPane managerPane = new WebManagerPaneFactory().createReusePane(); - UIDialog dlg = new ShopDialog(DesignerContext.getDesignerFrame(), managerPane); - PluginWebBridge.getHelper().setDialogHandle(dlg); - dlg.setVisible(true); - } - - public static final MenuKeySet REUSE_MANAGER = new MenuKeySet() { - @Override - public char getMnemonic() { - return 'R'; - } - - @Override - public String getMenuName() { - return Inter.getLocText("FR-Designer-Reuse_Manager"); - } - - @Override - public KeyStroke getKeyStroke() { - return null; - } - }; -} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/extra/ShopManagerPane.java b/designer_base/src/com/fr/design/extra/ShopManagerPane.java index 12900c720b..857e96cc8d 100644 --- a/designer_base/src/com/fr/design/extra/ShopManagerPane.java +++ b/designer_base/src/com/fr/design/extra/ShopManagerPane.java @@ -1,23 +1,10 @@ package com.fr.design.extra; -import com.fr.base.FRContext; -import com.fr.design.DesignerEnvManager; -import com.fr.design.RestartHelper; import com.fr.design.dialog.BasicPane; -import com.fr.general.ComparatorUtils; -import com.fr.general.IOUtils; import com.fr.general.Inter; -import com.fr.general.SiteCenter; -import com.fr.general.http.HttpClient; -import com.fr.plugin.PluginVerifyException; -import com.fr.stable.StableUtils; import javafx.embed.swing.JFXPanel; -import javax.swing.*; import java.awt.*; -import java.io.File; -import java.net.HttpURLConnection; -import java.util.concurrent.ExecutionException; /** * @author richie @@ -32,113 +19,11 @@ import java.util.concurrent.ExecutionException; */ public class ShopManagerPane extends BasicPane { - private static final String LATEST = "latest"; - private ShopPaneConfig shopPaneConfig; - - public ShopManagerPane(ShopPaneConfig shopPaneConfig) { - this.shopPaneConfig = shopPaneConfig; + public ShopManagerPane(JFXPanel webPane) { setLayout(new BorderLayout()); - if (StableUtils.isDebug()) { - addPane(); - } else { - File file = new File(shopPaneConfig.getMainJS()); - if (!file.exists()) { - int rv = JOptionPane.showConfirmDialog( - this, - Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"), - Inter.getLocText("FR-Designer-Plugin_Warning"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE - ); - if (rv == JOptionPane.OK_OPTION) { - downloadShopScripts(); - } - } else { - addPane(); - updateShopScripts(); - } - } - } - - private void addPane() { - JFXPanel webPane = shopPaneConfig.getWebPane(); add(webPane, BorderLayout.CENTER); } - private void downloadShopScripts() { - new SwingWorker() { - @Override - protected Boolean doInBackground() throws Exception { - String username = DesignerEnvManager.getEnvManager().getBBSName(); - String password = DesignerEnvManager.getEnvManager().getBBSPassword(); - try { - PluginHelper.downloadPluginFile(shopPaneConfig.getScriptsId(), username, password, new Process() { - @Override - public void process(Double integer) { - } - }); - } catch (PluginVerifyException e) { - JOptionPane.showMessageDialog(ShopManagerPane.this, e.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); - return false; - } catch (Exception e) { - FRContext.getLogger().error(e.getMessage(), e); - return false; - } - return true; - } - - @Override - protected void done() { - - try { - if (get()) { - IOUtils.unzip(new File(StableUtils.pathJoin(PluginHelper.DOWNLOAD_PATH, PluginHelper.TEMP_FILE)), StableUtils.getInstallHome()); - int rv = JOptionPane.showOptionDialog( - ShopManagerPane.this, - Inter.getLocText("FR-Designer-Plugin_Shop_Installed"), - Inter.getLocText("FR-Designer-Plugin_Warning"), - JOptionPane.YES_NO_OPTION, - JOptionPane.INFORMATION_MESSAGE, - null, - new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later")}, - null - ); - if (rv == JOptionPane.OK_OPTION) { - RestartHelper.restart(); - } - } - } catch (InterruptedException | ExecutionException e) { - FRContext.getLogger().error(e.getMessage(), e); - } - - } - }.execute(); - } - - private void updateShopScripts() { - new SwingWorker() { - @Override - protected Void doInBackground() throws Exception { - HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("store.version") + "&version=" + PluginStoreConstants.VERSION); - if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { - if (!ComparatorUtils.equals(httpClient.getResponseText(), LATEST)) { - int rv = JOptionPane.showConfirmDialog( - ShopManagerPane.this, - Inter.getLocText("FR-Designer-Plugin_Shop_Need_Update"), - Inter.getLocText("FR-Designer-Plugin_Warning"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE - ); - if (rv == JOptionPane.OK_OPTION) { - downloadShopScripts(); - } - } - } - return null; - } - }.execute(); - } - @Override protected String title4PopupWindow() { return Inter.getLocText("FR-Designer-Plugin_Manager"); diff --git a/designer_base/src/com/fr/design/extra/WebDialogFactory.java b/designer_base/src/com/fr/design/extra/WebDialogFactory.java new file mode 100644 index 0000000000..3ec5f4286c --- /dev/null +++ b/designer_base/src/com/fr/design/extra/WebDialogFactory.java @@ -0,0 +1,169 @@ +package com.fr.design.extra; + +import com.fr.base.FRContext; +import com.fr.design.DesignerEnvManager; +import com.fr.design.RestartHelper; +import com.fr.design.dialog.BasicPane; +import com.fr.design.dialog.UIDialog; +import com.fr.design.gui.frpane.UITabbedPane; +import com.fr.design.mainframe.DesignerContext; +import com.fr.general.ComparatorUtils; +import com.fr.general.IOUtils; +import com.fr.general.Inter; +import com.fr.general.SiteCenter; +import com.fr.general.http.HttpClient; +import com.fr.plugin.PluginVerifyException; +import com.fr.stable.StableUtils; + +import javax.swing.*; +import java.awt.*; +import java.io.File; +import java.net.HttpURLConnection; +import java.util.concurrent.ExecutionException; + +/** + * Created by vito on 2016/9/28. + */ +public class WebDialogFactory { + private static final String LATEST = "latest"; + private static final String SHOP_SCRIPTS = "shop_scripts"; + + private String installHome; + + public WebDialogFactory() { + this.installHome = StableUtils.getInstallHome(); + } + + public void createPluginDialog() { + UIDialog dlg; + if (StableUtils.getMajorJavaVersion() >= 8) { + String relativePath = "/scripts/store/web/index.html"; + String mainJsPath = StableUtils.pathJoin(new File(installHome).getAbsolutePath(), relativePath); + File file = new File(mainJsPath); + if (!file.exists()) { + int rv = JOptionPane.showConfirmDialog( + null, + Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.INFORMATION_MESSAGE + ); + if (rv == JOptionPane.OK_OPTION) { + downloadShopScripts(SHOP_SCRIPTS); + } + } else { + updateShopScripts(SHOP_SCRIPTS); + BasicPane managerPane = new ShopManagerPane(new PluginWebPane(mainJsPath)); + dlg = new ShopDialog(DesignerContext.getDesignerFrame(), managerPane); + PluginWebBridge.getHelper().setDialogHandle(dlg); + dlg.setVisible(true); + } + } else { + BasicPane traditionalStorePane = new BasicPane() { + @Override + protected String title4PopupWindow() { + return Inter.getLocText("FR-Designer-Plugin_Manager"); + } + }; + traditionalStorePane.setLayout(new BorderLayout()); + traditionalStorePane.add(initTraditionalStore(), BorderLayout.CENTER); + dlg = new ShopDialog(DesignerContext.getDesignerFrame(), traditionalStorePane); + dlg.setVisible(true); + } + } + + /** + * 以关键词打开设计器商店 + *

+ * // * @param keyword 关键词 + */ + public void createPluginDialog(String keyword) { + PluginWebBridge.getHelper().openWithSearch(keyword); + createPluginDialog(); + } + + + private Component initTraditionalStore() { + UITabbedPane tabbedPane = new UITabbedPane(); + PluginInstalledPane installedPane = new PluginInstalledPane(); + tabbedPane.addTab(installedPane.tabTitle(), installedPane); + tabbedPane.addTab(Inter.getLocText("FR-Designer-Plugin_Update"), new PluginUpdatePane(tabbedPane)); + tabbedPane.addTab(Inter.getLocText("FR-Designer-Plugin_All_Plugins"), new PluginFromStorePane(tabbedPane)); + return tabbedPane; + } + + private void downloadShopScripts(final String scriptsId) { + new SwingWorker() { + @Override + protected Boolean doInBackground() throws Exception { + String username = DesignerEnvManager.getEnvManager().getBBSName(); + String password = DesignerEnvManager.getEnvManager().getBBSPassword(); + try { + PluginHelper.downloadPluginFile(scriptsId, username, password, new Process() { + @Override + public void process(Double integer) { + } + }); + } catch (PluginVerifyException e) { + JOptionPane.showMessageDialog(null, e.getMessage(), Inter.getLocText("FR-Designer-Plugin_Warning"), JOptionPane.ERROR_MESSAGE); + return false; + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage(), e); + return false; + } + return true; + } + + @Override + protected void done() { + + try { + if (get()) { + IOUtils.unzip(new File(StableUtils.pathJoin(PluginHelper.DOWNLOAD_PATH, PluginHelper.TEMP_FILE)), StableUtils.getInstallHome()); + int rv = JOptionPane.showOptionDialog( + null, + Inter.getLocText("FR-Designer-Plugin_Shop_Installed"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.YES_NO_OPTION, + JOptionPane.INFORMATION_MESSAGE, + null, + new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later")}, + null + ); + if (rv == JOptionPane.OK_OPTION) { + RestartHelper.restart(); + } + } + } catch (InterruptedException | ExecutionException e) { + FRContext.getLogger().error(e.getMessage(), e); + } + + } + }.execute(); + } + + private void updateShopScripts(final String scriptsId) { + new SwingWorker() { + @Override + protected Void doInBackground() throws Exception { + HttpClient httpClient = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("store.version") + "&version=" + PluginStoreConstants.VERSION); + if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { + String text = httpClient.getResponseText(); + if (!ComparatorUtils.equals(text, LATEST)) { + int rv = JOptionPane.showConfirmDialog( + null, + Inter.getLocText("FR-Designer-Plugin_Shop_Need_Update"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.INFORMATION_MESSAGE + ); + if (rv == JOptionPane.OK_OPTION) { + downloadShopScripts(scriptsId); + } + } + } + return null; + } + }.execute(); + } +} diff --git a/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java b/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java deleted file mode 100644 index 75a79deddd..0000000000 --- a/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.fr.design.extra; - -import com.fr.design.dialog.BasicPane; -import com.fr.design.gui.frpane.UITabbedPane; -import com.fr.general.Inter; -import com.fr.stable.StableUtils; -import javafx.embed.swing.JFXPanel; - -import java.awt.*; -import java.io.File; -import java.net.URL; - -/** - * Created by vito on 2016/9/28. - */ -public class WebManagerPaneFactory { - private String installHome; - - public WebManagerPaneFactory() { - if (StableUtils.isDebug()) { - URL url = ClassLoader.getSystemResource(""); - this.installHome = url.getPath(); - } else { - this.installHome = StableUtils.getInstallHome(); - } - } - - public BasicPane createPluginPane() { - if (StableUtils.getMajorJavaVersion() == 8) { - return new ShopManagerPane(new ShopPaneConfig() { - @Override - String getMainJS() { - String relativePath = "/scripts/store/web/index.html"; - return StableUtils.pathJoin(new File(installHome).getAbsolutePath(), relativePath); - } - - @Override - String getScriptsId() { - return "shop_scripts"; - } - - @Override - JFXPanel getWebPane() { - return new PluginWebPane(getMainJS()); - } - - }); - } else { - BasicPane traditionalStorePane = new BasicPane() { - @Override - protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer-Plugin_Manager"); - } - }; - traditionalStorePane.setLayout(new BorderLayout()); - traditionalStorePane.add(initTraditionalStore(), BorderLayout.CENTER); - return traditionalStorePane; - } - } - - public BasicPane createReusePane() { - return new ShopManagerPane(new ShopPaneConfig() { - @Override - String getMainJS() { - String relativePath = "/scripts/store/reuse/index.html"; - return StableUtils.pathJoin(new File(installHome).getAbsolutePath(), relativePath); - } - - @Override - String getScriptsId() { - return "reuse_scripts"; - } - - @Override - JFXPanel getWebPane() { - return new ReuseWebPane(getMainJS()); - } - }); - } - - /** - * 以关键词打开设计器商店 - * - * @param keyword 关键词 - */ - public BasicPane createPluginPane(String keyword) { - PluginWebBridge.getHelper().openWithSearch(keyword); - return createPluginPane(); - } - - private Component initTraditionalStore() { - UITabbedPane tabbedPane = new UITabbedPane(); - PluginInstalledPane installedPane = new PluginInstalledPane(); - tabbedPane.addTab(installedPane.tabTitle(), installedPane); - tabbedPane.addTab(Inter.getLocText("FR-Designer-Plugin_Update"), new PluginUpdatePane(tabbedPane)); - tabbedPane.addTab(Inter.getLocText("FR-Designer-Plugin_All_Plugins"), new PluginFromStorePane(tabbedPane)); - return tabbedPane; - } -} diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index a76ec5f535..3d9280965c 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -7,16 +7,11 @@ import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; import com.fr.design.RestartHelper; -import com.fr.design.dialog.BasicPane; -import com.fr.design.dialog.UIDialog; -import com.fr.design.extra.ShopDialog; -import com.fr.design.extra.PluginWebBridge; -import com.fr.design.extra.WebManagerPaneFactory; +import com.fr.design.extra.WebDialogFactory; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.MutilTempalteTabPane; import com.fr.design.file.TemplateTreePane; import com.fr.design.fun.GlobalListenerProvider; -import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerFrame; import com.fr.design.mainframe.TemplatePane; import com.fr.design.mainframe.toolbar.ToolBarMenuDock; @@ -131,10 +126,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock { String text = StableUtils.join(plugins, ",") + Inter.getLocText("FR-Designer_Plugin_Should_Update"); int r = JOptionPane.showConfirmDialog(null, text, Inter.getLocText("FR-Designer_Plugin_Should_Update_Title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); if (r == JOptionPane.OK_OPTION) { - BasicPane managerPane = new WebManagerPaneFactory().createPluginPane(); - UIDialog dlg = new ShopDialog(DesignerContext.getDesignerFrame(), managerPane); - PluginWebBridge.getHelper().setDialogHandle(dlg); - dlg.setVisible(true); + new WebDialogFactory().createPluginDialog(); } } timer.stop(); @@ -149,7 +141,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock { } protected DesignerFrame createDesignerFrame() { - return new DesignerFrame(this); + return new DesignerFrame(this); } protected int getStartPort() { From c88683ca6eee7387928def9b3c295c4b4b3f4ce6 Mon Sep 17 00:00:00 2001 From: vito Date: Wed, 30 Nov 2016 18:47:20 +0800 Subject: [PATCH 78/86] =?UTF-8?q?pmd=E9=AD=94=E6=9C=AF=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/extra/WebDialogFactory.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/WebDialogFactory.java b/designer_base/src/com/fr/design/extra/WebDialogFactory.java index 3ec5f4286c..ca472c778d 100644 --- a/designer_base/src/com/fr/design/extra/WebDialogFactory.java +++ b/designer_base/src/com/fr/design/extra/WebDialogFactory.java @@ -27,6 +27,7 @@ import java.util.concurrent.ExecutionException; public class WebDialogFactory { private static final String LATEST = "latest"; private static final String SHOP_SCRIPTS = "shop_scripts"; + private static final int VERSION_8 = 8; private String installHome; @@ -36,7 +37,7 @@ public class WebDialogFactory { public void createPluginDialog() { UIDialog dlg; - if (StableUtils.getMajorJavaVersion() >= 8) { + if (StableUtils.getMajorJavaVersion() >= VERSION_8) { String relativePath = "/scripts/store/web/index.html"; String mainJsPath = StableUtils.pathJoin(new File(installHome).getAbsolutePath(), relativePath); File file = new File(mainJsPath); From 5e68b887b18fabaff35843288b465a61098b2286 Mon Sep 17 00:00:00 2001 From: vito Date: Wed, 30 Nov 2016 19:34:37 +0800 Subject: [PATCH 79/86] =?UTF-8?q?=E6=94=B9=E4=B8=8B=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../freeze/RepeatAndFreezeSettingPane.java | 4 ++-- .../actions/server/PluginManagerAction.java | 4 ++-- .../{WebDialogFactory.java => WebDialog.java} | 17 ++++++----------- .../src/com/fr/start/BaseDesigner.java | 4 ++-- 4 files changed, 12 insertions(+), 17 deletions(-) rename designer_base/src/com/fr/design/extra/{WebDialogFactory.java => WebDialog.java} (94%) diff --git a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java index 5591fa0db4..8e70675eee 100644 --- a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java +++ b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java @@ -9,7 +9,7 @@ import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import com.fr.design.dialog.BasicPane; -import com.fr.design.extra.WebDialogFactory; +import com.fr.design.extra.WebDialog; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.ActionLabel; import com.fr.design.gui.ilable.UILabel; @@ -547,7 +547,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane { public void actionPerformed(ActionEvent e) { try { //Desktop.getDesktop().browse(new URI(url)); - new WebDialogFactory().createPluginDialog(); + WebDialog.createPluginDialog(); RepeatAndFreezeSettingPane.this.getTopLevelAncestor().setVisible(false); } catch (Exception exp) { diff --git a/designer_base/src/com/fr/design/actions/server/PluginManagerAction.java b/designer_base/src/com/fr/design/actions/server/PluginManagerAction.java index 77a1ae9a86..08dc91b07e 100644 --- a/designer_base/src/com/fr/design/actions/server/PluginManagerAction.java +++ b/designer_base/src/com/fr/design/actions/server/PluginManagerAction.java @@ -2,7 +2,7 @@ package com.fr.design.actions.server; import com.fr.base.BaseUtils; import com.fr.design.actions.UpdateAction; -import com.fr.design.extra.WebDialogFactory; +import com.fr.design.extra.WebDialog; import com.fr.design.menu.MenuKeySet; import com.fr.general.Inter; @@ -25,7 +25,7 @@ public class PluginManagerAction extends UpdateAction { @Override public void actionPerformed(ActionEvent e) { - new WebDialogFactory().createPluginDialog(); + WebDialog.createPluginDialog(); } public static final MenuKeySet PLUGIN_MANAGER = new MenuKeySet() { diff --git a/designer_base/src/com/fr/design/extra/WebDialogFactory.java b/designer_base/src/com/fr/design/extra/WebDialog.java similarity index 94% rename from designer_base/src/com/fr/design/extra/WebDialogFactory.java rename to designer_base/src/com/fr/design/extra/WebDialog.java index ca472c778d..ed7d735631 100644 --- a/designer_base/src/com/fr/design/extra/WebDialogFactory.java +++ b/designer_base/src/com/fr/design/extra/WebDialog.java @@ -24,18 +24,13 @@ import java.util.concurrent.ExecutionException; /** * Created by vito on 2016/9/28. */ -public class WebDialogFactory { +public class WebDialog { private static final String LATEST = "latest"; private static final String SHOP_SCRIPTS = "shop_scripts"; private static final int VERSION_8 = 8; + private static String installHome = StableUtils.getInstallHome(); - private String installHome; - - public WebDialogFactory() { - this.installHome = StableUtils.getInstallHome(); - } - - public void createPluginDialog() { + public static void createPluginDialog() { UIDialog dlg; if (StableUtils.getMajorJavaVersion() >= VERSION_8) { String relativePath = "/scripts/store/web/index.html"; @@ -84,7 +79,7 @@ public class WebDialogFactory { } - private Component initTraditionalStore() { + private static Component initTraditionalStore() { UITabbedPane tabbedPane = new UITabbedPane(); PluginInstalledPane installedPane = new PluginInstalledPane(); tabbedPane.addTab(installedPane.tabTitle(), installedPane); @@ -93,7 +88,7 @@ public class WebDialogFactory { return tabbedPane; } - private void downloadShopScripts(final String scriptsId) { + private static void downloadShopScripts(final String scriptsId) { new SwingWorker() { @Override protected Boolean doInBackground() throws Exception { @@ -143,7 +138,7 @@ public class WebDialogFactory { }.execute(); } - private void updateShopScripts(final String scriptsId) { + private static void updateShopScripts(final String scriptsId) { new SwingWorker() { @Override protected Void doInBackground() throws Exception { diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index 3d9280965c..5af9856c28 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -7,7 +7,7 @@ import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; import com.fr.design.RestartHelper; -import com.fr.design.extra.WebDialogFactory; +import com.fr.design.extra.WebDialog; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.MutilTempalteTabPane; import com.fr.design.file.TemplateTreePane; @@ -126,7 +126,7 @@ public abstract class BaseDesigner extends ToolBarMenuDock { String text = StableUtils.join(plugins, ",") + Inter.getLocText("FR-Designer_Plugin_Should_Update"); int r = JOptionPane.showConfirmDialog(null, text, Inter.getLocText("FR-Designer_Plugin_Should_Update_Title"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); if (r == JOptionPane.OK_OPTION) { - new WebDialogFactory().createPluginDialog(); + WebDialog.createPluginDialog(); } } timer.stop(); From 085f2e57ebca1d98384293cea06b9d17ee99f990 Mon Sep 17 00:00:00 2001 From: neil Date: Fri, 2 Dec 2016 09:50:24 +0800 Subject: [PATCH 80/86] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=20build=20failed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modes/GroovyTokenMaker.java | 5272 ----------------- 1 file changed, 5272 deletions(-) delete mode 100644 designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/GroovyTokenMaker.java diff --git a/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/GroovyTokenMaker.java b/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/GroovyTokenMaker.java deleted file mode 100644 index 4157310d4c..0000000000 --- a/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/GroovyTokenMaker.java +++ /dev/null @@ -1,5272 +0,0 @@ -/* The following code was generated by JFlex 1.4.1 on 11/11/12 7:19 PM */ - -/* - * 09/28/2007 - * - * GroovyTokenMaker.java - Scanner for the Groovy programming language. - * - * This library is distributed under a modified BSD license. See the included - * RSyntaxTextArea.License.txt file for details. - */ -package com.fr.design.gui.syntax.ui.rsyntaxtextarea.modes; - -import java.io.*; -import javax.swing.text.Segment; - -import com.fr.design.gui.syntax.ui.rsyntaxtextarea.*; - - -/** - * Scanner for the Groovy programming language.

- * - * This implementation was created using - * JFlex 1.4.1; however, the generated file - * was modified for performance. Memory allocation needs to be almost - * completely removed to be competitive with the handwritten lexers (subclasses - * of AbstractTokenMaker, so this class has been modified so that - * Strings are never allocated (via yytext()), and the scanner never has to - * worry about refilling its buffer (needlessly copying chars around). - * We can achieve this because RText always scans exactly 1 line of tokens at a - * time, and hands the scanner this line as an array of characters (a Segment - * really). Since tokens contain pointers to char arrays instead of Strings - * holding their contents, there is no need for allocating new memory for - * Strings.

- * - * The actual algorithm generated for scanning has, of course, not been - * modified.

- * - * If you wish to regenerate this file yourself, keep in mind the following: - *

    - *
  • The generated GroovyTokenMaker.java file will contain two - * definitions of both zzRefill and yyreset. - * You should hand-delete the second of each definition (the ones - * generated by the lexer), as these generated methods modify the input - * buffer, which we'll never have to do.
  • - *
  • You should also change the declaration/definition of zzBuffer to NOT - * be initialized. This is a needless memory allocation for us since we - * will be pointing the array somewhere else anyway.
  • - *
  • You should NOT call yylex() on the generated scanner - * directly; rather, you should use getTokenList as you would - * with any other TokenMaker instance.
  • - *
- * - * @author Robert Futrell - * @version 0.5 - * - */ - -public class GroovyTokenMaker extends AbstractJFlexCTokenMaker { - - /** This character denotes the end of file */ - public static final int YYEOF = -1; - - /** lexical states */ - public static final int MULTILINE_STRING_DOUBLE = 3; - public static final int DOCCOMMENT = 2; - public static final int YYINITIAL = 0; - public static final int MLC = 1; - public static final int STRING_DOUBLE = 5; - public static final int MULTILINE_STRING_SINGLE = 4; - - /** - * Translates characters to character classes - */ - private static final String ZZ_CMAP_PACKED = - "\11\0\1\22\1\21\1\0\1\22\1\16\22\0\1\22\1\53\1\13"+ - "\1\17\1\20\1\53\1\55\1\10\2\44\1\24\1\46\1\45\1\33"+ - "\1\34\1\23\1\4\1\5\2\7\4\7\2\3\1\56\1\45\1\47"+ - "\1\50\1\52\1\54\1\100\1\102\1\26\1\6\1\67\1\32\1\31"+ - "\1\116\1\110\1\105\2\1\1\25\1\111\1\112\1\113\1\115\1\121"+ - "\1\74\1\103\1\106\1\107\1\117\1\120\1\30\1\1\1\122\1\44"+ - "\1\12\1\44\1\51\1\2\1\0\1\40\1\27\1\63\1\61\1\37"+ - "\1\15\1\72\1\57\1\65\1\114\1\75\1\41\1\66\1\14\1\60"+ - "\1\62\1\104\1\36\1\42\1\35\1\11\1\71\1\70\1\64\1\73"+ - "\1\101\1\76\1\51\1\77\1\43\uff81\0"; - - /** - * Translates characters to character classes - */ - private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED); - - /** - * Translates DFA states to action switch labels. - */ - private static final int [] ZZ_ACTION = zzUnpackAction(); - - private static final String ZZ_ACTION_PACKED_0 = - "\3\0\2\1\1\0\1\2\1\3\2\4\1\3\1\5"+ - "\1\3\1\6\2\3\1\2\1\7\1\10\2\11\5\3"+ - "\1\11\7\3\1\11\1\12\1\3\6\11\13\3\1\13"+ - "\16\3\2\1\1\14\5\1\1\15\7\1\1\16\2\1"+ - "\1\17\2\1\1\20\1\21\1\22\1\23\1\24\1\2"+ - "\2\25\1\26\1\4\1\25\1\26\2\25\1\27\2\25"+ - "\5\3\1\5\1\30\1\5\1\0\1\3\1\0\7\3"+ - "\2\0\1\31\1\32\1\11\36\3\1\33\12\3\2\0"+ - "\1\11\3\3\1\33\7\3\3\33\1\34\21\3\1\13"+ - "\56\3\2\0\1\35\4\0\1\36\2\0\1\37\16\0"+ - "\1\16\1\0\1\40\2\0\1\20\1\22\1\2\1\4"+ - "\1\26\1\0\2\27\1\4\1\27\10\3\1\30\1\41"+ - "\1\5\1\42\1\5\1\0\1\34\1\3\1\43\5\3"+ - "\1\44\1\45\64\3\1\33\13\3\1\46\27\3\1\2"+ - "\46\3\1\34\30\3\33\0\1\47\2\0\1\50\1\2"+ - "\2\25\12\3\1\42\1\5\1\0\4\3\1\34\1\51"+ - "\3\3\1\34\3\3\1\34\2\3\1\46\4\3\2\34"+ - "\6\3\1\52\5\3\1\34\53\3\1\2\51\3\1\0"+ - "\32\3\2\0\1\53\2\0\1\54\15\0\1\55\11\0"+ - "\1\40\1\2\2\3\1\34\10\3\1\5\1\0\1\33"+ - "\40\3\1\33\17\3\1\34\22\3\1\2\11\3\1\34"+ - "\27\3\1\34\6\3\1\0\32\3\34\0\1\2\14\3"+ - "\1\5\1\0\4\3\1\34\33\3\1\56\31\3\1\34"+ - "\1\2\11\3\1\34\26\3\1\34\10\3\1\0\2\3"+ - "\1\34\10\3\1\34\13\3\23\0\12\3\1\0\2\3"+ - "\1\0\46\3\1\34\2\3\1\2\40\3\1\0\11\3"+ - "\1\0\23\3\1\34\7\3\5\0\1\55\4\0\14\3"+ - "\2\0\101\3\2\0\7\3\1\0\33\3\11\0\4\3"+ - "\1\34\6\3\2\0\5\3\1\34\10\3\1\34\11\3"+ - "\1\34\45\3\2\0\6\3\1\34\25\3\5\0\4\3"+ - "\1\0\2\3\1\34\2\3\2\0\3\3\1\0\55\3"+ - "\2\0\27\3\5\0\3\3\2\0\3\3\2\0\3\3"+ - "\1\0\1\34\14\3\1\34\14\3\1\34\12\3\2\0"+ - "\14\3\1\34\4\3\2\0\2\3\2\0\3\3\2\0"+ - "\3\3\1\0\10\3\1\34\3\3\1\0\1\3\1\34"+ - "\2\3\1\34\16\3\1\0\13\3\1\34\3\3\1\34"+ - "\4\3\2\0\2\3\1\0\2\3\1\0\2\3\1\34"+ - "\10\3\1\0\12\3\1\0\21\3\2\0\3\3\1\0"+ - "\5\3\1\34\1\3\1\0\12\3\1\0\14\3\1\34"+ - "\2\0\3\3\1\0\4\3\1\0\1\3\1\0\11\3"+ - "\1\0\11\3\2\0\2\3\1\0\2\3\1\0\1\3"+ - "\1\0\7\3\1\0\6\3\2\0\1\3\1\0\1\3"+ - "\1\0\1\3\1\0\4\3\1\0\3\3\1\34\1\3"+ - "\3\0\1\3\1\0\1\3\1\0\1\3\1\0\2\3"+ - "\1\0\3\3\1\0\1\34\3\0\1\3\1\0\1\3"+ - "\2\0\2\3\1\0\2\3\5\0\1\3\1\0\1\3"+ - "\2\0\1\3\6\0\1\3\1\0\1\3\16\0\1\34"+ - "\23\0"; - - private static int [] zzUnpackAction() { - int [] result = new int[1876]; - int offset = 0; - offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAction(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - - /** - * Translates a state to a row index in the transition table - */ - private static final int [] ZZ_ROWMAP = zzUnpackRowMap(); - - private static final String ZZ_ROWMAP_PACKED_0 = - "\0\0\0\123\0\246\0\371\0\u014c\0\u019f\0\u01f2\0\u0245"+ - "\0\u0298\0\u02eb\0\u033e\0\u0391\0\u03e4\0\u0437\0\u048a\0\u04dd"+ - "\0\u0530\0\u0530\0\u0583\0\u05d6\0\u0629\0\u067c\0\u06cf\0\u0722"+ - "\0\u0775\0\u07c8\0\u081b\0\u086e\0\u08c1\0\u0914\0\u0967\0\u09ba"+ - "\0\u0a0d\0\u0a60\0\u0ab3\0\u0530\0\u0530\0\u0b06\0\u0b59\0\u0bac"+ - "\0\u0bff\0\u0530\0\u0c52\0\u0ca5\0\u0cf8\0\u0d4b\0\u0d9e\0\u0df1"+ - "\0\u0e44\0\u0e97\0\u0eea\0\u0f3d\0\u0f90\0\u0fe3\0\u1036\0\u1089"+ - "\0\u10dc\0\u112f\0\u1182\0\u11d5\0\u1228\0\u127b\0\u12ce\0\u1321"+ - "\0\u1374\0\u13c7\0\u141a\0\u146d\0\u14c0\0\u1513\0\u1566\0\u0530"+ - "\0\u15b9\0\u160c\0\u165f\0\u16b2\0\u1705\0\u0530\0\u1758\0\u17ab"+ - "\0\u17fe\0\u1851\0\u18a4\0\u18f7\0\u194a\0\u199d\0\u19f0\0\u1a43"+ - "\0\u0530\0\u1a96\0\u1ae9\0\u1b3c\0\u0530\0\u1b8f\0\u0530\0\u0530"+ - "\0\u1be2\0\u1c35\0\u1c88\0\u1c35\0\u1c35\0\u1cdb\0\u1d2e\0\u1d81"+ - "\0\u1dd4\0\u1e27\0\u1e7a\0\u1ecd\0\u1f20\0\u1f73\0\u1fc6\0\u2019"+ - "\0\u206c\0\u20bf\0\u2112\0\u2165\0\u21b8\0\u220b\0\u225e\0\u22b1"+ - "\0\u2304\0\u2357\0\u23aa\0\u23fd\0\u2450\0\u24a3\0\u24f6\0\u2549"+ - "\0\u259c\0\u25ef\0\u24f6\0\u2642\0\u2695\0\u26e8\0\u273b\0\u278e"+ - "\0\u27e1\0\u2834\0\u2887\0\u28da\0\u292d\0\u2980\0\u29d3\0\u2a26"+ - "\0\u2a79\0\u2acc\0\u2b1f\0\u2b72\0\u2bc5\0\u2c18\0\u2c6b\0\u2cbe"+ - "\0\u2d11\0\u2d64\0\u2db7\0\u2e0a\0\u2e5d\0\u2eb0\0\u2f03\0\u2f56"+ - "\0\u2fa9\0\u2ffc\0\u304f\0\u30a2\0\u30f5\0\u3148\0\u319b\0\u31ee"+ - "\0\u3241\0\u3294\0\u32e7\0\u333a\0\u338d\0\u0629\0\u33e0\0\u3433"+ - "\0\u3486\0\u34d9\0\u352c\0\u357f\0\u35d2\0\u3625\0\u3678\0\u36cb"+ - "\0\u371e\0\u3771\0\u37c4\0\u0245\0\u3817\0\u386a\0\u38bd\0\u3910"+ - "\0\u3963\0\u39b6\0\u3a09\0\u3a5c\0\u3aaf\0\u3b02\0\u3b55\0\u3ba8"+ - "\0\u3bfb\0\u3c4e\0\u3ca1\0\u3cf4\0\u3d47\0\u3d9a\0\u3ded\0\u3e40"+ - "\0\u3e93\0\u3ee6\0\u3f39\0\u3f8c\0\u3fdf\0\u4032\0\u4085\0\u40d8"+ - "\0\u412b\0\u417e\0\u41d1\0\u4224\0\u4277\0\u42ca\0\u431d\0\u4370"+ - "\0\u43c3\0\u4416\0\u4469\0\u44bc\0\u450f\0\u4562\0\u45b5\0\u4608"+ - "\0\u465b\0\u46ae\0\u4701\0\u4754\0\u47a7\0\u47fa\0\u484d\0\u48a0"+ - "\0\u48f3\0\u4946\0\u4999\0\u49ec\0\u4a3f\0\u4a92\0\u4ae5\0\u4b38"+ - "\0\u4b8b\0\u4bde\0\u4c31\0\u4c84\0\u4cd7\0\u4d2a\0\u4d7d\0\u4dd0"+ - "\0\u0530\0\u4e23\0\u4e76\0\u4ec9\0\u4f1c\0\u0530\0\u4f6f\0\u4fc2"+ - "\0\u0530\0\u5015\0\u5068\0\u50bb\0\u510e\0\u5161\0\u51b4\0\u5207"+ - "\0\u525a\0\u52ad\0\u5300\0\u5353\0\u53a6\0\u53f9\0\u544c\0\u0530"+ - "\0\u549f\0\u54f2\0\u5545\0\u5598\0\u0530\0\u0530\0\u55eb\0\u563e"+ - "\0\u5691\0\u56e4\0\u5737\0\u1c35\0\u578a\0\u57dd\0\u5830\0\u5883"+ - "\0\u58d6\0\u5929\0\u597c\0\u59cf\0\u5a22\0\u5a75\0\u0530\0\u0530"+ - "\0\u5ac8\0\u21b8\0\u5b1b\0\u5b6e\0\u0245\0\u5bc1\0\u0530\0\u5c14"+ - "\0\u5c67\0\u5cba\0\u5d0d\0\u5d60\0\u0530\0\u5db3\0\u5e06\0\u5e59"+ - "\0\u5eac\0\u5eff\0\u5f52\0\u5fa5\0\u5ff8\0\u604b\0\u609e\0\u60f1"+ - "\0\u6144\0\u6197\0\u61ea\0\u623d\0\u6290\0\u62e3\0\u6336\0\u6389"+ - "\0\u63dc\0\u642f\0\u6482\0\u64d5\0\u6528\0\u657b\0\u65ce\0\u6621"+ - "\0\u6674\0\u66c7\0\u671a\0\u676d\0\u67c0\0\u6813\0\u6866\0\u68b9"+ - "\0\u690c\0\u695f\0\u69b2\0\u6a05\0\u6a58\0\u6aab\0\u6afe\0\u6b51"+ - "\0\u6ba4\0\u6bf7\0\u6c4a\0\u6c9d\0\u6cf0\0\u6d43\0\u6d96\0\u6de9"+ - "\0\u6e3c\0\u6e8f\0\u6ee2\0\u6f35\0\u6f88\0\u6fdb\0\u702e\0\u7081"+ - "\0\u70d4\0\u7127\0\u717a\0\u71cd\0\u7220\0\u7273\0\u72c6\0\u7319"+ - "\0\u736c\0\u73bf\0\u7412\0\u7465\0\u74b8\0\u750b\0\u755e\0\u75b1"+ - "\0\u7604\0\u7657\0\u76aa\0\u76fd\0\u7750\0\u77a3\0\u77f6\0\u7849"+ - "\0\u789c\0\u78ef\0\u7942\0\u7995\0\u79e8\0\u7a3b\0\u7a8e\0\u7ae1"+ - "\0\u7b34\0\u7b87\0\u7bda\0\u7c2d\0\u7c80\0\u7cd3\0\u7d26\0\u7d79"+ - "\0\u7dcc\0\u7e1f\0\u7e72\0\u7ec5\0\u7f18\0\u7f6b\0\u7fbe\0\u8011"+ - "\0\u8064\0\u80b7\0\u810a\0\u815d\0\u81b0\0\u8203\0\u8256\0\u82a9"+ - "\0\u82fc\0\u834f\0\u83a2\0\u83f5\0\u8448\0\u849b\0\u84ee\0\u8541"+ - "\0\u8594\0\u85e7\0\u863a\0\u868d\0\u86e0\0\u8733\0\u8786\0\u87d9"+ - "\0\u882c\0\u887f\0\u88d2\0\u8925\0\u8978\0\u89cb\0\u8a1e\0\u8a71"+ - "\0\u8ac4\0\u8b17\0\u8b6a\0\u8bbd\0\u8c10\0\u8c63\0\u8cb6\0\u8d09"+ - "\0\u8d5c\0\u8daf\0\u8e02\0\u8e55\0\u8ea8\0\u8efb\0\u8f4e\0\u8fa1"+ - "\0\u8ff4\0\u9047\0\u909a\0\u90ed\0\u9140\0\u9193\0\u91e6\0\u9239"+ - "\0\u928c\0\u92df\0\u9332\0\u9385\0\u93d8\0\u942b\0\u947e\0\u94d1"+ - "\0\u9524\0\u9577\0\u95ca\0\u961d\0\u9670\0\u96c3\0\u9716\0\u9769"+ - "\0\u97bc\0\u0530\0\u980f\0\u9862\0\u0530\0\u98b5\0\u578a\0\u9908"+ - "\0\u995b\0\u99ae\0\u9a01\0\u9a54\0\u9aa7\0\u9afa\0\u9b4d\0\u9ba0"+ - "\0\u9bf3\0\u9c46\0\u0530\0\u9c99\0\u9cec\0\u9d3f\0\u9d92\0\u9de5"+ - "\0\u9e38\0\u9e8b\0\u0530\0\u9ede\0\u9f31\0\u9f84\0\u9fd7\0\ua02a"+ - "\0\ua07d\0\ua0d0\0\ua123\0\ua176\0\ua1c9\0\u0245\0\ua21c\0\ua26f"+ - "\0\ua2c2\0\ua315\0\ua368\0\ua3bb\0\ua40e\0\ua461\0\ua4b4\0\ua507"+ - "\0\ua55a\0\ua5ad\0\u0245\0\ua600\0\ua653\0\ua6a6\0\ua6f9\0\ua74c"+ - "\0\ua79f\0\ua7f2\0\ua845\0\ua898\0\ua8eb\0\ua93e\0\ua991\0\ua9e4"+ - "\0\uaa37\0\uaa8a\0\uaadd\0\uab30\0\uab83\0\uabd6\0\uac29\0\uac7c"+ - "\0\uaccf\0\uad22\0\uad75\0\uadc8\0\uae1b\0\uae6e\0\uaec1\0\uaf14"+ - "\0\uaf67\0\uafba\0\ub00d\0\ub060\0\ub0b3\0\ub106\0\ub159\0\ub1ac"+ - "\0\ub1ff\0\ub252\0\ub2a5\0\ub2f8\0\ub34b\0\ub39e\0\ub3f1\0\ub444"+ - "\0\ub497\0\ub4ea\0\ub53d\0\ub590\0\ub5e3\0\ub636\0\ub689\0\ub6dc"+ - "\0\ub72f\0\ub782\0\ub7d5\0\ub828\0\ub87b\0\ub8ce\0\ub921\0\ub974"+ - "\0\ub9c7\0\uba1a\0\uba6d\0\ubac0\0\ubb13\0\ubb66\0\ubbb9\0\ubc0c"+ - "\0\ubc5f\0\ubcb2\0\ubd05\0\ubd58\0\ubdab\0\ubdfe\0\ube51\0\ubea4"+ - "\0\ubef7\0\ubf4a\0\ubf9d\0\ubff0\0\uc043\0\uc096\0\uc0e9\0\uc13c"+ - "\0\uc18f\0\uc1e2\0\uc235\0\uc288\0\uc2db\0\uc32e\0\uc381\0\uc3d4"+ - "\0\uc427\0\uc47a\0\uc4cd\0\uc520\0\uc573\0\uc5c6\0\uc619\0\uc66c"+ - "\0\uc6bf\0\uc712\0\uc765\0\uc7b8\0\uc80b\0\uc85e\0\uc8b1\0\uc904"+ - "\0\uc957\0\uc9aa\0\uc9fd\0\uca50\0\ucaa3\0\ucaf6\0\ucb49\0\ucb9c"+ - "\0\ucbef\0\ucc42\0\ucc95\0\ucce8\0\ucd3b\0\ucd8e\0\ucde1\0\uce34"+ - "\0\uce87\0\uceda\0\ucf2d\0\ucf80\0\ucfd3\0\ud026\0\ud079\0\ud0cc"+ - "\0\ud11f\0\ud172\0\ud1c5\0\ud218\0\u0530\0\ud26b\0\ud2be\0\ud311"+ - "\0\ud364\0\ud3b7\0\ud40a\0\ud45d\0\ud4b0\0\ud503\0\u0530\0\ud556"+ - "\0\ud5a9\0\ud5fc\0\ud64f\0\ud6a2\0\ud6f5\0\ud748\0\ud79b\0\ud7ee"+ - "\0\ud841\0\ud894\0\ud8e7\0\ud93a\0\ud98d\0\ud9e0\0\uda33\0\uda86"+ - "\0\udad9\0\udb2c\0\udb7f\0\udbd2\0\udc25\0\udc78\0\udccb\0\udd1e"+ - "\0\udd71\0\uddc4\0\ude17\0\ude6a\0\udebd\0\udf10\0\udf63\0\udfb6"+ - "\0\ue009\0\ue05c\0\ue0af\0\ue102\0\ue155\0\ue1a8\0\ue1fb\0\ue24e"+ - "\0\ue2a1\0\ue2f4\0\ue347\0\ue39a\0\ue3ed\0\ue440\0\u6674\0\ue493"+ - "\0\ue4e6\0\ue539\0\ue58c\0\ue5df\0\ue632\0\ue685\0\ue6d8\0\ue72b"+ - "\0\ue77e\0\ue7d1\0\ue824\0\ue877\0\ue8ca\0\ue91d\0\ue970\0\ue9c3"+ - "\0\uea16\0\uea69\0\ueabc\0\ueb0f\0\ueb62\0\uebb5\0\uec08\0\uec5b"+ - "\0\uecae\0\ued01\0\ued54\0\ueda7\0\uedfa\0\uee4d\0\ueea0\0\ueef3"+ - "\0\uef46\0\uef99\0\uefec\0\uf03f\0\uf092\0\uf0e5\0\uf138\0\uf18b"+ - "\0\uf1de\0\uf231\0\uf284\0\uf2d7\0\uf32a\0\uf37d\0\uf3d0\0\uf423"+ - "\0\uf476\0\uf4c9\0\uf51c\0\uf56f\0\uf5c2\0\uf615\0\uf668\0\uf6bb"+ - "\0\uf70e\0\uf761\0\uf7b4\0\uf807\0\uf85a\0\uf8ad\0\uf900\0\uf953"+ - "\0\uf9a6\0\uf9f9\0\ufa4c\0\ufa9f\0\ufaf2\0\ufb45\0\ufb98\0\ufbeb"+ - "\0\ufc3e\0\ufc91\0\ufce4\0\ufd37\0\ufd8a\0\ufddd\0\ufe30\0\ufe83"+ - "\0\ufed6\0\uff29\0\uff7c\0\uffcf\1\42\1\165\1\310\1\u011b"+ - "\1\u016e\1\u01c1\1\u0214\1\u0267\1\u02ba\1\u030d\1\u0360\1\u03b3"+ - "\1\u0406\1\u0459\1\u04ac\1\u04ff\1\u0552\1\u05a5\0\ucce8\1\u05f8"+ - "\0\ucde1\1\u064b\1\u069e\1\u06f1\1\u0744\1\u0797\1\u07ea\1\u083d"+ - "\1\u0890\1\u08e3\1\u0936\1\u0989\1\u09dc\1\u0a2f\1\u0a82\1\u0ad5"+ - "\1\u0b28\1\u0b7b\1\u0bce\1\u0c21\1\u0c74\1\u0cc7\1\u0d1a\1\u0d6d"+ - "\1\u0dc0\1\u0e13\1\u0e66\1\u0eb9\1\u0f0c\1\u0f5f\1\u0fb2\1\u1005"+ - "\1\u1058\1\u10ab\1\u10fe\1\u1151\1\u11a4\1\u11f7\1\u124a\1\u129d"+ - "\1\u12f0\1\u1343\1\u1396\1\u13e9\1\u143c\1\u148f\1\u14e2\1\u1535"+ - "\1\u1588\0\u3817\1\u15db\1\u162e\1\u1681\1\u16d4\1\u1727\1\u177a"+ - "\1\u17cd\1\u1820\1\u1873\1\u18c6\1\u1919\1\u196c\1\u19bf\1\u1a12"+ - "\1\u1a65\1\u1ab8\1\u1b0b\1\u1b5e\1\u1bb1\1\u1c04\1\u1c57\1\u1caa"+ - "\0\u0245\1\u1cfd\1\u1d50\1\u1da3\1\u1df6\1\u1e49\1\u1e9c\1\u1eef"+ - "\1\u1f42\1\u1f95\1\u1fe8\1\u203b\1\u208e\1\u20e1\1\u2134\1\u2187"+ - "\1\u21da\1\u222d\1\u2280\1\u22d3\1\u2326\1\u2379\1\u23cc\1\u241f"+ - "\1\u2472\1\u24c5\1\u2518\1\u256b\1\u25be\1\u2611\1\u2664\1\u26b7"+ - "\1\u270a\1\u275d\1\u27b0\1\u2803\1\u2856\1\u28a9\1\u28fc\1\u294f"+ - "\1\u29a2\1\u29f5\1\u2a48\1\u2a9b\1\u2aee\1\u2b41\1\u2b94\1\u2be7"+ - "\1\u2c3a\1\u2c8d\1\u2ce0\1\u2d33\1\u2d86\1\u2dd9\1\u2e2c\1\u2e7f"+ - "\1\u2ed2\1\u2f25\1\u2f78\1\u2fcb\1\u301e\1\u3071\1\u30c4\1\u3117"+ - "\1\u316a\1\u31bd\1\u3210\1\u3263\1\u32b6\1\u3309\1\u335c\1\u33af"+ - "\1\u3402\1\u3455\1\u34a8\1\u34fb\1\u354e\1\u35a1\1\u35f4\1\u3647"+ - "\1\u369a\1\u36ed\1\u3740\1\u3793\1\u37e6\1\u3839\1\u388c\1\u38df"+ - "\1\u3932\1\u3985\1\u39d8\1\u3a2b\1\u3a7e\1\u3ad1\1\u3b24\1\u3b77"+ - "\1\u3bca\1\u3c1d\1\u3c70\1\u3cc3\1\u3d16\1\u3d69\1\u3dbc\1\u3e0f"+ - "\1\u3e62\1\u3eb5\1\u3f08\1\u3f5b\1\u3fae\1\u4001\1\u4054\1\u40a7"+ - "\1\u40fa\1\u414d\1\u41a0\1\u41f3\1\u4246\1\u4299\1\u42ec\1\u433f"+ - "\1\u4392\1\u43e5\1\u4438\1\u448b\1\u44de\1\u4531\1\u4584\1\u45d7"+ - "\1\u462a\1\u467d\1\u46d0\1\u4723\1\u4776\1\u47c9\1\u481c\1\u486f"+ - "\1\u48c2\1\u4915\1\u4968\1\u49bb\1\u4a0e\1\u4a61\1\u4ab4\1\u4b07"+ - "\1\u4b5a\1\u4bad\1\u4c00\1\u4c53\1\u4ca6\1\u4cf9\1\u4d4c\1\u4d9f"+ - "\1\u4df2\1\u4e45\1\u4e98\1\u4eeb\1\u4f3e\1\u4f91\1\u4fe4\1\u5037"+ - "\1\u508a\1\u50dd\1\u5130\1\u5183\1\u51d6\1\u5229\1\u527c\1\u52cf"+ - "\1\u5322\1\u5375\1\u53c8\1\u541b\1\u546e\1\u54c1\1\u5514\1\u5567"+ - "\1\u55ba\1\u560d\1\u5660\1\u56b3\1\u5706\1\u5759\1\u57ac\1\u57ff"+ - "\1\u5852\1\u58a5\1\u58f8\1\u594b\1\u599e\1\u59f1\1\u5a44\1\u5a97"+ - "\1\u5aea\1\u5b3d\1\u5b90\1\u5be3\1\u5c36\1\u5c89\1\u5cdc\1\u5d2f"+ - "\1\u5d82\1\u5dd5\1\u5e28\1\u5e7b\1\u5ece\1\u5f21\1\u5f74\1\u5fc7"+ - "\1\u601a\1\u3402\1\u606d\1\u60c0\1\u6113\1\u6166\1\u61b9\1\u620c"+ - "\1\u625f\1\u62b2\1\u6305\1\u6358\1\u63ab\1\u63fe\1\u6451\1\u64a4"+ - "\1\u64f7\1\u654a\1\u659d\1\u65f0\1\u6643\1\u6696\1\u66e9\1\u673c"+ - "\1\u678f\1\u67e2\1\u6835\1\u6888\1\u68db\1\u692e\1\u6981\1\u69d4"+ - "\1\u6a27\1\u6a7a\1\u6acd\1\u6b20\1\u6b73\1\u6bc6\1\u6c19\1\u6c6c"+ - "\1\u6cbf\1\u6d12\1\u6d65\1\u6db8\1\u6e0b\1\u6e5e\1\u6eb1\1\u6f04"+ - "\1\u6f57\1\u6faa\1\u6ffd\1\u7050\1\u70a3\1\u70f6\1\u7149\1\u719c"+ - "\1\u71ef\1\u7242\1\u7295\1\u72e8\1\u733b\1\u738e\1\u73e1\1\u7434"+ - "\1\u7487\1\u74da\1\u752d\1\u7580\1\u75d3\1\u7626\1\u7679\1\u76cc"+ - "\1\u771f\1\u7772\1\u77c5\1\u7818\1\u786b\1\u78be\1\u7911\1\u7964"+ - "\1\u79b7\1\u7a0a\1\u7a5d\1\u7ab0\1\u7b03\1\u7b56\1\u7ba9\1\u7bfc"+ - "\1\u7c4f\1\u7ca2\1\u7cf5\1\u7d48\1\u7d9b\1\u7dee\1\u7e41\1\u7e94"+ - "\1\u7ee7\1\u7f3a\1\u7f8d\1\u7fe0\1\u8033\1\u8086\1\u80d9\1\u812c"+ - "\1\u817f\1\u81d2\1\u8225\1\u8278\1\u82cb\1\u831e\1\u8371\1\u83c4"+ - "\1\u8417\1\u846a\1\u84bd\1\u8510\1\u8563\1\u85b6\1\u8609\1\u865c"+ - "\1\u86af\1\u8702\1\u8755\1\u87a8\1\u87fb\1\u884e\1\u88a1\1\u88f4"+ - "\1\u8947\1\u899a\1\u89ed\1\u8a40\1\u8a93\1\u8ae6\1\u8b39\1\u8b8c"+ - "\1\u8bdf\1\u8c32\1\u8c85\1\u8cd8\1\u8d2b\1\u8d7e\1\u8dd1\1\u8e24"+ - "\1\u8e77\1\u8eca\1\u8f1d\1\u8f70\1\u8fc3\1\u9016\1\u9069\1\u90bc"+ - "\1\u910f\1\u9162\1\u91b5\1\u9208\1\u925b\1\u92ae\1\u9301\1\u9354"+ - "\1\u93a7\1\u93fa\1\u944d\1\u94a0\1\u94f3\1\u9546\1\u9599\1\u95ec"+ - "\1\u963f\1\u9692\1\u96e5\1\u9738\1\u978b\1\u97de\1\u9831\1\u9884"+ - "\1\u98d7\1\u992a\1\u997d\1\u99d0\1\u9a23\1\u9a76\1\u9ac9\1\u9b1c"+ - "\1\u9b6f\1\u9bc2\1\u9c15\1\u9c68\1\u9cbb\1\u9d0e\1\u9d61\1\u9db4"+ - "\1\u9e07\1\u9e5a\1\u9ead\1\u9f00\1\u9f53\1\u9fa6\1\u9ff9\1\ua04c"+ - "\1\ua09f\1\ua0f2\1\u9c15\1\ua145\1\ua198\1\ua1eb\1\ua23e\1\ua291"+ - "\1\ua2e4\1\ua337\1\ua38a\1\ua3dd\1\ua430\1\ua483\1\ua4d6\1\ua529"+ - "\1\ua57c\1\ua5cf\1\ua622\1\ua675\1\ua6c8\1\ua71b\1\ua76e\1\ua7c1"+ - "\1\ua814\1\ua867\1\ua8ba\1\ua90d\1\ua960\1\ua9b3\1\uaa06\1\uaa59"+ - "\1\uaaac\1\uaaff\1\uab52\1\uaba5\1\uabf8\1\uac4b\1\uac9e\1\uacf1"+ - "\1\uad44\1\uad97\1\uadea\1\uae3d\1\uae90\1\uaee3\1\uaf36\1\uaf89"+ - "\0\u0530\1\uafdc\1\ub02f\1\ub082\1\ub0d5\1\ub128\1\ub17b\1\ub1ce"+ - "\1\ub221\1\ub274\1\ub2c7\1\ub31a\1\ub36d\1\ub3c0\1\ub413\1\ub466"+ - "\1\ub4b9\1\ub50c\1\ub55f\1\ub5b2\1\ub605\1\ub658\1\ub6ab\1\ub6fe"+ - "\1\ub751\1\ub7a4\1\ub7f7\1\ub84a\1\ub89d\1\ub8f0\1\ub943\1\ub996"+ - "\1\ub9e9\1\uba3c\1\u79b7\1\uba8f\1\ubae2\1\ubb35\1\ubb88\1\ubbdb"+ - "\1\ubc2e\1\ubc81\1\ubcd4\1\ubd27\1\ubd7a\1\ubdcd\1\ube20\1\ube73"+ - "\1\ubec6\1\ubf19\1\ubf6c\1\ubfbf\1\uc012\1\uc065\1\uc0b8\1\uc10b"+ - "\1\uc15e\1\uc1b1\1\uc204\1\uc257\1\uc2aa\1\uc2fd\1\uc350\1\uc3a3"+ - "\1\uc3f6\1\uc449\1\uc49c\1\uc4ef\1\uc542\1\uc595\1\uc5e8\1\uc63b"+ - "\1\uc68e\1\uc6e1\1\uc734\1\uc787\1\uc7da\1\uc82d\1\uc880\1\uc8d3"+ - "\1\uc926\1\uc979\1\uc9cc\1\uca1f\1\uca72\1\ucac5\1\ucb18\1\ucb6b"+ - "\1\ucbbe\1\ucc11\1\ucc64\1\uccb7\1\ucd0a\1\ucd5d\1\ucdb0\1\uce03"+ - "\1\uce56\1\ucea9\1\ucefc\1\ucf4f\1\ucfa2\1\ucff5\1\ud048\1\ud09b"+ - "\1\ud0ee\1\ud141\1\ud194\1\ud1e7\1\ud23a\1\ud28d\1\ud2e0\1\ud333"+ - "\1\ud386\1\ud3d9\1\ud42c\1\ud47f\1\ud4d2\1\ud525\1\ud578\1\ud5cb"+ - "\1\ud61e\1\ud671\1\ud6c4\1\ud717\1\ud76a\1\ud7bd\1\ud810\1\ud863"+ - "\1\ud8b6\1\ud909\1\ud95c\1\ud9af\1\uda02\1\uda55\1\udaa8\1\udafb"+ - "\1\udb4e\1\udba1\1\udbf4\1\udc47\1\udc9a\1\udced\1\udd40\1\udd93"+ - "\1\udde6\1\ude39\1\ude8c\1\udedf\1\udf32\1\udf85\1\udfd8\1\ue02b"+ - "\1\ue07e\1\ue0d1\1\ue124\1\ue177\1\ue1ca\1\ue21d\1\ue270\1\ue2c3"+ - "\1\ue316\1\ue369\1\ue3bc\1\ue40f\1\ue462\1\ue4b5\1\ue508\1\ue55b"+ - "\1\ue5ae\1\ue601\1\ue654\1\ue6a7\1\ue6fa\1\ue74d\1\ue7a0\1\ue7f3"+ - "\1\ue846\1\ue899\1\ue8ec\1\ue93f\1\ue992\1\ue9e5\1\uea38\1\uea8b"+ - "\1\ueade\1\ueb31\1\ueb84\1\uebd7\1\uec2a\1\uec7d\1\uecd0\1\ued23"+ - "\1\ued76\1\uedc9\1\uee1c\1\uee6f\1\ueec2\1\uef15\1\uef68\1\uefbb"+ - "\1\uf00e\1\uf061\1\uf0b4\1\uf107\1\uf15a\1\uf1ad\1\uf200\1\uf253"+ - "\1\uf2a6\1\uf2f9\1\uf34c\1\uf39f\1\uf3f2\1\uf445\1\uf498\1\uf4eb"+ - "\1\uf53e\1\u7fe0\1\uf591\1\uf5e4\1\uf637\1\uf68a\1\uf6dd\1\uf730"+ - "\1\uf783\1\uf7d6\1\uf829\1\uf87c\1\uf8cf\1\uf922\1\uf975\1\uf9c8"+ - "\1\ufa1b\1\ufa6e\1\ufac1\1\ufb14\1\ufb67\1\ufbba\1\ufc0d\1\ufc60"+ - "\1\ufcb3\1\ufd06\1\ufd59\1\ufdac\1\ufdff\1\ufe52\1\ufea5\1\ufef8"+ - "\1\uff4b\1\uff9e\1\ufff1\2\104\2\227\2\352\2\u013d\2\u0190"+ - "\2\u01e3\2\u0236\2\u0289\2\u02dc\2\u032f\2\u0382\2\u03d5\2\u0428"+ - "\2\u047b\2\u04ce\2\u0521\2\u0574\2\u05c7\2\u061a\2\u066d\2\u06c0"+ - "\2\u0713\2\u0766\2\u07b9\2\u080c\2\u085f\2\u08b2\2\u0905\2\u0958"+ - "\2\u09ab\2\u09fe\2\u0a51\2\u0aa4\2\u0af7\2\u0b4a\2\u0b9d\2\u0bf0"+ - "\2\u0c43\2\u0c96\2\u0ce9\2\u0d3c\2\u0d8f\2\u0de2\2\u0e35\2\u0e88"+ - "\2\u0edb\2\u0f2e\2\u0f81\2\u0fd4\2\u1027\2\u107a\2\u10cd\2\u1120"+ - "\2\u1173\2\u11c6\2\u1219\2\u126c\2\u12bf\2\u1312\2\u1365\2\u13b8"+ - "\2\u140b\2\u145e\2\u14b1\2\u1504\2\u1557\2\u15aa\2\u15fd\2\u1650"+ - "\2\u16a3\2\u16f6\2\u1749\2\u179c\2\u17ef\2\u1842\2\u1895\2\u18e8"+ - "\2\u193b\2\u198e\2\u19e1\2\u1a34\2\u1a87\2\u1ada\2\u1b2d\2\u1b80"+ - "\2\u1bd3\2\u1c26\2\u1c79\2\u1ccc\2\u1d1f\2\u1d72\2\u1dc5\2\u1e18"+ - "\2\u1e6b\2\u1ebe\2\u1f11\2\u1f64\2\u1fb7\2\u200a\2\u205d\2\u20b0"+ - "\2\u2103\2\u2156\2\u21a9\2\u21fc\2\u224f\2\u22a2\2\u22f5\2\u2348"+ - "\2\u239b\2\u23ee\2\u2441\2\u2494\2\u24e7\2\u253a\2\u258d\2\u25e0"+ - "\2\u2633\2\u2686\2\u26d9\2\u272c\2\u277f\2\u27d2\2\u2825\2\u2878"+ - "\2\u28cb\2\u291e\2\u2971\2\u29c4\2\u2a17\2\u2a6a\2\u2abd\2\u2b10"+ - "\2\u2b63\2\u2bb6\2\u2c09\2\u2c5c\2\u2caf\2\u2d02\2\u2d55\2\u2da8"+ - "\2\u2dfb\2\u2e4e\2\u2ea1\2\u2ef4\2\u2f47\2\u2f9a\2\u2fed\2\u3040"+ - "\2\u3093\2\u30e6\2\u3139\2\u318c\2\u31df\2\u3232\2\u3285\2\u32d8"+ - "\2\u332b\2\u337e\2\u33d1\2\u3424\2\u3477\2\u34ca\2\u351d\2\u3570"+ - "\2\u35c3\2\u3616\2\u3669\2\u36bc\2\u370f\2\u3762\2\u37b5\2\u3808"+ - "\2\u385b\2\u38ae\2\u3901\2\u3954\2\u39a7\2\u39fa\2\u3a4d\2\u3aa0"+ - "\2\u3af3\2\u3b46\2\u3b99\2\u3bec\2\u3c3f\2\u3c92\2\u3ce5\2\u3d38"+ - "\2\u3d8b\2\u3dde\2\u3e31\2\u3e84\2\u3ed7\2\u3f2a\2\u3f7d\2\u3fd0"+ - "\2\u4023\2\u4076\2\u40c9\2\u411c\2\u416f\2\u41c2\2\u4215\2\u4268"+ - "\2\u42bb\2\u430e\2\u4361\2\u43b4\2\u4407\2\u445a\2\u44ad\2\u4500"+ - "\2\u4553\2\u45a6\2\u45f9\2\u464c\2\u469f\2\u46f2\2\u4745\2\u4798"+ - "\2\u47eb\2\u483e\2\u4891\2\u48e4\2\u4937\2\u498a\2\u49dd\2\u4a30"+ - "\2\u4a83\2\u4ad6\2\u4b29\2\u4b7c\2\u4bcf\2\u4c22\2\u4c75\2\u4cc8"+ - "\2\u4d1b\2\u4d6e\2\u4dc1\2\u4e14\2\u4e67\2\u4eba\2\u4f0d\2\u4f60"+ - "\2\u4fb3\2\u5006\2\u5059\2\u50ac"; - - private static int [] zzUnpackRowMap() { - int [] result = new int[1876]; - int offset = 0; - offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackRowMap(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int high = packed.charAt(i++) << 16; - result[j++] = high | packed.charAt(i++); - } - return j; - } - - /** - * The transition table of the DFA - */ - private static final int [] ZZ_TRANS = zzUnpackTrans(); - - private static final String ZZ_TRANS_PACKED_0 = - "\1\7\2\10\1\11\1\12\1\11\1\13\1\11\1\14"+ - "\1\15\1\7\1\16\1\17\1\20\1\21\1\7\1\10"+ - "\1\22\1\23\1\24\1\25\1\26\1\27\1\30\1\10"+ - "\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40"+ - "\1\41\1\42\1\43\1\44\1\45\1\46\1\47\1\50"+ - "\1\25\1\51\1\25\1\52\1\53\1\52\1\54\1\10"+ - "\1\55\1\56\1\57\1\10\1\60\1\61\1\62\1\63"+ - "\1\64\1\65\1\10\1\66\1\10\2\44\1\67\1\10"+ - "\1\70\1\71\1\10\1\72\1\73\1\74\1\75\1\76"+ - "\1\77\1\100\1\10\1\101\1\102\1\103\1\104\1\105"+ - "\1\10\15\106\1\107\3\106\1\110\2\106\1\111\32\106"+ - "\1\112\10\106\1\113\32\106\15\114\1\115\3\114\1\116"+ - "\2\114\1\117\22\114\1\120\7\114\1\121\10\114\1\122"+ - "\5\114\1\123\1\114\1\124\22\114\12\125\1\126\1\127"+ - "\4\125\1\130\1\131\101\125\10\132\1\133\1\132\1\134"+ - "\6\132\1\135\101\132\12\125\1\136\1\137\4\125\1\130"+ - "\1\140\101\125\10\7\1\0\2\7\1\0\2\7\1\0"+ - "\2\7\4\0\6\7\2\0\6\7\14\0\17\7\2\0"+ - "\24\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\2\142\1\143\3\11\1\142\1\11"+ - "\1\0\2\142\1\0\1\142\1\144\1\0\2\142\4\0"+ - "\1\145\3\142\1\144\1\146\1\0\1\147\2\142\1\146"+ - "\1\142\1\145\1\142\14\0\2\142\1\144\5\142\1\144"+ - "\6\142\2\0\25\142\1\150\1\151\2\152\1\142\1\152"+ - "\1\0\2\142\1\0\1\142\1\144\1\0\2\142\4\0"+ - "\1\145\2\153\1\154\1\144\1\146\1\0\1\147\2\142"+ - "\1\146\1\142\1\145\1\142\14\0\2\142\1\144\2\142"+ - "\1\154\2\142\1\144\6\142\2\0\23\142\1\7\7\10"+ - "\1\0\1\155\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\156\1\157\1\10\14\0"+ - "\1\160\1\161\15\10\2\0\1\7\22\10\10\162\1\163"+ - "\1\162\1\164\6\162\1\165\101\162\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\166\14\0\17\10\2\0\1\7"+ - "\22\10\13\0\1\167\107\0\1\7\7\10\1\0\1\170"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\171\1\172\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\173\1\174\1\10\14\0\1\10\1\175\4\10\1\176"+ - "\10\10\2\0\1\7\22\10\145\0\1\23\100\0\12\177"+ - "\1\200\10\177\1\201\1\202\23\177\1\203\52\177\50\0"+ - "\1\52\52\0\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\204\4\10\1\205\10\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\206\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\207\4\10\1\210\5\10\1\211\2\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\212\4\10\14\0\1\10\1\213\12\10\1\214\2\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\215\1\10\14\0\1\10\1\216\4\10\1\217"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\220\1\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\221\4\10\14\0\5\10\1\222"+ - "\1\10\1\223\2\10\1\224\4\10\2\0\1\7\12\10"+ - "\1\225\7\10\33\0\1\52\14\0\1\52\55\0\3\147"+ - "\1\0\1\147\113\0\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\226\1\227\3\10\14\0\1\230\1\231\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\232\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\233\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\234"+ - "\1\235\1\10\14\0\5\10\1\236\4\10\1\237\4\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\240\1\10\1\0\1\7\1\10\4\0\2\10"+ - "\1\241\3\10\2\0\5\10\1\242\14\0\2\10\1\243"+ - "\14\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\244\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\245\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\246\1\10"+ - "\1\247\1\10\1\250\1\10\14\0\1\251\2\10\1\252"+ - "\5\10\1\253\2\10\1\254\2\10\2\0\1\7\22\10"+ - "\23\0\1\255\145\0\1\52\1\0\1\52\121\0\1\256"+ - "\1\52\115\0\1\52\4\0\1\52\122\0\1\52\1\0"+ - "\1\257\120\0\1\52\4\0\1\52\45\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\260\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\261\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\262\3\10\14\0\1\10\1\263\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\264\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\265\1\10\1\266\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\267"+ - "\1\270\1\10\14\0\1\271\1\272\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\273"+ - "\1\274\1\0\1\7\1\10\4\0\6\10\2\0\1\275"+ - "\4\10\1\276\14\0\2\10\1\277\4\10\1\300\7\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\301\3\10\14\0\6\10\1\302\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\303\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\304\1\305\2\10\14\0\1\10\1\306\4\10\1\307"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\310\5\10\1\311\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\312\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\313\1\314\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\315\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\316\1\317\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\2\320\3\7\1\320\1\7"+ - "\1\0\1\320\1\7\1\0\2\320\1\0\1\7\1\320"+ - "\4\0\6\320\2\0\6\320\14\0\17\320\2\0\1\7"+ - "\22\320\1\7\7\10\1\0\1\321\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\2\10\1\322\3\10\2\0"+ - "\1\10\1\323\3\10\1\324\14\0\3\10\1\325\13\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\326\1\10\1\327\3\10\14\0\1\330\1\331\2\10"+ - "\1\332\1\10\1\333\5\10\1\334\2\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\335"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\1\336"+ - "\3\10\1\337\1\10\14\0\2\10\1\340\14\10\2\0"+ - "\1\7\12\10\1\341\7\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\342\4\10\14\0\1\343\1\344\4\10"+ - "\1\345\5\10\1\346\2\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\347\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\5\10\1\350\1\351\13\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\352\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\353\2\10\14\0\6\10\1\354\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\355\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\356\1\357\2\10\14\0\1\10\1\360\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\361\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\2\10\1\362\3\10"+ - "\2\0\6\10\14\0\3\10\1\363\13\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\364\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\365"+ - "\1\10\1\366\2\10\14\0\6\10\1\367\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\370\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\371\3\10\14\0"+ - "\1\10\1\372\4\10\1\373\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\374\1\375"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\376\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\15\106\1\0\3\106\1\0\2\106\1\0\32\106"+ - "\1\0\10\106\1\0\32\106\35\0\1\377\27\0\1\u0100"+ - "\60\0\1\u0101\134\0\1\u0102\155\0\1\u0103\32\0\15\114"+ - "\1\0\3\114\1\0\2\114\1\0\22\114\1\0\7\114"+ - "\1\0\10\114\1\0\5\114\1\0\1\114\1\0\22\114"+ - "\35\0\1\u0104\27\0\1\u0105\60\0\1\u0106\100\0\1\u0107"+ - "\4\0\1\u0107\2\0\1\u0107\2\0\2\u0107\5\0\1\u0108"+ - "\1\0\6\u0107\2\0\6\u0107\7\0\1\u0109\4\0\17\u0107"+ - "\3\0\22\u0107\35\0\1\u010a\155\0\1\u010b\132\0\1\u010c"+ - "\57\0\1\u010d\1\u010e\1\u010f\1\u0110\1\0\1\u0111\15\0"+ - "\1\u0112\1\u0113\1\u0114\1\u0115\1\0\1\u0116\3\0\1\u0117"+ - "\31\0\12\125\2\0\4\125\2\0\101\125\21\u0118\1\0"+ - "\101\u0118\13\0\1\u0119\110\0\2\u011a\3\0\1\u011a\2\0"+ - "\1\u011a\2\0\2\u011a\2\0\1\u011a\4\0\6\u011a\2\0"+ - "\6\u011a\14\0\17\u011a\1\u011b\2\0\22\u011a\10\132\1\0"+ - "\1\132\1\0\6\132\1\0\101\132\10\0\1\u011c\112\0"+ - "\21\u011d\1\0\101\u011d\21\u011e\1\0\101\u011e\10\7\1\0"+ - "\1\u011f\1\7\1\0\2\7\1\0\2\7\4\0\6\7"+ - "\2\0\6\7\14\0\17\7\2\0\23\7\10\142\1\0"+ - "\2\142\1\0\2\142\1\0\2\142\4\0\6\142\2\0"+ - "\6\142\14\0\17\142\2\0\25\142\1\143\3\u0120\1\142"+ - "\1\u0120\1\0\2\142\1\0\2\142\1\0\2\142\4\0"+ - "\6\142\2\0\6\142\14\0\17\142\2\0\26\142\3\u0121"+ - "\1\142\1\u0121\1\0\2\142\1\0\2\142\1\0\2\142"+ - "\4\0\6\142\1\u0122\1\0\6\142\3\0\1\u0122\10\0"+ - "\17\142\2\0\26\142\3\147\1\142\1\147\1\0\2\142"+ - "\1\0\1\142\1\144\1\0\2\142\4\0\4\142\1\144"+ - "\1\146\2\0\2\142\1\146\3\142\14\0\2\142\1\144"+ - "\5\142\1\144\6\142\2\0\25\142\1\150\1\142\2\u0123"+ - "\1\142\1\u0123\1\0\2\142\1\0\2\142\1\0\2\142"+ - "\4\0\6\142\2\0\6\142\14\0\17\142\2\0\26\142"+ - "\3\151\1\142\1\151\1\0\2\142\1\0\1\142\1\144"+ - "\1\0\2\142\4\0\4\142\1\144\1\146\1\0\1\147"+ - "\2\142\1\146\3\142\14\0\2\142\1\144\5\142\1\144"+ - "\6\142\2\0\25\142\1\150\1\151\2\152\1\142\1\152"+ - "\1\0\2\142\1\0\1\142\1\144\1\0\2\142\4\0"+ - "\1\u0124\3\142\1\144\1\146\1\0\1\147\2\142\1\146"+ - "\1\142\1\u0124\1\142\14\0\2\142\1\144\5\142\1\144"+ - "\6\142\2\0\27\142\2\u0125\2\142\1\0\2\142\1\0"+ - "\2\142\1\0\2\142\4\0\6\142\2\0\6\142\14\0"+ - "\17\142\2\0\26\142\5\u0126\1\0\2\142\1\0\1\142"+ - "\1\u0126\1\0\2\142\4\0\1\142\2\u0126\1\142\2\u0126"+ - "\2\0\2\142\2\u0126\2\142\14\0\2\142\1\u0126\1\142"+ - "\1\u0126\3\142\1\u0126\6\142\2\0\2\142\1\u0126\20\142"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u0127\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\4\10\1\u0128\1\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\u0129\2\10\14\0\1\10\1\u012a\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u012b"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u012c\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u012d\1\10\14\0"+ - "\7\10\1\u012e\7\10\2\0\1\7\22\10\10\162\1\u012f"+ - "\1\162\1\164\6\162\1\165\101\162\10\0\1\u0130\112\0"+ - "\4\u0131\2\162\1\u0131\1\162\1\u0132\1\u0133\4\162\3\u0131"+ - "\1\0\5\u0131\1\162\5\u0131\2\162\64\u0131\10\165\1\u012f"+ - "\1\165\1\u0134\110\165\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u0135\3\10\14\0\6\10\1\u0136\10\10\2\0"+ - "\1\7\22\10\13\0\1\u0137\107\0\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\4\10\1\u0138\1\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\11\10\1\274\5\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u0139\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u013a\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\10"+ - "\1\u013b\15\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\274\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u013c\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\12\177\1\200"+ - "\10\177\1\u013d\120\177\1\0\101\177\21\201\1\0\101\201"+ - "\24\0\1\u013e\76\0\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u013f\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\4\10\1\u0140\12\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u0141"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\5\10"+ - "\1\u0142\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\10\1\u0143\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u0144\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u0145\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u0146\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u0147\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u0148\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0149\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\u014a\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u014b\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u014c\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u014d\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\u014e"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u014f\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u0150\5\10\14\0\4\10\1\u0151\12\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\3\10\1\u0152\13\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u0153\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\4\10"+ - "\1\u0154\1\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\u0155\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u0156"+ - "\2\10\14\0\14\10\1\274\2\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\5\10\1\u0157\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u0158\4\10\14\0\6\10\1\u0159\10\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\2\10\1\u015a\17\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u015b\4\10\1\u015c"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\u015d\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\4\10"+ - "\1\u015e\12\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u015f\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0160\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u0161\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\14\10\1\u0135\2\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\5\10\1\u0162\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\1\10\1\u0163"+ - "\4\10\2\0\5\10\1\u0164\14\0\17\10\2\0\1\7"+ - "\5\10\1\u0165\14\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\2\10\1\u0166\14\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u0167\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\3\10\1\u0168\13\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u0169"+ - "\1\10\1\u016a\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u016b\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\313\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u016c\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u016d\2\10\1\u016e\1\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u016f\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u0170\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\12\177\1\200"+ - "\10\177\2\0\76\177\50\0\1\52\1\0\1\25\50\0"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\5\10\1\u0171\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\7\10\1\u0172\7\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\10"+ - "\1\u0173\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\u0174\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\2\10\1\u0175\3\10\2\0\1\u0176"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u0177\4\10"+ - "\1\u0178\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\4\10\1\u0179\12\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u017a"+ - "\4\10\1\u015f\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u017b\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u017c\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u017d"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\4\10"+ - "\1\u017e\1\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u017f\4\10\1\u0180\14\0"+ - "\12\10\1\u0181\4\10\2\0\1\7\13\10\1\u0182\6\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0183\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\5\10\1\u0184"+ - "\1\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u0185\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\3\10\1\u0186"+ - "\13\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u0187\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\5\10"+ - "\1\u0188\11\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\3\10\1\u0189\13\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\3\10\1\u018a\16\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u018b\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\u018c\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\4\10\1\u018d\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u018e\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u018f\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\4\10\1\u0190\1\10\14\0\6\10\1\u0191\10\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u0172\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0192\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\u0193\1\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u0194\1\10"+ - "\1\u0195\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u0196\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\320\1\0\1\320\1\u0197\1\0"+ - "\2\320\1\0\1\7\1\320\4\0\6\320\2\0\6\320"+ - "\14\0\17\320\2\0\1\7\22\320\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0198\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\5\10\1\u0199"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u019a\4\10\14\0\6\10\1\u019b"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\5\10\1\u019c\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\3\10"+ - "\1\u019d\13\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u019e\1\10\1\u019f\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u0135\1\u01a0\4\10\14\0\4\10\1\u01a1\12\10"+ - "\2\0\1\7\3\10\1\u01a2\16\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u01a3\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u01a4\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u01a5\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\7\10\1\u01a6\7\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u01a7"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\5\10"+ - "\1\u01a8\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u01a9\4\10\1\u01aa\14\0\1\u01ab"+ - "\1\10\1\u01ac\1\u01ad\1\u01ae\5\10\1\u01af\4\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u01b0\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u01b1\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u01b2\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\5\10\1\u01b3\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u01b4\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u01b5\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\1\10\1\u01b6"+ - "\15\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\7\10\1\u01b7\7\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\3\10\1\u01b8\13\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u01b9\14\0\16\10\1\u01ba"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\4\10\1\u01bb"+ - "\1\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\4\10\1\u01bc\15\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u01bd\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u018f\5\10"+ - "\14\0\3\10\1\u01be\13\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\5\10\1\u01bf\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u01c0\1\10\14\0\7\10\1\u01c1\7\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\13\10\1\u01c2\3\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\12\10\1\u01c3"+ - "\4\10\2\0\1\7\22\10\1\7\5\10\1\u01c4\1\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u01c5\5\10\14\0\17\10\2\0"+ - "\1\7\2\10\1\u01c6\17\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u01c7\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\5\10\1\u01c8\14\0"+ - "\17\10\2\0\1\7\13\10\1\u01c9\6\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u01ca\5\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\5\10"+ - "\1\u01cb\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u01cc\4\10"+ - "\1\u01cd\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\4\10\1\u01ce\12\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\3\10\1\u01cf\13\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u01d0\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u01d1\4\10\14\0\4\10\1\u01d2\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u01d3\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u01d4\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u01d5\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\u01d6\2\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u018a\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\62\0\1\u01d7\101\0\1\u01d8"+ - "\116\0\1\u01d9\155\0\1\u01da\114\0\1\u01db\101\0\1\u01dc"+ - "\61\0\52\u0107\1\u0109\50\u0107\1\0\1\u0107\4\0\1\u0107"+ - "\2\0\1\u0107\2\0\2\u0107\7\0\6\u0107\2\0\6\u0107"+ - "\7\0\1\u0109\4\0\17\u0107\3\0\22\u0107\35\0\1\u01dd"+ - "\155\0\1\u01de\73\0\1\u01df\17\0\1\u01e0\1\0\1\u01e1"+ - "\1\0\1\u01e2\3\0\1\u01e3\42\0\1\u01e4\45\0\1\u01e5"+ - "\1\u01e6\101\0\1\u01e7\147\0\1\u01e8\47\0\1\u01e9\150\0"+ - "\1\u01ea\25\0\1\u01eb\64\0\1\u01ec\132\0\1\u01ed\123\0"+ - "\1\u01ee\122\0\1\u01ef\76\0\1\u01f0\145\0\1\u01f1\76\0"+ - "\1\u01f2\110\0\7\u011a\1\0\1\u011a\1\u01f3\1\0\2\u011a"+ - "\2\0\1\u011a\4\0\6\u011a\2\0\6\u011a\14\0\17\u011a"+ - "\3\0\22\u011a\77\u01f4\1\0\23\u01f4\10\0\1\u01f5\112\0"+ - "\3\7\5\u01f6\1\0\2\7\1\0\1\7\1\u01f6\1\0"+ - "\2\7\4\0\1\7\2\u01f6\1\7\2\u01f6\2\0\2\7"+ - "\2\u01f6\2\7\14\0\2\7\1\u01f6\1\7\1\u01f6\3\7"+ - "\1\u01f6\6\7\2\0\2\7\1\u01f6\20\7\2\142\1\143"+ - "\3\u0120\1\142\1\u0120\1\0\2\142\1\0\2\142\1\0"+ - "\2\142\4\0\1\145\5\142\2\0\4\142\1\145\1\142"+ - "\14\0\17\142\2\0\26\142\3\u0121\1\142\1\u0121\1\0"+ - "\2\142\1\0\1\142\1\144\1\0\2\142\4\0\4\142"+ - "\1\144\1\142\2\0\6\142\14\0\2\142\1\144\5\142"+ - "\1\144\6\142\2\0\23\142\3\0\3\u0121\1\0\1\u0121"+ - "\113\0\2\142\1\150\1\142\2\u0123\1\142\1\u0123\1\0"+ - "\2\142\1\0\2\142\1\0\2\142\4\0\1\u0124\5\142"+ - "\2\0\4\142\1\u0124\1\142\14\0\17\142\2\0\25\142"+ - "\1\u01f7\1\142\2\u0125\2\142\1\0\2\142\1\0\2\142"+ - "\1\0\2\142\4\0\6\142\2\0\6\142\14\0\17\142"+ - "\2\0\25\142\1\u01f8\5\u0126\1\0\2\142\1\0\1\142"+ - "\1\u0126\1\0\2\142\4\0\1\u0124\2\u0126\1\142\2\u0126"+ - "\2\0\2\142\2\u0126\1\u0124\1\142\14\0\2\142\1\u0126"+ - "\1\142\1\u0126\3\142\1\u0126\6\142\2\0\2\142\1\u0126"+ - "\20\142\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u01f9"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u01fa\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\5\10\1\u01fb\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u01fc\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\5\10\1\u01fd\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u01fe\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\5\10\1\u01ff"+ - "\14\0\4\10\1\u0200\12\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u0201\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\3\10\1\u0202\13\10\2\0\1\7"+ - "\22\10\10\u0131\1\u0203\10\u0131\1\0\104\u0131\5\u0204\1\u0203"+ - "\4\u0131\1\u0204\3\u0131\1\0\4\u0131\2\u0204\1\u0131\2\u0204"+ - "\4\u0131\2\u0204\20\u0131\1\u0204\1\u0131\1\u0204\3\u0131\1\u0204"+ - "\12\u0131\1\u0204\20\u0131\4\0\2\165\1\0\2\165\1\u0205"+ - "\4\165\11\0\1\165\5\0\2\165\64\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u0206\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\4\10"+ - "\1\274\1\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u0207"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\5\10\1\u0155\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u0208\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u0209\2\10\14\0\2\10\1\u020a"+ - "\14\10\2\0\1\7\22\10\23\0\1\u020b\77\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\13\10\1\u0135"+ - "\3\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u020c\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u020d"+ - "\3\10\14\0\16\10\1\u020e\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u020f\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\10\1\u0210\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u0211\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\2\10\1\u0212"+ - "\17\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u0213"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u0214\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u0215\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0216\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u0217\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u0218"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\7\10\1\u0219\7\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u021a\1\10\1\u021b\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\7\10\1\u021c\7\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u021d\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u021e\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u021f\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0220\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u0221"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\5\10\1\u0222\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u0223"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u0224\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\274"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u0225\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\5\10\1\274\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u0226\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\u0227\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\3\10\1\u0228\13\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\7\10\1\274\7\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\u0229"+ - "\16\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\274\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u022a"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\240\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u022b\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\1\10\1\207"+ - "\15\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u022c\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\14\10\1\u022d\2\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\2\10\1\u022e\17\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\13\10\1\u0216\3\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\175\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u022f\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u0230"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\10\10\1\u0231\11\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u0208\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u0232\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u0218\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u017a"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\4\10\1\u0233\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\14\10\1\u0234\5\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\3\10"+ - "\1\u0135\13\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u0235\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\2\10\1\u0236\3\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u0230\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\1\10\1\u0218"+ - "\20\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0237\5\10"+ - "\14\0\3\10\1\u0238\13\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0239\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\12\10"+ - "\1\u023a\4\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\16\10\1\u023b\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u023c\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u0159\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u0216\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u023d\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u0182\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u023e\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u023f\5\10\14\0\3\10\1\u0182\13\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\1\10\1\u0240\15\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0241\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u0242\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\u0243\2\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0244\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u0245\1\10\14\0\1\10\1\u022c\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\u0246\2\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u0247"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\4\10\1\u0248\1\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\u0249\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u0135\1\u024a\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\2\10\1\u024b\3\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u024c\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u015f\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\u0135"+ - "\16\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u024d\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\2\10\1\274\14\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\1\10\1\u0218\6\10\1\u024e\3\10\1\u024f\5\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0250\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0251\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\2\10\1\u0252\14\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u0253\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\2\10\1\u0254\14\10"+ - "\2\0\1\7\22\10\10\7\1\0\1\u0255\1\7\1\0"+ - "\2\7\1\0\2\7\4\0\6\7\2\0\6\7\14\0"+ - "\17\7\2\0\24\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u0256\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u0257\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u0258\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0259\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u025a\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u025b"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u025c\3\10\14\0\6\10"+ - "\1\u025d\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\4\10\1\u025e\12\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u025f\3\10\1\u0260\4\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\u0261\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\u0262"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u0218\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u0263\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u0264\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\3\10\1\u0265\13\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u0266\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u0267\5\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u0268\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u0269\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u026a\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u026b\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\u026c\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\10"+ - "\1\u026d\15\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u026e\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u026f\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\10\1\u0270\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0271\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\u0272\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\221"+ - "\4\10\14\0\5\10\1\u0273\11\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0274\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u0275\3\10\14\0\1\10\1\u0276"+ - "\15\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\10\10\1\u0277"+ - "\11\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u0278"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0279\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\u027a\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u027b\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u027c\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\10\10\1\u027d\6\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\10\10\1\u0135\6\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\u027e\16\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\1\0\1\u027f"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u0280\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\4\10"+ - "\1\u0281\1\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\2\10\1\u0282\3\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u0283\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u0284\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\4\10\1\u0285\1\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\1\10\1\u0286\1\u0287"+ - "\17\10\1\7\7\10\1\0\1\u0288\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\3\10\1\u0289\13\10\2\0\1\7"+ - "\12\10\1\u028a\7\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u028b\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u028c\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u028d\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\u028e\16\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\3\10\1\u028f\1\u0290"+ - "\12\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\u0291\1\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u0292\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\16\10\1\u0293\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0294\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\13\10\1\u0295\3\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u0296\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u014f\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\2\10\1\u0135\14\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u0297\5\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u0298"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\16\10\1\u0299\2\0"+ - "\1\7\22\10\56\0\1\u029a\103\0\1\u01d7\145\0\1\u029b"+ - "\74\0\1\u029c\144\0\1\u029d\103\0\1\u01db\145\0\1\u029e"+ - "\74\0\1\u029f\153\0\1\u02a0\115\0\1\u02a1\122\0\1\u02a2"+ - "\56\0\1\u02a3\146\0\1\u02a4\117\0\1\u02a5\123\0\1\u02a6"+ - "\145\0\1\u02a7\76\0\1\u02a8\125\0\1\u02a9\22\0\1\u02aa"+ - "\74\0\1\u02ab\123\0\1\u02ac\1\u02ad\77\0\1\u02ae\150\0"+ - "\1\u02af\142\0\1\u02b0\76\0\1\u02b1\121\0\1\u02b2\122\0"+ - "\1\u02b3\23\0\1\u02b4\77\0\1\u02b5\75\0\1\u02b6\111\0"+ - "\77\u01f4\1\u02b7\23\u01f4\3\7\5\u02b8\1\0\2\7\1\0"+ - "\1\7\1\u02b8\1\0\2\7\4\0\1\7\2\u02b8\1\7"+ - "\2\u02b8\2\0\2\7\2\u02b8\2\7\14\0\2\7\1\u02b8"+ - "\1\7\1\u02b8\3\7\1\u02b8\6\7\2\0\2\7\1\u02b8"+ - "\20\7\2\142\1\u01f8\5\u0126\1\0\2\142\1\0\1\142"+ - "\1\u0126\1\0\2\142\4\0\1\142\2\u0126\1\142\2\u0126"+ - "\2\0\2\142\2\u0126\2\142\14\0\2\142\1\u0126\1\142"+ - "\1\u0126\3\142\1\u0126\6\142\2\0\2\142\1\u0126\20\142"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u02b9\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\u02ba\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\5\10\1\u02bb"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u02bc\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u0250\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\5\10\1\u02bd\1\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u02be"+ - "\2\10\14\0\17\10\2\0\1\7\1\10\1\u02bf\1\u02c0"+ - "\17\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u024b\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\u02c1\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u02c2"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u01b0\2\10\14\0\6\10"+ - "\1\u02c3\10\10\2\0\1\7\22\10\3\u0131\5\u02c4\1\u0203"+ - "\4\u0131\1\u02c4\3\u0131\1\0\4\u0131\2\u02c4\1\u0131\2\u02c4"+ - "\4\u0131\2\u02c4\20\u0131\1\u02c4\1\u0131\1\u02c4\3\u0131\1\u02c4"+ - "\12\u0131\1\u02c4\20\u0131\3\0\5\u02c5\5\0\1\u02c5\10\0"+ - "\2\u02c5\1\0\2\u02c5\4\0\2\u02c5\20\0\1\u02c5\1\0"+ - "\1\u02c5\3\0\1\u02c5\12\0\1\u02c5\20\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\13\10\1\274\3\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\12\10\1\u015f\4\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0216\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\4\10\1\u02c6\1\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\1\u02c7\5\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\1\10\1\u02c8\2\10\1\u02c9"+ - "\15\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\4\10\1\u02ca"+ - "\1\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\11\10\1\u02cb\10\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u02cc\1\u02cd\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\15\10\1\u02ce\1\10\2\0\1\7\4\10\1\u02cf\15\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u02d0\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u02d1\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u0218\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\1\10\1\u02d2\20\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\16\10\1\274\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u02d3\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\u0250\16\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0135\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u02d4\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u02d5\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u02d6\1\10\1\0"+ - "\1\7\1\10\4\0\4\10\1\u02d7\1\10\2\0\6\10"+ - "\14\0\10\10\1\u02d8\4\10\1\u02d9\1\10\2\0\1\7"+ - "\4\10\1\u02da\4\10\1\u02db\1\u02dc\1\10\1\u02dd\2\10"+ - "\1\u02de\2\10\1\7\5\10\1\u02df\1\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u02e0\3\10\14\0\17\10\2\0\1\7"+ - "\2\10\1\u0212\5\10\1\u02e1\11\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u0135\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u02e2\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\3\10\1\u02e3"+ - "\13\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\14\10\1\u02e4\2\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u02e5\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\5\10\1\u0273\11\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\5\10"+ - "\1\u02e6\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\11\10\1\u02e7\5\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u02e8\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u02e9\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u02ea\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\17\10\1\u02eb\2\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u02ec\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u02ed\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u0157\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\3\10\1\u0249\13\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\u02ee\16\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\4\10\1\u02ef\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u02f0\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\301\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\u02f1\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\u02f2\16\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u02f3\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\u02f4\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\4\10\1\u0149\1\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u02f5\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u02f6\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u02f7\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u02f8\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u02f9\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\274\16\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\6\10\1\u02fa\10\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u02fb\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u02fc\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\16\10\1\u02fd\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u0218\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u01d2\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\5\10\1\u0249\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u02fe\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u02ff\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\5\10\1\u0300\1\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\274\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u0301\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0135\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\4\10\1\u0302\5\10"+ - "\1\u0303\7\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\4\10"+ - "\1\u0249\1\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u0304"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\310\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0305\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u0306\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\u018c\2\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u0307"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u021d\1\u018c\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\u0308\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u0309\15\10\2\0"+ - "\1\7\22\10\3\7\5\u030a\1\0\2\7\1\0\1\7"+ - "\1\u030a\1\0\2\7\4\0\1\7\2\u030a\1\7\2\u030a"+ - "\2\0\2\7\2\u030a\2\7\14\0\2\7\1\u030a\1\7"+ - "\1\u030a\3\7\1\u030a\6\7\2\0\2\7\1\u030a\21\7"+ - "\5\10\1\u030b\1\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u030c\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\14\10\1\u030d\2\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\u030e\16\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u030f\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0310\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u0311\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u0312\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u0313\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\16\10\1\u0314\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\u0315\2\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u0316"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u0317\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u0318"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0319\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u031a\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u031b\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\4\10"+ - "\1\u031c\1\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u031d"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u031e\4\10\14\0\13\10"+ - "\1\u031a\3\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u031f\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u0320\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\5\10\1\u0321"+ - "\11\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u0322\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\7\10"+ - "\1\u0323\7\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\4\10\1\u0324\1\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\u0325\2\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\1\10\1\u0326"+ - "\15\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\13\10\1\u0327\3\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0328\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\4\10\1\u0329\12\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\2\10\1\u0212\5\10\1\u02e1"+ - "\11\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u032a"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\11\10\1\u0250\5\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u032b\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u032c\4\10"+ - "\14\0\17\10\2\0\1\7\21\10\1\u032d\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\11\10\1\u032e\10\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\3\10\1\u032f\13\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0330\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u0331\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u0332"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u0250\5\10\14\0\17\10\2\0"+ - "\1\7\2\10\1\u0212\5\10\1\u02e1\11\10\32\0\1\u0333"+ - "\70\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u0334\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\14\10\1\u0335\5\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u0336\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0337\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\13\10\1\u0338\3\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u0339"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\4\10\1\u033a\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u033b\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\4\10"+ - "\1\u033c\12\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\u033d\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\10\1\u033e"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u033f\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u0340\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u0341\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\2\10\1\u0342"+ - "\3\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0343\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u0344\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u0345"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u0346\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u0347\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\2\10"+ - "\1\u0348\14\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u0349\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\10\1\u034a\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\u034b\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u034c"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\7\10\1\u034d\12\10\23\0\1\u034e\141\0\1\u01d7\13\0"+ - "\1\u029a\45\0\1\u029c\1\u034f\5\u029c\1\u034f\1\u029c\2\0"+ - "\2\u029c\1\0\1\u034f\1\u029c\2\0\1\u029c\1\u034f\6\u029c"+ - "\2\u034f\6\u029c\4\u034f\1\0\1\u034f\2\0\4\u034f\17\u029c"+ - "\2\0\1\u034f\22\u029c\23\0\1\u0350\141\0\1\u01db\13\0"+ - "\1\u029d\45\0\1\u029f\1\u0351\5\u029f\1\u0351\1\u029f\2\0"+ - "\2\u029f\1\0\1\u0351\1\u029f\2\0\1\u029f\1\u0351\6\u029f"+ - "\2\u0351\6\u029f\4\u0351\1\0\1\u0351\2\0\4\u0351\17\u029f"+ - "\2\0\1\u0351\22\u029f\14\0\1\u0352\20\0\1\u0353\150\0"+ - "\1\u0354\120\0\1\u0355\120\0\1\u0356\104\0\1\u0357\141\0"+ - "\1\u0358\101\0\1\u0359\20\0\1\u035a\122\0\1\u02ad\53\0"+ - "\1\u035b\177\0\1\u035c\73\0\1\u035d\1\0\1\u035e\140\0"+ - "\1\u035f\130\0\1\u0360\120\0\1\u0361\117\0\1\u0362\100\0"+ - "\1\u0363\124\0\1\u0364\121\0\1\u0365\122\0\1\u0366\122\0"+ - "\1\u0367\125\0\1\u0368\63\0\5\u0369\5\0\1\u0369\10\0"+ - "\2\u0369\1\0\2\u0369\4\0\2\u0369\20\0\1\u0369\1\0"+ - "\1\u0369\3\0\1\u0369\12\0\1\u0369\20\0\3\7\5\u036a"+ - "\1\0\2\7\1\0\1\7\1\u036a\1\0\2\7\4\0"+ - "\1\7\2\u036a\1\7\2\u036a\2\0\2\7\2\u036a\2\7"+ - "\14\0\2\7\1\u036a\1\7\1\u036a\3\7\1\u036a\6\7"+ - "\2\0\2\7\1\u036a\21\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u036b\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\2\10\1\u036c"+ - "\14\10\2\0\1\7\22\10\1\7\5\10\1\u036d\1\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\1\u036e\3\10\1\u036f\1\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\11\10\1\u02db\10\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u018c\2\10\14\0\17\10"+ - "\2\0\1\7\11\10\1\u0370\10\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u0371\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\4\10\1\u0372\12\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u0373\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u0374\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u0375"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\4\10\1\u0376\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u031a\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\3\u0131\5\u0377\1\u0203\4\u0131\1\u0377\3\u0131\1\0\4\u0131"+ - "\2\u0377\1\u0131\2\u0377\4\u0131\2\u0377\20\u0131\1\u0377\1\u0131"+ - "\1\u0377\3\u0131\1\u0377\12\u0131\1\u0377\20\u0131\3\0\5\u0378"+ - "\5\0\1\u0378\10\0\2\u0378\1\0\2\u0378\4\0\2\u0378"+ - "\20\0\1\u0378\1\0\1\u0378\3\0\1\u0378\12\0\1\u0378"+ - "\20\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\4\10\1\u0379"+ - "\1\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u037a\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u037b\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u037c\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u037d\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\u037e\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\2\10\1\u037f\14\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\13\10\1\u0380\3\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0381\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u0382\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u01cf\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u0383\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u0384"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u0385\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u0386\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u0348\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u0387\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u0388\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0389\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u038a\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u038b\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u038c\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\u038d\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u038e\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u038f"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u0390\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u0391\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u0172\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\u0392\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0393\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\2\10"+ - "\1\u0394\17\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\1\u0395\5\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\12\10\1\u0396\7\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u0397\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u0398\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u0399\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u039a\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u039b\10\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\2\10\1\u0159"+ - "\14\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u039c\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\u039d\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u039e\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\4\10"+ - "\1\274\12\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u039f\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u03a0"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u03a1\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u0157\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\4\10"+ - "\1\u03a2\12\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u03a3\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\10\1\u0135\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u0383\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u015f\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\13\10\1\u015f\3\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u03a4"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\10\1\u03a5\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u03a6"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u03a7\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u03a8\10\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\7\10\1\u03a9"+ - "\7\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\4\10\1\u03aa\1\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u03ab\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u03ac\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\u03ad\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u03ae\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u03af"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u03b0\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\7\10\1\u03b1\7\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u03b2\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\7\10\1\u03b3\7\10\2\0"+ - "\1\7\22\10\3\7\5\u03b4\1\0\2\7\1\0\1\7"+ - "\1\u03b4\1\0\2\7\4\0\1\7\2\u03b4\1\7\2\u03b4"+ - "\2\0\2\7\2\u03b4\2\7\14\0\2\7\1\u03b4\1\7"+ - "\1\u03b4\3\7\1\u03b4\6\7\2\0\2\7\1\u03b4\21\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u03b5\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u03b6\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\1\u03b7\5\10\2\0\5\10"+ - "\1\u0135\14\0\10\10\1\u03b8\6\10\2\0\1\7\2\10"+ - "\1\u03b9\1\10\1\u03ba\15\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\7\10\1\u03bb\7\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u03bc\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\2\10\1\u0250\14\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\7\10\1\u03bd\7\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\13\10\1\u03be"+ - "\3\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u03bf\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\5\10\1\u03c0\4\10\1\u03c1\7\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u03c2\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\4\10\1\u03c3\12\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u03c4\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u03c5\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\2\10\1\u0274\14\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u021d\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u03c6\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u03c7"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\7\10\1\u0135\7\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u03c8\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u03c9\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u03ca"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u03cb\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\12\10\1\u03cc\7\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\2\10\1\u03cd\5\10\1\u03ce\11\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\3\10\1\u03cf\13\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u03d0\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\2\10\1\u024b\3\10\2\0\1\u014f"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u03d1\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u03d2\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u03d3\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u03d4\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\2\10\1\u03d5\14\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u03d6\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\5\10\1\u03d7\14\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\10"+ - "\1\u03d8\15\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u03d9\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\3\10\1\u03da\13\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u03db"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\11\10\1\u03dc\5\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u03dd\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\14\0\1\u03de\106\0"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u03df\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u03e0\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u03e1"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\6\10\1\u03e2\10\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u03e3\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\5\10\1\u03e4\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u03e5\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u03e6\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\u03e7\16\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u03e8\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\10\10"+ - "\1\u03e9\11\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\12\10\1\u0252\4\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u03ea\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u03eb\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u03ec\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u03ed\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\5\10\1\u03ee"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\2\10"+ - "\1\u03ef\14\10\1\u02de\2\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\6\10\1\u03f0\10\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\13\10\1\u0249\3\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\15\10\1\u02d9\1\10"+ - "\2\0\1\7\4\10\1\u02da\5\10\1\u02dc\4\10\1\u02de"+ - "\2\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u03f1"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\14\10\1\u03f2\2\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u03f3\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u0135\4\10"+ - "\14\0\17\10\2\0\1\7\1\10\1\u03f4\20\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u03f5\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\23\0\1\u029c\122\0\1\u029f"+ - "\174\0\1\u03f6\64\0\1\u03f7\157\0\1\u03f8\65\0\1\u03f6"+ - "\122\0\1\u03f9\74\0\1\u0355\147\0\1\u03fa\124\0\1\u03fb"+ - "\152\0\1\u03fc\70\0\1\u03fd\146\0\1\u03fe\122\0\1\u03ff"+ - "\51\0\1\u0400\171\0\1\u0401\102\0\1\u0402\121\0\1\u02ad"+ - "\124\0\1\u0403\120\0\1\u0404\151\0\1\u02ad\126\0\1\u0405"+ - "\66\0\1\u0406\150\0\1\u02ad\123\0\1\u0407\40\0\5\u0408"+ - "\5\0\1\u0408\10\0\2\u0408\1\0\2\u0408\4\0\2\u0408"+ - "\20\0\1\u0408\1\0\1\u0408\3\0\1\u0408\12\0\1\u0408"+ - "\20\0\3\7\5\10\1\0\2\7\1\0\1\7\1\10"+ - "\1\0\2\7\4\0\1\7\2\10\1\7\2\10\2\0"+ - "\2\7\2\10\2\7\14\0\2\7\1\10\1\7\1\10"+ - "\3\7\1\10\6\7\2\0\2\7\1\10\21\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\4\10\1\240\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u021d\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u0409\2\10"+ - "\14\0\6\10\1\u040a\10\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\1\10\1\u038a"+ - "\15\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u040b\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u040c\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u040d\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u040e"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u040f\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\3\10\1\u0410\16\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u0411\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0412\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\3\u0131\5\162\1\u0203\4\u0131\1\162\3\u0131\1\0"+ - "\4\u0131\2\162\1\u0131\2\162\4\u0131\2\162\20\u0131\1\162"+ - "\1\u0131\1\162\3\u0131\1\162\12\u0131\1\162\20\u0131\3\0"+ - "\5\u0413\5\0\1\u0413\10\0\2\u0413\1\0\2\u0413\4\0"+ - "\2\u0413\20\0\1\u0413\1\0\1\u0413\3\0\1\u0413\12\0"+ - "\1\u0413\20\0\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\14\10\1\274\2\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\5\10\1\u0414\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u0135\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\2\10"+ - "\1\u0415\14\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\1\0\1\u0416\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\7\10\1\u0417\7\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\1\u03b7\5\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\7\10\1\u0418\12\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u03f2\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\5\10\1\u0419"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\u0135\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u041a"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u0216\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\4\10\1\u041b\1\10"+ - "\2\0\1\u041c\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\7\10"+ - "\1\u041d\7\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\4\10\1\u041e\1\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\5\10"+ - "\1\u041f\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u0420\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\3\10\1\u0421\13\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0422\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u038b\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u0423\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u041e\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u0424\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u0425\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u0426\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u0427\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0428\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u0429\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\2\10\1\u042a\3\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u042b\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u013f\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\2\10\1\u042c\14\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u042d\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\4\10\1\u0157\12\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u042e"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\10\1\u042f\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\10\1\u0135\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u0430\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\3\10\1\u0431\13\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0432\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u0379\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\u015f\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u0433\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\4\10"+ - "\1\u0434\12\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\10\10"+ - "\1\u0435\11\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\240"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0436\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u0437\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u0438\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\3\10\1\u0439\13\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u03ac"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u043a\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\u043b\2\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\3\10\1\u043c"+ - "\13\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u043d\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u043e\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\1\10\1\u043f\20\10\3\7\5\u0440\1\0\2\7\1\0"+ - "\1\7\1\u0440\1\0\2\7\4\0\1\7\2\u0440\1\7"+ - "\2\u0440\2\0\2\7\2\u0440\2\7\14\0\2\7\1\u0440"+ - "\1\7\1\u0440\3\7\1\u0440\6\7\2\0\2\7\1\u0440"+ - "\21\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\10"+ - "\1\u0441\15\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\4\10\1\u0442\12\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u0443\10\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\304\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u0444\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u0445\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u0446\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u0447\10\10\2\0\1\7\22\10\1\7\5\10"+ - "\1\u0448\1\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\5\10\1\u0449\14\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\1\10\1\u044a\4\10\2\0\6\10\14\0\15\10\1\u02d9"+ - "\1\10\2\0\1\7\4\10\1\u03ba\1\u0449\11\10\1\u02de"+ - "\2\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\10\10\1\u044b\11\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u044c\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\12\10\1\u044d\4\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u044e\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u044f\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u0450"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\4\10\1\u0451\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\5\10\1\u0452\14\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u0453\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u0454\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\u0455\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0456\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0457\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\u0458\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0459\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\6\10\1\u045a\10\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u045b"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\2\10\1\u045c\14\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\7\10\1\u045d\7\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\4\10\1\u045e\1\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u045f\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\3\10\1\u0425\13\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\1\u0460\5\10\1\0\1\u0461\6\10\14\0\10\10"+ - "\1\u0462\6\10\2\0\1\7\15\10\1\u0463\4\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\14\10\1\u0464"+ - "\2\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u0465\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u0249"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0466\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u0467\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u0468\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u0469\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u046a\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\35\0\1\u046b\65\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\13\10\1\u046c\3\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u046d\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\4\10\1\u046e\1\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\12\10\1\u046f\4\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\2\10\1\u0470\3\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\5\10\1\u0471\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u0472\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u0473\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\4\10\1\u0474\1\u0475\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\10\10\1\u0476\11\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\2\10\1\u0477"+ - "\17\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u0478"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u0135\14\0\17\10\2\0"+ - "\1\7\2\10\1\u0479\1\10\1\u047a\5\10\1\u047b\7\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u047c\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\4\10\1\u047d\12\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u047e"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u047f\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u0480"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u0481\5\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u0482\10\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\5\10\1\u0483\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u0484\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\2\10\1\u0485\3\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u0486\14\0\17\10\2\0\1\7"+ - "\22\10\77\u03f6\1\u02ad\23\u03f6\36\0\1\u0487\144\0\1\u0488"+ - "\100\0\1\u0489\151\0\1\u048a\116\0\1\u048b\103\0\1\u02ad"+ - "\74\0\1\u02ad\147\0\1\u0361\116\0\1\u0368\146\0\1\u0361"+ - "\77\0\1\u02ad\125\0\1\u048c\120\0\1\u048d\146\0\1\u048e"+ - "\117\0\1\u048f\56\0\1\u048a\166\0\1\u03fd\45\0\5\u0490"+ - "\5\0\1\u0490\10\0\2\u0490\1\0\2\u0490\4\0\2\u0490"+ - "\20\0\1\u0490\1\0\1\u0490\3\0\1\u0490\12\0\1\u0490"+ - "\20\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\5\10\1\u0491"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u0492\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u0493\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u0494\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\12\10\1\u0495\4\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0496\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u0497\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\u0498\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u0499\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u049a\10\10\2\0\1\7\22\10\3\0"+ - "\5\165\5\0\1\165\10\0\2\165\1\0\2\165\4\0"+ - "\2\165\20\0\1\165\1\0\1\165\3\0\1\165\12\0"+ - "\1\165\20\0\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u049b"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u049c\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\6\0\1\u049d\17\0\1\u049e\74\0"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\2\10\1\u049f\3\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u04a0\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u04a1\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u04a2\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\4\10\1\u04a3\1\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u04a4"+ - "\1\u04a5\2\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u04a6\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u031a\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\4\10"+ - "\1\u04a7\12\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\2\10\1\u031a\14\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\u04a8\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\4\10\1\u04a9\1\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\7\10\1\u04aa\7\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\5\10\1\u04ab\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u04ac\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u04ad\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u04ae\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u04af"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u04b0\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\13\10\1\u0182\6\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0157\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\5\10\1\u04b1\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\1\u04b2\16\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\2\10\1\u04b3\14\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\3\10"+ - "\1\274\13\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\u04b4\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u04b5"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0191\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\4\10\1\u015f\12\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u04b6\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u04b7\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u04b8\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u04b9\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u04ba"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\u04bb\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u0161"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\5\10"+ - "\1\u0300\1\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\14\10\1\u04bc\5\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u04bd\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\5\10\1\u0222\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\14\10\1\u02dd\5\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u04be\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\4\10\1\u04bf\12\10\2\0"+ - "\1\7\22\10\3\7\5\320\1\0\2\7\1\0\1\7"+ - "\1\320\1\0\2\7\4\0\1\7\2\320\1\7\2\320"+ - "\2\0\2\7\2\320\2\7\14\0\2\7\1\320\1\7"+ - "\1\320\3\7\1\320\6\7\2\0\2\7\1\320\21\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\5\10\1\u01fd\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u04c0\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\5\10\1\u0218\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\1\10\1\u04c1\15\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\2\10"+ - "\1\u01ac\14\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u04c2\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u04c3\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u04c4\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\1\10\1\u04c5\15\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\u04c6\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\311\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u04c7\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u04c8\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\1\u04c9\21\10\1\7\5\10"+ - "\1\u04ca\1\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\1\u036e\5\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\14\10\1\u04cb\2\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u04cc"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\6\10\1\u04cd\10\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u04ce\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\4\10\1\u03f2\1\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\3\10\1\u04cf\13\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u04d0\10\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u04d1\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u04d2\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u04d3\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u04d4\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u04d5\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\5\10\1\u04d6"+ - "\1\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\12\10\1\u04d7\1\10\1\u04d8\5\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u04d9\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\4\10\1\u04da"+ - "\1\10\2\0\6\10\14\0\17\10\2\0\1\7\1\10"+ - "\1\u04db\1\u04dc\2\10\1\u04dd\2\10\1\u04de\11\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\14\10\1\u0299"+ - "\2\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u04df\15\10\2\0\1\7"+ - "\22\10\103\0\1\u04e0\3\0\1\u04e1\13\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u044b\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u04e2\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\1\u04e3\5\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\5\10\1\u04e4\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\14\10\1\u04e5\5\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u04e6\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\10\1\u04e7\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\4\10\1\u04e8\1\u0483\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\36\0\1\u04e9\64\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\4\10\1\u04ea\1\10\2\0\6\10\14\0\15\10"+ - "\1\u04eb\1\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\u04ec\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u04ed\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u04ee\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u01b4\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\10\10"+ - "\1\u04ef\6\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\12\10\1\u04f0\4\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\3\10"+ - "\1\u04f1\2\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u04f2"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\4\10\1\u04f3\1\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u04f4"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u04f5\5\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\7\10\1\u04f6\7\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u04f7\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u04f8\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\u04f9\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\4\10"+ - "\1\u04fa\1\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\16\10\1\u04fb"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u04fc\5\10\1\u04fd\2\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\1\10\1\u04fe\4\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u04ff\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\14\10\1\u0500\2\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u0501"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\221\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\10\10\1\u0502\11\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\10"+ - "\1\u0503\15\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\u0504\16\10\2\0\1\7"+ - "\22\10\40\0\1\u0505\142\0\1\u0506\127\0\1\u0507\75\0"+ - "\1\u0508\124\0\1\u0509\111\0\1\u050a\35\0\1\u050b\70\0"+ - "\1\u0361\125\0\1\u050c\120\0\1\u050d\67\0\5\u011a\5\0"+ - "\1\u011a\10\0\2\u011a\1\0\2\u011a\4\0\2\u011a\20\0"+ - "\1\u011a\1\0\1\u011a\3\0\1\u011a\12\0\1\u011a\20\0"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0154\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\4\10\1\u050e\12\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\7\10\1\u050f\7\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\2\10\1\u0510\17\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u0511\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u0512\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\14\10\1\u0513\2\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u0514\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0515\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\1\10\1\u0516\15\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\4\10\1\u0517\15\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\5\10\1\u0518\11\10\2\0"+ - "\1\7\22\10\40\0\1\u0519\73\0\1\u051a\111\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u051b\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\5\10\1\u051c\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\u051d\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\14\10\1\u051e\2\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u051f\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u0520\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\2\10\1\u0521\3\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\4\10\1\u02d7\1\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u0522\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0523\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u0524\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u0525\10\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u0526\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u0527\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u0528\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\u0529\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u052a\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u052b\5\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\5\10\1\u052c\14\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\4\10\1\u052d\15\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u052e\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u052f\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u03a8\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\1\10\1\u0530\15\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0531\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\u0159\5\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\5\10\1\u0135\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u0532\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0533\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u0534\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u0535\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\1\10\1\u0536\4\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\4\10\1\u0537\12\10\2\0\1\7"+ - "\22\10\1\7\5\10\1\u0538\1\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\1\u03b7\5\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\2\10\1\u0539"+ - "\5\10\1\u053a\7\10\1\105\1\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u04f0\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u053b\10\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u03f2\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u053c\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\16\10"+ - "\1\u053d\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\10\1\u053e\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u053f\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\4\10\1\u0540\12\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u0541\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u0542\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u0543\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\5\10\1\u0222\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\10\10\1\u0544\11\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\4\10\1\u02da"+ - "\15\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\7\10\1\u0545\7\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0546\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u0547\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u0548\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\2\10"+ - "\1\u0549\3\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\12\10\1\u054a\7\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u054b\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\7\10\1\u054c\7\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u054d\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\4\10\1\u054e\1\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\2\10\1\u054f\3\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u0550\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\2\10\1\u0551\14\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u0552\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u0553\4\10\14\0\4\10"+ - "\1\u0554\12\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0555\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\u0556\16\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u0557\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\4\10\1\u0558\12\10\2\0\1\7\22\10\35\0"+ - "\1\u0559\101\0\1\u055a\106\0\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u055b\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u055c\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\16\10\1\u0135\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u055d\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u055e\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u055f\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\10"+ - "\1\u0560\15\10\2\0\1\7\22\10\73\0\1\u0561\27\0"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\10"+ - "\1\u0562\15\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u0563\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u0564"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u0565\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\1\10\1\u0566\20\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0567\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u0154\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\4\10"+ - "\1\u0568\1\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u0569\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u056a\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u056b\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u056c\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u056d\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u056e\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\3\10\1\u056f\13\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0570\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\10\10\1\u0571\6\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\15\10\1\u02d9\1\10\2\0\1\7\4\10\1\u02da"+ - "\15\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u04b9"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\15\10\1\u02ce\1\10"+ - "\2\0\1\7\14\10\1\u02dd\5\10\1\7\7\10\1\0"+ - "\1\u0572\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0573\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\20\10"+ - "\1\105\1\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u0574\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u0575\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u0576\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\10\10\1\u02e1\11\10\41\0\1\u03f6\116\0"+ - "\1\u03f6\122\0\1\u0577\126\0\1\u02ad\121\0\1\u0578\147\0"+ - "\1\u0579\75\0\1\u057a\117\0\1\u057b\160\0\1\u02ad\27\0"+ - "\1\7\7\10\1\0\1\u057c\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u057d\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\u057e\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u057f\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\1\0\1\u0580\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\15\10\1\u02d9\1\10\2\0\1\7"+ - "\17\10\1\u02de\2\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u0581\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u0582\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u0583\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0584\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\12\10\1\u039f\3\10"+ - "\1\u0585\3\10\35\0\1\u0586\152\0\1\u0587\35\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u04fb\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\u0274\16\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u0588\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\4\10"+ - "\1\u02da\5\10\1\u02dc\7\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\13\10\1\u0589\3\10\2\0\1\7"+ - "\22\10\1\7\5\10\1\u058a\1\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\1\0"+ - "\1\u058b\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u058c\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\6\10\1\u058d\10\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\2\10\1\u03ef\17\10\1\7\7\10"+ - "\1\0\1\u058e\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\5\10\1\u058f"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u0590\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u0383\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\1\u0250\21\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\4\10\1\u0591\15\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\16\10"+ - "\1\u0154\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u0592\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u0135\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u0593\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\11\10\1\u0594\5\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\1\u0432\21\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\10\1\274\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\1\u0595\16\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\4\10\1\u0596"+ - "\1\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\10"+ - "\1\u0597\15\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0598\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\u0599\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u059a\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u059b\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u059c\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u059d\1\u059e\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u0154\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u059f\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u05a0\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\10\1\u05a1"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\4\10\1\u0420\1\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u05a2"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\10\1\u05a3\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\2\10\1\u05a4\3\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u05a5\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u05a6\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u05a7\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\2\10\1\u0154\14\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u05a8\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u05a9\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u05aa\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\10\1\u05ab"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u05ac\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u05ad"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\2\10\1\u05ae\3\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u05af\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\13\10\1\u05b0\6\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u05b1\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\1\u05b2\5\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u05b3\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\13\10\1\u05b4\3\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\4\10"+ - "\1\u05b5\12\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u05b6\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u05b7\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u05b8\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u037b\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\40\0\1\u05b9\145\0\1\u05ba\37\0\1\7\7\10\1\0"+ - "\1\u0172\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\5\10\1\u05bb\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u05bc\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u05bd"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u05be\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u05bf\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u05c0\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u05c1\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u05c2"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\7\10\1\u05c3\7\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u05c4\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\10\1\u05c5"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\6\10\1\u05c6\10\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\4\10\1\u05c7"+ - "\1\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\7\10\1\u05c8\7\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\1\u05c9\16\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u05ca\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u034a\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u05cb"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\u05cc\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\3\10\1\u05cd\13\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u05ce\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u05cf\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u031d\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\5\10\1\u05d0"+ - "\1\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\4\10\1\u05d1\12\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u04ce\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\67\0\1\u05d2\50\0\1\u05d3\144\0"+ - "\1\u05d4\120\0\1\u05d5\124\0\1\u05d6\63\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\4\10\1\u05d7\1\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u03f2\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\3\10\1\u05d8"+ - "\13\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\5\10\1\u05d9\14\0\17\10\2\0\1\7\22\10"+ - "\103\0\1\u05da\3\0\1\u05db\13\0\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\4\10\1\u0249\12\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\10\10\1\u05dc\11\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\2\10\1\u05dd"+ - "\14\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u05de\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\37\0\1\u05df\124\0\1\u05e0\61\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\4\10\1\u05e1\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\5\10\1\u05e2\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u05e3\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\26\0\1\u05e4\74\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u05e5\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\3\10\1\u01d2\13\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u0546"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u04ac\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u05e6"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\1\u05e7\1\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u05e8"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\2\10\1\u05e9\14\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u05ea\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u01d3\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\1\10\1\u05eb\15\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\3\10"+ - "\1\u05ec\13\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u04fc\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u05ed\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u05ee\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\4\10"+ - "\1\u05ef\1\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u0135\5\10\14\0\17\10"+ - "\2\0\1\7\3\10\1\u05f0\16\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u05f1\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\3\10\1\u05f2\13\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\u05f3\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\1\u05f4"+ - "\1\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u05f5\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\5\10\1\u05f6\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\4\10\1\u05f7\1\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u05f8\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\10\1\u05f9"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\u05fa\1\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\21\10\1\u032d\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\2\10\1\u05fb\14\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u05fc\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u05fd\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\1\10\1\u05fe"+ - "\4\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\7\10"+ - "\1\u05ff\7\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0600\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\4\10\1\u0601"+ - "\1\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u0602\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u0603\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\3\10\1\u0604"+ - "\13\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u0605\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\7\10\1\u0606\7\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\u056a\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u0607"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u04f0\5\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u0608\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u0609"+ - "\10\10\2\0\1\7\22\10\35\0\1\u060a\125\0\1\u060b"+ - "\62\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u060c\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u05c8\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\2\10\1\u060d\14\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\2\10\1\u060e\14\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\7\10\1\u060f\7\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\7\10"+ - "\1\u0610\7\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u0611\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u0154\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u0491\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u0612\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\4\10\1\u0613\1\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\1\u0614\21\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\2\10\1\341\14\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u0615\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\1\10\1\u05c7\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u0616"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u0617\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u0618\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\u0619\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\u061a"+ - "\5\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\4\10\1\u061b\1\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\156\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\1\u061c"+ - "\16\10\2\0\1\7\22\10\60\0\1\u061d\101\0\1\u061e"+ - "\124\0\1\u05d6\121\0\1\u02ad\143\0\1\u02ad\41\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u061f\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\3\10\1\u0485\13\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u0620\10\10\2\0\1\7\22\10\11\0\1\u0621"+ - "\125\0\1\u0622\106\0\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\1\10\1\u0623\15\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0624\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\4\10\1\u0625\1\10\14\0\17\10\2\0"+ - "\1\7\22\10\72\0\1\u0626\111\0\1\u0627\41\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u0628\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\5\10\1\u0629\1\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u062a\15\10\2\0\1\7\22\10\65\0\1\u062b"+ - "\35\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\4\10\1\u062c\1\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u0279\5\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\4\10\1\u062d\15\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u062e\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u062f\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\7\10\1\u0630\12\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u0631\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u0632\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\2\10"; - - private static final String ZZ_TRANS_PACKED_1 = - "\1\u0633\14\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u0634\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\4\10\1\u0635"+ - "\1\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\u0636\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\u0637\16\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\1\0\1\u0638\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\3\10\1\u0576\13\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\6\10\1\u0639\10\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u063a\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\4\10\1\u063b\1\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\1\10\1\u063c\15\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\2\10"+ - "\1\u063d\3\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u063e"+ - "\10\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u063f\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\5\10\1\u0222\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\4\10\1\u0640\15\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\1\10\1\u0641"+ - "\15\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\5\10\1\u0642"+ - "\14\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u0643\15\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\15\10\1\u02d9\1\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\4\10\1\u0644\12\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u0645\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u0154\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\4\10\1\u0491\12\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0646\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\4\10\1\u0647\12\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u0648\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u0649\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u064a"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\u064b\5\10\14\0\17\10\2\0"+ - "\1\7\22\10\37\0\1\u0561\74\0\1\u064c\111\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u064d\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\5\10\1\u064e\1\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\5\10\1\u064f\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\12\10\1\u0650\7\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\1\u0651"+ - "\5\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u0652\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u0653\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\u0654\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u0655\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u0656\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u0657\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\u0491\1\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\7\10"+ - "\1\u0658\7\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\7\10\1\u0659\7\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\2\10\1\u065a\13\10\1\u065b"+ - "\3\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u065c\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u0154\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\2\10\1\u065d\14\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u065e"+ - "\10\10\2\0\1\7\22\10\63\0\1\u03f6\74\0\1\u050d"+ - "\65\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u065f"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u0660\15\10"+ - "\2\0\1\7\22\10\27\0\1\u0661\160\0\1\u0662\35\0"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\2\10"+ - "\1\u0663\14\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\5\10\1\u0664\11\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\u04fc\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\60\0\1\u046b\101\0"+ - "\1\u0665\63\0\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\1\10\1\u0666\4\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\1\10\1\u0667"+ - "\15\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\5\10\1\u04ce\14\0\17\10\2\0\1\7\22\10"+ - "\72\0\1\u0668\30\0\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u0669\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u066a\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u066b\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\5\10\1\u0135\11\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u066c\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\7\10\1\u066d\7\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u066e\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\4\10\1\u066f\1\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\4\10\1\u0670\1\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u0671\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u0672\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\1\10\1\u0673\15\10\2\0\1\7\22\10\103\0\1\u0674"+ - "\17\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\1\u031a\21\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u0675\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\11\10\1\u03f2\5\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\14\10\1\u02dd\5\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\13\10\1\u0676\3\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\13\10\1\u031a\3\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\12\10\1\u0154\7\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\341\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\1\u0677\16\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\u0678\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\u0154\16\10\2\0"+ - "\1\7\22\10\1\7\5\10\1\u0679\1\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u067a\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u067b\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u067c\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\341\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\2\10\1\u067d\14\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u067e\15\10"+ - "\2\0\1\7\22\10\72\0\1\u067f\30\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u0680\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\4\10"+ - "\1\u0681\1\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0682\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\3\10\1\u0683\13\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u0684\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u0685\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u0686\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u0687\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\14\10\1\u0688\2\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\u0689\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\2\10\1\u067b\3\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\17\10\1\u02de\2\10\1\7\5\10\1\u068a\1\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\4\10\1\u068b\1\u0222\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\u068c\5\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u068d\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\2\10\1\u068e"+ - "\17\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u068f"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u0380\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\6\10\1\u0690\10\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0154\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\42\0\1\u0691\143\0\1\u0692\37\0"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u0693\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\12\10"+ - "\1\u039f\7\10\36\0\1\u0561\64\0\1\7\7\10\1\0"+ - "\1\u0694\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u0695\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\67\0\1\u0696\33\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u0697\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\6\10\1\u0698\10\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\14\10\1\u0699\5\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u04e4\15\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u069a\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u069b\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u069c\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u024b\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\4\10\1\u0425\12\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u069d\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\2\10\1\u03f2"+ - "\14\10\2\0\1\7\22\10\65\0\1\u069e\35\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\7\10\1\u069f"+ - "\7\10\2\0\1\7\22\10\1\7\7\10\1\0\1\u06a0"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u06a1\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\u06a2\1\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\4\10\1\u06a3\1\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u06a4\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\4\10\1\u04f0"+ - "\1\10\14\0\17\10\2\0\1\7\22\10\1\7\5\10"+ - "\1\u06a5\1\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\4\10\1\u06a6\1\u0222\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\14\10\1\u06a7\2\10\1\u06a8"+ - "\2\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\2\10\1\u04dc\17\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u067d\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\57\0\1\u06a9\43\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u06aa\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\3\10\1\u06ab\2\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\4\10"+ - "\1\u06ac\12\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u06ad\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u06ae\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\5\10"+ - "\1\u02bd\1\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\4\10\1\u06a6\1\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\1\10"+ - "\1\u06af\15\10\1\u06a8\2\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\4\10\1\u04f0\12\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\2\10\1\u06b0\17\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u0673\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\4\10"+ - "\1\u03aa\1\10\14\0\1\10\1\u06b1\15\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u06b2\10\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\1\10\1\u06b3\4\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\4\10\1\u06b4\1\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u06b5\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u06b6\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u034a\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\37\0\1\u06b7\143\0"+ - "\1\u06b8\42\0\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\10\1\u06b9\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\1\u06ba\1\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\12\10\1\u06bb\4\10\2\0\1\7\22\10\37\0"+ - "\1\u06bc\63\0\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\13\10\1\u04b9\3\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\u06bd\5\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\1\10\1\u06be\4\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u06bf\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\14\10\1\u06c0\2\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\1\0\1\u06c1\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u06c2\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\66\0\1\u06c3\34\0\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\2\10\1\u06c4\3\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u06c5"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u06c6\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\2\10\1\u0602\14\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u06c7\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u06c8\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u06c9\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\4\10\1\u06ca\1\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\1\10\1\u06cb\4\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\6\10\1\u06cc\10\10\2\0\1\7\22\10\35\0\1\u06cd"+ - "\65\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u0602"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\5\10\1\u06ce\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u06cf\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u06d0\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\16\10\1\u03f2\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\10\1\u0553\4\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u06d1\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\1\u06d2\1\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u06d3\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\2\10\1\u06d4\3\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\6\10"+ - "\1\u06d5\10\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\10\1\u06d6\4\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\1\0\1\u06d7"+ - "\6\10\14\0\17\10\2\0\1\7\22\10\35\0\1\u0561"+ - "\146\0\1\u06d8\41\0\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\6\10\1\u06d9\10\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\2\10"+ - "\1\u024b\14\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\2\10\1\u06da\3\10\14\0\17\10\2\0"+ - "\1\7\22\10\63\0\1\u06db\37\0\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u06dc\10\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u06dd\15\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\4\10\1\u06a6\1\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\17\10\2\0\1\7\16\10\1\u0585"+ - "\3\10\6\0\1\u06de\114\0\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\6\10\1\u06df\10\10\2\0\1\7"+ - "\22\10\62\0\1\u06e0\40\0\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\u0218\1\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u030f\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\3\10\1\u06e1\2\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\5\10"+ - "\1\u06e2\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u06e3\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\1\u040d\1\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\2\10\1\u06e4\14\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\3\10\1\u06e5"+ - "\2\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u06e6\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\2\10\1\u06e7\14\10\2\0\1\7\22\10"+ - "\32\0\1\u06e8\70\0\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\5\10\1\u06e9\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\2\10\1\u06ea"+ - "\14\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u06eb\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\1\u04f0\21\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u06ec\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\4\10\1\u01d3"+ - "\1\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u06ed\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\2\10\1\u0391\14\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\2\10\1\u06ee\3\10"+ - "\14\0\17\10\2\0\1\7\22\10\74\0\1\u06ef\65\0"+ - "\1\u06f0\63\0\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\4\10\1\u06d0\12\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\1\10\1\u06f1\4\10\14\0"+ - "\17\10\2\0\1\7\22\10\65\0\1\u06f2\35\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u06f3\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\5\10\1\240\11\10\2\0\1\7"+ - "\22\10\60\0\1\u06f4\42\0\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\3\10\1\u06f5\2\10\14\0\17\10\2\0\1\7"+ - "\22\10\41\0\1\u06f6\61\0\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\2\10\1\u06f7\14\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\5\10\1\u06f8"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\5\10\1\u046a\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\2\10\1\u06f9"+ - "\3\10\14\0\17\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\13\10\1\u0602\3\10"+ - "\2\0\1\7\22\10\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\2\0"+ - "\6\10\14\0\4\10\1\u06fa\12\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u0644\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\64\0\1\u06fb\36\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\16\10\1\u06fc\3\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\6\10\1\u06fd\10\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\u05d9\5\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\1\u06fe\5\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\7\10\1\u06ff\7\10\2\0\1\7\22\10\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\3\10\1\u0700\2\10\14\0\17\10"+ - "\2\0\1\7\22\10\37\0\1\u0701\111\0\1\u0702\54\0"+ - "\1\u0703\17\0\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\5\10"+ - "\1\u0704\14\0\17\10\2\0\1\7\22\10\66\0\1\u0705"+ - "\34\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\4\10\1\u0706"+ - "\1\10\14\0\17\10\2\0\1\7\22\10\14\0\1\u0707"+ - "\106\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\4\10\1\u0708"+ - "\1\10\14\0\17\10\2\0\1\7\22\10\37\0\1\u0709"+ - "\63\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\1\u0460\5\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\5\10\1\u070a"+ - "\1\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\17\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\17\10\2\0\1\7\14\10\1\u070b\5\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\6\10\1\u057f"+ - "\10\10\2\0\1\7\22\10\63\0\1\u070c\37\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\2\10\1\u070d\3\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\u070e\1\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\3\10\1\u070f\2\10"+ - "\14\0\17\10\2\0\1\7\22\10\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\1\0\1\u0710\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\7\10\1\u0711\7\10\2\0\1\7\22\10\61\0\1\u0712"+ - "\102\0\1\u0713\144\0\1\u0714\37\0\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u0715\10\10\2\0"+ - "\1\7\22\10\40\0\1\u0716\62\0\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\6\10\1\u0717\10\10\2\0"+ - "\1\7\22\10\35\0\1\u0718\65\0\1\7\7\10\1\0"+ - "\1\10\1\141\1\0\2\10\1\0\1\7\1\10\4\0"+ - "\1\u03b7\5\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\22\10\32\0\1\u0333\52\0\1\u0719\15\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\u071a\16\10\2\0"+ - "\1\7\22\10\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\6\10"+ - "\14\0\1\10\1\u071b\15\10\2\0\1\7\22\10\37\0"+ - "\1\u071c\63\0\1\7\7\10\1\0\1\10\1\141\1\0"+ - "\2\10\1\0\1\7\1\10\4\0\6\10\2\0\1\10"+ - "\1\u071d\4\10\14\0\17\10\2\0\1\7\22\10\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\6\10\14\0\13\10\1\u0154"+ - "\3\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\1\u071e\1\10\1\0\1\7\1\10\4\0"+ - "\6\10\2\0\6\10\14\0\17\10\2\0\1\7\22\10"+ - "\116\0\1\u071f\4\0\1\7\7\10\1\0\1\10\1\141"+ - "\1\0\2\10\1\0\1\7\1\10\4\0\6\10\1\0"+ - "\1\u0720\6\10\14\0\17\10\2\0\1\7\22\10\65\0"+ - "\1\u0721\115\0\1\u0722\100\0\1\u0723\64\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\1\10\1\u0724\15\10"+ - "\2\0\1\7\22\10\41\0\1\u0725\61\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\6\10\14\0\17\10\2\0\1\7"+ - "\1\u0726\21\10\36\0\1\u0727\152\0\1\u0728\34\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\2\10\1\0\1\7"+ - "\1\10\4\0\6\10\2\0\3\10\1\u0729\2\10\14\0"+ - "\17\10\2\0\1\7\22\10\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\6\10\14\0\6\10\1\u0615\10\10\2\0\1\7"+ - "\22\10\62\0\1\u072a\40\0\1\7\7\10\1\0\1\10"+ - "\1\141\1\0\2\10\1\0\1\7\1\10\4\0\6\10"+ - "\2\0\5\10\1\u03bc\14\0\17\10\2\0\1\7\22\10"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\2\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\1\u04b9\5\10\14\0"+ - "\17\10\2\0\1\7\22\10\37\0\1\u072b\200\0\1\u072c"+ - "\43\0\1\u072d\147\0\1\u072e\124\0\1\u072f\35\0\1\7"+ - "\7\10\1\0\1\10\1\141\1\0\1\u0730\1\10\1\0"+ - "\1\7\1\10\4\0\6\10\2\0\6\10\14\0\17\10"+ - "\2\0\1\7\22\10\25\0\1\u0731\75\0\1\7\7\10"+ - "\1\0\1\10\1\141\1\0\2\10\1\0\1\7\1\10"+ - "\4\0\6\10\2\0\2\10\1\u0732\3\10\14\0\17\10"+ - "\2\0\1\7\22\10\60\0\1\u0733\130\0\1\u0734\34\0"+ - "\1\7\7\10\1\0\1\10\1\141\1\0\1\u02cd\1\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\22\10\35\0\1\u0735\122\0\1\u0736"+ - "\76\0\1\u072b\150\0\1\u0737\160\0\1\u0561\107\0\1\u06b7"+ - "\40\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\6\10\14\0"+ - "\17\10\2\0\1\7\10\10\1\u03ce\11\10\40\0\1\u0738"+ - "\62\0\1\7\7\10\1\0\1\10\1\141\1\0\2\10"+ - "\1\0\1\7\1\10\4\0\6\10\2\0\1\10\1\u03f2"+ - "\4\10\14\0\17\10\2\0\1\7\22\10\41\0\1\u0561"+ - "\72\0\1\u0739\176\0\1\u073a\66\0\1\u073b\154\0\1\u073c"+ - "\132\0\1\u073d\64\0\1\u073e\145\0\1\u073f\127\0\1\u0740"+ - "\72\0\1\u0741\145\0\1\u0742\102\0\1\u0743\76\0\1\u0744"+ - "\145\0\1\u0745\117\0\1\u0746\77\0\1\u0747\140\0\1\u0748"+ - "\203\0\1\u0749\53\0\1\u074a\167\0\1\u074b\51\0\1\u074c"+ - "\126\0\1\u074d\121\0\1\u074e\143\0\1\u0561\134\0\1\u074f"+ - "\60\0\1\u0750\130\0\1\u027f\77\0\1\u0751\170\0\1\u060a"+ - "\120\0\1\u0752\123\0\1\u0753\77\0\1\u0754\125\0\1\u0627"+ - "\147\0\1\u0561\34\0"; - - private static int [] zzUnpackTrans() { - int [] result = new int[151807]; - int offset = 0; - offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); - offset = zzUnpackTrans(ZZ_TRANS_PACKED_1, offset, result); - return result; - } - - private static int zzUnpackTrans(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - value--; - do result[j++] = value; while (--count > 0); - } - return j; - } - - - /* error codes */ - private static final int ZZ_UNKNOWN_ERROR = 0; - private static final int ZZ_NO_MATCH = 1; - private static final int ZZ_PUSHBACK_2BIG = 2; - - /* error messages for the codes above */ - private static final String ZZ_ERROR_MSG[] = { - "Unkown internal scanner error", - "Error: could not match input", - "Error: pushback value was too large" - }; - - /** - * ZZ_ATTRIBUTE[aState] contains the attributes of state aState - */ - private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); - - private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\3\0\2\1\1\0\12\1\2\11\21\1\2\11\4\1"+ - "\1\11\35\1\1\11\5\1\1\11\12\1\1\11\3\1"+ - "\1\11\1\1\2\11\24\1\1\0\1\1\1\0\7\1"+ - "\2\0\54\1\2\0\120\1\2\0\1\11\4\0\1\11"+ - "\2\0\1\11\16\0\1\11\1\0\1\1\2\0\2\11"+ - "\3\1\1\0\14\1\2\11\3\1\1\0\2\1\1\11"+ - "\5\1\1\11\231\1\33\0\1\11\2\0\1\11\15\1"+ - "\1\11\1\1\1\0\5\1\1\11\163\1\1\0\32\1"+ - "\2\0\1\1\2\0\1\1\15\0\1\11\11\0\1\11"+ - "\15\1\1\0\155\1\1\0\32\1\34\0\16\1\1\0"+ - "\145\1\1\0\27\1\23\0\12\1\1\0\2\1\1\0"+ - "\112\1\1\0\11\1\1\0\33\1\5\0\1\1\4\0"+ - "\14\1\2\0\101\1\2\0\7\1\1\0\33\1\11\0"+ - "\13\1\2\0\76\1\2\0\6\1\1\11\25\1\5\0"+ - "\4\1\1\0\5\1\2\0\3\1\1\0\55\1\2\0"+ - "\27\1\5\0\3\1\2\0\3\1\2\0\3\1\1\0"+ - "\45\1\2\0\21\1\2\0\2\1\2\0\3\1\2\0"+ - "\3\1\1\0\14\1\1\0\23\1\1\0\24\1\2\0"+ - "\2\1\1\0\2\1\1\0\13\1\1\0\12\1\1\0"+ - "\21\1\2\0\3\1\1\0\7\1\1\0\12\1\1\0"+ - "\15\1\2\0\3\1\1\0\4\1\1\0\1\1\1\0"+ - "\11\1\1\0\11\1\2\0\2\1\1\0\2\1\1\0"+ - "\1\1\1\0\7\1\1\0\6\1\2\0\1\1\1\0"+ - "\1\1\1\0\1\1\1\0\4\1\1\0\5\1\3\0"+ - "\1\1\1\0\1\1\1\0\1\1\1\0\2\1\1\0"+ - "\3\1\1\0\1\1\3\0\1\1\1\0\1\1\2\0"+ - "\2\1\1\0\2\1\5\0\1\1\1\0\1\1\2\0"+ - "\1\1\6\0\1\1\1\0\1\1\16\0\1\1\23\0"; - - private static int [] zzUnpackAttribute() { - int [] result = new int[1876]; - int offset = 0; - offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); - return result; - } - - private static int zzUnpackAttribute(String packed, int offset, int [] result) { - int i = 0; /* index in packed string */ - int j = offset; /* index in unpacked array */ - int l = packed.length(); - while (i < l) { - int count = packed.charAt(i++); - int value = packed.charAt(i++); - do result[j++] = value; while (--count > 0); - } - return j; - } - - /** the input device */ - private java.io.Reader zzReader; - - /** the current state of the DFA */ - private int zzState; - - /** the current lexical state */ - private int zzLexicalState = YYINITIAL; - - /** this buffer contains the current text to be matched and is - the source of the yytext() string */ - private char zzBuffer[]; - - /** the textposition at the last accepting state */ - private int zzMarkedPos; - - /** the current text position in the buffer */ - private int zzCurrentPos; - - /** startRead marks the beginning of the yytext() string in the buffer */ - private int zzStartRead; - - /** endRead marks the last character in the buffer, that has been read - from input */ - private int zzEndRead; - - /** zzAtEOF == true <=> the scanner is at the EOF */ - private boolean zzAtEOF; - - /* user code: */ - - - /** - * Constructor. This must be here because JFlex does not generate a - * no-parameter constructor. - */ - public GroovyTokenMaker() { - } - - - /** - * Adds the token specified to the current linked list of tokens. - * - * @param tokenType The token's type. - * @see #addToken(int, int, int) - */ - private void addHyperlinkToken(int start, int end, int tokenType) { - int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so, true); - } - - - /** - * Adds the token specified to the current linked list of tokens. - * - * @param tokenType The token's type. - */ - private void addToken(int tokenType) { - addToken(zzStartRead, zzMarkedPos-1, tokenType); - } - - - /** - * Adds the token specified to the current linked list of tokens. - * - * @param tokenType The token's type. - */ - private void addToken(int start, int end, int tokenType) { - int so = start + offsetShift; - addToken(zzBuffer, start,end, tokenType, so); - } - - - /** - * Adds the token specified to the current linked list of tokens. - * - * @param array The character array. - * @param start The starting offset in the array. - * @param end The ending offset in the array. - * @param tokenType The token's type. - * @param startOffset The offset in the document at which this token - * occurs. - */ - @Override - public void addToken(char[] array, int start, int end, int tokenType, int startOffset) { - super.addToken(array, start,end, tokenType, startOffset); - zzStartRead = zzMarkedPos; - } - - - /** - * Returns the text to place at the beginning and end of a - * line to "comment" it in a this programming language. - * - * @return The start and end strings to add to a line to "comment" - * it out. - */ - @Override - public String[] getLineCommentStartAndEnd() { - return new String[] { "//", null }; - } - - - /** - * Returns the first token in the linked list of tokens generated - * from text. This method must be implemented by - * subclasses so they can correctly implement syntax highlighting. - * - * @param text The text from which to get tokens. - * @param initialTokenType The token type we should start with. - * @param startOffset The offset into the document at which - * text starts. - * @return The first Token in a linked list representing - * the syntax highlighted text. - */ - public Token getTokenList(Segment text, int initialTokenType, int startOffset) { - - resetTokenList(); - this.offsetShift = -text.offset + startOffset; - - // Start off in the proper state. - int state = Token.NULL; - switch (initialTokenType) { - case Token.LITERAL_STRING_DOUBLE_QUOTE: - state = MULTILINE_STRING_DOUBLE; - start = text.offset; - break; - case Token.LITERAL_CHAR: - state = MULTILINE_STRING_SINGLE; - start = text.offset; - break; - case Token.COMMENT_MULTILINE: - state = MLC; - start = text.offset; - break; - case Token.COMMENT_DOCUMENTATION: - state = DOCCOMMENT; - start = text.offset; - break; - default: - state = Token.NULL; - } - - s = text; - try { - yyreset(zzReader); - yybegin(state); - return yylex(); - } catch (IOException ioe) { - ioe.printStackTrace(); - return new TokenImpl(); - } - - } - - - /** - * Returns whether a regular expression token can follow the specified - * token. - * - * @param t The token to check, which may be null. - * @return Whether a regular expression token may follow this one. - */ - private static final boolean regexCanFollow(Token t) { - char ch; - return t==null || - //t.isOperator() || - (t.length()==1 && ( - (ch=t.charAt(0))=='=' || - ch=='(' || - ch==',' || - ch=='?' || - ch==':' || - ch=='[' - )) || - /* Operators "==", "===", "!=", "!==", etc. */ - (t.getType()==Token.OPERATOR && - ((ch=t.charAt(t.length()-1))=='=' || ch=='~')); - } - - - /** - * Refills the input buffer. - * - * @return true if EOF was reached, otherwise - * false. - */ - private boolean zzRefill() { - return zzCurrentPos>=s.offset+s.count; - } - - - /** - * Resets the scanner to read from a new input stream. - * Does not close the old reader. - * - * All internal variables are reset, the old input stream - * cannot be reused (internal buffer is discarded and lost). - * Lexical state is set to YY_INITIAL. - * - * @param reader the new input stream - */ - public final void yyreset(java.io.Reader reader) { - // 's' has been updated. - zzBuffer = s.array; - /* - * We replaced the line below with the two below it because zzRefill - * no longer "refills" the buffer (since the way we do it, it's always - * "full" the first time through, since it points to the segment's - * array). So, we assign zzEndRead here. - */ - //zzStartRead = zzEndRead = s.offset; - zzStartRead = s.offset; - zzEndRead = zzStartRead + s.count - 1; - zzCurrentPos = zzMarkedPos = s.offset; - zzLexicalState = YYINITIAL; - zzReader = reader; - zzAtEOF = false; - } - - - - - /** - * Creates a new scanner - * There is also a java.io.InputStream version of this constructor. - * - * @param in the java.io.Reader to read input from. - */ - public GroovyTokenMaker(java.io.Reader in) { - this.zzReader = in; - } - - /** - * Creates a new scanner. - * There is also java.io.Reader version of this constructor. - * - * @param in the java.io.Inputstream to read input from. - */ - public GroovyTokenMaker(java.io.InputStream in) { - this(new java.io.InputStreamReader(in)); - } - - /** - * Unpacks the compressed character translation table. - * - * @param packed the packed character translation table - * @return the unpacked character translation table - */ - private static char [] zzUnpackCMap(String packed) { - char [] map = new char[0x10000]; - int i = 0; /* index in packed string */ - int j = 0; /* index in unpacked array */ - while (i < 192) { - int count = packed.charAt(i++); - char value = packed.charAt(i++); - do map[j++] = value; while (--count > 0); - } - return map; - } - - - /** - * Closes the input stream. - */ - public final void yyclose() throws java.io.IOException { - zzAtEOF = true; /* indicate end of file */ - zzEndRead = zzStartRead; /* invalidate buffer */ - - if (zzReader != null) - zzReader.close(); - } - - - /** - * Returns the current lexical state. - */ - public final int yystate() { - return zzLexicalState; - } - - - /** - * Enters a new lexical state - * - * @param newState the new lexical state - */ - @Override -public final void yybegin(int newState) { - zzLexicalState = newState; - } - - - /** - * Returns the text matched by the current regular expression. - */ - public final String yytext() { - return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead ); - } - - - /** - * Returns the character at position pos from the - * matched text. - * - * It is equivalent to yytext().charAt(pos), but faster - * - * @param pos the position of the character to fetch. - * A value from 0 to yylength()-1. - * - * @return the character at position pos - */ - public final char yycharat(int pos) { - return zzBuffer[zzStartRead+pos]; - } - - - /** - * Returns the length of the matched text region. - */ - public final int yylength() { - return zzMarkedPos-zzStartRead; - } - - - /** - * Reports an error that occured while scanning. - * - * In a wellformed scanner (no or only correct usage of - * yypushback(int) and a match-all fallback rule) this method - * will only be called with things that "Can't Possibly Happen". - * If this method is called, something is seriously wrong - * (e.g. a JFlex bug producing a faulty scanner etc.). - * - * Usual syntax/scanner level error handling should be done - * in error fallback rules. - * - * @param errorCode the code of the errormessage to display - */ - private void zzScanError(int errorCode) { - String message; - try { - message = ZZ_ERROR_MSG[errorCode]; - } - catch (ArrayIndexOutOfBoundsException e) { - message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR]; - } - - throw new Error(message); - } - - - /** - * Pushes the specified amount of characters back into the input stream. - * - * They will be read again by then next call of the scanning method - * - * @param number the number of characters to be read again. - * This number must not be greater than yylength()! - */ - public void yypushback(int number) { - if ( number > yylength() ) - zzScanError(ZZ_PUSHBACK_2BIG); - - zzMarkedPos -= number; - } - - - /** - * Resumes scanning until the next regular expression is matched, - * the end of input is encountered or an I/O-Error occurs. - * - * @return the next token - * @exception java.io.IOException if any I/O-Error occurs - */ - public com.fr.design.gui.syntax.ui.rsyntaxtextarea.Token yylex() throws java.io.IOException { - int zzInput; - int zzAction; - - // cached fields: - int zzCurrentPosL; - int zzMarkedPosL; - int zzEndReadL = zzEndRead; - char [] zzBufferL = zzBuffer; - char [] zzCMapL = ZZ_CMAP; - - int [] zzTransL = ZZ_TRANS; - int [] zzRowMapL = ZZ_ROWMAP; - int [] zzAttrL = ZZ_ATTRIBUTE; - - while (true) { - zzMarkedPosL = zzMarkedPos; - - zzAction = -1; - - zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL; - - zzState = zzLexicalState; - - - zzForAction: { - while (true) { - - if (zzCurrentPosL < zzEndReadL) - zzInput = zzBufferL[zzCurrentPosL++]; - else if (zzAtEOF) { - zzInput = YYEOF; - break zzForAction; - } - else { - // store back cached positions - zzCurrentPos = zzCurrentPosL; - zzMarkedPos = zzMarkedPosL; - boolean eof = zzRefill(); - // get translated positions and possibly new buffer - zzCurrentPosL = zzCurrentPos; - zzMarkedPosL = zzMarkedPos; - zzBufferL = zzBuffer; - zzEndReadL = zzEndRead; - if (eof) { - zzInput = YYEOF; - break zzForAction; - } - else { - zzInput = zzBufferL[zzCurrentPosL++]; - } - } - int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ]; - if (zzNext == -1) break zzForAction; - zzState = zzNext; - - int zzAttributes = zzAttrL[zzState]; - if ( (zzAttributes & 1) == 1 ) { - zzAction = zzState; - zzMarkedPosL = zzCurrentPosL; - if ( (zzAttributes & 8) == 8 ) break zzForAction; - } - - } - } - - // store back cached position - zzMarkedPos = zzMarkedPosL; - - switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { - case 20: - { addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); addNullToken(); return firstToken; - } - case 47: break; - case 3: - { addToken(Token.IDENTIFIER); - } - case 48: break; - case 42: - { addToken(Token.LITERAL_BOOLEAN); - } - case 49: break; - case 6: - { start = zzMarkedPos-1; yybegin(STRING_DOUBLE); - } - case 50: break; - case 35: - { start = zzMarkedPos-3; yybegin(MULTILINE_STRING_DOUBLE); - } - case 51: break; - case 13: - { addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); return firstToken; - } - case 52: break; - case 34: - { addToken(Token.ERROR_CHAR); - } - case 53: break; - case 21: - { addToken(Token.ERROR_NUMBER_FORMAT); - } - case 54: break; - case 5: - { addToken(Token.ERROR_CHAR); addNullToken(); return firstToken; - } - case 55: break; - case 11: - { addToken(Token.ANNOTATION); - } - case 56: break; - case 28: - { addToken(Token.FUNCTION); - } - case 57: break; - case 33: - { start = zzMarkedPos-3; yybegin(MULTILINE_STRING_SINGLE); - } - case 58: break; - case 2: - { addToken(Token.ERROR_IDENTIFIER); - } - case 59: break; - case 36: - { boolean highlightedAsRegex = false; - if (zzBuffer[zzStartRead]=='~' || firstToken==null) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - else { - // If this is *likely* to be a regex, based on - // the previous token, highlight it as such. - Token t = firstToken.getLastNonCommentNonWhitespaceToken(); - if (regexCanFollow(t)) { - addToken(Token.REGEX); - highlightedAsRegex = true; - } - } - // If it doesn't *appear* to be a regex, highlight it as - // individual tokens. - if (!highlightedAsRegex) { - int temp = zzStartRead + 1; - addToken(zzStartRead, zzStartRead, Token.OPERATOR); - zzStartRead = zzCurrentPos = zzMarkedPos = temp; - } - } - case 60: break; - case 25: - { addToken(Token.COMMENT_EOL); addNullToken(); return firstToken; - } - case 61: break; - case 40: - { yybegin(YYINITIAL); addToken(start,zzStartRead+2, Token.LITERAL_CHAR); - } - case 62: break; - case 45: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 63: break; - case 31: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addToken(temp,zzMarkedPos-1, Token.PREPROCESSOR); start = zzMarkedPos; - } - case 64: break; - case 44: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_DOCUMENTATION); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_DOCUMENTATION); start = zzMarkedPos; - } - case 65: break; - case 14: - { /* Skip escaped chars, handles case: '\"""'. */ - } - case 66: break; - case 24: - { addToken(Token.LITERAL_CHAR); - } - case 67: break; - case 18: - { /* Skip escaped chars. */ - } - case 68: break; - case 39: - { yybegin(YYINITIAL); addToken(start,zzStartRead+2, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 69: break; - case 23: - { addToken(Token.LITERAL_NUMBER_HEXADECIMAL); - } - case 70: break; - case 26: - { start = zzMarkedPos-2; yybegin(MLC); - } - case 71: break; - case 8: - { addToken(Token.WHITESPACE); - } - case 72: break; - case 30: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_DOCUMENTATION); - } - case 73: break; - case 38: - { addToken(Token.DATA_TYPE); - } - case 74: break; - case 29: - { yybegin(YYINITIAL); addToken(start,zzStartRead+1, Token.COMMENT_MULTILINE); - } - case 75: break; - case 4: - { addToken(Token.LITERAL_NUMBER_DECIMAL_INT); - } - case 76: break; - case 32: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); addToken(temp,zzMarkedPos-1, Token.VARIABLE); start = zzMarkedPos; - } - case 77: break; - case 19: - { yybegin(YYINITIAL); addToken(start,zzStartRead, Token.LITERAL_STRING_DOUBLE_QUOTE); - } - case 78: break; - case 16: - { /* Skip escaped chars, handles case: "\'''". */ - } - case 79: break; - case 37: - { start = zzMarkedPos-3; yybegin(DOCCOMMENT); - } - case 80: break; - case 27: - { addToken(Token.RESERVED_WORD); - } - case 81: break; - case 43: - { int temp=zzStartRead; addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); addHyperlinkToken(temp,zzMarkedPos-1, Token.COMMENT_MULTILINE); start = zzMarkedPos; - } - case 82: break; - case 46: - { addToken(Token.RESERVED_WORD_2); - } - case 83: break; - case 10: - { addToken(Token.SEPARATOR); - } - case 84: break; - case 7: - { addNullToken(); return firstToken; - } - case 85: break; - case 12: - { addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 86: break; - case 9: - { addToken(Token.OPERATOR); - } - case 87: break; - case 17: - { addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 88: break; - case 22: - { addToken(Token.LITERAL_NUMBER_FLOAT); - } - case 89: break; - case 41: - { addToken(Token.COMMENT_MULTILINE); - } - case 90: break; - case 1: - { - } - case 91: break; - case 15: - { addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 92: break; - default: - if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { - zzAtEOF = true; - switch (zzLexicalState) { - case MULTILINE_STRING_DOUBLE: { - addToken(start,zzStartRead-1, Token.LITERAL_STRING_DOUBLE_QUOTE); return firstToken; - } - case 1877: break; - case DOCCOMMENT: { - yybegin(YYINITIAL); addToken(start,zzEndRead, Token.COMMENT_DOCUMENTATION); return firstToken; - } - case 1878: break; - case YYINITIAL: { - addNullToken(); return firstToken; - } - case 1879: break; - case MLC: { - addToken(start,zzStartRead-1, Token.COMMENT_MULTILINE); return firstToken; - } - case 1880: break; - case STRING_DOUBLE: { - addToken(start,zzStartRead-1, Token.ERROR_STRING_DOUBLE); return firstToken; - } - case 1881: break; - case MULTILINE_STRING_SINGLE: { - addToken(start,zzStartRead-1, Token.LITERAL_CHAR); return firstToken; - } - case 1882: break; - default: - return null; - } - } - else { - zzScanError(ZZ_NO_MATCH); - } - } - } - } - - -} \ No newline at end of file From e5dd9301366b1e0bfca3fdf7e33e4af152ff0324 Mon Sep 17 00:00:00 2001 From: neil Date: Fri, 2 Dec 2016 09:50:49 +0800 Subject: [PATCH 81/86] 1 --- .../gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java b/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java index bc2617b21e..1736b96fea 100644 --- a/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java +++ b/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java @@ -1,7 +1,7 @@ /* The following code was generated by JFlex 1.4.1 on 10/16/06 10:31 AM */ /* - * 03/23/2005 + * 03/23/2005 * * FortranTokenMaker.java - Scanner for the Fortran programming language. * From e6cb548be4081d17ac7db45f73002cd7912affc6 Mon Sep 17 00:00:00 2001 From: neil Date: Fri, 2 Dec 2016 09:51:01 +0800 Subject: [PATCH 82/86] 1 --- .../gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java b/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java index 1736b96fea..bc2617b21e 100644 --- a/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java +++ b/designer_base/src/com/fr/design/gui/syntax/ui/rsyntaxtextarea/modes/FortranTokenMaker.java @@ -1,7 +1,7 @@ /* The following code was generated by JFlex 1.4.1 on 10/16/06 10:31 AM */ /* - * 03/23/2005 + * 03/23/2005 * * FortranTokenMaker.java - Scanner for the Fortran programming language. * From 65f79d656478327be5542307ff5950f334f3fbea Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 7 Dec 2016 10:41:58 +0800 Subject: [PATCH 83/86] =?UTF-8?q?REPORT-875=20=E4=BF=AE=E5=A4=8D=E7=AB=8B?= =?UTF-8?q?=E5=8D=B3=E9=87=8D=E5=90=AF=E6=97=B6=EF=BC=8C=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E4=BF=9D=E5=AD=98xml=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/actions/file/PreferenceAction.java | 1 + .../design/actions/file/PreferencePane.java | 38 ++++++++++++------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/file/PreferenceAction.java b/designer_base/src/com/fr/design/actions/file/PreferenceAction.java index f3f5ef3250..71c25837db 100644 --- a/designer_base/src/com/fr/design/actions/file/PreferenceAction.java +++ b/designer_base/src/com/fr/design/actions/file/PreferenceAction.java @@ -38,6 +38,7 @@ public class PreferenceAction extends UpdateAction { DesignerEnvManager.getEnvManager().saveXMLFile(); JTemplate jt = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); jt.refreshToolArea(); + preferencePane.showRestartDialog(); } }); diff --git a/designer_base/src/com/fr/design/actions/file/PreferencePane.java b/designer_base/src/com/fr/design/actions/file/PreferencePane.java index 30628c3f14..d24305ca1d 100644 --- a/designer_base/src/com/fr/design/actions/file/PreferencePane.java +++ b/designer_base/src/com/fr/design/actions/file/PreferencePane.java @@ -83,6 +83,8 @@ public class PreferencePane extends BasicPane { }; private static int designerEnvLanguageIndex; // 打开设置对话框时,设计器使用的语言 + private boolean languageChanged; // 是否修改了设计器语言设置 + //设置是否支持undo private UICheckBox supportUndoCheckBox; //设置最大撤销次数 @@ -627,25 +629,35 @@ public class PreferencePane extends BasicPane { return l; } + // 如果语言设置改变了,则显示重启对话框 + public void showRestartDialog() { + if (!languageChanged) { + return; + } + int rv = JOptionPane.showOptionDialog( + null, + Inter.getLocText("FR-Designer_Language_Change_Successful"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.YES_NO_OPTION, + JOptionPane.INFORMATION_MESSAGE, + null, + new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later")}, + null + ); + if (rv == JOptionPane.OK_OPTION) { + RestartHelper.restart(); + } + } + @Override public BasicDialog showWindow(Window window) { return showWindow(window, new DialogActionAdapter() { @Override public void doOk() { if (languageComboBox.getSelectedIndex() != designerEnvLanguageIndex) { - int rv = JOptionPane.showOptionDialog( - null, - Inter.getLocText("FR-Designer_Language_Change_Successful"), - Inter.getLocText("FR-Designer-Plugin_Warning"), - JOptionPane.YES_NO_OPTION, - JOptionPane.INFORMATION_MESSAGE, - null, - new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later")}, - null - ); - if (rv == JOptionPane.OK_OPTION) { - RestartHelper.restart(); - } + languageChanged = true; + } else { + languageChanged = false; } } }); From b194ae08d806940fff6d83444c10367f33fcbfda Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 7 Dec 2016 10:47:25 +0800 Subject: [PATCH 84/86] =?UTF-8?q?REPORT-849=20=E5=AD=98=E5=82=A8=E8=BF=87?= =?UTF-8?q?=E7=A8=8B=E7=AA=97=E5=8F=A3=E4=B9=9F=E9=9C=80=E8=A6=81=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=8B=96=E6=8B=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tabledatapane/ProcedureDataPane.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index 19cb45fcad..600481428e 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -11,13 +11,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import javax.swing.BorderFactory; -import javax.swing.Box; -import javax.swing.BoxLayout; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.JToolBar; -import javax.swing.SwingWorker; +import javax.swing.*; import com.fr.base.BaseUtils; import com.fr.base.FRContext; @@ -45,6 +39,7 @@ import com.fr.design.gui.itoolbar.UIToolbar; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.menu.SeparatorDef; import com.fr.design.menu.ToolBarDef; +import com.fr.design.utils.gui.GUICoreUtils; import com.fr.file.DatasourceManager; import com.fr.general.Inter; import com.fr.script.Calculator; @@ -119,8 +114,13 @@ public class ProcedureDataPane extends AbstractTableDataPane imp // 左边的Panel,上面是选择DatabaseConnection的ComboBox,下面DatabaseConnection对应的Table initconnectionTableProcedurePane(); this.setLayout(new BorderLayout(4, 4)); - this.add(connectionTableProcedurePane, BorderLayout.WEST); - this.add(sqlSplitPane, BorderLayout.CENTER); + connectionTableProcedurePane.setMinimumSize(new Dimension(155, 500)); + box.setMinimumSize(new Dimension(310, 400)); + // 使用SplitPane + JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, connectionTableProcedurePane, sqlSplitPane); + mainSplitPane.setBorder(BorderFactory.createLineBorder(GUICoreUtils.getTitleLineBorderColor())); + mainSplitPane.setOneTouchExpandable(true); + this.add(mainSplitPane, BorderLayout.CENTER); } private void initconnectionTableProcedurePane() { From eba088f61b55608f69b6c05ca8f24ea4526fb464 Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Wed, 7 Dec 2016 17:26:32 +0800 Subject: [PATCH 85/86] =?UTF-8?q?REPORT-677=20=E5=88=A0=E9=99=A4=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=E9=83=A8=E5=88=86=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原因:1.因为和之前的js那边的方法名一致,参数不同,经常会出现方法名那边找错了,导致登陆触发不完善。 2.主要是方法名和参数的问题,js那边虽然写死了带回调的,但是java这边感觉像是bug,走不到应该回调的地方。 --- .../src/com/fr/design/extra/PluginWebBridge.java | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/designer_base/src/com/fr/design/extra/PluginWebBridge.java b/designer_base/src/com/fr/design/extra/PluginWebBridge.java index 15bd72c09c..12c3e85c41 100644 --- a/designer_base/src/com/fr/design/extra/PluginWebBridge.java +++ b/designer_base/src/com/fr/design/extra/PluginWebBridge.java @@ -529,17 +529,6 @@ public class PluginWebBridge { return LoginWebBridge.getHelper().pluginManageLogin(username, password, uiLabel); } - /** - * 插件管理部分的登陆的回调处理 - * @param username - * @param password - * @param callback - */ - public void defaultLogin(String username, String password, final JSObject callback) { - Task task = new PluginTask<>(webEngine, callback, new PluginLoginExecutor(username, password, uiLabel)); - new Thread(task).start(); - } - /** * 弹出QQ授权页面 */ @@ -556,4 +545,4 @@ public class PluginWebBridge { DesignerEnvManager.getEnvManager().setInShowBBsName(StringUtils.EMPTY); uiLabel.setText(Inter.getLocText("FR-Base_UnSignIn")); } -} \ No newline at end of file +} From 1c86462eb8938d68c9ddc1c4aea10b67c4ff69bf Mon Sep 17 00:00:00 2001 From: neil Date: Thu, 8 Dec 2016 11:08:36 +0800 Subject: [PATCH 86/86] =?UTF-8?q?=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.dev.gradle.bak | 86 ---------------- build.master.gradle.bak | 2 +- build.release.gradle.bak | 2 +- .../design/actions/file/PreferencePane.java | 64 +++--------- .../data/datapane/TableDataTreePane.java | 9 +- .../design/extra/WebManagerPaneFactory.java | 99 +++++++++++++++++++ designer_base/src/com/fr/env/RemoteEnv.java | 60 +++++------ .../fr/design/mainframe/ComponentTree.java | 1 + .../design/mainframe/WidgetPropertyPane.java | 3 + .../parameter/ParameterToolBarPane.java | 30 +++--- 10 files changed, 158 insertions(+), 198 deletions(-) delete mode 100644 build.dev.gradle.bak create mode 100644 designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java diff --git a/build.dev.gradle.bak b/build.dev.gradle.bak deleted file mode 100644 index c5cc1b92da..0000000000 --- a/build.dev.gradle.bak +++ /dev/null @@ -1,86 +0,0 @@ -apply plugin: "java" -tasks.withType(JavaCompile){ - options.encoding = "UTF-8" -} - -def basicDir="../../" -def libDir="${basicDir}/finereport-lib-stable" -//获取什么分支名 -FileTree files =fileTree(dir:"./",include:"build.*.gradle") -def buildDir=files[0].path.substring(0,files[0].path.lastIndexOf ("\\")) -def branchName=buildDir.substring(buildDir.lastIndexOf ("\\")+1) - -task appletJar<<{ - - ant{ - mkdir(dir:"${libDir}/tmp-${branchName}") - mkdir(dir:"build/classes/") - copy(todir:"build/classes/"){ - fileset(dir:"${basicDir}/finereport-core-stable/${branchName}/build/classes/main") - - fileset(dir:"${basicDir}/finereport-chart-stable/${branchName}/build/classes/main") - - fileset(dir:"${basicDir}/finereport-report-stable/${branchName}/build/classes/main") - - fileset(dir:"${basicDir}/finereport-platform-stable/${branchName}/build/classes/main") - - fileset(dir:"${basicDir}/finereport-performance-stable/${branchName}/build/classes/main") - - } - unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"${libDir}/tmp-${branchName}") - unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") - jar(jarfile:"build/libs/fr-applet-8.0.jar"){ - fileset(dir:"build/classes"){ - exclude(name:"*.*") - exclude(name:"bin/*.*") - exclude(name:"classes/**") - exclude(name:"com/fr/schedule/**") - exclude(name:"com/fr/cell/**") - exclude(name:"com/fr/dialog/**") - exclude(name:"com/fr/view/**") - exclude(name:"com/fr/web/**") - exclude(name:"com/fr/fs/**") - exclude(name:"com/fr/design/**") - exclude(name:"com/fr/start/**") - exclude(name:"com/fr/process/**") - } - fileset(dir:"${libDir}/tmp-${branchName}"){ - include(name:"javax/mail/**") - include(name:"javax/servlet/**") - include(name:"org/freehep/**") - include(name:"com/fr/third/JAI/**") - include(name:"com/fr/third/antlr/**") - include(name:"com/fr/third/javax/**") - include(name:"com/sun/xml/**") - include(name:"javax/xml/**") - - } - fileset(dir:"build/classes"){ - include(name:"com/fr/web/*.class") - include(name:"com/fr/web/attr/*.class") - } - } - delete(dir:"${libDir}/tmp-${branchName}") - def jdk6home= "D:/FineReport/develop/java/jdk1.6u35" - def keystore="frapplet.store" - def keycert="fr.cert" - def keypassword="123456" - def keyalias="fr" - - exec(executable:"${jdk6home}/bin/keytool"){ - arg(line:"-genkey -dname "CN=FineReport L=NanJing C=China" -keystore ${keystore} -alias ${keyalias} -validity 3650 -storepass ${keypassword}") - } - exec(executable:"${jdk6home}/bin/keytool"){ - arg(line:"-export -keystore ${keystore} -alias ${keyalias} -file ${keycert} -storepass ${keypassword}") - } - - exec(executable:"${jdk6home}/bin/jarsigner"){ - arg(line:"-keystore ${keystore} -storepass ${keypassword} 'build/libs/fr-applet-8.0.jar' ${keyalias}") - } - delete(file:"${keystore}") - delete(file:"${keycert}") - delete(dir:"build/classes") - - } - -} \ No newline at end of file diff --git a/build.master.gradle.bak b/build.master.gradle.bak index c5cc1b92da..a10a5e4277 100644 --- a/build.master.gradle.bak +++ b/build.master.gradle.bak @@ -28,7 +28,7 @@ task appletJar<<{ } unjar(src:"${libDir}/${branchName}/3rd.jar",dest:"${libDir}/tmp-${branchName}") - unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/branchName/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") jar(jarfile:"build/libs/fr-applet-8.0.jar"){ fileset(dir:"build/classes"){ exclude(name:"*.*") diff --git a/build.release.gradle.bak b/build.release.gradle.bak index 44aacadb4d..d8afaf2bb8 100644 --- a/build.release.gradle.bak +++ b/build.release.gradle.bak @@ -27,7 +27,7 @@ task appletJar<<{ } unjar(src:"${libDir}/3rd.jar",dest:"${libDir}/tmp-${branchName}") - unjar(src:"${libDir}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") + unjar(src:"${libDir}/${branchName}/servlet-api.jar",dest:"${libDir}/tmp-${branchName}") jar(jarfile:"build/libs/fr-applet-8.0.jar"){ fileset(dir:"build/classes"){ exclude(name:"*.*") diff --git a/designer_base/src/com/fr/design/actions/file/PreferencePane.java b/designer_base/src/com/fr/design/actions/file/PreferencePane.java index d24305ca1d..0ddb424c70 100644 --- a/designer_base/src/com/fr/design/actions/file/PreferencePane.java +++ b/designer_base/src/com/fr/design/actions/file/PreferencePane.java @@ -1,13 +1,10 @@ package com.fr.design.actions.file; import com.fr.base.BaseUtils; -import com.fr.base.FRContext; import com.fr.design.DesignerEnvManager; -import com.fr.design.RestartHelper; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; -import com.fr.design.dialog.DialogActionListener; import com.fr.design.editor.editor.IntegerEditor; import com.fr.design.gui.frpane.UITabbedPane; import com.fr.design.gui.ibutton.UIButton; @@ -31,7 +28,9 @@ import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.File; +import java.util.ArrayList; import java.util.Locale; +import java.util.Map; /** * 选项对话框 @@ -74,16 +73,14 @@ public class PreferencePane extends BasicPane { private static final String DISPLAY_MINUS = "-"; private static final FRLevel[] LOG = {FRLevel.SEVERE, FRLevel.WARNING, FRLevel.INFO, FRLevel.DEBUG}; - private static final String[] LANGUAGE = {Inter.getLocText("FR-Designer_Language_Default"), - getLocaledLanguage("Simplified_Chinese_Language", Locale.SIMPLIFIED_CHINESE), - getLocaledLanguage("English_Language", Locale.ENGLISH), - getLocaledLanguage("Japanese_Language", Locale.JAPAN), - getLocaledLanguage("Traditional_Chinese_Language", Locale.TRADITIONAL_CHINESE), - getLocaledLanguage("Korea_Language",Locale.KOREA), + private static java.util.List LANGUAGE = new ArrayList<>(); + static { + Map map = Inter.getSupportLocaleMap(); + LANGUAGE.add(Inter.getLocText("FR-Designer_Language_Default")); + for(Locale locale : map.keySet()){ + LANGUAGE.add(getLocaledLanguage(map.get(locale), locale)); + } }; - private static int designerEnvLanguageIndex; // 打开设置对话框时,设计器使用的语言 - - private boolean languageChanged; // 是否修改了设计器语言设置 //设置是否支持undo private UICheckBox supportUndoCheckBox; @@ -361,7 +358,7 @@ public class PreferencePane extends BasicPane { JPanel LanguagePane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Choose_Language")); generalPane.add(languageAndDashBoard_pane); languageAndDashBoard_pane.add(LanguagePane); - languageComboBox = new UIComboBox(LANGUAGE); + languageComboBox = new UIComboBox(LANGUAGE.toArray()); languageComboBox.setFont(FRFont.getInstance("Dialog", Font.PLAIN, 12));//为了在中文系统中显示韩文 ActionLabel languageLabel = new ActionLabel(Inter.getLocText("FR-Designer_Designer_Language")); languageLabel.addActionListener(new ActionListener() { @@ -532,8 +529,7 @@ public class PreferencePane extends BasicPane { this.logLevelComboBox.setSelectedItem(FRLevel.getByLevel(designerEnvManager.getLogLevel())); - this.languageComboBox.setSelectedItem(LANGUAGE[designerEnvManager.getLanguage()]); - designerEnvLanguageIndex = designerEnvManager.getLanguage(); + this.languageComboBox.setSelectedItem(LANGUAGE.get(designerEnvManager.getLanguage())); this.pageLengthComboBox.setSelectedIndex(designerEnvManager.getPageLengthUnit()); this.reportLengthComboBox.setSelectedIndex(designerEnvManager.getReportLengthUnit()); @@ -620,46 +616,12 @@ public class PreferencePane extends BasicPane { private int getLanguageInt() { int l = 0; String lang = (String) this.languageComboBox.getSelectedItem(); - for (int i = 0; i < LANGUAGE.length; i++) { - if (ComparatorUtils.equals(lang, LANGUAGE[i])) { + for (int i = 0; i < LANGUAGE.size(); i++) { + if (ComparatorUtils.equals(lang, LANGUAGE.get(i))) { l = i; break; } } return l; } - - // 如果语言设置改变了,则显示重启对话框 - public void showRestartDialog() { - if (!languageChanged) { - return; - } - int rv = JOptionPane.showOptionDialog( - null, - Inter.getLocText("FR-Designer_Language_Change_Successful"), - Inter.getLocText("FR-Designer-Plugin_Warning"), - JOptionPane.YES_NO_OPTION, - JOptionPane.INFORMATION_MESSAGE, - null, - new String[]{Inter.getLocText("FR-Designer-Basic_Restart_Designer"), Inter.getLocText("FR-Designer-Basic_Restart_Designer_Later")}, - null - ); - if (rv == JOptionPane.OK_OPTION) { - RestartHelper.restart(); - } - } - - @Override - public BasicDialog showWindow(Window window) { - return showWindow(window, new DialogActionAdapter() { - @Override - public void doOk() { - if (languageComboBox.getSelectedIndex() != designerEnvLanguageIndex) { - languageChanged = true; - } else { - languageChanged = false; - } - } - }); - } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java index 5a893803c2..219093c6d9 100644 --- a/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java +++ b/designer_base/src/com/fr/design/data/datapane/TableDataTreePane.java @@ -38,7 +38,6 @@ import java.awt.dnd.DnDConstants; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -276,15 +275,13 @@ public class TableDataTreePane extends BasicTableDataTreePane { * @param srcName 数据集来源(比如报表块,就是报表块的名称) * @param tableDataSource 数据集 */ - public Map addTableData(String srcName, TableDataSource tableDataSource) { - Map tdNameMap = new HashMap<>(); + public void addTableData(String srcName, TableDataSource tableDataSource) { allDSNames = DesignTableDataManager.getAllDSNames(tc.getBook()); DesignTableDataManager.setThreadLocal(DesignTableDataManager.NO_PARAMETER); TableDataSource tds = tc.getBook(); Iterator tdIterator = tableDataSource.getTableDataNameIterator(); while (tdIterator.hasNext()) { String tdName = (String) tdIterator.next(); - String oldName = tdName; TableData td = tableDataSource.getTableData(tdName); if (tds.getTableData(tdName) != null || isDsNameRepeaded(tdName)) {//如果有同名的就拼上来源名称 tdName = srcName + tdName; @@ -295,12 +292,8 @@ public class TableDataTreePane extends BasicTableDataTreePane { tdName += i; } tds.putTableData(tdName, td); - if (!ComparatorUtils.equals(oldName, tdName)) { - tdNameMap.put(oldName, tdName); - } } tc.parameterChanged(); dataTree.refresh(); - return Collections.unmodifiableMap(tdNameMap); } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java b/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java new file mode 100644 index 0000000000..faf67d1778 --- /dev/null +++ b/designer_base/src/com/fr/design/extra/WebManagerPaneFactory.java @@ -0,0 +1,99 @@ +package com.fr.design.extra; + +import com.fr.design.dialog.BasicPane; +import com.fr.design.gui.frpane.UITabbedPane; +import com.fr.general.Inter; +import com.fr.stable.StableUtils; +import javafx.embed.swing.JFXPanel; + +import java.awt.*; +import java.io.File; +import java.net.URL; + +/** + * Created by vito on 2016/9/28. + */ +public class WebManagerPaneFactory { + private String installHome; + + public WebManagerPaneFactory() { + if (StableUtils.isDebug()) { + URL url = ClassLoader.getSystemResource(""); + this.installHome = url.getPath(); + } else { + this.installHome = StableUtils.getInstallHome(); + } + } + + public BasicPane createPluginPane() { + if (StableUtils.getMajorJavaVersion() == 8) { + return new ShopManagerPane(new ShopPaneConfig() { + @Override + String setMainJS() { + String relativePath = "/scripts/store/web/index.html"; + return StableUtils.pathJoin(new File(installHome).getAbsolutePath(), relativePath); + } + + @Override + String setScriptsId() { + return "shop_scripts"; + } + + @Override + JFXPanel setWebPane() { + return new PluginWebPane(setMainJS()); + } + + }); + } else { + BasicPane traditionalStorePane = new BasicPane() { + @Override + protected String title4PopupWindow() { + return Inter.getLocText("FR-Designer-Plugin_Manager"); + } + }; + traditionalStorePane.setLayout(new BorderLayout()); + traditionalStorePane.add(initTraditionalStore(), BorderLayout.CENTER); + return traditionalStorePane; + } + } + + public BasicPane createReusePane() { + return new ShopManagerPane(new ShopPaneConfig() { + @Override + String setMainJS() { + String relativePath = "/scripts/store/reuse/index.html"; + return StableUtils.pathJoin(new File(installHome).getAbsolutePath(), relativePath); + } + + @Override + String setScriptsId() { + return "reuse_scripts"; + } + + @Override + JFXPanel setWebPane() { + return new ReuseWebPane(setMainJS()); + } + }); + } + + /** + * 以关键词打开设计器商店 + * + * @param keyword 关键词 + */ + public BasicPane createPluginPane(String keyword) { + PluginWebBridge.getHelper().openWithSearch(keyword); + return createPluginPane(); + } + + private Component initTraditionalStore() { + UITabbedPane tabbedPane = new UITabbedPane(); + PluginInstalledPane installedPane = new PluginInstalledPane(); + tabbedPane.addTab(installedPane.tabTitle(), installedPane); + tabbedPane.addTab(Inter.getLocText("FR-Designer-Plugin_Update"), new PluginUpdatePane(tabbedPane)); + tabbedPane.addTab(Inter.getLocText("FR-Designer-Plugin_All_Plugins"), new PluginFromStorePane(tabbedPane)); + return tabbedPane; + } +} diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 70c18fbd0d..ce7118e69b 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2114,7 +2114,6 @@ public class RemoteEnv implements Env { StableUtils.mkdirs(target); File cacheDir = null; File zip = null; - OutputStream out = null; try { HashMap para = new HashMap(); para.put("op", "fr_remote_design"); @@ -2123,15 +2122,16 @@ public class RemoteEnv implements Env { para.put("currentUsername", this.getUser()); HttpClient client = createHttpMethod(para); - InputStream input = client.getResponseStream();//拿到服务端传过来的整个共享文件夹的压缩文件的文件流 + InputStream input = client.getResponseStream(); zip = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), "share.zip"); cacheDir = new File(StableUtils.pathJoin(CacheManager.getProviderInstance().getCacheDirectory().getAbsolutePath()), ShareConstants.DIR_SHARE_CACHE); StableUtils.deleteFile(cacheDir); StableUtils.mkdirs(cacheDir); StableUtils.makesureFileExist(zip); - out = new FileOutputStream(zip); - IOUtils.copyBinaryTo(input, out);//放到本地缓存目录下 - + FileOutputStream out = new FileOutputStream(zip); + IOUtils.copyBinaryTo(input, out); + out.flush(); + out.close(); IOUtils.unzip(zip, cacheDir.getAbsolutePath(), EncodeConstants.ENCODING_GBK);//先解压到临时目录 if (cacheDir.exists() && cacheDir.isDirectory()) { return cacheDir.listFiles(new FilenameFilter() { @@ -2144,10 +2144,6 @@ public class RemoteEnv implements Env { } catch (Exception e) { FRContext.getLogger().error(e.getMessage()); } finally { - if (out != null) { - out.flush(); - out.close(); - } StableUtils.deleteFile(zip); } return new File[0]; @@ -2155,33 +2151,25 @@ public class RemoteEnv implements Env { @Override public boolean installREUFile(File reuFile) { - if (reuFile == null) { - return false; - } - File tempFile = new File(CacheManager.getProviderInstance().getCacheDirectory(), "temp_remote"); - IOUtils.unzip(reuFile, tempFile.getAbsolutePath()); - String shareXMLName = StableUtils.pathJoin(tempFile.getAbsolutePath(), ShareConstants.NAME_XML_MODULE); - String helpXMLName = StableUtils.pathJoin(tempFile.getAbsolutePath(), ShareConstants.NAME_XML_HELP); - try { - HashMap para = new HashMap(); - para.put("op", "fr_remote_design"); - para.put("cmd", "design_install_reufile"); - para.put("current_uid", this.createUserID()); - para.put("currentUsername", this.getUser()); - para.put("reuFileName", reuFile.getName()); - - HttpClient client = createHttpMethod(para); - client.setContent(IOUtils.inputStream2Bytes(new FileInputStream(new File(shareXMLName)))); - InputStream input = execute4InputStream(client); - client.release(); - para.put("isComplete", "true"); - HttpClient client1 = createHttpMethod(para); - client1.setContent(IOUtils.inputStream2Bytes(new FileInputStream(new File(helpXMLName)))); - InputStream input1 = execute4InputStream(client1); - return ComparatorUtils.equals(stream2String(input), "true") && ComparatorUtils.equals(stream2String(input1), "true"); - } catch (Exception e) { - return false; - } +// if (reuFile == null) { +// return false; +// } +// try { +// HashMap para = new HashMap(); +// para.put("op", "fr_remote_design"); +// para.put("cmd", "design_install_reufile"); +// para.put("current_uid", this.createUserID()); +// para.put("currentUsername", this.getUser()); +// para.put("reuFileName", reuFile.getName()); +// +// HttpClient client = createHttpMethod(para); +// client.setContent(IOUtils.inputStream2Bytes(new FileInputStream(reuFile))); +// InputStream input = execute4InputStream(client); +// return ComparatorUtils.equals(stream2String(input), "true"); +// } catch (Exception e) { +// return false; +// } + return false; } @Override diff --git a/designer_form/src/com/fr/design/mainframe/ComponentTree.java b/designer_form/src/com/fr/design/mainframe/ComponentTree.java index f31a64eedf..4d58c4887d 100644 --- a/designer_form/src/com/fr/design/mainframe/ComponentTree.java +++ b/designer_form/src/com/fr/design/mainframe/ComponentTree.java @@ -97,6 +97,7 @@ public class ComponentTree extends JTree { scrollPathToVisible(treepath); } + /** * 刷新 */ diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index 860f9f52db..cc7f1d7690 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -38,6 +38,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper private EventPropertyTable eventTable; private List widgetPropertyTables; private FormDesigner designer; + private ComponentTree componentTree; private JPanel wsp; private MobileWidgetTable mobileWidgetTable; private MobileBodyWidgetTable mobileBodyWidgetTable; @@ -121,6 +122,8 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper clearDockingView(); return; } + + componentTree = new ComponentTree(designer); widgetPropertyTables = new ArrayList(); propertyTable = new WidgetPropertyTable(designer); designer.addDesignerEditListener(new WidgetPropertyDesignerAdapter(propertyTable)); diff --git a/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java b/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java index 9a3f8b563f..aa7c11660a 100644 --- a/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java +++ b/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java @@ -29,18 +29,18 @@ public class ParameterToolBarPane extends BasicBeanPane { private UIButton addAll; private UILabel label; private int breakid; - + private static final int GAP_H = 4; private static final int GAP_V = 6; private static final int GAP_BV = 4; private static final int BUTTON_HEIGHT = 20; private static final int WIDTH = 225; - + private static final int L_H = 18; public ParameterToolBarPane() { this.setLayout(new FlowParameterPaneLayout()); - + label = new UILabel() { private static final long serialVersionUID = 1L; @@ -53,7 +53,7 @@ public class ParameterToolBarPane extends BasicBeanPane { label.setHorizontalAlignment(SwingConstants.LEFT); label.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 0)); this.add(label); - + addAll = new UIButton(Inter.getLocText("FR-Designer_Add_all")); this.add(addAll); @@ -63,7 +63,7 @@ public class ParameterToolBarPane extends BasicBeanPane { protected String title4PopupWindow() { return null; } - + public Parameter getTargetParameter(UIButton button) { int index = parameterSelectedLabellist.indexOf(button); if(index < 0 || index > parameterList.length - 1) { @@ -76,9 +76,9 @@ public class ParameterToolBarPane extends BasicBeanPane { public void populateBean(Parameter[] parameterArray) { parameterSelectedLabellist.clear(); this.removeAll(); - + this.add(label); - + if (parameterArray.length == 0) { this.setVisible(false); this.repaint(); @@ -86,14 +86,14 @@ public class ParameterToolBarPane extends BasicBeanPane { } else { this.setVisible(true); } - + parameterList = parameterArray; for (int i = 0; i < parameterList.length; i++) { UIButton parameterSelectedLabel = new UIButton(parameterList[i].getName()); parameterSelectedLabellist.add(parameterSelectedLabel); this.add(parameterSelectedLabel); } - + for(UIButton parameterSelectedLabel : parameterSelectedLabellist) { parameterSelectedLabel.addMouseListener(paraMouseListner); } @@ -130,9 +130,9 @@ public class ParameterToolBarPane extends BasicBeanPane { public Dimension preferredLayoutSize(Container parent) { int w = parent.getWidth(); - + layoutContainer(parent); - + int h= ((parameterSelectedLabellist.size() == 0) ? L_H : breakid * (BUTTON_HEIGHT + GAP_V) + GAP_BV + L_H + GAP_H + addAll.getPreferredSize().height); return new Dimension(w, h); } @@ -145,9 +145,9 @@ public class ParameterToolBarPane extends BasicBeanPane { int width = parent.getWidth() == 0 ? WIDTH : parent.getWidth(); int x = 0; int y = L_H + GAP_H; - + label.setBounds(0, 0, width, L_H); - + breakid = 1; for (UIButton tab : parameterSelectedLabellist) { Dimension dim = tab.getPreferredSize(); @@ -156,9 +156,9 @@ public class ParameterToolBarPane extends BasicBeanPane { x = 0; y += (dim.height + GAP_V); } - + tab.setBounds(x, y, dim.width, dim.height); - + x += (dim.width + GAP_H); } addAll.setBounds(0, y + GAP_V + BUTTON_HEIGHT, width, addAll.getPreferredSize().height);