diff --git a/build.dev.gradle.bak b/build.dev.gradle.bak deleted file mode 100644 index c5cc1b92d..000000000 --- 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 c5cc1b92d..a10a5e427 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 44aacadb4..d8afaf2bb 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/.classpath b/designer/.classpath index f46ca27d3..5d73feddc 100644 --- a/designer/.classpath +++ b/designer/.classpath @@ -1,52 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/designer/src/com/fr/design/mainframe/bbs/UserInfoLabel.java b/designer/src/com/fr/design/mainframe/bbs/UserInfoLabel.java index ddce30d70..f6e3d3e7c 100644 --- a/designer/src/com/fr/design/mainframe/bbs/UserInfoLabel.java +++ b/designer/src/com/fr/design/mainframe/bbs/UserInfoLabel.java @@ -1,5 +1,5 @@ /** - * + * */ package com.fr.design.mainframe.bbs; @@ -18,6 +18,7 @@ import com.fr.general.Inter; import com.fr.general.SiteCenter; import com.fr.general.http.HttpClient; import com.fr.stable.EncodeConstants; +import com.fr.stable.OperatingSystem; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; @@ -34,62 +35,61 @@ import java.util.HashMap; /** * @author neil - * * @date: 2015-3-4-上午9:05:52 */ -public class UserInfoLabel extends UILabel{ - - //默认查询消息时间, 30s - private static final long CHECK_MESSAGE_TIME = 30 * 1000L; +public class UserInfoLabel extends UILabel { + + //默认查询消息时间, 30s + private static final long CHECK_MESSAGE_TIME = 30 * 1000L; //默认论坛检测到更新后的弹出延迟时间 - private static final long DELAY_TIME = 2 * 1000L; - private static final String MESSAGE_KEY = "messageCount"; - - private static final int MIN_MESSAGE_COUNT = 1; - private static final int MENU_HEIGHT = 20; - - private static final int DEFAULT_BBS_UID = 0; - - //用户名 - private String userName; - //消息条数 - private int messageCount; - - private UserInfoPane userInfoPane; - private BBSLoginDialog bbsLoginDialog; - - public UserInfoPane getUserInfoPane() { - return userInfoPane; - } - - public void setUserInfoPane(UserInfoPane userInfoPane) { - this.userInfoPane = userInfoPane; - } - - public BBSLoginDialog getBbsLoginDialog() { - return bbsLoginDialog; - } - - public void setBbsLoginDialog(BBSLoginDialog bbsLoginDialog) { - this.bbsLoginDialog = bbsLoginDialog; - } - - public UserInfoLabel(UserInfoPane userInfoPane) { - this.userInfoPane = userInfoPane; - - String userName = DesignerEnvManager.getEnvManager().getBBSName(); - this.addMouseListener(userInfoAdapter); - this.setHorizontalAlignment(SwingConstants.CENTER); - this.setText(userName); - - LoginWebBridge loginWebBridge = new LoginWebBridge(); - loginWebBridge.setUserName(userName, UserInfoLabel.this); - - LoginCheckContext.addLoginCheckListener(new LoginCheckListener() { - @Override - public void loginChecked() { - /* - if (bbsLoginDialog == null) { + private static final long DELAY_TIME = 2 * 1000L; + private static final String MESSAGE_KEY = "messageCount"; + + private static final int MIN_MESSAGE_COUNT = 1; + private static final int MENU_HEIGHT = 20; + + private static final int DEFAULT_BBS_UID = 0; + + //用户名 + private String userName; + //消息条数 + private int messageCount; + + private UserInfoPane userInfoPane; + private BBSLoginDialog bbsLoginDialog; + + public UserInfoPane getUserInfoPane() { + return userInfoPane; + } + + public void setUserInfoPane(UserInfoPane userInfoPane) { + this.userInfoPane = userInfoPane; + } + + public BBSLoginDialog getBbsLoginDialog() { + return bbsLoginDialog; + } + + public void setBbsLoginDialog(BBSLoginDialog bbsLoginDialog) { + this.bbsLoginDialog = bbsLoginDialog; + } + + public UserInfoLabel(UserInfoPane userInfoPane) { + this.userInfoPane = userInfoPane; + + String userName = DesignerEnvManager.getEnvManager().getBBSName(); + this.addMouseListener(userInfoAdapter); + this.setHorizontalAlignment(SwingConstants.CENTER); + this.setText(userName); + + LoginWebBridge loginWebBridge = new LoginWebBridge(); + loginWebBridge.setUserName(userName, UserInfoLabel.this); + + LoginCheckContext.addLoginCheckListener(new LoginCheckListener() { + @Override + public void loginChecked() { + /* + if (bbsLoginDialog == null) { bbsLoginDialog = new BBSLoginDialog(DesignerContext.getDesignerFrame(), UserInfoLabel.this); } bbsLoginDialog.clearLoginInformation(); @@ -97,144 +97,144 @@ public class UserInfoLabel extends UILabel{ bbsLoginDialog.setModal(true); bbsLoginDialog.showWindow(); */ - } - }); - - if (StableUtils.getMajorJavaVersion() == 8) { - PluginWebBridge.getHelper().setUILabel(UserInfoLabel.this); - } - QQLoginWebBridge.getHelper().setUILabelInPlugin(UserInfoLabel.this); - - UserLoginContext.addLoginContextListener(new LoginContextListener() { - @Override - public void showLoginContext() { - LoginPane managerPane = new LoginPane(); - UIDialog qqdlg = new LoginDialog(DesignerContext.getDesignerFrame(),managerPane); - LoginWebBridge.getHelper().setDialogHandle(qqdlg); - LoginWebBridge.getHelper().setUILabel(UserInfoLabel.this); - QQLoginWebBridge.getHelper().setLoginlabel(); - qqdlg.setVisible(true); - clearLoginInformation(); - updateInfoPane(); - } - }); - } - - private void clearLoginInformation(){ - DesignerEnvManager.getEnvManager().setBBSName(StringUtils.EMPTY); - DesignerEnvManager.getEnvManager().setBBSPassword(StringUtils.EMPTY); - DesignerEnvManager.getEnvManager().setInShowBBsName(StringUtils.EMPTY); - DesignerEnvManager.getEnvManager().setBbsUid(DEFAULT_BBS_UID); - } - - private void updateInfoPane(){ - userInfoPane.markUnSignIn(); - } - - /** - * showBBSDialog 弹出BBS资讯框 - */ - public static void showBBSDialog(){ - Thread showBBSThread = new Thread(new Runnable() { - - @Override - public void run() { - if(!FRContext.isChineseEnv()){ - return; - } - String lastBBSNewsTime = DesignerEnvManager.getEnvManager().getLastShowBBSNewsTime(); - try { + } + }); + + if (StableUtils.getMajorJavaVersion() == 8) { + PluginWebBridge.getHelper().setUILabel(UserInfoLabel.this); + } + QQLoginWebBridge.getHelper().setUILabelInPlugin(UserInfoLabel.this); + + UserLoginContext.addLoginContextListener(new LoginContextListener() { + @Override + public void showLoginContext() { + LoginPane managerPane = new LoginPane(); + UIDialog qqdlg = new LoginDialog(DesignerContext.getDesignerFrame(), managerPane); + LoginWebBridge.getHelper().setDialogHandle(qqdlg); + LoginWebBridge.getHelper().setUILabel(UserInfoLabel.this); + QQLoginWebBridge.getHelper().setLoginlabel(); + qqdlg.setVisible(true); + clearLoginInformation(); + updateInfoPane(); + } + }); + } + + private void clearLoginInformation() { + DesignerEnvManager.getEnvManager().setBBSName(StringUtils.EMPTY); + DesignerEnvManager.getEnvManager().setBBSPassword(StringUtils.EMPTY); + DesignerEnvManager.getEnvManager().setInShowBBsName(StringUtils.EMPTY); + DesignerEnvManager.getEnvManager().setBbsUid(DEFAULT_BBS_UID); + } + + private void updateInfoPane() { + userInfoPane.markUnSignIn(); + } + + /** + * showBBSDialog 弹出BBS资讯框 + */ + public static void showBBSDialog() { + Thread showBBSThread = new Thread(new Runnable() { + + @Override + public void run() { + // vito:最新mac10.12和javafx弹出框初始化时会有大几率卡死在native方法,这里先屏蔽一下。 + if (!FRContext.isChineseEnv() || OperatingSystem.isMacOS()) { + return; + } + String lastBBSNewsTime = DesignerEnvManager.getEnvManager().getLastShowBBSNewsTime(); + try { String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); if (ComparatorUtils.equals(lastBBSNewsTime, today)) { return; } - Thread.sleep(DELAY_TIME); - } catch (InterruptedException e) { - FRContext.getLogger().error(e.getMessage()); - } + Thread.sleep(DELAY_TIME); + } catch (InterruptedException e) { + FRContext.getLogger().error(e.getMessage()); + } HttpClient hc = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("bbs.popup")); - if (!hc.isServerAlive()){ + if (!hc.isServerAlive()) { return; } String res = hc.getResponseText(); - if (res.indexOf(BBSConstants.UPDATE_KEY) == -1){ + if (res.indexOf(BBSConstants.UPDATE_KEY) == -1) { return; } - try { - BBSDialog bbsLabel = new BBSDialog(DesignerContext.getDesignerFrame()); - bbsLabel.showWindow(SiteCenter.getInstance().acquireUrlByKind("bbs.popup")); - DesignerEnvManager.getEnvManager().setLastShowBBSNewsTime(DateUtils.DATEFORMAT2.format(new Date())); - } catch (Throwable e) { - } - } - }); - showBBSThread.start(); - } - - private void sleep(long millis){ - try { - Thread.sleep(millis); - } catch (InterruptedException e) { - FRContext.getLogger().error(e.getMessage()); - } - } - - public String getUserName() { - return userName; - } - - /** - * 重置当前用户名 - * - */ - public void resetUserName(){ - this.userName = StringUtils.EMPTY; - } - - public void setUserName(String userName) { - if(StringUtils.isEmpty(userName)){ - return; - } - - if(StringUtils.isEmpty(this.userName)){ - updateMessageCount(); - } - //往designerenvmanger里写一下 - DesignerEnvManager.getEnvManager().setBBSName(userName); - this.userName = userName; - } - - private void updateMessageCount(){ - //启动获取消息更新的线程 - //登陆状态, 根据存起来的用户名密码, 每1分钟发起一次请求, 更新消息条数. - Thread updateMessageThread = new Thread(new Runnable() { - - @Override - public void run() { + try { + BBSDialog bbsLabel = new BBSDialog(DesignerContext.getDesignerFrame()); + bbsLabel.showWindow(SiteCenter.getInstance().acquireUrlByKind("bbs.popup")); + DesignerEnvManager.getEnvManager().setLastShowBBSNewsTime(DateUtils.DATEFORMAT2.format(new Date())); + } catch (Throwable e) { + } + } + }); + showBBSThread.start(); + } + + private void sleep(long millis) { + try { + Thread.sleep(millis); + } catch (InterruptedException e) { + FRContext.getLogger().error(e.getMessage()); + } + } + + public String getUserName() { + return userName; + } + + /** + * 重置当前用户名 + */ + public void resetUserName() { + this.userName = StringUtils.EMPTY; + } + + public void setUserName(String userName) { + if (StringUtils.isEmpty(userName)) { + return; + } + + if (StringUtils.isEmpty(this.userName)) { + updateMessageCount(); + } + //往designerenvmanger里写一下 + DesignerEnvManager.getEnvManager().setBBSName(userName); + this.userName = userName; + } + + private void updateMessageCount() { + //启动获取消息更新的线程 + //登陆状态, 根据存起来的用户名密码, 每1分钟发起一次请求, 更新消息条数. + Thread updateMessageThread = new Thread(new Runnable() { + + @Override + public void run() { sleep(CHECK_MESSAGE_TIME); - //从env中获取username, 因为如果注销的话, env的里username会被清空. - while(StringUtils.isNotEmpty(DesignerEnvManager.getEnvManager().getBBSName())){ - HashMap para = new HashMap(); - para.put("username", encode(encode(userName))); - HttpClient getMessage = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("bbs.message"), para); - getMessage.asGet(); - if(getMessage.isServerAlive()){ - try { + //从env中获取username, 因为如果注销的话, env的里username会被清空. + while (StringUtils.isNotEmpty(DesignerEnvManager.getEnvManager().getBBSName())) { + HashMap para = new HashMap(); + para.put("username", encode(encode(userName))); + HttpClient getMessage = new HttpClient(SiteCenter.getInstance().acquireUrlByKind("bbs.message"), para); + getMessage.asGet(); + if (getMessage.isServerAlive()) { + try { String res = getMessage.getResponseText(); if (StringUtils.isNotEmpty(res)) { setMessageCount(Integer.parseInt(res)); } - } catch (Exception e) { - } - } - sleep(CHECK_MESSAGE_TIME); - } - } - }); - updateMessageThread.start(); - } + } catch (Exception e) { + } + } + sleep(CHECK_MESSAGE_TIME); + } + } + }); + updateMessageThread.start(); + } - private String encode(String str){ + private String encode(String str) { try { return URLEncoder.encode(str, EncodeConstants.ENCODING_UTF_8); } catch (UnsupportedEncodingException e) { @@ -242,75 +242,75 @@ public class UserInfoLabel extends UILabel{ } } - public int getMessageCount() { - return messageCount; - } - - public void setMessageCount(int messageCount) { - // 当只有一条消息时,阅读之后,消息面板重置为只含用户名的状态 - if(this.messageCount == MIN_MESSAGE_COUNT && messageCount < MIN_MESSAGE_COUNT){ - this.setText(this.userName); - return; - } - if(this.messageCount == messageCount || messageCount < MIN_MESSAGE_COUNT){ - return; - } - - this.messageCount = messageCount; - StringBuilder sb = new StringBuilder(); - //内容eg: aaa(11) - sb.append(StringUtils.BLANK).append(this.userName) - .append("(").append(this.messageCount) - .append(")").append(StringUtils.BLANK); - - //更新面板Text - this.setText(sb.toString()); - } - - private MouseAdapter userInfoAdapter = new MouseAdapter() { - - public void mouseEntered(MouseEvent e) { - UserInfoLabel.this.setCursor(new Cursor(Cursor.HAND_CURSOR)); - }; - - @Override - public void mouseClicked(MouseEvent e) { - userName = DesignerEnvManager.getEnvManager().getBBSName(); - if(StringUtils.isNotEmpty(userName)) { - UIPopupMenu menu = new UIPopupMenu(); - menu.setOnlyText(true); - menu.setPopupSize(userInfoPane.getWidth(),userInfoPane.getHeight()*3); - - //私人消息 - UIMenuItem priviteMessage = new UIMenuItem(Inter.getLocText("FR-Designer-BBSLogin_Privite-Message")); - priviteMessage.addMouseListener(new MouseAdapter() { - public void mousePressed(MouseEvent e) { - if(StringUtils.isNotEmpty(userName)){ - try { - String loginUrl = SiteCenter.getInstance().acquireUrlByKind("bbs.default"); - Desktop.getDesktop().browse(new URI(loginUrl)); - } catch (Exception exp) { - FRContext.getLogger().info(exp.getMessage()); - } - return; - } - } - - }); - //切换账号 - UIMenuItem closeOther = new UIMenuItem(Inter.getLocText("FR-Designer-BBSLogin_Switch-Account")); - closeOther.addMouseListener(new MouseAdapter() { - public void mousePressed(MouseEvent e) { - UserLoginContext.fireLoginContextListener(); - } - - }); - menu.add(priviteMessage); - menu.add(closeOther); - GUICoreUtils.showPopupMenu(menu, UserInfoLabel.this, 0, MENU_HEIGHT); - } else { - UserLoginContext.fireLoginContextListener(); - } - } - }; + public int getMessageCount() { + return messageCount; + } + + public void setMessageCount(int messageCount) { + // 当只有一条消息时,阅读之后,消息面板重置为只含用户名的状态 + if (this.messageCount == MIN_MESSAGE_COUNT && messageCount < MIN_MESSAGE_COUNT) { + this.setText(this.userName); + return; + } + if (this.messageCount == messageCount || messageCount < MIN_MESSAGE_COUNT) { + return; + } + + this.messageCount = messageCount; + StringBuilder sb = new StringBuilder(); + //内容eg: aaa(11) + sb.append(StringUtils.BLANK).append(this.userName) + .append("(").append(this.messageCount) + .append(")").append(StringUtils.BLANK); + + //更新面板Text + this.setText(sb.toString()); + } + + private MouseAdapter userInfoAdapter = new MouseAdapter() { + + public void mouseEntered(MouseEvent e) { + UserInfoLabel.this.setCursor(new Cursor(Cursor.HAND_CURSOR)); + } + + @Override + public void mouseClicked(MouseEvent e) { + userName = DesignerEnvManager.getEnvManager().getBBSName(); + if (StringUtils.isNotEmpty(userName)) { + UIPopupMenu menu = new UIPopupMenu(); + menu.setOnlyText(true); + menu.setPopupSize(userInfoPane.getWidth(), userInfoPane.getHeight() * 3); + + //私人消息 + UIMenuItem priviteMessage = new UIMenuItem(Inter.getLocText("FR-Designer-BBSLogin_Privite-Message")); + priviteMessage.addMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + if (StringUtils.isNotEmpty(userName)) { + try { + String loginUrl = SiteCenter.getInstance().acquireUrlByKind("bbs.default"); + Desktop.getDesktop().browse(new URI(loginUrl)); + } catch (Exception exp) { + FRContext.getLogger().info(exp.getMessage()); + } + return; + } + } + + }); + //切换账号 + UIMenuItem closeOther = new UIMenuItem(Inter.getLocText("FR-Designer-BBSLogin_Switch-Account")); + closeOther.addMouseListener(new MouseAdapter() { + public void mousePressed(MouseEvent e) { + UserLoginContext.fireLoginContextListener(); + } + + }); + menu.add(priviteMessage); + menu.add(closeOther); + GUICoreUtils.showPopupMenu(menu, UserInfoLabel.this, 0, MENU_HEIGHT); + } else { + UserLoginContext.fireLoginContextListener(); + } + } + }; } diff --git a/designer/src/com/fr/design/parameter/ParameterDefinitePane.java b/designer/src/com/fr/design/parameter/ParameterDefinitePane.java index 43fc3c6fc..81e334b9e 100644 --- a/designer/src/com/fr/design/parameter/ParameterDefinitePane.java +++ b/designer/src/com/fr/design/parameter/ParameterDefinitePane.java @@ -454,13 +454,13 @@ public class ParameterDefinitePane extends JPanel implements ToolBarMenuDockPlus */ public ShortCut[] shortcut4FileMenu() { return (ShortCut[]) ArrayUtils.addAll(BaseUtils.isAuthorityEditing() ? - new ShortCut[]{new SaveTemplateAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), - new UndoAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), - new RedoAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate())} : - new ShortCut[]{new SaveTemplateAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), - new SaveAsTemplateAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), - new UndoAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), - new RedoAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate())}, + new ShortCut[]{new SaveTemplateAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), + new UndoAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), + new RedoAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate())} : + new ShortCut[]{new SaveTemplateAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), + new SaveAsTemplateAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), + new UndoAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()), + new RedoAction(HistoryTemplateListPane.getInstance().getCurrentEditingTemplate())}, new ShortCut[0] ); } diff --git a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java index 8e70675ee..46bc378ae 100644 --- a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java +++ b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java @@ -8,12 +8,14 @@ import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import com.fr.base.FRContext; import com.fr.design.dialog.BasicPane; 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; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.env.RemoteEnv; import com.fr.general.Inter; import com.fr.page.ReportPageAttrProvider; import com.fr.stable.ColumnRow; @@ -211,13 +213,13 @@ public class RepeatAndFreezeSettingPane extends BasicPane { JPanel freezePanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); //自适应插件 - JPanel infoPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Attention")); - - BoxCenterAligmentPane actionLabel = getURLActionLabel(Inter.getLocText("FR-Designer_Form-Fit-Tip")); - infoPane.add(actionLabel, BorderLayout.SOUTH); - + if (shouldShowTip()) { + JPanel infoPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Attention")); + BoxCenterAligmentPane actionLabel = getURLActionLabel(Inter.getLocText("FR-Designer_Form-Fit-Tip")); + infoPane.add(actionLabel, BorderLayout.SOUTH); + this.add(infoPane, BorderLayout.SOUTH); + } outfreezePanel.add(freezePanel); - this.add(infoPane, BorderLayout.SOUTH); // 重复打印部分 // 重复打印标题的起始行 JPanel labelPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); @@ -241,6 +243,10 @@ public class RepeatAndFreezeSettingPane extends BasicPane { initWriteListener(); } + private boolean shouldShowTip() { + return !(FRContext.getCurrentEnv() instanceof RemoteEnv) && FRContext.isChineseEnv(); + } + protected void initWriteListener() { // 填报重复冻结行 useWriteFrozenCCheckBox.addChangeListener(useWriteFrozenCListener); diff --git a/designer_base/.classpath b/designer_base/.classpath index cc6f823ac..0c04bc6c6 100644 --- a/designer_base/.classpath +++ b/designer_base/.classpath @@ -3,8 +3,57 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java index 44b71999b..23b62431e 100644 --- a/designer_base/src/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java +++ b/designer_base/src/com/fr/design/data/datapane/connect/ConnectionTableProcedurePane.java @@ -11,6 +11,7 @@ import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.ilist.TableViewList; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.dialog.BasicPane; +import com.fr.general.GeneralContext; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; @@ -28,7 +29,7 @@ import java.awt.event.*; */ public class ConnectionTableProcedurePane extends BasicPane { private static int WIDTH = 155; - private ConnectionComboBoxPanel connectionComboBox; + private ConnectionComboBoxPanel connectionComboBox; private UICheckBox tableCheckBox; private UICheckBox viewCheckBox; private UITextField searchField; @@ -37,16 +38,16 @@ public class ConnectionTableProcedurePane extends BasicPane { public ConnectionTableProcedurePane() { this.setLayout(new BorderLayout(4, 4)); - connectionComboBox = new ConnectionComboBoxPanel(com.fr.data.impl.Connection.class){ - protected void refreshItems(){ - super.refreshItems(); - if (tableViewList != null) { - search(); - } - } - }; + connectionComboBox = new ConnectionComboBoxPanel(com.fr.data.impl.Connection.class) { + protected void refreshItems() { + super.refreshItems(); + if (tableViewList != null) { + search(); + } + } + }; tableViewList = new TableViewList(); - ToolTipManager.sharedInstance().registerComponent(tableViewList); + ToolTipManager.sharedInstance().registerComponent(tableViewList); connectionComboBox.addComboBoxActionListener(filter); tableViewList.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent evt) { @@ -54,8 +55,8 @@ public class ConnectionTableProcedurePane extends BasicPane { Object obj = tableViewList.getSelectedValue(); TableProcedure tableProcedure = null; if (obj instanceof TableProcedure) { - tableProcedure = (TableProcedure)obj; - }else { + tableProcedure = (TableProcedure) obj; + } else { return; } for (int i = 0; i < ConnectionTableProcedurePane.this.listeners.size(); i++) { @@ -79,7 +80,7 @@ public class ConnectionTableProcedurePane extends BasicPane { this.add(connectionComboBox, BorderLayout.NORTH); this.add(tableViewListPane, BorderLayout.CENTER); this.add(filterPane, BorderLayout.SOUTH); - this.setPreferredSize(new Dimension(WIDTH, getPreferredSize().height)); + this.setPreferredSize(new Dimension(WIDTH, getPreferredSize().height)); } protected JPanel createCheckBoxgroupPane() { @@ -89,28 +90,42 @@ public class ConnectionTableProcedurePane extends BasicPane { tableCheckBox.setSelected(true); tableCheckBox.addActionListener(filter); first.add(tableCheckBox); - first.add(new UILabel(Inter.getLocText("Table"), BaseUtils.readIcon("/com/fr/design/images/data/tables.png"), UILabel.LEADING)); JPanel second = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); viewCheckBox = new UICheckBox(); viewCheckBox.setSelected(true); viewCheckBox.addActionListener(filter); second.add(viewCheckBox); - second.add(new UILabel(Inter.getLocText("SQL-View"), BaseUtils.readIcon("/com/fr/design/images/data/views.png"), UILabel.LEADING)); + // 根据环境是否为中文设置不同的显示 + if (GeneralContext.isChineseEnv()) { + first.add(new UILabel(Inter.getLocText("FR-Designer_SQL-Table"), + BaseUtils.readIcon("/com/fr/design/images/data/tables.png"), UILabel.LEADING)); + second.add(new UILabel(Inter.getLocText("FR-Designer_SQL-View"), + BaseUtils.readIcon("/com/fr/design/images/data/views.png"), UILabel.LEADING)); + } else { + UILabel ui1 = new UILabel(BaseUtils.readIcon("/com/fr/design/images/data/tables.png"), UILabel.LEADING); + UILabel ui2 = new UILabel(BaseUtils.readIcon("/com/fr/design/images/data/views.png"), UILabel.LEADING); + ui1.setToolTipText(Inter.getLocText("FR-Designer_SQL-Table")); + ui2.setToolTipText(Inter.getLocText("FR-Designer_SQL-View")); + first.add(ui1); + second.add(ui2); + } checkBoxgroupPane.add(first); checkBoxgroupPane.add(second); return checkBoxgroupPane; } - /** - * 给 itemComboBox 加上 itemListener - * @param itemListener - */ - public void addItemListener(ItemListener itemListener) { - connectionComboBox.itemComboBox.addItemListener(itemListener); - } + /** + * 给 itemComboBox 加上 itemListener + * + * @param itemListener + */ + public void addItemListener(ItemListener itemListener) { + connectionComboBox.itemComboBox.addItemListener(itemListener); + } + private DocumentListener searchListener = new DocumentListener() { @Override @@ -146,13 +161,13 @@ public class ConnectionTableProcedurePane extends BasicPane { String[] types = ArrayUtils.EMPTY_STRING_ARRAY; if (tableCheckBox != null) { if (tableCheckBox.isSelected()) { - types = (String[])ArrayUtils.add(types, TableProcedure.TABLE); + types = (String[]) ArrayUtils.add(types, TableProcedure.TABLE); } if (viewCheckBox.isSelected()) { - types = (String[])ArrayUtils.add(types, TableProcedure.VIEW); + types = (String[]) ArrayUtils.add(types, TableProcedure.VIEW); } } else { - types = (String[])ArrayUtils.add(types, TableProcedure.PROCEDURE); + types = (String[]) ArrayUtils.add(types, TableProcedure.PROCEDURE); } tableViewList.populate(selectedObj, searchField.getText().trim(), types); } @@ -162,10 +177,10 @@ public class ConnectionTableProcedurePane extends BasicPane { return "Connection"; } - /** - * - * @param l - */ + /** + * + * @param l + */ public void addDoubleClickListener(DoubleClickSelectedNodeOnTreeListener l) { this.listeners.add(l); } @@ -179,10 +194,11 @@ public class ConnectionTableProcedurePane extends BasicPane { } public static interface DoubleClickSelectedNodeOnTreeListener { - /** - * 处理双击事件 - * @param target - */ - public void actionPerformed(TableProcedure target); + /** + * 处理双击事件 + * + * @param target + */ + public void actionPerformed(TableProcedure target); } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/editor/ValueEditorPane.java b/designer_base/src/com/fr/design/editor/ValueEditorPane.java index 5efaf5d57..0a7600e2f 100644 --- a/designer_base/src/com/fr/design/editor/ValueEditorPane.java +++ b/designer_base/src/com/fr/design/editor/ValueEditorPane.java @@ -106,6 +106,15 @@ public class ValueEditorPane extends BasicPane implements UIObserver, GlobalName return currentEditor; } + public int getCurrentEditorIndex() { + for (int i = 0;i < cards.length; i++){ + if (cards[i].getClass() == currentEditor.getClass()){ + return i; + } + } + return 0; + } + public void setCurrentEditor(int i) { this.add(arrowButton, BorderLayout.WEST); currentEditor = this.cards[i]; diff --git a/designer_base/src/com/fr/design/extra/PluginHelper.java b/designer_base/src/com/fr/design/extra/PluginHelper.java index 3248df0b4..119858206 100644 --- a/designer_base/src/com/fr/design/extra/PluginHelper.java +++ b/designer_base/src/com/fr/design/extra/PluginHelper.java @@ -49,9 +49,6 @@ public class PluginHelper { * @param p 下载百分比处理 */ public static void downloadPluginFile(String id, String username, String password, Process p) throws Exception { - if (!PluginHelper.invalidUser(id, username, password)) { - return; - } HttpClient httpClient = new HttpClient(getDownloadPath(id, username, password)); if (httpClient.getResponseCode() == HttpURLConnection.HTTP_OK) { int totalSize = httpClient.getContentLength(); @@ -354,4 +351,4 @@ public class PluginHelper { } private static final int TIME_OUT = 5000; -} \ No newline at end of file +} diff --git a/designer_base/src/com/fr/design/extra/PluginTask.java b/designer_base/src/com/fr/design/extra/PluginTask.java index eb4a99729..e2c87a46e 100644 --- a/designer_base/src/com/fr/design/extra/PluginTask.java +++ b/designer_base/src/com/fr/design/extra/PluginTask.java @@ -49,7 +49,7 @@ public class PluginTask extends Task { @Override public void process(String s) { if (StringUtils.isNotBlank(s)) { - updateMessage(changText(s)); + updateMessage(trimText(s)); } } }); @@ -59,20 +59,25 @@ public class PluginTask extends Task { @Override protected void done() { - updateMessage(changText(executor.getTaskFinishMessage())); + updateMessage(trimText(executor.getTaskFinishMessage())); } /** - * 转换掉一些会造成错误的特殊字符 - * 1 ""中的""必须转义 - * 2 js字符串中的\n会导致js字符串变成多行,而js字符创不支持多行拼接 + * vito:由于使用webEngine.executeScript("(" + callback + ")(\"" + newValue + "\")") + * 执行脚本,所以原来规范的json格式也会在拼接字符串后可能抛出参数异常,需要转换掉一些会造成错误的特殊字符, + * 选择在java端替换的原因是异常抛出自executeScript方法的参数. + * + * 1.""中的""必须转义 + * 2.js字符串中的\n会导致js字符串变成多行,而js字符串不支持多行拼接 + * 3.由JSONObject.toString()得到的字符串中html标签的属性会自动加上\造成替换难度加大, + * 这边建议去除所有的html标签 * * @param old 原始字符串 * @return 处理之后的字符串 */ - private String changText(String old) { - if(StringUtils.isNotBlank(old)){ - return old.replaceAll("\"", "\\\\\"").replaceAll("\n", ""); + private String trimText(String old) { + if (StringUtils.isNotBlank(old)) { + return old.replaceAll("\n", "").replaceAll("\"", "\\\\\"").replaceAll("\'", "\\\\\'"); } return StringUtils.EMPTY; } diff --git a/designer_base/src/com/fr/design/extra/PluginWebBridge.java b/designer_base/src/com/fr/design/extra/PluginWebBridge.java index 15bd72c09..12c3e85c4 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 +} diff --git a/designer_base/src/com/fr/design/extra/ShopPaneConfig.java b/designer_base/src/com/fr/design/extra/ShopPaneConfig.java index 87bc719ee..9d265168d 100644 --- a/designer_base/src/com/fr/design/extra/ShopPaneConfig.java +++ b/designer_base/src/com/fr/design/extra/ShopPaneConfig.java @@ -11,14 +11,26 @@ public abstract class ShopPaneConfig { private JFXPanel webPane; public ShopPaneConfig() { - this.mainJS = getMainJS(); - this.scriptsId = getScriptsId(); - this.webPane = getWebPane(); + this.mainJS = setMainJS(); + this.scriptsId = setScriptsId(); + this.webPane = setWebPane(); } - abstract String getMainJS(); + abstract String setMainJS(); - abstract String getScriptsId(); + abstract String setScriptsId(); - abstract JFXPanel getWebPane(); + abstract JFXPanel setWebPane(); + + public String getMainJS() { + return mainJS; + } + + public String getScriptsId() { + return scriptsId; + } + + public JFXPanel getWebPane() { + return webPane; + } } diff --git a/designer_base/src/com/fr/design/extra/UserLoginContext.java b/designer_base/src/com/fr/design/extra/UserLoginContext.java index a6d68f076..354a9177f 100644 --- a/designer_base/src/com/fr/design/extra/UserLoginContext.java +++ b/designer_base/src/com/fr/design/extra/UserLoginContext.java @@ -3,7 +3,7 @@ package com.fr.design.extra; import java.util.ArrayList; /** - * Created by lp on 2016/8/16. + * Created by lp on 2016/8/16. */ public class UserLoginContext { private static ArrayList fireLoginContextListener = new ArrayList(); diff --git a/designer_base/src/com/fr/design/formula/FunctionManagerPane.java b/designer_base/src/com/fr/design/formula/FunctionManagerPane.java index fd41df325..3fffe594e 100644 --- a/designer_base/src/com/fr/design/formula/FunctionManagerPane.java +++ b/designer_base/src/com/fr/design/formula/FunctionManagerPane.java @@ -132,7 +132,7 @@ public class FunctionManagerPane extends BasicPane { JPanel northPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); this.add(northPane, BorderLayout.NORTH); JPanel reportletNamePane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - classNameTextField = new UITextField(28); + classNameTextField = new UITextField(25); reportletNamePane.add(classNameTextField); UIButton browserButton = new UIButton(Inter.getLocText("FR-Designer_Select")); browserButton.setPreferredSize(new Dimension(browserButton.getPreferredSize().width, classNameTextField.getPreferredSize().height)); diff --git a/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java b/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java index 4d1028e78..112fa54dc 100644 --- a/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java +++ b/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java @@ -13,12 +13,12 @@ import com.fr.js.JavaScript; import com.fr.js.NameJavaScript; import com.fr.js.NameJavaScriptGroup; import com.fr.plugin.PluginManager; -import com.fr.stable.ArrayUtils; import com.fr.stable.Nameable; import java.util.ArrayList; -import java.util.List; +import java.util.Map; import java.util.Set; +import java.util.TreeMap; /** * 超级链接 界面. @@ -34,23 +34,26 @@ public class HyperlinkGroupPane extends JListControlPane { * @return 返回Nameable按钮数组. */ public NameableCreator[] createNameableCreators() { + Map nameCreators = new TreeMap(); NameableCreator[] creators = DesignModuleFactory.getHyperlinkGroupType().getHyperlinkCreators(); + for (NameableCreator creator : creators) { + nameCreators.put(creator.menuName(), creator); + } PluginManager.getInstance().setExtensionPoint(HyperlinkPluginAction.XML_TAG); ArrayList templateArrayLisy = PluginManager.getInstance().getResultList(); // if (templateArrayLisy.isEmpty()) { // return creators; // } - NameableCreator[] pluginCreators = new NameableCreator[templateArrayLisy.size()]; for (int i = 0; i < templateArrayLisy.size(); i++) { - pluginCreators[i] = ((HyperlinkPluginAction) templateArrayLisy.get(i)).getHyperlinkCreator(); + NameableCreator nameableCreator = ((HyperlinkPluginAction) templateArrayLisy.get(i)).getHyperlinkCreator(); + nameCreators.put(nameableCreator.menuName(), nameableCreator); } Set providers = ExtraDesignClassManager.getInstance().getArray(HyperlinkProvider.XML_TAG); - List creatorList = new ArrayList(); for (HyperlinkProvider provider : providers) { NameableCreator nc = provider.createHyperlinkCreator(); - creatorList.add(nc); + nameCreators.put(nc.menuName(), nc); } - return ArrayUtils.addAll(creatorList.toArray(new NameableCreator[creatorList.size()]), ArrayUtils.addAll(creators, pluginCreators)); + return nameCreators.values().toArray(new NameableCreator[nameCreators.size()]); } /** diff --git a/designer_base/src/com/fr/design/gui/icombobox/FRTreeComboBox.java b/designer_base/src/com/fr/design/gui/icombobox/FRTreeComboBox.java index a60942229..ed8ffb16c 100644 --- a/designer_base/src/com/fr/design/gui/icombobox/FRTreeComboBox.java +++ b/designer_base/src/com/fr/design/gui/icombobox/FRTreeComboBox.java @@ -91,6 +91,15 @@ public class FRTreeComboBox extends UIComboBox { return this.tree; } + /** + * 自定义那些那些node可以选中,默认情况下所有node节点都可以选中 + * @param node + * @return + */ + protected boolean customSelectable(DefaultMutableTreeNode node){ + return true; + } + public void setTree(JTree tree) { this.tree = tree; if (tree != null) { @@ -403,6 +412,12 @@ public class FRTreeComboBox extends UIComboBox { if (comboBox.onlyLeafSelectable && !node.isLeaf()) { return; } + + //自定义node是否可选择 + if (!comboBox.customSelectable(node)){ + return; + } + comboBox.setSelectedItem(treePath); togglePopup(); MenuSelectionManager.defaultManager().clearSelectedPath(); diff --git a/designer_base/src/com/fr/design/gui/style/FormatPane.java b/designer_base/src/com/fr/design/gui/style/FormatPane.java index c0591fe56..c426bbed2 100644 --- a/designer_base/src/com/fr/design/gui/style/FormatPane.java +++ b/designer_base/src/com/fr/design/gui/style/FormatPane.java @@ -4,10 +4,10 @@ import com.fr.base.CoreDecimalFormat; import com.fr.base.GraphHelper; import com.fr.base.Style; import com.fr.base.TextFormat; -import com.fr.design.constants.UIConstants; import com.fr.data.core.FormatField; import com.fr.data.core.FormatField.FormatContents; import com.fr.design.border.UIRoundedBorder; +import com.fr.design.constants.UIConstants; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icombobox.UIComboBoxRenderer; import com.fr.design.gui.icontainer.UIScrollPane; @@ -81,16 +81,7 @@ public class FormatPane extends AbstractBasicStylePane { }; typeComboBox = new UIComboBox(types); - UIComboBoxRenderer render = new UIComboBoxRenderer() { - @Override - public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - if (value instanceof Integer) { - label.setText(" " + FormatField.getInstance().getName((Integer) value)); - } - return label; - } - }; + UIComboBoxRenderer render = createComBoxRender(); typeComboBox.setRenderer(render); typeComboBox.addItemListener(itemListener); contentPane.add(sampleLabel, BorderLayout.NORTH); @@ -114,11 +105,23 @@ public class FormatPane extends AbstractBasicStylePane { } + protected UIComboBoxRenderer createComBoxRender(){ + return new UIComboBoxRenderer() { + @Override + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + JLabel label = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + if (value instanceof Integer) { + label.setText(" " + FormatField.getInstance().getName((Integer) value)); + } + return label; + } + }; + } private void iniSampleLable() { Border innterborder = new UIRoundedBorder(UIConstants.LINE_COLOR, 1, 4); Font tmpFont = null; - Border border = BorderFactory.createTitledBorder(innterborder, Inter.getLocText("StyleFormat-Sample"), TitledBorder.LEFT, 0, tmpFont, UIConstants.LINE_COLOR); + Border border = BorderFactory.createTitledBorder(innterborder, Inter.getLocText("FR-Base_StyleFormat_Sample"), TitledBorder.LEFT, 0, tmpFont, UIConstants.LINE_COLOR); sampleLabel = new UILabel(FormatField.getInstance().getFormatValue()) { @Override @@ -156,7 +159,7 @@ public class FormatPane extends AbstractBasicStylePane { * @return 标题 */ public String title4PopupWindow() { - return Inter.getLocText("Format"); + return Inter.getLocText("FR-Base_Format"); } /** 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 4157310d4..000000000 --- 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 diff --git a/designer_base/src/com/fr/design/hyperlink/AbstractHyperlinkPane.java b/designer_base/src/com/fr/design/hyperlink/AbstractHyperlinkPane.java index 36297d165..311eaf7d9 100644 --- a/designer_base/src/com/fr/design/hyperlink/AbstractHyperlinkPane.java +++ b/designer_base/src/com/fr/design/hyperlink/AbstractHyperlinkPane.java @@ -1,27 +1,19 @@ package com.fr.design.hyperlink; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; - -import javax.swing.DefaultComboBoxModel; -import javax.swing.DefaultListCellRenderer; - -import com.fr.design.gui.ilable.UILabel; - -import javax.swing.JList; -import javax.swing.JPanel; - import com.fr.base.Utils; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.icombobox.UIComboBox; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UINumberField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.general.Inter; import com.fr.js.Hyperlink; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + public abstract class AbstractHyperlinkPane extends BasicBeanPane { public static final int NEW_WINDOW = 0; public static final int DIALOG = 1; @@ -46,7 +38,7 @@ public abstract class AbstractHyperlinkPane extends BasicBe headerPane = this.setHeaderPanel(); this.add(headerPane, BorderLayout.NORTH); this.add(centerPane, BorderLayout.CENTER); - targetFrameComboBox = new UIComboBox(new String[]{Inter.getLocText("Hyperlink-New_Window"), Inter.getLocText("FR-Hyperlink_Dialog"), Inter.getLocText("Hyperlink-Self_Window")}); + targetFrameComboBox = new UIComboBox(getTargetFrames()); targetFrameComboBox.setRenderer(new DefaultListCellRenderer() { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); @@ -86,6 +78,9 @@ public abstract class AbstractHyperlinkPane extends BasicBe this.add(this.setFootPanel(), BorderLayout.SOUTH); } + protected String[] getTargetFrames(){ + return new String[]{Inter.getLocText("Hyperlink-New_Window"), Inter.getLocText("FR-Hyperlink_Dialog"), Inter.getLocText("Hyperlink-Self_Window")}; + } protected abstract JPanel setHeaderPanel(); @@ -93,6 +88,30 @@ public abstract class AbstractHyperlinkPane extends BasicBe protected abstract void populateSubHyperlinkBean(T link); + public UIComboBox getTargetFrameComboBox() { + return targetFrameComboBox; + } + + public void setTargetFrameComboBox(UIComboBox targetFrameComboBox) { + this.targetFrameComboBox = targetFrameComboBox; + } + + public UINumberField getHeightTextFiled() { + return heightTextFiled; + } + + public void setHeightTextFiled(UINumberField heightTextFiled) { + this.heightTextFiled = heightTextFiled; + } + + public UINumberField getWidthTextFiled() { + return widthTextFiled; + } + + public void setWidthTextFiled(UINumberField widthTextFiled) { + this.widthTextFiled = widthTextFiled; + } + @Override public void populateBean(T link) { String name = link.getTargetFrame(); diff --git a/designer_base/src/com/fr/design/hyperlink/ReportletHyperlinkPane.java b/designer_base/src/com/fr/design/hyperlink/ReportletHyperlinkPane.java index 1cdb3dcbb..2664a746c 100644 --- a/designer_base/src/com/fr/design/hyperlink/ReportletHyperlinkPane.java +++ b/designer_base/src/com/fr/design/hyperlink/ReportletHyperlinkPane.java @@ -104,7 +104,7 @@ public class ReportletHyperlinkPane extends BasicBeanPane { } - private class HyperlinkParametersAction extends UITableEditAction { + protected class HyperlinkParametersAction extends UITableEditAction { public HyperlinkParametersAction() { this.setName(Inter.getLocText(new String[]{"Reportlet", "Parameter"})); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/p.gif")); @@ -207,4 +207,27 @@ public class ReportletHyperlinkPane extends BasicBeanPane { } } + public ReporletHyperNorthPane getNorthPane() { + return northPane; + } + + public void setNorthPane(ReporletHyperNorthPane northPane) { + this.northPane = northPane; + } + + public ReportletParameterViewPane getParameterViewPane() { + return parameterViewPane; + } + + public void setParameterViewPane(ReportletParameterViewPane parameterViewPane) { + this.parameterViewPane = parameterViewPane; + } + + public UICheckBox getExtendParametersCheckBox() { + return extendParametersCheckBox; + } + + public void setExtendParametersCheckBox(UICheckBox extendParametersCheckBox) { + this.extendParametersCheckBox = extendParametersCheckBox; + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/hyperlink/WebHyperNorthPane.java b/designer_base/src/com/fr/design/hyperlink/WebHyperNorthPane.java index 585864d60..ee3adaf76 100644 --- a/designer_base/src/com/fr/design/hyperlink/WebHyperNorthPane.java +++ b/designer_base/src/com/fr/design/hyperlink/WebHyperNorthPane.java @@ -51,10 +51,10 @@ public class WebHyperNorthPane extends AbstractHyperlinkPane { urlPane.add(urlTextField); urlTextField.setText(ProductConstants.WEBSITE_URL); - UILabel label = new UILabel(Inter.getLocText(new String[]{"Example","Or"}, new String[]{":http://www.baidu.com","/main.jsp"})); + //UILabel label = new UILabel(Inter.getLocText(new String[]{"Example","Or"}, new String[]{":http://www.baidu.com","/main.jsp"})); JPanel urlWithHelp = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(2); urlWithHelp.add(GUICoreUtils.createNamedPane(urlPane, "URL:")); - urlWithHelp.add(label); + //urlWithHelp.add(label); if(this.needRenamePane){ headerPane.setLayout(new BorderLayout(LayoutConstants.VGAP_LARGE,LayoutConstants.VGAP_SMALL)); diff --git a/designer_base/src/com/fr/design/hyperlink/WebHyperlinkPane.java b/designer_base/src/com/fr/design/hyperlink/WebHyperlinkPane.java index 88bff48fb..fda40217b 100644 --- a/designer_base/src/com/fr/design/hyperlink/WebHyperlinkPane.java +++ b/designer_base/src/com/fr/design/hyperlink/WebHyperlinkPane.java @@ -40,7 +40,7 @@ public class WebHyperlinkPane extends BasicBeanPane { parameterViewPane = new ReportletParameterViewPane(getChartParaType(), getValueEditorPane(), getValueEditorPane()); this.add(parameterViewPane, BorderLayout.CENTER); - parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText("Parameters"), null)); + parameterViewPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText("FR-Designer_Parameters"), null)); useCJKCheckBox = new UICheckBox(Inter.getLocText("Hyperlink-Use_CJK_to_encode_parameter")); extendParametersCheckBox = new UICheckBox(Inter.getLocText("Hyperlink-Extends_Report_Parameters")); @@ -167,4 +167,36 @@ public class WebHyperlinkPane extends BasicBeanPane { return ParameterTableModel.CHART_METER_USE; } } + + public WebHyperNorthPane getNorthPane() { + return northPane; + } + + public void setNorthPane(WebHyperNorthPane northPane) { + this.northPane = northPane; + } + + public ReportletParameterViewPane getParameterViewPane() { + return parameterViewPane; + } + + public void setParameterViewPane(ReportletParameterViewPane parameterViewPane) { + this.parameterViewPane = parameterViewPane; + } + + public UICheckBox getUseCJKCheckBox() { + return useCJKCheckBox; + } + + public void setUseCJKCheckBox(UICheckBox useCJKCheckBox) { + this.useCJKCheckBox = useCJKCheckBox; + } + + public UICheckBox getExtendParametersCheckBox() { + return extendParametersCheckBox; + } + + public void setExtendParametersCheckBox(UICheckBox extendParametersCheckBox) { + this.extendParametersCheckBox = extendParametersCheckBox; + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index f2344274a..8827ff792 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -480,3 +480,10 @@ 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 +FR-Designer-Datasource-Param_DES= you can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\=${abc}.
 select * from table where id\='${abc}'.(if the field id is typeof string) +FR-Designer-DS-Database_Query= +FR-Designer_Is_Share_DBTableData= +FR-Designer-LayerPageReport_PageQuery= +FR-Designer-LayerPageReport_Define_PageQuerySQL= +FR-Designer_Event= +FR-Designer_Properties= 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 a4bdd6d10..6562f726a 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 @@ -479,3 +479,10 @@ 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 +FR-Designer-LayerPageReport_PageQuery=Page Break query +FR-Designer-LayerPageReport_Define_PageQuerySQL=Define sql for page break query +FR-Designer-Datasource-Param_DES= You can type "${abc}" as a parameter, here, abc is a parameter name.
 for example\: select * from table where id\=${abc}.
 select * from table where id\='${abc}'.(if the type of id is string) +FR-Designer-DS-Database_Query=DB Query +FR-Designer_Is_Share_DBTableData=Shared data set +FR-Designer_Event=Event +FR-Designer_Properties=Properties 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 e4e36a295..4ab48d0e6 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 @@ -458,3 +458,11 @@ 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 +FR-Designer-Datasource-Param_DES=  "${abc}"\u3092\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3068\u3057\u3066\u5165\u529B\u3067\u304D\u307E\u3059\u3002\u3053\u3053\u3067abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3002abc\u306F\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u306E\u540D\u524D\u3067\u3059\u3002\u4F8B\u3048\u3070
 select * from table where id\=${abc}\u3002
 select * from table where id\='${abc}'\u3002(\u3082\u3057id\u306F\u6587\u5B57\u5217\u306A\u3089)\uFFFD +FR-Designer-DS-Database_Query=\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u30AF\u30A8\u30EA\u30FC +FR-Designer-LayerPageReport_PageQuery=\u30DA\u30FC\u30B8\u5225\u30AF\u30A8\u30EA +FR-Designer-LayerPageReport_Define_PageQuerySQL=\u5B9A\u7FA9\u30DA\u30FC\u30B8\u5225\u30AF\u30A8\u30EAsql +FR-Designer_Is_Share_DBTableData=\u5171\u6709\u30C7\u30FC\u30BF\u30BB\u30C3\u30C8 +FR-Designer_Event=\ +FR-Designer_Properties=FR-Designer_Properties=\ +\ 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 8877b8a9f..64bee7903 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 @@ -454,3 +454,10 @@ 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 +FR-Designer-Datasource-Param_DES= , "${abc}"\uB97C\uB9E4\uAC1C\uBCC0\uC218\uB85C\uC785\uB825\uD560\uC218\uC788\uC73C\uBA70,abc\uB294\uB9E4\uAC1C\uBCC0\uC218\uC758\uBA85\uCE6D\uC785\uB2C8\uB2E4. \uC608\uFF1A
 select * from table where id\='${abc}'. (id\uD544\uB4DC\uAC00\uBB38\uC790\uC5F4\uC720\uD615\uC77C\uACBD\uC6B0) +FR-Designer-DS-Database_Query=\uB370\uC774\uD130\uBCA0\uC774\uC2A4\uCC3E\uC544\uBCF4\uAE30 +FR-Designer_Is_Share_DBTableData=\uB370\uC774\uD130\uC138\uD2B8\uACF5\uC720 +FR-Designer-LayerPageReport_PageQuery=\uD398\uC774\uC9C0\uB098\uB204\uAE30\uCC3E\uC544\uBCF4\uAE30 +FR-Designer-LayerPageReport_Define_PageQuerySQL=\uC815\uC758\uD398\uC774\uC9C0\uB098\uB204\uAE30\uCC3E\uC544\uBCF4\uAE30sql +FR-Designer_Event=\ +FR-Designer_Properties=\ \ No newline at end of file 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 97593c2e6..738ec6cd1 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 @@ -483,3 +483,10 @@ 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 +FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u952E\u5165"${abc}"\u505A\u4E3A\u4E00\u4E2A\u53C2\u6570\uFF0C\u8FD9\u91CCabc\u662F\u53C2\u6570\u7684\u540D\u79F0\u3002\u4F8B\u5982\uFF1A
 select * from table where id\=${abc}\u3002
 select * from table where id\='${abc}'\u3002(\u5982\u679Cid\u5B57\u6BB5\u4E3A\u5B57\u7B26\u4E32\u7C7B\u578B) +FR-Designer-DS-Database_Query=\u6570\u636E\u5E93\u67E5\u8BE2 +FR-Designer-LayerPageReport_PageQuery=\u5206\u9875\u67E5\u8BE2 +FR-Designer-LayerPageReport_Define_PageQuerySQL=\u5B9A\u4E49\u5206\u9875\u67E5\u8BE2sql +FR-Designer_Is_Share_DBTableData=\u5171\u4EAB\u6570\u636E\u96C6 +FR-Designer_Event=\u4E8B\u4EF6 +FR-Designer_Properties=\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 c6ce111a6..74d7ea26d 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 @@ -471,3 +471,10 @@ 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 +FR-Designer-Datasource-Param_DES= \u60A8\u53EF\u4EE5\u9375\u5165"${abc}"\u505A\u70BA\u4E00\u500B\u53C3\u6578\uFF0C\u9019\u91CCabc\u662F\u53C3\u6578\u7684\u540D\u7A31\u3002\u4F8B\u5982\uFF1A
 select * from table where idDatasource-Procedurewaring\=\u7CFB\u7D71\u4E0D\u80FD\u81EA\u52D5\u7372\u53D6\u8A72\u5B58\u5132\u7A0B\u5E8F\u7684\u53C3\u6578\uFF0C\u8ACB\u624B\u52D5\u65B0\u589E\! +FR-Designer-DS-Database_Query=\u8CC7\u6599\u5EAB\u67E5\u8A62 +FR-Designer-LayerPageReport_PageQuery=\u5206\u9801\u67E5\u8A62 +FR-Designer-LayerPageReport_Define_PageQuerySQL=\u5B9A\u7FA9\u5206\u9801\u67E5\u8A62sql +FR-Designer_Is_Share_DBTableData=\u662F\u5426\u5171\u4EAB\u8CC7\u6599\u96C6 +FR-Designer_Properties=\u5C6C\u6027 +FR-Designer_Event=\u4E8B\u4EF6 diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index eb20ee9e7..9355a3348 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -27,6 +27,7 @@ import com.fr.file.FILE; import com.fr.file.FileNodeFILE; import com.fr.file.filetree.FileNode; import com.fr.general.ComparatorUtils; +import com.fr.general.GeneralContext; import com.fr.general.Inter; import com.fr.stable.CoreConstants; import com.fr.stable.StableUtils; @@ -42,6 +43,7 @@ import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.Set; @@ -385,25 +387,46 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt oldName = oldName.replaceAll(suffix, ""); jd = new JDialog(); - jd.setLayout(null); + jd.setLayout(new GridLayout(2, 2)); jd.setModal(true); - UILabel newNameLable = new UILabel(Inter.getLocText("FR-Designer_Enter-New-FileName")); - newNameLable.setBounds(20, 10, 130, 30); + UILabel newNameLabel = new UILabel(Inter.getLocText("FR-Designer_Enter-New-FileName")); + newNameLabel.setMinimumSize(new Dimension(150, 27)); + newNameLabel.setHorizontalAlignment(SwingConstants.RIGHT); jt = new UITextField(oldName); jt.getDocument().addDocumentListener(getdoDocumentListener()); jt.selectAll(); - jt.setBounds(130, 15, 150, 20); - jd.add(newNameLable); - jd.add(jt); + jt.setPreferredSize(new Dimension(150, 20)); + + JPanel newNamePanel = new JPanel(); + newNamePanel.setLayout(new BoxLayout(newNamePanel, BoxLayout.X_AXIS)); + newNamePanel.add(Box.createHorizontalGlue()); + newNamePanel.add(newNameLabel); + newNamePanel.add(Box.createHorizontalStrut(5)); + jd.add(newNamePanel); + + JPanel jtPanel = new JPanel(); + jtPanel.setLayout(new BoxLayout(jtPanel, BoxLayout.Y_AXIS)); + JPanel containJt = new JPanel(new BorderLayout()); + containJt.add(jt, BorderLayout.WEST); + containJt.setMaximumSize(new Dimension(200, 20)); + jtPanel.add(Box.createVerticalGlue()); + jtPanel.add(containJt); + jtPanel.add(Box.createVerticalGlue()); + jd.add(jtPanel); + addUITextFieldListener(nodeFile, path); hintsLabel = new UILabel(); hintsLabel.setBounds(20, 50, 250, 30); + hintsLabel.setMaximumSize(new Dimension(200, 30)); + hintsLabel.setHorizontalAlignment(SwingConstants.RIGHT); hintsLabel.setForeground(Color.RED); hintsLabel.setVisible(false); confirmButton = new UIButton(Inter.getLocText("FR-Designer_Confirm")); - confirmButton.setBounds(180, 90, 60, 25); + confirmButton.setPreferredSize(new Dimension(80, 25)); + confirmButton.setMinimumSize(new Dimension(80, 25)); + confirmButton.setMaximumSize(new Dimension(80, 25)); confirmButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { confirmClose(nodeFile, path); @@ -411,17 +434,31 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt }); UIButton cancelButton = new UIButton(Inter.getLocText("FR-Designer_Cancel")); - cancelButton.setBounds(250, 90, 60, 25); + cancelButton.setPreferredSize(new Dimension(80, 25)); + cancelButton.setMinimumSize(new Dimension(80, 25)); + cancelButton.setMaximumSize(new Dimension(80, 25)); + cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jd.dispose(); } }); - jd.add(cancelButton); - jd.add(confirmButton); + JPanel hintsPanel = new JPanel(); + hintsPanel.setLayout(new BorderLayout()); + hintsPanel.add(hintsLabel, BorderLayout.EAST); jd.add(hintsLabel); - jd.setSize(340, 180); + + JPanel btPanel = new JPanel(new BorderLayout()); + btPanel.setLayout(new BoxLayout(btPanel, BoxLayout.X_AXIS)); + btPanel.add(Box.createHorizontalGlue()); + btPanel.add(confirmButton); + btPanel.add(Box.createHorizontalStrut(5)); + btPanel.add(cancelButton); + btPanel.add(Box.createHorizontalStrut(20)); + jd.add(btPanel); + + jd.setSize(380, 200); jd.setTitle(Inter.getLocText("FR-Designer_Rename")); jd.setResizable(false); jd.setAlwaysOnTop(true); 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 3e862cf28..a5a3b9499 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -140,8 +140,31 @@ public abstract class ToolBarMenuDock { // 添加帮助菜单 menuList.add(createHelpMenuDef()); + // 添加社区菜单 + addCommunityMenuDef(menuList); + return menuList.toArray(new MenuDef[menuList.size()]); } + + public void addCommunityMenuDef(java.util.List menuList){ + Locale locale = FRContext.getLocale(); + Locale [] locales =supportCommunityLocales(); + for(int i = 0; i < locales.length; i++) { + if(locale.equals(locales[i])){ + menuList.add(createCommunityMenuDef()); + break; + } + } + } + + public Locale[] supportCommunityLocales() { + return new Locale[]{ + Locale.CHINA, + Locale.JAPAN, + Locale.TAIWAN, + Locale.US, + }; + } public void insertTemplateExtendMenu(ToolBarMenuDockPlus plus, MenuDef[] menuDefs) { // 给菜单加插件入口 @@ -295,7 +318,9 @@ public abstract class ToolBarMenuDock { //shortCuts.add(new TutorialAction()); shortCuts.add(SeparatorDef.DEFAULT); if (ComparatorUtils.equals(ProductConstants.APP_NAME,FINEREPORT)) { - shortCuts.add(new FeedBackAction()); + + // mod by anchore 16/11/17 去掉反馈 + //shortCuts.add(new FeedBackAction()); shortCuts.add(SeparatorDef.DEFAULT); shortCuts.add(SeparatorDef.DEFAULT); // shortCuts.add(new ForumAction()); diff --git a/designer_base/src/com/fr/design/menu/KeySetUtils.java b/designer_base/src/com/fr/design/menu/KeySetUtils.java index 78a557806..1b62fcdc4 100644 --- a/designer_base/src/com/fr/design/menu/KeySetUtils.java +++ b/designer_base/src/com/fr/design/menu/KeySetUtils.java @@ -4,10 +4,13 @@ package com.fr.design.menu; +import com.fr.general.ComparatorUtils; +import com.fr.general.GeneralContext; import com.fr.general.Inter; import javax.swing.*; import java.awt.event.KeyEvent; +import java.util.Locale; /** * Created by IntelliJ IDEA. @@ -63,7 +66,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("M_Close_Current"); + return Inter.getLocText("FR-Designer_Close"); } @Override @@ -80,7 +83,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("M-Save"); + return Inter.getLocText("FR-Designer_Save"); } @Override @@ -148,7 +151,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("Export"); + return Inter.getLocText("FR-Designer_Export"); } @Override @@ -183,7 +186,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("Export-Excel-Page"); + return Inter.getLocText("FR-Engine_Export-Excel-Page"); } @Override @@ -201,7 +204,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("Export-Excel-Simple"); + return Inter.getLocText("FR-Engine_Export-Excel-Simple"); } @Override @@ -219,7 +222,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("Export-Excel-PageToSheet"); + return Inter.getLocText("FR-Engine_Export-Excel-PageToSheet"); } @Override @@ -362,7 +365,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("ExportAndOutput"); + return Inter.getLocText("FR-Designer_ExportAndOutput"); } @Override @@ -379,7 +382,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return "EXCEL"+Inter.getLocText("ExportAndOutput"); + return "EXCEL"+Inter.getLocText("FR-Designer_ExportAndOutput"); } @Override @@ -413,7 +416,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("M-SwitchWorkspace"); + return Inter.getLocText("FR-Designer_M-SwitchWorkspace"); } @Override @@ -430,7 +433,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("M-Exit"); + return Inter.getLocText("FR-Designer_M-Exit"); } @Override @@ -448,7 +451,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("M-Template"); + return Inter.getLocText("FR-Designer_M-Template"); } @Override @@ -639,7 +642,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("ReportColumns-Columns"); + return Inter.getLocText("FR-Designer_ReportColumns-Columns"); } @Override @@ -657,7 +660,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("M-Repeat-Freeze"); + return Inter.getLocText("FR-Designer_M-Repeat-Freeze"); } @Override @@ -675,7 +678,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("Frozen"); + return Inter.getLocText("FR-Engine_Frozen"); } @Override @@ -710,7 +713,14 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText(new String[]{"Allow", "DashBoard-Potence", "Edit"}); + + // mod by anchore 16/11/16 + if (ComparatorUtils.equals(Locale.JAPAN, GeneralContext.getLocale())) { + return Inter.getLocText(new String[]{"FR-Engine_RP_Authority_Edit", "Allow"}); + } else { + return Inter.getLocText(new String[]{"Allow", "FR-Engine_RP_Authority_Edit"}); + } + //return Inter.getLocText(new String[]{"Allow", "DashBoard-Potence", "Edit"}); } @Override @@ -727,7 +737,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("M-Cell"); + return Inter.getLocText("FR-Designer_Cell"); } @Override @@ -761,7 +771,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("Widget-Settings"); + return Inter.getLocText("FR-Designer_Widget-Settings"); } @Override @@ -795,7 +805,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("Condition_Attributes"); + return Inter.getLocText("FR-Designer_Condition_Attributes"); } @Override @@ -812,7 +822,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("Present"); + return Inter.getLocText("FR-Chart-Style_Present"); } @Override @@ -880,7 +890,7 @@ public class KeySetUtils { @Override public String getMenuName() { - return Inter.getLocText("Currency_Line"); + return Inter.getLocText("FR-Designer_Currency_Line"); } @Override diff --git a/designer_base/src/com/fr/design/style/AbstractPopBox.java b/designer_base/src/com/fr/design/style/AbstractPopBox.java index 4630c51ae..d36bca290 100644 --- a/designer_base/src/com/fr/design/style/AbstractPopBox.java +++ b/designer_base/src/com/fr/design/style/AbstractPopBox.java @@ -9,6 +9,7 @@ import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import java.awt.*; +import java.awt.event.AWTEventListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; @@ -21,212 +22,211 @@ import java.util.List; */ public abstract class AbstractPopBox extends JPanel { - protected BackgroundJComponent displayComponent; + protected BackgroundJComponent displayComponent; - private JWindow selectPopupWindow; - private boolean isWindowEventInit = false; + private JWindow selectPopupWindow; + private boolean isWindowEventInit = false; private static int GAP = 2; private static int GAP2 = 20; - private List changeListenerList = new ArrayList(); - - MouseAdapter mouseListener = new MouseAdapter() { - public void mousePressed(MouseEvent evt) { - showPopupMenu(); - } - - public void mouseExited(MouseEvent evt) { - int x= evt.getXOnScreen();//mac和widows的计算结果还不一样 - int y = evt.getYOnScreen(); - if (selectPopupWindow != null) { - Rectangle rectangle = selectPopupWindow.getBounds(); - boolean b1 = x < rectangle.x - GAP || x > rectangle.x + rectangle.width + GAP; - boolean b2 = y < rectangle.y - GAP || y >rectangle.y + rectangle.height + GAP; - if(b1 || b2) { - hidePopupMenu(); + private List changeListenerList = new ArrayList(); + + MouseAdapter mouseListener = new MouseAdapter() { + public void mousePressed(MouseEvent evt) { + showPopupMenu(); + } + + + }; + + AWTEventListener awt = new AWTEventListener() { + public void eventDispatched(AWTEvent event) { + if (event instanceof MouseEvent) { + MouseEvent evt = (MouseEvent) event; + if (evt.getClickCount() > 0) { + mouseClick(evt); } -// if (OperatingSystem.isWindows()) { -// -// }else{ -// Point pp = SwingUtilities.convertPoint(evt.getComponent(), evt.getPoint(), selectPopupWindow.getParent()); -// Rectangle rectangle = selectPopupWindow.getBounds(); -// if (pp.getY() < rectangle.getY() || pp.getY() > rectangle.getY() + rectangle.getHeight()) { -// //hidePopupMenu(); -// } -// } - } - } - }; - - private void showPopupMenu() { - if (selectPopupWindow != null && selectPopupWindow.isVisible()) { - hidePopupMenu(); - return; - } - - if (!this.isEnabled()) { - return; - } - - selectPopupWindow = this.getControlWindow(); - - Point convertPoint = new Point(0, 0); - - // e: 将点(0,0)从ColorSelectionPane的坐标系统转换到屏幕坐标. - SwingUtilities.convertPointToScreen(convertPoint, this); - int y = convertPoint.y + this.getSize().height; - int x = convertPoint.x; - int h = y + selectPopupWindow.getHeight(); - int width = x + selectPopupWindow.getWidth(); - Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); - if (h > screenSize.height) { - y = y - selectPopupWindow.getHeight() - GAP2;// 超过屏幕高度了 - } - - if(width > screenSize.width) { - x = screenSize.width - selectPopupWindow.getWidth(); - } - selectPopupWindow.setLocation(x, y); - - selectPopupWindow.setVisible(true); - - //wei : 为了点击别的地方下拉颜色窗口消失 - MouseAdapter parentMouseListener = new MouseAdapter() { - public void mousePressed(MouseEvent evt) { - mouseClick(evt); - } - }; - if (!this.isWindowEventInit && SwingUtilities.getAncestorOfClass(GradientBackgroundPane.class, this) != null) { - SwingUtilities.getAncestorOfClass(GradientBackgroundPane.class, this).addMouseListener(parentMouseListener); - this.isWindowEventInit = true; - } - } - - private void mouseClick(MouseEvent evt) { - int x = evt.getLocationOnScreen().x; - int y = evt.getLocationOnScreen().y; - Rectangle rectangle = this.getControlWindow().getBounds(); - boolean b1 = x < rectangle.x || x > rectangle.x + rectangle.width; - boolean b2 = y < rectangle.y || y > rectangle.y + rectangle.height; - if (b1 || b2) { - this.hidePopupMenu(); - } - } - - protected void hidePopupMenu() { - if (selectPopupWindow != null) { - selectPopupWindow.setVisible(false); - } - - selectPopupWindow = null; - } - - protected JWindow getControlWindow() { - //find parent. - if (this.selectPopupWindow == null) { - Window parentWindow = SwingUtilities.windowForComponent(this); - if (parentWindow != null) { - this.selectPopupWindow = new SelectControlWindow(parentWindow); - } - - selectPopupWindow.addMouseListener(new MouseAdapter() { - public void mouseExited(MouseEvent evt) { - int x = evt.getLocationOnScreen().x; - int y = evt.getLocationOnScreen().y; - - if (selectPopupWindow != null) { - double desValue = 2; - Rectangle rectangle = selectPopupWindow.getBounds(); + } + } + }; + + private void showPopupMenu() { + if (selectPopupWindow != null && selectPopupWindow.isVisible()) { + hidePopupMenu(); + return; + } + + if (!this.isEnabled()) { + return; + } + Toolkit.getDefaultToolkit().addAWTEventListener(awt, AWTEvent.MOUSE_EVENT_MASK); + + selectPopupWindow = this.getControlWindow(); + + Point convertPoint = new Point(0, 0); + + // e: 将点(0,0)从ColorSelectionPane的坐标系统转换到屏幕坐标. + SwingUtilities.convertPointToScreen(convertPoint, this); + int y = convertPoint.y + this.getSize().height; + int x = convertPoint.x; + int h = y + selectPopupWindow.getHeight(); + int width = x + selectPopupWindow.getWidth(); + Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); + if (h > screenSize.height) { + y = y - selectPopupWindow.getHeight() - GAP2;// 超过屏幕高度了 + } + + if (width > screenSize.width) { + x = screenSize.width - selectPopupWindow.getWidth(); + } + selectPopupWindow.setLocation(x, y); + + selectPopupWindow.setVisible(true); + + //wei : 为了点击别的地方下拉颜色窗口消失 + MouseAdapter parentMouseListener = new MouseAdapter() { + public void mousePressed(MouseEvent evt) { + mouseClick(evt); + } + }; + if (!this.isWindowEventInit && SwingUtilities.getAncestorOfClass(GradientBackgroundPane.class, this) != null) { + SwingUtilities.getAncestorOfClass(GradientBackgroundPane.class, this).addMouseListener(parentMouseListener); + this.isWindowEventInit = true; + } + } + + private void mouseClick(MouseEvent evt) { + Point point = new Point((int) (evt.getLocationOnScreen().getX()), (int) evt.getLocationOnScreen().getY()); + Dimension popBoxD = AbstractPopBox.this.getSize(); + Point popBoxP = AbstractPopBox.this.getLocationOnScreen(); + Dimension popMenuD = this.getControlWindow().getSize(); + Point popMenuP = this.getControlWindow().getLocation(); + Rectangle popBoxRect = new Rectangle(popBoxP, popBoxD); + Rectangle popMenuRect = new Rectangle(popMenuP, popMenuD); + if (!popBoxRect.contains(point) && !popMenuRect.contains(point)) { + this.hidePopupMenu(); + } + } + + protected void hidePopupMenu() { + if (selectPopupWindow != null) { + selectPopupWindow.setVisible(false); + } + + selectPopupWindow = null; + Toolkit.getDefaultToolkit().removeAWTEventListener(awt); + } + + protected JWindow getControlWindow() { + //find parent. + if (this.selectPopupWindow == null) { + Window parentWindow = SwingUtilities.windowForComponent(this); + if (parentWindow != null) { + this.selectPopupWindow = new SelectControlWindow(parentWindow); + } + + selectPopupWindow.addMouseListener(new MouseAdapter() { + public void mouseExited(MouseEvent evt) { + int x = evt.getLocationOnScreen().x; + int y = evt.getLocationOnScreen().y; + + if (selectPopupWindow != null) { + double desValue = 2; + Rectangle rectangle = selectPopupWindow.getBounds(); boolean b1 = x < rectangle.x + desValue || x >= rectangle.x + rectangle.width - desValue; - boolean b2 = y > rectangle.y + rectangle.height - desValue;//避免了鼠标下移刚进入selectPopupWindow的过程中弹出框隐藏,上移移出后由AbstractPopBox的mouseListener处理 + boolean b2 = y > rectangle.y + rectangle.height - desValue;//避免了鼠标下移刚进入selectPopupWindow的过程中弹出框隐藏,上移移出后由AbstractPopBox的mouseListener处理 if (b1 || b2) { - hidePopupMenu(); - } - } - } - }); - } + hidePopupMenu(); + } + } + } + }); + } - return selectPopupWindow; - } + return selectPopupWindow; + } /** * 添加事件 + * * @param changeListener 事件 */ - public void addSelectChangeListener(ChangeListener changeListener) { - this.changeListenerList.add(changeListener); - } + public void addSelectChangeListener(ChangeListener changeListener) { + this.changeListenerList.add(changeListener); + } /** * 删除事件 + * * @param changeListener 事件 */ - public void removeSelectChangeListener(ChangeListener changeListener) { - this.changeListenerList.remove(changeListener); - } + public void removeSelectChangeListener(ChangeListener changeListener) { + this.changeListenerList.remove(changeListener); + } /** * 响应事件 */ - public void fireChangeListener() { - if (!changeListenerList.isEmpty()) { - ChangeEvent evt = new ChangeEvent(this); - for (int i = 0; i < changeListenerList.size(); i++) { - this.changeListenerList.get(i).stateChanged(evt); - } - } - } + public void fireChangeListener() { + if (!changeListenerList.isEmpty()) { + ChangeEvent evt = new ChangeEvent(this); + for (int i = 0; i < changeListenerList.size(); i++) { + this.changeListenerList.get(i).stateChanged(evt); + } + } + } /** * 待说明 + * * @param background 背景 */ - public void fireDisplayComponent(Background background) { - if (displayComponent != null) { - displayComponent.setSelfBackground(background); - } - fireChangeListener(); - this.repaint(); - } + public void fireDisplayComponent(Background background) { + if (displayComponent != null) { + displayComponent.setSelfBackground(background); + } + fireChangeListener(); + this.repaint(); + } /** * 初始化弹出框的面板 + * * @param preWidth 宽度 * @return 弹出面板 */ - public abstract JPanel initWindowPane(double preWidth); + public abstract JPanel initWindowPane(double preWidth); - private class SelectControlWindow extends JWindow { - private static final long serialVersionUID = -5776589767069105911L; + private class SelectControlWindow extends JWindow { + private static final long serialVersionUID = -5776589767069105911L; - public SelectControlWindow(Window paranet) { - super(paranet); - this.initComponents(); - } + public SelectControlWindow(Window paranet) { + super(paranet); + this.initComponents(); + } - public void initComponents() { - JPanel defaultPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.setContentPane(defaultPane); + public void initComponents() { + JPanel defaultPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + this.setContentPane(defaultPane); // defaultPane.setBorder(UIManager.getBorder("PopupMenu.border")); - if (displayComponent != null) { - defaultPane.add(initWindowPane(displayComponent.getPreferredSize().getWidth())); - } else { - defaultPane.add(initWindowPane(20)); - } - this.pack(); - } - - @Override - public void setVisible(boolean b) { - super.setVisible(b); - AbstractPopBox.this.repaint(); - } - } - - protected boolean isPopupVisible() { - return selectPopupWindow == null ? false : selectPopupWindow.isVisible(); - } + if (displayComponent != null) { + defaultPane.add(initWindowPane(displayComponent.getPreferredSize().getWidth())); + } else { + defaultPane.add(initWindowPane(20)); + } + this.pack(); + } + + @Override + public void setVisible(boolean b) { + super.setVisible(b); + AbstractPopBox.this.repaint(); + } + } + + protected boolean isPopupVisible() { + return selectPopupWindow == null ? false : selectPopupWindow.isVisible(); + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/style/color/NewColorSelectPane.java b/designer_base/src/com/fr/design/style/color/NewColorSelectPane.java index feffb92e0..bbecf01d3 100644 --- a/designer_base/src/com/fr/design/style/color/NewColorSelectPane.java +++ b/designer_base/src/com/fr/design/style/color/NewColorSelectPane.java @@ -93,7 +93,10 @@ public class NewColorSelectPane extends BasicPane implements ColorSelectable { } centerPane.add(Box.createVerticalStrut(1)); - UIButton customButton = new UIButton(Inter.getLocText(new String[]{"More", "Color"}) + "..."); + + // mod by anchore 16/11/16 + UIButton customButton = new UIButton(Inter.getLocText("FR-Designer-Basic_More_Color")); + //UIButton customButton = new UIButton(Inter.getLocText(new String[]{"More", "Color"}) + "..."); customButton.addMouseListener(new MouseAdapter() { @Override diff --git a/designer_chart/.classpath b/designer_chart/.classpath index 9cb17f77c..865d0fd9a 100644 --- a/designer_chart/.classpath +++ b/designer_chart/.classpath @@ -1,20 +1,43 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java b/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java index 58b2543dc..377f7bfdb 100644 --- a/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java +++ b/designer_chart/src/com/fr/design/ChartTypeInterfaceManager.java @@ -39,7 +39,7 @@ import javax.swing.*; import java.util.*; /** - * Created by eason on 14/12/29. + * Created by eason on 14/12/29. */ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraChartDesignClassManagerProvider { @@ -274,10 +274,20 @@ public class ChartTypeInterfaceManager extends XMLFileManager implements ExtraCh */ public String getTitle4PopupWindow(String priority, String plotID){ if (chartTypeInterfaces != null && chartTypeInterfaces.containsKey(priority) && chartTypeInterfaces.get(priority).containsKey(plotID)){ - HashMap chartUIList = chartTypeInterfaces.get(priority); IndependentChartUIProvider provider = chartTypeInterfaces.get(priority).get(plotID); - return provider.getPlotTypePane().title4PopupWindow(); + return provider.getPlotTypePane().title4PopupWindow(); + } + //兼容老的插件 + if (chartTypeInterfaces != null) { + Iterator iterator = chartTypeInterfaces.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry entry = (Map.Entry) iterator.next(); + String defaultPriority = (String) entry.getKey(); + if (chartTypeInterfaces.get(defaultPriority).containsKey(plotID)) { + return chartTypeInterfaces.get(defaultPriority).get(plotID).getPlotTypePane().title4PopupWindow(); + } + } } return new String(); } diff --git a/designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartUIWithAPILevel.java b/designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartUIWithAPILevel.java index 6c7ba66d8..2a1e6b4c4 100644 --- a/designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartUIWithAPILevel.java +++ b/designer_chart/src/com/fr/design/chart/fun/impl/AbstractIndependentChartUIWithAPILevel.java @@ -15,7 +15,9 @@ import com.fr.general.ComparatorUtils; * Created by Mitisky on 16/3/7. */ public abstract class AbstractIndependentChartUIWithAPILevel implements IndependentChartUIProvider { - private static final int OLD_PLUGIN_LEVEL = 3; + //这个不能改,是做兼容用的 + //2016.10.14-11.24号的8.0jar因为改了这个为3,不会提示5.26号之前的插件更新 + private static final int OLD_PLUGIN_LEVEL = -2; @Override //以前的插件没有覆写这个方法,所以始终获取到-2,比当前level低,提示更新. diff --git a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/DataSeriesConditionPane.java b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/DataSeriesConditionPane.java index fe2107fb4..8ba1bb431 100644 --- a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/DataSeriesConditionPane.java +++ b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/DataSeriesConditionPane.java @@ -27,13 +27,22 @@ import java.util.Iterator; * Time : 上午9:16 */ public class DataSeriesConditionPane extends ConditionAttributesPane { + protected Plot plot; - - public DataSeriesConditionPane() { + public DataSeriesConditionPane(Plot plot) { + this.plot = plot; initAvailableActionList(); initComponents(); } + public void setPlot(Plot plot) { + this.plot = plot; + } + + public DataSeriesConditionPane() { + this(null); + } + private void initAvailableActionList() { addBasicAction(); addAxisPositionAction(); 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 464d6aaf9..9e03f4ec0 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 @@ -114,5 +114,4 @@ public class ChartDataPane extends AbstractChartAttrPane { public void refreshChartDataPane(ChartCollection collection){ this.populate(collection); } - } \ No newline at end of file diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypeButtonPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypeButtonPane.java index 8d9ed8153..6b6c9a427 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypeButtonPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypeButtonPane.java @@ -61,22 +61,6 @@ public class ChartTypeButtonPane extends BasicBeanPane implemen //所以:stopEditing--选中其他button则响应click之后relayout;普通失焦则直接relayout. private boolean pressOtherButtonWhenEditing = false; - -// private AWTEventListener awt = new AWTEventListener() { -// public void eventDispatched(AWTEvent event) { -// //没有进行鼠标点击,则返回 -// if (event instanceof MouseEvent && ((MouseEvent) event).getClickCount() > 0) { -// if (currentEditingEditor != null && !ComparatorUtils.equals(event.getSource(), currentEditingEditor)) { -// stopEditing(); -// if (event.getSource() instanceof ChartChangeButton) { -// ((ChartChangeButton) event.getSource()).mouseClick((MouseEvent) event); -// } -// populateBean(editingCollection); -// } -// } -// } -// }; - public ChartTypeButtonPane(ChartTypePane chartTypePane){ this(); parent = chartTypePane; @@ -275,8 +259,9 @@ public class ChartTypeButtonPane extends BasicBeanPane implemen break; } } - if (editChartType != null) { - editChartType.populateBean(editingCollection.getSelectedChart()); + //切换时重新更新整个面板 + if (parent != null) { + parent.populate(editingCollection); } } } @@ -439,26 +424,23 @@ public class ChartTypeButtonPane extends BasicBeanPane implemen } private void deleteAButton() { + //先重构属性,在重构面板,否则面板在重构过程中,会重新将属性中的切换图表加到indexList中,导致面板无法删除 + if (editingCollection != null) { + int count = editingCollection.getChartCount(); + for (int i = 0; i < count; i++) { + if (ComparatorUtils.equals(getButtonName(), editingCollection.getChartName(i))) { + editingCollection.removeNameObject(i); + break; + } + } + } + if (indexList.contains(this) && indexList.size() > 1) { indexList.remove(this); - if (this.isSelected()) { indexList.get(0).setSelected(true); changeCollectionSelected(indexList.get(0).getButtonName()); } - - if (editingCollection != null) { - int count = editingCollection.getChartCount(); - for (int i = 0; i < count; i++) { - if (ComparatorUtils.equals(getButtonName(), editingCollection.getChartName(i))) { - editingCollection.removeNameObject(i); - if (i <= editingCollection.getSelectedIndex()){ - editingCollection.setSelectedIndex(editingCollection.getSelectedIndex()-1); - } - break; - } - } - } } //获取图表收集器的状态 diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java index eab0010ea..6c747c9cc 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/ChartTypePane.java @@ -291,8 +291,10 @@ public class ChartTypePane extends AbstractChartAttrPane{ paneState.setPaneState(collection.getState()); } + // TODO: 2016/11/17 因为现在populate面板时会重新构造面板,所以每次都需要重构 private boolean needReactor(ChartCollection collection) { - return paneState.getChartID() != collection.getRepresentChartID() || paneState.getPaneState() != collection.getState(); + /*return paneState.getChartID() != collection.getRepresentChartID() || paneState.getPaneState() != collection.getState();*/ + return true; } /** @@ -300,8 +302,15 @@ public class ChartTypePane extends AbstractChartAttrPane{ */ public void populate(ChartCollection collection) { Chart chart = collection.getSelectedChart(); + this.remove(leftContentPane); + initContentPane(); + buttonPane.populateBean(collection); chartTypePane.populateBean(chart); + //remove面板之后,就需要重构下拉框 + reactorChartTypePane(collection); + + this.initAllListeners(); } /** diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/ChartDatapointLabelPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/ChartDatapointLabelPane.java index 1cfdb220f..6afc7b7d7 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/style/ChartDatapointLabelPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/style/ChartDatapointLabelPane.java @@ -432,7 +432,7 @@ public class ChartDatapointLabelPane extends BasicPane{ this.percentFormatPane = new FormatPane(); } if(this.percentFormat == null){ - DecimalFormat defaultFormat = new CoreDecimalFormat(new DecimalFormat(), "#.##%"); + DecimalFormat defaultFormat = new CoreDecimalFormat(new DecimalFormat("#.##%"), "#.##%"); percentFormatPane.populateBean(defaultFormat); this.percentFormat = defaultFormat; } diff --git a/designer_form/.classpath b/designer_form/.classpath index 4eb8d8868..21414c0fb 100644 --- a/designer_form/.classpath +++ b/designer_form/.classpath @@ -1,15 +1,43 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/designer_form/build.master.gradle b/designer_form/build.master.gradle index 9c9764727..324f408bf 100644 --- a/designer_form/build.master.gradle +++ b/designer_form/build.master.gradle @@ -47,6 +47,16 @@ def dataContent ={def dir -> } } } +FileTree f1=fileTree(dir:'../../../',include:"finereport-*-stable/${branchName}/build/libs/*.jar") +f1.each{File file-> + println "----------${file.path}" +} + +FileTree f2=fileTree(dir:"../../../finereport-lib-stable/${branchName}",include:'**/*.jar') +f2.each{File file-> + println "----------${file.path}" +} + //将非.java文件复制到classes文件夹下 参与打包 task copyFile(type:Copy,dependsOn:compileJava){ diff --git a/designer_form/build.master.gradle.bak b/designer_form/build.master.gradle.bak new file mode 100644 index 000000000..b6fdde506 --- /dev/null +++ b/designer_form/build.master.gradle.bak @@ -0,0 +1,93 @@ + +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' + } + } +} +FileTree f1=fileTree(dir:'../../../'include:"finereport-*-stable/${branchName}/build/libs/*.jar") +f1.each{File file-> + println "----------${file.path}" +} + +FileTree f2=fileTree(dir:"../../../finereport-lib-stable/${branchName}",include:'**/*.jar') +f2.each{File file-> + println "----------${file.path}" +} + + +//将非.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/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java index 3ab61eb38..3d53eab01 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRAbsoluteLayoutAdapter.java @@ -60,6 +60,13 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { if (comp == null){ return false; } + //参数面板内的组件不允许拖往绝对布局中 + if (creator.getParent() != null && ((XCreator)creator.getParent()).acceptType(XWParameterLayout.class)){ + Rectangle rec = creator.getBounds(); + rec.y = creator.getParent().getHeight() - rec.height; + creator.setBounds(rec); + return false; + } //判断下组件能不能拖入绝对布局 if (!creator.canEnterIntoAbsolutePane()){ return false; @@ -67,38 +74,7 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator)comp).getTopLayout(); if(topLayout != null){ if (topLayout.isEditable()){ - //判断有没有和当前控件重叠 - //先计算当前控件的位置 - int creatorX, creatorY; - if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { - - Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); - creatorX = creatorRectangle.x; - creatorY = creatorRectangle.y; - } else { - int w = creator.getWidth() / 2; - int h = creator.getHeight() / 2; - creatorX = x - w; - creatorY = y - h; - } - //再判断和布局中其他控件重叠 - Rectangle curRec = new Rectangle(creatorX, creatorY, creator.getWidth(), creator.getHeight()); - WAbsoluteLayout wAbsoluteLayout = (WAbsoluteLayout)topLayout.toData(); - for (int i = 0, count = wAbsoluteLayout.getWidgetCount(); i < count; i++) { - WAbsoluteLayout.BoundsWidget temp = (WAbsoluteLayout.BoundsWidget) wAbsoluteLayout.getWidget(i); - Rectangle rectangle = temp.getBounds(); - if (curRec.intersects(rectangle)){ - return false; - } - } - if (creatorX < 0 - || creatorX + creator.getWidth() > container.getWidth() - || creatorY < 0 - || creatorY + creator.getHeight() > container.getHeight()) { - return false; - } - return x >= 0 && y >= 0 && creator.getHeight() <= container.getHeight() - && creator.getWidth() <= container.getWidth(); + return topLayoutAccept(creator, x, y, topLayout); } //绝对布局嵌套,处于内层,不可编辑,不添加,topLayout只能获取到最外层可编辑的布局 else if (((XLayoutContainer)topLayout.getParent()).acceptType(XWAbsoluteLayout.class)) { @@ -115,6 +91,42 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { return false; } + //toplayout假如可以编辑的话就往里面添加组件 + private boolean topLayoutAccept(XCreator creator, int x, int y, XLayoutContainer topLayout) { + //判断有没有和当前控件重叠 + //先计算当前控件的位置 + int creatorX, creatorY; + if (XCreatorUtils.getParentXLayoutContainer(creator) != null) { + + Rectangle creatorRectangle = ComponentUtils.getRelativeBounds(creator); + creatorX = creatorRectangle.x; + creatorY = creatorRectangle.y; + } else { + int w = creator.getWidth() / 2; + int h = creator.getHeight() / 2; + creatorX = x - w; + creatorY = y - h; + } + //再判断和布局中其他控件重叠 + Rectangle curRec = new Rectangle(creatorX, creatorY, creator.getWidth(), creator.getHeight()); + WAbsoluteLayout wAbsoluteLayout = (WAbsoluteLayout)topLayout.toData(); + for (int i = 0, count = wAbsoluteLayout.getWidgetCount(); i < count; i++) { + WAbsoluteLayout.BoundsWidget temp = (WAbsoluteLayout.BoundsWidget) wAbsoluteLayout.getWidget(i); + Rectangle rectangle = temp.getBounds(); + if (curRec.intersects(rectangle)){ + return false; + } + } + if (creatorX < 0 || creatorX + creator.getWidth() > container.getWidth()) { + return false; + } + if (creatorY < 0 || creatorY + creator.getHeight() > container.getHeight()){ + return false; + } + return x >= 0 && y >= 0 && creator.getHeight() <= container.getHeight() + && creator.getWidth() <= container.getWidth(); + } + /** * 判断是否鼠标在组件的三等分区域,如果组件在布局管理器中间,上下左右都可能会三等分 * @param parentComp 鼠标所在区域的组件 @@ -156,6 +168,7 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { return !ComparatorUtils.equals(trisectAreaDirect, 0); } + //当前绝对布局不可编辑,就当成一个控件,组件添加在周围 private boolean acceptWidget(XCreator creator, int x, int y){ isFindRelatedComps = false; //拖入组件判断时,先判断是否为交叉点区域,其次三等分区域,再次平分区域 @@ -235,6 +248,7 @@ public class FRAbsoluteLayoutAdapter extends FRBodyLayoutAdapter { } XWAbsoluteLayout layout = (XWAbsoluteLayout) container; layout.updateBoundsWidget(creator); + updateCreatorBackBound(); LayoutUtils.layoutRootContainer(container); }else{ fixAbsolute(creator, x, y); diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java index e02dbd8fc..25b079caf 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java @@ -42,7 +42,16 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { public static final String WIDGETPANEICONPATH = "/com/fr/web/images/form/resources/layout_absolute.png"; private static final int DEPENDING_SCOPE = 3; private HoverPainter painter; + //区分拖拽和编辑宽高 + private boolean isEdit; + public boolean isEdit() { + return isEdit; + } + + public void setEdit(boolean edit) { + isEdit = edit; + } /** * 构造函数 * @@ -411,13 +420,15 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { // 根据需要依附的位置调整拖拽的坐标值 private int adjustCoordinateByDependingLine(int coordinate, int[] coordinates) { - for (int i = 0; i < coordinates.length; i++) { - if (coordinate == coordinates[i]) { - continue; - } - if (coordinate > coordinates[i] - DEPENDING_SCOPE && coordinate < coordinates[i] + DEPENDING_SCOPE) { - coordinate = coordinates[i]; - break; + if(!isEdit) { + for (int i = 0; i < coordinates.length; i++) { + if (coordinate == coordinates[i]) { + continue; + } + if (coordinate > coordinates[i] - DEPENDING_SCOPE && coordinate < coordinates[i] + DEPENDING_SCOPE) { + coordinate = coordinates[i]; + break; + } } } return coordinate; @@ -425,10 +436,12 @@ public class FRFitLayoutAdapter extends FRBodyLayoutAdapter { // 根据需要依附的位置调整拖拽的距离 private int adjustDiffByDependingLine(int coordinate, int[] coordinates, int diff) { - for (int i = 0; i < coordinates.length; i++) { - if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { - diff = coordinates[i] - coordinate; - break; + if(!isEdit) { + for (int i = 0; i < coordinates.length; i++) { + if (coordinate + diff > coordinates[i] - DEPENDING_SCOPE && coordinate + diff < coordinates[i] + DEPENDING_SCOPE) { + diff = coordinates[i] - coordinate; + break; + } } } return diff; 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 df2875939..06ae6fa78 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java @@ -96,7 +96,6 @@ public class XWAbsoluteLayout extends XLayoutContainer { if(screenValue != FormArea.DEFAULT_SLIDER){ this.setContainerPercent(screenValue / FormArea.DEFAULT_SLIDER); } - widget.setDesigningResolution(scrnsize); } /** @@ -208,7 +207,33 @@ public class XWAbsoluteLayout extends XLayoutContainer { } } } - + + /** + * 更新子组件的Bound + * 这边主要用于绝对布局子组件在适应区域选项时 + * 涉及到的不同分辨率下缩放 + * @param minHeight 最小高度 + */ + @Override + public void updateChildBound(int minHeight) { + double prevContainerPercent = FRScreen.getByDimension(toData().getDesigningResolution()).getValue() / FormArea.DEFAULT_SLIDER; + if (toData().getCompState() == 0 && prevContainerPercent != containerPercent) { + for (int i = 0; i < this.getComponentCount(); i++) { + XCreator creator = getXCreator(i); + Rectangle rec = new Rectangle(creator.getBounds()); + rec.x = (int)(rec.x / prevContainerPercent * containerPercent); + rec.y = (int)(rec.y / prevContainerPercent * containerPercent); + rec.height = (int)(rec.height / prevContainerPercent * containerPercent); + rec.width = (int)(rec.width / prevContainerPercent * containerPercent); + BoundsWidget wgt = toData().getBoundsWidget(creator.toData()); + wgt.setBounds(rec); + creator.setBounds(rec); + creator.updateChildBound(minHeight); + } + } + toData().setDesigningResolution(Toolkit.getDefaultToolkit().getScreenSize()); + } + /** * 增加对齐线 * @param connector 对齐线 @@ -418,7 +443,7 @@ public class XWAbsoluteLayout extends XLayoutContainer { ); g2d.setColor(Color.BLACK); //画编辑文字 - g2d.drawString(Inter.getLocText("Edit"), x + w / 2 - 2, y + h / 2 + 5); + g2d.drawString(Inter.getLocText("FR-Designer_Edit"), x + w / 2 - 2, y + h / 2 + 5); } } diff --git a/designer_form/src/com/fr/design/designer/properties/FRFitLayoutConstraints.java b/designer_form/src/com/fr/design/designer/properties/FRFitLayoutConstraints.java index 6a9202c1c..f95b4242c 100644 --- a/designer_form/src/com/fr/design/designer/properties/FRFitLayoutConstraints.java +++ b/designer_form/src/com/fr/design/designer/properties/FRFitLayoutConstraints.java @@ -2,8 +2,6 @@ package com.fr.design.designer.properties; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.adapters.layout.FRFitLayoutAdapter; -import com.fr.design.designer.creator.XCreatorUtils; -import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.mainframe.widget.editors.IntegerPropertyEditor; @@ -12,8 +10,9 @@ import com.fr.design.designer.beans.ConstraintsGroupModel; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XWFitLayout; import com.fr.design.utils.ComponentUtils; -import com.fr.form.ui.Widget; +import com.fr.form.ui.PaddingMargin; import com.fr.form.ui.container.WFitLayout; +import com.fr.form.ui.container.WLayout; import com.fr.general.Inter; import javax.swing.*; @@ -30,8 +29,8 @@ import java.awt.*; */ //控件在自适应布局中宽度、高度属性,7.1.1不可编辑 public class FRFitLayoutConstraints implements ConstraintsGroupModel { - private static final int MINHEIGHT = XCreator.SMALL_PREFERRED_SIZE.height; - private static final int MINWIDTH = XCreator.SMALL_PREFERRED_SIZE.width; + private static final int MINHEIGHT = WLayout.MIN_HEIGHT; + private static final int MINWIDTH = WLayout.MIN_WIDTH; private static final int ROWNUM = 2; private DefaultTableCellRenderer renderer; @@ -48,7 +47,7 @@ public class FRFitLayoutConstraints implements ConstraintsGroupModel { @Override public String getGroupName() { - return Inter.getLocText("Widget-Size"); + return Inter.getLocText("FR-Designer-Widget_Size"); } @Override @@ -71,9 +70,9 @@ public class FRFitLayoutConstraints implements ConstraintsGroupModel { if (column == 0) { switch (row) { case 0: - return Inter.getLocText("Tree-Width"); + return Inter.getLocText("FR-Designer-Tree_Width"); default: - return Inter.getLocText("Tree-Height"); + return Inter.getLocText("FR-Designer-Tree_Height"); } } else { switch (row) { @@ -91,36 +90,45 @@ public class FRFitLayoutConstraints implements ConstraintsGroupModel { int v = value == null ? 0 : ((Number) value).intValue(); int difference = 0; Rectangle bounds = getBounds(); + Rectangle rec = ComponentUtils.getRelativeBounds(parent); + WFitLayout wFitLayout = parent.toData(); + int minHeight = (int)(MINHEIGHT * wFitLayout.getResolutionScaling()); + int minWidth = (int)(MINWIDTH * wFitLayout.getResolutionScaling()); + PaddingMargin margin= wFitLayout.getMargin(); switch (row) { case 0: - if(v < MINWIDTH){ - JOptionPane.showMessageDialog(null, Inter.getLocText("Min-Width") + Integer.toString(MINWIDTH)); - v = xCreator.getWidth(); - } if (bounds.width == v){ return false; } + if(bounds.width == rec.width - margin.getLeft() - margin.getRight()){ + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Beyond_Bounds")); + }else if(v < minWidth){ + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Min_Width") + Integer.toString(minWidth)); + v = xCreator.getWidth(); + } difference = bounds.width - v; bounds.width = v; break; case 1: - if(v < MINHEIGHT){ - JOptionPane.showMessageDialog(null, Inter.getLocText("Min-Height") + Integer.toString(MINHEIGHT)); - v = xCreator.getHeight(); - } if (bounds.height == v){ return false; } + if(bounds.height == rec.height - margin.getTop() - margin.getBottom()){ + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Beyond_Bounds")); + }else if(v < minHeight){ + JOptionPane.showMessageDialog(null, Inter.getLocText("FR-Designer-Min_Height") + Integer.toString(minHeight)); + v = xCreator.getHeight(); + } difference = bounds.height - v; bounds.height = v; break; } - WFitLayout wFitLayout = parent.toData(); wFitLayout.setBounds(xCreator.toData(),bounds); FormDesigner formDesigner = WidgetPropertyPane.getInstance().getEditingFormDesigner(); Rectangle backupBounds = getBounds(); FRFitLayoutAdapter layoutAdapter = (FRFitLayoutAdapter) AdapterBus.searchLayoutAdapter(formDesigner, xCreator); if (layoutAdapter != null) { + layoutAdapter.setEdit(true); layoutAdapter.calculateBounds(backupBounds, bounds, xCreator, row, difference); } return true; @@ -131,7 +139,6 @@ public class FRFitLayoutConstraints implements ConstraintsGroupModel { public Rectangle getBounds(){ Rectangle bounds = new Rectangle(xCreator.getBounds()); - XLayoutContainer parent = XCreatorUtils.getParentXLayoutContainer(xCreator); if (parent == null) { return bounds; } 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 d5de1eb4f..692359bbd 100644 --- a/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java +++ b/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java @@ -110,7 +110,7 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP public void initBeforeUpEdit() { WidgetToolBarPane.getInstance(this); EastRegionContainerPane.getInstance().replaceDownPane( - FormWidgetDetailPane.getInstance(this)); + FormWidgetDetailPane.getInstance(this)); if (!BaseUtils.isAuthorityEditing()) { EastRegionContainerPane.getInstance().addParameterPane(ParameterPropertyPane.getInstance(this)); EastRegionContainerPane.getInstance().setParameterHeight(ParameterPropertyPane.getInstance(this).getPreferredSize().height); @@ -123,35 +123,35 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP } - /** - * 创建权限编辑面板 - * @return 面板 - */ + /** + * 创建权限编辑面板 + * @return 面板 + */ public AuthorityEditPane createAuthorityEditPane() { return new FormWidgetAuthorityEditPane(this); } - /** - * 内容属性表面板 - * @return 内容属性表面板 - */ + /** + * 内容属性表面板 + * @return 内容属性表面板 + */ public JPanel getEastUpPane() { return WidgetPropertyPane.getInstance(this); } - /** - * 参数属性表 - * @return 参数属性表 - */ + /** + * 参数属性表 + * @return 参数属性表 + */ public JPanel getEastDownPane() { return FormWidgetDetailPane.getInstance(this); } - /** - * 权限编辑面板 - * @return 权限编辑面板 - */ + /** + * 权限编辑面板 + * @return 权限编辑面板 + */ public AuthorityEditPane getAuthorityEditPane() { FormWidgetAuthorityEditPane formWidgetAuthorityEditPane = new FormWidgetAuthorityEditPane(this); formWidgetAuthorityEditPane.populateDetials(); @@ -248,9 +248,9 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP return xx.isEmpty(); } - protected void setToolbarButtons(boolean flag) { - DesignerContext.getDesignerFrame().checkCombineUp(!flag, NAME_ARRAY_LIST); - } + protected void setToolbarButtons(boolean flag) { + DesignerContext.getDesignerFrame().checkCombineUp(!flag, NAME_ARRAY_LIST); + } /** * 看看参数面板中的控件是否有和模板参数同名的 @@ -312,17 +312,17 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP return SearchQueryCreators(rootContainer); } - /** - * 返回复制粘贴删除等动作 - * @return 同上 - */ - public Action[] getActions() { - if (designer_actions == null) { - designer_actions = new Action[]{new CutAction(this), new CopyAction(this), new PasteAction(this), - new FormDeleteAction(this)}; - } - return designer_actions; - } + /** + * 返回复制粘贴删除等动作 + * @return 同上 + */ + public Action[] getActions() { + if (designer_actions == null) { + designer_actions = new Action[]{new CutAction(this), new CopyAction(this), new PasteAction(this), + new FormDeleteAction(this)}; + } + return designer_actions; + } private boolean SearchQueryCreators(XLayoutContainer rootContainer) { boolean b = false; @@ -354,9 +354,9 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP ParameterPropertyPane.getInstance().populateBean(p); } - /** - * 初始化 - */ + /** + * 初始化 + */ public void initWidgetToolbarPane() { WidgetToolBarPane.getInstance(this); } @@ -378,38 +378,38 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP this.refreshRoot(); } - /** - * 报表直接判断底层是否是绝对布局 - * @return 是则返回true - */ - public boolean hasWAbsoluteLayout() { - return this.getTarget().getContainer() instanceof WAbsoluteLayout; - } - - /** - * 刷新底层容器 - */ - public void refreshRoot() { - XLayoutContainer layoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator(this.getTarget() - .getContainer()); - if (layoutContainer == null) { - layoutContainer = new XWParameterLayout(); - } - layoutContainer.setSize(LARGE_PREFERRED_SIZE); - setRootComponent(layoutContainer); - } - - /** - * 是否是报表的参数面板 - * @return 是 - */ - public boolean isFormParaDesigner(){ - return true; - } - - public XLayoutContainer getParaComponent() { - return getRootComponent(); - } + /** + * 报表直接判断底层是否是绝对布局 + * @return 是则返回true + */ + public boolean hasWAbsoluteLayout() { + return this.getTarget().getContainer() instanceof WAbsoluteLayout; + } + + /** + * 刷新底层容器 + */ + public void refreshRoot() { + XLayoutContainer layoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator(this.getTarget() + .getContainer()); + if (layoutContainer == null) { + layoutContainer = new XWParameterLayout(); + } + layoutContainer.setSize(LARGE_PREFERRED_SIZE); + setRootComponent(layoutContainer); + } + + /** + * 是否是报表的参数面板 + * @return 是 + */ + public boolean isFormParaDesigner(){ + return true; + } + + public XLayoutContainer getParaComponent() { + return getRootComponent(); + } private void paintLinkParameters(Graphics clipg) { Parameter[] paras = DesignModelAdapter.getCurrentModelAdapter().getParameters(); @@ -494,8 +494,8 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP public void populateRootSize() { ((FormParameterUI) getTarget()).setDesignSize(getRootComponent().getSize()); if (getParaComponent().acceptType(XWParameterLayout.class)) { - WParameterLayout layout = (WParameterLayout)getParaComponent().toData(); - layout.setDesignWidth(getRootComponent().getWidth()); + WParameterLayout layout = (WParameterLayout)getParaComponent().toData(); + layout.setDesignWidth(getRootComponent().getWidth()); } } @@ -552,12 +552,12 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP return true; } - /** - * 加入参数 - * @param parameter 参数 c - * @param currentIndex 位置 w - * @return 是否加入 s - */ + /** + * 加入参数 + * @param parameter 参数 c + * @param currentIndex 位置 w + * @return 是否加入 s + */ public boolean addingParameter2Editor(Parameter parameter, int currentIndex) { com.fr.form.ui.Label label = new com.fr.form.ui.Label(); String name = parameter.getName(); @@ -578,12 +578,12 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP } - /** - * 加入参数 - * @param parameter 参数 c - * @param currentIndex 位置 w - * @return 是否加入 s - */ + /** + * 加入参数 + * @param parameter 参数 c + * @param currentIndex 位置 w + * @return 是否加入 s + */ public boolean addingParameter2EditorWithQueryButton(Parameter parameter, int currentIndex) { com.fr.form.ui.Label label = new com.fr.form.ui.Label(); String name = parameter.getName(); @@ -612,12 +612,12 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP return true; } - /** - * 加入参数 - * @param parameterArray 参数 c - * @param currentIndex 位置 w - * @return 是否加入 s - */ + /** + * 加入参数 + * @param parameterArray 参数 c + * @param currentIndex 位置 w + * @return 是否加入 s + */ public void addingAllParameter2Editor(Parameter[] parameterArray, int currentIndex) { for (int i = 0; i < parameterArray.length; i++) { com.fr.form.ui.Label label = new com.fr.form.ui.Label(); @@ -670,18 +670,18 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP return true; } - /** - * 工具栏 - * @return 工具栏面板 g - */ + /** + * 工具栏 + * @return 工具栏面板 g + */ public JPanel[] toolbarPanes4Form() { return new JPanel[]{FormParaPane.getInstance(this)}; } - /** - * 复制等按钮 - * @return 按钮组 a - */ + /** + * 复制等按钮 + * @return 按钮组 a + */ public JComponent[] toolBarButton4Form() { return new JComponent[]{new CutAction(this).createToolBarComponent(), new CopyAction(this).createToolBarComponent(), new PasteAction(this).createToolBarComponent(), new FormDeleteAction(this).createToolBarComponent()}; diff --git a/designer_form/src/com/fr/design/mainframe/ComponentTree.java b/designer_form/src/com/fr/design/mainframe/ComponentTree.java index f31a64eed..4d58c4887 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/FormDesigner.java b/designer_form/src/com/fr/design/mainframe/FormDesigner.java index b24b2d96f..a3b197e91 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesigner.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesigner.java @@ -121,7 +121,7 @@ public class FormDesigner extends TargetComponent
implements TreeSelection private static final int H_GAP = 105; public FormDesigner(Form form) { - this(form, null); + this(form, null); } public FormDesigner(Form form, Action switchAction) { @@ -201,15 +201,15 @@ public class FormDesigner extends TargetComponent implements TreeSelection EastRegionContainerPane.getInstance().setParameterHeight(ParameterPropertyPane.getInstance(this).getPreferredSize().height); } - private void removeSame(Parameter[] parameters, List namelist){ - for (Parameter parameter : parameters) { - for (String name : namelist) { - if (name.equalsIgnoreCase(parameter.getName())) { - setParameterArray((Parameter[]) ArrayUtils.removeElement(getParameterArray(), parameter)); - } - } - } - } + private void removeSame(Parameter[] parameters, List namelist){ + for (Parameter parameter : parameters) { + for (String name : namelist) { + if (name.equalsIgnoreCase(parameter.getName())) { + setParameterArray((Parameter[]) ArrayUtils.removeElement(getParameterArray(), parameter)); + } + } + } + } /** @@ -405,10 +405,10 @@ public class FormDesigner extends TargetComponent implements TreeSelection * 加入参数面板 */ public void addParaComponent(){ - if (paraComponent != null) { - return ; - } - paraHeight = WBorderLayout.DEFAULT_SIZE; + if (paraComponent != null) { + return ; + } + paraHeight = WBorderLayout.DEFAULT_SIZE; paraComponent = new XWParameterLayout(); paraComponent.toData().setWidgetName("para"); paraComponent.setSize(paraComponent.initEditorSize()); @@ -428,10 +428,10 @@ public class FormDesigner extends TargetComponent implements TreeSelection * @return 父容器 */ public Component getTopContainer(){ - if(rootComponent != null){ - // 返回root所在的父容器,非designer - return LayoutUtils.getTopContainer(rootComponent); - } + if(rootComponent != null){ + // 返回root所在的父容器,非designer + return LayoutUtils.getTopContainer(rootComponent); + } return XCreatorUtils.createXCreator(this.getTarget().getContainer()); } @@ -448,9 +448,9 @@ public class FormDesigner extends TargetComponent implements TreeSelection * @param height 高度 */ public void setParaHeight(int height){ - XWBorderLayout container = (XWBorderLayout) getTopContainer(); - container.toData().setNorthSize(height); - container.setSize(container.getWidth(), container.getHeight() + height - getParaHeight()); + XWBorderLayout container = (XWBorderLayout) getTopContainer(); + container.toData().setNorthSize(height); + container.setSize(container.getWidth(), container.getHeight() + height - getParaHeight()); paraHeight = height; } @@ -475,39 +475,39 @@ public class FormDesigner extends TargetComponent implements TreeSelection * @param elementCaseContainer 容器 */ public void switchTab(FormElementCaseContainerProvider elementCaseContainer){ - if(this.switchAction == null){ - return; - } - this.elementCaseContainer = elementCaseContainer; - this.switchAction.actionPerformed(null); + if(this.switchAction == null){ + return; + } + this.elementCaseContainer = elementCaseContainer; + this.switchAction.actionPerformed(null); } public void setElementCaseContainer(FormElementCaseContainerProvider elementCaseContainer){ - this.elementCaseContainer = elementCaseContainer; + this.elementCaseContainer = elementCaseContainer; } public FormElementCaseProvider getElementCase(){ - return this.elementCaseContainer.getElementCase(); + return this.elementCaseContainer.getElementCase(); } public String getElementCaseContainerName(){ - return this.elementCaseContainer.getElementCaseContainerName(); + return this.elementCaseContainer.getElementCaseContainerName(); } public void setElementCase(FormElementCaseProvider elementCase){ - this.elementCaseContainer.setElementCase(elementCase); + this.elementCaseContainer.setElementCase(elementCase); } public void setElementCaseBackground(BufferedImage image){ - this.elementCaseContainer.setBackground(image); + this.elementCaseContainer.setBackground(image); } public Dimension getElementCaseContainerSize(){ - return this.elementCaseContainer.getSize(); + return this.elementCaseContainer.getSize(); } public FormElementCaseContainerProvider getElementCaseContainer(){ - return this.elementCaseContainer; + return this.elementCaseContainer; } protected FormDesignerModeForSpecial createFormDesignerTargetMode() { @@ -604,7 +604,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection * @param width 指定的宽度 */ public void updateWidth(int width) { - //TODO + //TODO } /** @@ -615,12 +615,12 @@ public class FormDesigner extends TargetComponent implements TreeSelection * @return 不返回任何对象 */ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { - if(rootComponent != null){ - LayoutUtils.layoutRootContainer(rootComponent); - } - if(paraComponent != null){ - LayoutUtils.layoutRootContainer(paraComponent); - } + if(rootComponent != null){ + LayoutUtils.layoutRootContainer(rootComponent); + } + if(paraComponent != null){ + LayoutUtils.layoutRootContainer(paraComponent); + } repaint(); return null; } @@ -640,7 +640,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection @Override public void fireCreatorModified(DesignerEvent evt) { - // 只有选择组件时不触发模版更新,其他都要触发 + // 只有选择组件时不触发模版更新,其他都要触发 if (evt.getCreatorEventID() != DesignerEvent.CREATOR_SELECTED) { FormDesigner.this.fireTargetModified(); //bug59192 @@ -702,7 +702,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection * 从root组件递归查找x,y所在的组件,注意是正在被设计的组件,因此其name属性必须不为空 */ private XCreator xCreatorAt(int x, int y, XCreator root, XCreator[] except) { - if (root == null || !root.isVisible()) { + if (root == null || !root.isVisible()) { return null; } x -= root.getX(); @@ -758,21 +758,21 @@ public class FormDesigner extends TargetComponent implements TreeSelection * 刷新底层容器 */ public void refreshRoot() { - // 撤销恢复操作都会refreshRoot,这时候的target.getContainer里的widget会和之前不一样,所以不用root判断来取 - XLayoutContainer formLayoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator(this.getTarget().getContainer()); + // 撤销恢复操作都会refreshRoot,这时候的target.getContainer里的widget会和之前不一样,所以不用root判断来取 + XLayoutContainer formLayoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator(this.getTarget().getContainer()); // 布局默认都是1,底层的border改为0,不然没意义 this.getTarget().getContainer().setMargin(new PaddingMargin(0,0,0,0)); formLayoutContainer.setBorder(null); if (formLayoutContainer.acceptType(XWBorderLayout.class)) { - WBorderLayout borderLayout = (WBorderLayout) formLayoutContainer.toData(); + WBorderLayout borderLayout = (WBorderLayout) formLayoutContainer.toData(); Widget northWidget = borderLayout.getLayoutWidget(WBorderLayout.NORTH); - Widget centerWidget = borderLayout.getLayoutWidget(WBorderLayout.CENTER); + Widget centerWidget = borderLayout.getLayoutWidget(WBorderLayout.CENTER); //本身含有,这儿得先清空再加 formLayoutContainer.removeAll(); refreshNorth(northWidget, formLayoutContainer); - refreshCenter(centerWidget, formLayoutContainer); + refreshCenter(centerWidget, formLayoutContainer); } else { formLayoutContainer.setSize(LARGE_PREFERRED_SIZE); @@ -781,43 +781,43 @@ public class FormDesigner extends TargetComponent implements TreeSelection } private void refreshNorth(Widget northWidget, XLayoutContainer formLayoutContainer) { - // 如果没有参数界面, 那么就处理下高度以及参数界面的按钮要点亮 - if (northWidget == null) { - paraComponent = null; - paraHeight = 0; - FormParaWidgetPane.getInstance(this); - return; - } - - XLayoutContainer northContainer = (XLayoutContainer) XCreatorUtils.createXCreator(northWidget); - paraHeight = ((XWBorderLayout)formLayoutContainer).toData().getNorthSize(); - paraComponent = northContainer; - northContainer.setSize(0,paraHeight); - formLayoutContainer.add(northContainer, WBorderLayout.NORTH); - } - - private void refreshCenter(Widget centerWidget, XLayoutContainer formLayoutContainer) { - // 不存在center块, 说明是新建的模板 - if (centerWidget == null) { - XLayoutContainer layoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator(new WFitLayout("body")); - layoutContainer.setSize(LARGE_PREFERRED_SIZE); - setRootComponent(layoutContainer); - formLayoutContainer.add(rootComponent, WBorderLayout.CENTER); - return; - } - - XLayoutContainer centerContainer = (XLayoutContainer) XCreatorUtils.createXCreator(centerWidget); - Dimension d = new Dimension(); - d.width = ((WFitLayout) centerWidget).getContainerWidth(); - d.height = ((WFitLayout) centerWidget).getContainerHeight(); - centerContainer.setSize(d); - formLayoutContainer.setSize(d.width, d.height + paraHeight); - setRootComponent(centerContainer); - // 再次打开时,layout下root,有内边距的话组件加上 - LayoutUtils.layoutContainer(centerContainer); - formLayoutContainer.add(rootComponent, WBorderLayout.CENTER); + // 如果没有参数界面, 那么就处理下高度以及参数界面的按钮要点亮 + if (northWidget == null) { + paraComponent = null; + paraHeight = 0; + FormParaWidgetPane.getInstance(this); + return; + } + + XLayoutContainer northContainer = (XLayoutContainer) XCreatorUtils.createXCreator(northWidget); + paraHeight = ((XWBorderLayout)formLayoutContainer).toData().getNorthSize(); + paraComponent = northContainer; + northContainer.setSize(0,paraHeight); + formLayoutContainer.add(northContainer, WBorderLayout.NORTH); + } + + private void refreshCenter(Widget centerWidget, XLayoutContainer formLayoutContainer) { + // 不存在center块, 说明是新建的模板 + if (centerWidget == null) { + XLayoutContainer layoutContainer = (XLayoutContainer) XCreatorUtils.createXCreator(new WFitLayout("body")); + layoutContainer.setSize(LARGE_PREFERRED_SIZE); + setRootComponent(layoutContainer); + formLayoutContainer.add(rootComponent, WBorderLayout.CENTER); + return; } + XLayoutContainer centerContainer = (XLayoutContainer) XCreatorUtils.createXCreator(centerWidget); + Dimension d = new Dimension(); + d.width = ((WFitLayout) centerWidget).getContainerWidth(); + d.height = ((WFitLayout) centerWidget).getContainerHeight(); + centerContainer.setSize(d); + formLayoutContainer.setSize(d.width, d.height + paraHeight); + setRootComponent(centerContainer); + // 再次打开时,layout下root,有内边距的话组件加上 + LayoutUtils.layoutContainer(centerContainer); + formLayoutContainer.add(rootComponent, WBorderLayout.CENTER); + } + protected Insets getOutlineInsets() { return new Insets(10, 10, 10, 10); @@ -962,8 +962,8 @@ public class FormDesigner extends TargetComponent implements TreeSelection public void startDraggingComponent(XCreator xCreator, MouseEvent lastPressEvent, int x, int y) { // 根据所选择的组件的BeanInfo生成相应的AddingModel // AddingModel和StateModel不一样,适合当前选择的组件相关的 - int creatorWidth = xCreator.getWidth(); - int creatorHeight = xCreator.getHeight(); + int creatorWidth = xCreator.getWidth(); + int creatorHeight = xCreator.getHeight(); this.addingModel = new AddingModel(xCreator, x, y); TransferHandler handler = new DesignerTransferHandler(this, addingModel); setTransferHandler(handler); @@ -1007,9 +1007,9 @@ public class FormDesigner extends TargetComponent implements TreeSelection } } - /** - * 显示权限编辑界面 - */ + /** + * 显示权限编辑界面 + */ public void showAuthorityEditPane() { HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().setAuthorityMode(true); if (isSupportAuthority()) { @@ -1023,9 +1023,9 @@ public class FormDesigner extends TargetComponent implements TreeSelection } /** - * 是否支持权限编辑 - * @return 是则返回true - */ + * 是否支持权限编辑 + * @return 是则返回true + */ public boolean isSupportAuthority() { int size = getSelectionModel().getSelection().size(); XCreator creator = size == 0 ? getRootComponent() : getSelectionModel().getSelection() @@ -1036,7 +1036,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection protected void setToolbarButtons(boolean flag) { //自适应布局和底层都不能删除 - DesignerContext.getDesignerFrame().checkCombineUp(!(isRoot(getSelectionModel().getSelection().getSelectedCreator()) || flag), NAME_ARRAY_LIST); + DesignerContext.getDesignerFrame().checkCombineUp(!(isRoot(getSelectionModel().getSelection().getSelectedCreator()) || flag), NAME_ARRAY_LIST); } private void invalidateLayout() { @@ -1092,7 +1092,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection */ public Action[] getActions() { if (designer_actions == null) { - //先把复制粘贴按钮去掉,只留下删除 + //先把复制粘贴按钮去掉,只留下删除 // designer_actions = new Action[]{new CutAction(this), new CopyAction(this), new PasteAction(this), // new FormDeleteAction(this)}; designer_actions = new Action[]{new FormDeleteAction(this)}; @@ -1236,7 +1236,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection public ToolBarMenuDockPlus getToolBarMenuDockPlus() { - return StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, ToolBarMenuDockPlus.class); + return StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, ToolBarMenuDockPlus.class); } /** diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index 860f9f52d..a5ec30471 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -10,18 +10,15 @@ import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWParameterLayout; import com.fr.design.designer.properties.EventPropertyTable; import com.fr.design.designer.properties.WidgetPropertyTable; -import com.fr.design.designer.treeview.ComponentTreeModel; import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.gui.frpane.UITabbedPane; import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itable.AbstractPropertyTable; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.parameter.ParameterPropertyPane; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; - import javax.swing.*; import javax.swing.border.LineBorder; import java.awt.*; @@ -114,7 +111,6 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper @Override public void refreshDockingView() { - designer = this.getEditingFormDesigner(); removeAll(); if (designer == null) { @@ -132,7 +128,6 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper eventTable.setBorder(null); UIScrollPane esp = new UIScrollPane(eventTable); esp.setBorder(null); - wsp = FRGUIPaneFactory.createBorderLayout_S_Pane(); wsp.setBorder(null); mobileWidgetTable = new MobileWidgetTable(designer); @@ -144,7 +139,6 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper centerPane.add(mobileBodyWidgetTable,BODY); if(hasSelectParaPane(designer)){ cardLayout.show(centerPane,PARA); - } else { cardLayout.show(centerPane,BODY); } @@ -153,19 +147,23 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper wsp.add(downPanel,BorderLayout.CENTER); UITabbedPane tabbedPane = new UITabbedPane(); - - tabbedPane.setOpaque(true); - tabbedPane.setBorder(null); - tabbedPane.setTabPlacement(SwingConstants.BOTTOM); - tabbedPane.addTab(Inter.getLocText("Form-Properties"), psp); - tabbedPane.addTab(Inter.getLocText("Form-Events"), esp); - tabbedPane.addTab(Inter.getLocText("FR-Widget_Mobile_Terminal"), wsp); - + initTabPane(psp, esp, tabbedPane); WidgetPropertyUIProvider[] widgetAttrProviders = getExtraPropertyUIProviders(); + addWidgetAttr(widgetAttrProviders); + add(tabbedPane, BorderLayout.CENTER); + propertyTable.initPropertyGroups(null); + eventTable.refresh(); + for (AbstractPropertyTable propertyTable : widgetPropertyTables) { + propertyTable.initPropertyGroups(designer); + } + isrefresh = false; + } + + private void addWidgetAttr(WidgetPropertyUIProvider[] widgetAttrProviders) { if (widgetAttrProviders.length == 0) { - UILabel upLabel = new UILabel(Inter.getLocText("FR-Widget_Mobile_Table"),SwingConstants.CENTER); + UILabel upLabel = new UILabel(Inter.getLocText("FR-Widget_Mobile_Table"), SwingConstants.CENTER); upLabel.setBorder(BorderFactory.createEmptyBorder(6,0,6,0)); - wsp.add(upLabel,BorderLayout.NORTH); + wsp.add(upLabel, BorderLayout.NORTH); } else { for (WidgetPropertyUIProvider widgetAttrProvider : widgetAttrProviders) { AbstractPropertyTable propertyTable = widgetAttrProvider.createWidgetAttrTable(); @@ -177,13 +175,15 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper } } - add(tabbedPane, BorderLayout.CENTER); - propertyTable.initPropertyGroups(null); - eventTable.refresh(); - for (AbstractPropertyTable propertyTable : widgetPropertyTables) { - propertyTable.initPropertyGroups(designer); - } - isrefresh = false; + } + + private void initTabPane(UIScrollPane psp, UIScrollPane esp, UITabbedPane tabbedPane) { + tabbedPane.setOpaque(true); + tabbedPane.setBorder(null); + tabbedPane.setTabPlacement(SwingConstants.BOTTOM); + tabbedPane.addTab(Inter.getLocText("FR-Designer_Properties"), psp); + tabbedPane.addTab(Inter.getLocText("FR-Designer_Event"), esp); + tabbedPane.addTab(Inter.getLocText("FR-Widget_Mobile_Terminal"), wsp); } // diff --git a/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java b/designer_form/src/com/fr/design/parameter/ParameterToolBarPane.java index 9a3f8b563..aa7c11660 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);