未找到

未发布 .Net文档图像处理工具包GdPicture.NET发布v14.0.30,改进PDF/OCR生成速度
by Harriet666 keys 分享 1515058010029
GdPicture.NET是一款功能全面且可无限分发的文档图像处理工具包,开发者可将其作为.NET组件运用在他们的C#, VB.NET和CodeGear应用程序中,从而实现文档生成,显示,获取,编辑和打印等功能。在您的程序中使用GdPicture.NET,可实现文档显示,获取TWAIN扫描图像,进行图像处理,执行光学字符识别操作,其涵盖了所有主流领域的其他文件成像技术。
 
GdPicture.NET v14最新版下载>>> 

GdPicture.NET v14.0.30更新内容

  • 改进了检测空白页的准确性。
  • 改进了页面方向检测精度。
  • 改进了autodeskew引擎的准确性。
  • 改进了PDF/OCR生成的准确性和速度。
  • 小的错误修复。
未发布 JMS消息平台FioranoMQ更新v10.3.0,改进共享HA功能
by Harriet666 keys 分享 1502874484088
FioranoMQ是世界上第一个基于网格、点对点JMS消息平台,具有强大且独特的功能,包括动态路由、消息流的分布式调试、JMS客户端应用程序的动态部署、无限的可扩展性、直接援引标准的JCA组件以及无与伦比的JMX标准易管理功能。在封闭的基准测试中超过每秒50,000条的消息,FioranoMQ还是世界上最快的独立的标准消息服务器。
 
v10.3.0新增

改进FioranoMQ共享HA(高可用性)功能

共享HA功能已得到增强,使其对活动代理和共享数据库以及锁定文件之间的网络中断更敏感。通过检查锁定文件是通过NFS共享创建还是使用本地文件,增加了更多安全检测来检查锁定文件上代理的真实性。
新增的共享HA代理解决了以下问题:
  • 当活动代理和共享数据库之间的网络连接断开时更改状态。
  • 数据库和锁定文件运行状况检查:如果活动代理与共享数据库的断开连接,代理将自动进行故障切换。
  • HA状态线程不会在任何情况下退出。
  • 切换到被动状态后,活动代理必须释放锁,让待机代理获取锁并变为活动状态。
共享HA部署必须满足以下条件:
  • 在多个NIC的情况下,HA对(主 - 辅)通信和网关服务器通信必须共享相同的网络接口卡。
  • 锁定文件和共享数据库必须共享相同的安装点。
  • HA中的代理不得与HAManager属性“Primary”共享相同的值。

CSP磁盘使用通知

当启用生产者故障快速功能时,“客户端持久性”(CSP)的磁盘使用率可能非常频繁,具体取决于将消息发送到队列或主题目标时设置的超时值。因此,引入了CSP磁盘使用警报机制。客户端应用程序通过在客户端进行日志记录并在特定生产应用程序的CSP的使用违反配置的阈值时发出提醒。
注意:此功能现在可在Java和C/C++ RTL中使用。

优化加载管理对象

在代理启动期间或通过JMX API调用时,通过XML文件加载管理对象已被优化,以处理更多数量的目标配置。优化确保使用某些常用目的地的客户端应用程序不会受到影响,从而避免长时间停顿。

MQTT安全和认证

支持创建与MQTT代理程序的安全连接。

CSharp RTL(JMS 2.0)的异步发送功能

新的发送方法已添加到MessageProducer中,允许消息异步发送。这些方法立即返回并在单独的线程中执行发送,而不阻塞调用线程。

JMX API

添加以下JMX API:
  • Connection MBean中的API来获取客户端版本信息和构建号。
  • 主题会话MBean下的API'getPersistentQueueSize()'和'getPSQAvailableMessageCount()'。
  • 'listAllSessionsInfo()',所有主题会话的列表及其PSQ度量。
  • 'getClientID(TopicSessionToken)'获取与主题会话令牌相关联的客户机ID。
  • 'get(set)LockFileValidationTimeout()',在共享HA中锁定文件验证超时。
  • 资源管理器mbean下的'getResourceCount()'分别获取由资源名称和实例计数组成的地图作为关键值。

CSharp RTL

在CSharp RTL中添加了新的管理API,用于限制基于IP地址的FioranoMQ代理。
“未接来电”,当代理人关机时调用的方法将在代理程序启动时存储和执行。此功能现在可在C#RTL中使用。
 
改变

  • FioranoMQ 10.3.0代理和Java RTL需要Java 8或更高版本。
  • 基于net beans的Studio工具将不再与FioranoMQ安装程序一起发送,与安装程序一起提供的基于eclipse的Studio将针对64位平台。
  • 共享HA条件:
    HA对(Primary-Secondary)通信和网关服务器通信必须共享相同的网络接口卡。
    锁定文件和共享数据库必须共享相同的装载点。
    HA中的代理不得与HAManager属性“Primary”共享相同的值。
  • 最新的C/C++ RTL库现在使用VS 2015构建。

查看完整更新内容>>>
未发布 Windows 10用于Fluent Design的UWP社区工具包蓄势待发
by Harriet666 keys 分享 1504861717599
Microsoft继续为即将推出Windows 10 FCU(Fall Creators Update)在做着准备工作其中部分工作是目前正在开展的开发者工具和资源的升级。已完成的工作包括:Visual Studio 2017 15.4版已支持UWP应用使用.NET Standard 2.0;UWP社区工具包(UCT,UWP Community Toolkit)的升级已完成,可以使用Microsoft新提供的“流畅设计语言”(Fluent Design Language)。“流畅”体系最终将成为新的Windows 10用户界面。

UCT使得Windows 10开发人员及对该平台感兴趣的人可以查看UWP应用的构建方式,并试用UWP平台提供多种可用控件。UCT 2.0推出了四个新添加的控件,分别是InAppNotification、TextToolbar、Expander和Menu。其中Menu控件已完成升级,支持下划线特性和非字符串内容, 同时改进了处于非缺省位置菜单的动画和行为。

InAppNotification控件为UWP应用提供了一种通知窗口生成动作,类似于IE在下载文件时所给出的通知窗口。Textbar空间提供了富文本或Markdown格式文本的编辑功能。该控件还支持用户使用定制的Formatter对象添加对更多格式的处理功能。

Microsoft将在转向UCT第二版后不再提供对VS2015的支持,开发人员应使用VS2017。Microsoft已经给出了UCT的入门文档,并在Windows Store上提供了一些可构建UCT演示的例子应用。工具包的源代码以MIT许可提供于GitHub上,其中包括了完整的发行说明。(例子应用是使用C#编写的。)
有用(0)

未发布 HTML5文档查看器PrizmDoc v12.2发布,为Viewing客户端添加了新功能。
by Harriet666 keys 分享 1489721400738

PrizmDoc v12.2最新版点击下载>>>

PrizmDoc是最快速、最有品质的HTML5文档查看器,提供安全的、全定制化的查看和协作功能。它通过一个简单部署的机制减少成本,降低安全风险和提高生产率。同时,它是基于服务器的查看器,消除了不必要的许可和下载。

PrizmDoc发布v12.2新版本,为Viewing客户端和PrizmDoc服务器添加了新功能。

未发布 扫描识别工具Dynamic Web TWAIN使用教程:如何使用图像编辑器
by Harriet666 keys 分享 1513675298041
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。
 
本文为你介绍Dynamic Web TWAIN中如何使用图像编辑器,欢迎收藏。
 
Dynamic Web TWAIN最新版免费下载>>>
 
什么是图像编辑器
图像编辑器是Dynamic Web TWAIN的内置功能。您可以使用图像编辑器来管理图像。
 
你可以用图像编辑器做什么?
在图像查看器中,您可以:
  • 浏览当前扫描或加载的所有图像
  • 以下列方式编辑图像:旋转、镜像、裁剪、更改大小等
  • 打印图像等
 
打开图像编辑器
当缓冲区中至少有一个图像时,可以使用方法ShowImageEditor()来显示编辑器窗口:
DWObject.ShowImageEditor();

image021



未发布 TWAIN扫描识别工具Dynamic Web TWAIN的常见问题FAQ合集
by Harriet666 keys 分享 1510027018492
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件,本文给大家分享几个有关Dynamic Web TWAIN的常见问题,欢迎收藏!
 
慧都十四周年狂欢开启,Dynamic Web TWAIN终极让利7折特惠
限时一个月,马上咨询>>>
 
1.什么是TWAIN?
TWAIN是一种协议和应用程序编程接口(API),用于标准化应用程序和图像采集设备(如扫描仪和数码相机)之间的通信
。该标准允许开发人员对任何支持TWAIN的图像采集设备进行标准调用。因此,应用程序无需重写也能支持每个设备。
2.什么是Dynamic Web TWAIN?
Dynamic Web TWAIN是专为Web应用程序设计的TWAIN扫描SDK。您可以从任何TWAIN兼容设备中获取图像。
Dynamic Web TWAIN非常实用,它包含精心设计的界面和内置向导模式。只需几行代码便可完成作业。同时,Dynamic Web TWAIN功能非常强大。它与TWAIN规范V2.1兼容,具有内置的JPEG编码器和解码器。同时支持所有三种图像传输模式和许多其他功能。
Dynamic Web TWAIN包含许多专为Web环境设计的功能,例如通过FTP或HTTP协议上传和下载图像。
3.我应该使用Dynamic Web TWAIN的哪个版本?
Dynamic Web TWAIN有几个版本:ActiveX、HTML5 for Windows、HTML5 for Mac和HTML5 for Linux。您可以根据使用的浏览器决定使用哪个版本。
ActiveX:在Windows上默认支持IE 6-9,可以支持IE 10、11;
HTML5 for Windows:在Windows上支持Firefox/Chrome 27+、IE 10/11和Edge;
HTML5 for Mac:支持Mac OS上的Chrome/Firefox 27+、Safari 7+。
HTML5 for Linux:支持Ubuntu 10+、Debian 8和Fedora 19+上的Chrome/Firefox 27+。

4.使用Dynamic Web TWAIN是否需要安装twain驱动程序?
是的Dynamic Web TWAIN与设备(扫描仪/照相机/采集卡等)的TWAIN驱动程序进行通信,以控制其获取和传输图像,因此需要安装twain驱动程序。

5.我能用Dynamic Web TWAIN做什么?
Dynamic Web TWAIN可用于控制扫描仪、数码相机以及支持TWAIN标准的任何其他设备的任何工作。Dynamic Web TWAIN可以通过FTP或HTTP协议上传和下载图像。代理同样支持。

6.Dynamic Web TWAIN与其它为web环境设计的TWAIN SDK相比有什么优势?
Dynamic Web TWAIN的是一个真正的网络扫描解决方案。
它与Internet Explorer、Chrome、Firefox和其他浏览器兼容。
它非常灵活并且占用小。无需DLL分发。
它可以通过HTTP和FTP上传和下载图像。
它支持TIFF、JPEG、PDF和PNG压缩。

7.我在哪里可以获得使用Dynamic Web TWAIN的测试应用程序?
您可以从我们的样本库中获得Dynamic Web TWAIN的样本。在安装Dynamic Web TWAIN试用版之后,您还可以找到一些带有源代码的基本示例。

8.使用SDK时遇到问题我该怎么办?
你可以参考我们的知识库系统在线文档。如果还是找不到答案,请发送电子邮件至support@dynamsoft.com。

9.虚拟开发者服务与标准客户支持之间的主要区别是什么?
借助虚拟开发者服务,我们与您密切沟通,分析您的需求,提出技术解决方案,编写代码,帮助您将代码集成到项目中,进
行测试和维护。
通过标准客户支持,您需要一位开发TWAIN模块的开发人员,然后向我们的技术支持团队提问。使用虚拟开发者服务,您不需要开发人员在TWAIN模块上工作,我们的开发人员作为团队成员参与您的项目。

2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 扫描识别工具Dynamic Web TWAIN使用教程:建立一个“Hello World”扫描页面
by Harriet666 keys 分享 1511504073281
Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。
 
本文教你Dynamic Web TWAIN中只需3个步骤在5分钟内创建一个Web扫描应用程序的方法!
 
注意:开始之前,请确保您已经下载并安装了最新版本的Dynamic Web TWAIN。如果还没有安装,请在这里下载Dynamic Web TWAIN最新版

步骤一:启动一个Web应用程序

1.1 将Dynamsoft的Resources文件夹复制到您的项目中
Resources文件夹通常在C:\Program Files (x86)\Dynamsoft\Dynamic Web TWAIN SDK {Version Number} {Trial}\
image003
 
1.2 创建一个空的HTML页面
请将空的html页面与Resources文件夹放在一起,如下所示:
image004
 
步骤二:将Dynamic Web TWAIN添加到HTML页面
2.1 包含两个Dynamsoft JS文件
 
2.2 添加一个Dynamic Web TWAIN容器
1
<div id="dwtcontrolContainer"></div>
 
注意: “dwtcontrolContainer”是div的默认ID。如有必要,您可以在文件dynamsoft.webtwain.config.js中更改它。
 
步骤三:使用Dynamic Web TWAIN
3.1 添加一个扫描按钮和最小的脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<input type="button" value="Scan" onclick="AcquireImage();">
<script type="text/javascript" data-filtered="filtered">
    var DWObject;
    function Dynamsoft_OnReady(){
        DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
    }
    function AcquireImage(){
        if(DWObject) {
            DWObject.IfDisableSourceAfterAcquire = true;
            DWObject.SelectSource();
            DWObject.OpenSource();
            DWObject.AcquireImage();
        }
    }
</script>
 
3.2 查看完成的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<title data-filtered="filtered">Hello World</title>
<script type="text/javascript" src="Resources/dynamsoft.webtwain.initiate.js" data-filtered="filtered"> </script>
<script type="text/javascript" src="Resources/dynamsoft.webtwain.config.js" data-filtered="filtered"> </script>
 
 
<input type="button" value="Scan" onclick="AcquireImage();">
<div id="dwtcontrolContainer"> </div>
<script type="text/javascript" data-filtered="filtered">
        var DWObject;
        function Dynamsoft_OnReady(){
            DWObject = Dynamsoft.WebTwainEnv.GetWebTwain('dwtcontrolContainer');
        }
        function AcquireImage(){
            if(DWObject) {
                DWObject.IfDisableSourceAfterAcquire = true;
                DWObject.SelectSource();
                DWObject.OpenSource();
                DWObject.AcquireImage();
            }
        }
    </script>
 
3.3 查看正在运行的扫描页面
如果你打开项目中的Hello World页面,它应该是这样的:
image005
 
现在,您可以点击“扫描”按钮选择一个设备,如下所示:
image006
 
注意:
  • 选择来源对话框中只列出了TWAIN兼容设备。如果连接的扫描仪没有显示在列表中,请按照这篇文章排除故障。
  • 如果您手边没有扫描仪,则可以安装虚拟扫描仪 - 由TWAIN工作组开发的扫描仪模拟器 - 用于测试目的。

扫描完成后,图像将显示在内置的Dynamic Web TWAIN查看器中:
image007
 
如果您安装了Dynamic Web TWAIN的30天试用版,您可以在C:\Program Files (x86)\Dynamsoft\Dynamic Web TWAIN SDK {Version Number} {Trial}\Samples\Getting Started\获取完整的Hello World应用程序。
image008
 
本次教程到此结束,希望能对Dynamic Web TWAIN的用户带来帮助,接下来还会有更多的相关教程,敬请期待!
未发布 UserLock教程:限制用户仅从特定的机器进行连接
by Harriet666 keys 分享 1507703032972
IS Decisions公司旗下的UserLock为企业和组织提供了实施网络访问安全以及优化工作站使用的一系列有效方法。它通过阻挠来自于外部或者内部的恶意访问事件为Windows网络提供了真正的访问安全。(重要推荐:UserLock已加入在线订购,点击购买!

UserLock免费下载试用>>>


UserLock可以为受保护的帐户(用户,组织或单位)定义机器列表。您可以限制用户仅从特定机器连接以打开工作站或终端会话。
 
本文将为您分布演示如何为用户帐户定义规则,以便授权他们仅从特定机器打开工作站或终端会话。
 
一、点击菜单中的“受保护的帐户”。如果已存在则可以通过双击相应的行来打开所需的用户帐户。否则,您可以为目标组创建受保护的帐户。
 
二、显示“工作站限制”选项。要定义该用户可以连接到网络的机器,请将“下列工作站/终端”下拉列表切换到“授权”。
 
三、您可以以两种不同的方式分配授权机器。
如果您知道机器的确切名称,请单击“添加名称”,然后输入机器名称。选择“交互式”会话类型。点击“确定”。
 
四、或者您可以单击“添加计算机”,其中将显示“Active Directory”对话框以选择目标计算机。键入计算机名称的开头,然后单击“检查名称”,或者如果您愿意,启动“高级”模式。
 
选择分配给用户的机器,然后单击“确定”。
 
再次点击“确定”。
 
五、最后就是受此规则影响的会话类型的选择。检查“交互”会话类型。点击“确定”。
 
六、通过点击“快速访问”面板中的“确定”来验证工作站限制。
用户“ab”现在仅被授权从计算机“WKS005”打开工作站或终端会话。所有来自其他机器的连接尝试将被UserLock拒绝。

【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】

活动时间:10月1日-10月31日

未发布 微软仍计划在2017年发布两次Windows 10系统升级
by Harriet666 keys 分享 1487920304354

微软本月重申,今年将发布两次Windows 10系统升级,这相当于2016年的两倍。但他们对公司的原定目标仍有顾虑。

在11天前澳大利亚举行的微软技术会议上项目管理主管比尔·卡拉古尼斯指出,后续升级将在“Creators Update”之后发布,此更新预计于下月完成并发货。

微软表示,这是Windows 10的发布计划复杂性的一个标志,也是微软的“Windows服务”总体战略。此外,在会议期间卡拉古尼斯还宣布了从去年开始测试的Windows升级分析服务将于3月1日全面开放。

Microsoft Office 365 商业版【在线订购】5套起订,享95折!

Microsoft Office 365 商业协作版【在线订购】5套起订,享95折!

Microsoft Office 365 商业高级版【在线订购】5套起订,享95折!

【文章来源慧都控件,原创不易,转载请注明出处】

未发布 信息化JavaScript甘特图AnyGantt v8.0.0发布,新增时间轴标签设置方法
by Harriet666 keys 分享 1507801264510

AnyGantt是完全跨浏览器和跨平台的,可用于ASP.NET、ASP、PHP、JSP、ColdFusion、Ruby on Rails或简单的HTML页面。有了AnyGantt你可以从任何地方可视化数据:从文本、Excel、CSV格式中的文件到MySQL、MS SQL以及Oracle数据库服务器。(重要推荐:AnyGantt已加入在线订购,超值特价低至¥368起!

【点击下载AnyGantt v8.0.0最新版本】
AnyGantt v8.0.0更新:
Modular System  Robust JavaScriptHTML5 charts  AnyChart
模块化系统
模块化系统是AnyChart 8的核心。它允许您仅连接实际使用的图表类型和功能,大大减少了在网页上运行的大小。基于模块化的AnyChart与流行的捆绑工具(如Webpack,Browserify等)完全兼容。使用我们的JS Builder轻松生成自定义构建。
 
自定义JavaScript Builds
自定义JavaScript Builder专门用于组装一个仅包含需要使用的功能和图表类型的JavaScript文件。AnyChart 8.0.0版包含30个模块和 16个主题。您还可以创建含许可证密钥的文件 。
 
Node.js服务器端渲染
Node.js服务器是一个轻量级的Web服务器,提供用于生成矢量图形(PDF,SVG或PS)、位图图像(PNG,JPG或TIFF)、PDF报告和CSV和XLSX(Excel)中的数据的API。它使用JavaScript代码以及JSON和XML配置作为输入数据。服务器非常易于安装和自定义,您可以在任何主要平台上运行:Linux,Windows和macOS。它是创建通过电子邮件或社交网络共享工具发送图表的报表系统的理想选择。
 
No Data Label Feature  Robust JavaScriptHTML5 charts  AnyChart
无数据标签功能
无数据标签功能是用于通知图表查看器数据不可用的API。由于默认情况下缺少数据,或者通过“数据更新API”,“排除数据点”功能或通过交互性删除数据,则可能会丢失数据。
 
重做CSV/Excel导出
根据需求,我们重新编制了为图表准备的CSV/Excel数据的算法。现在,它考虑到图表类型的特定功能,并允许您为不同的系列使用多个数据集。
Chart Export Settings  Robust JavaScriptHTML5 charts  AnyChart
图表导出设置
现在,您可以自定义每个图表的导出设置:在Facebook上共享的链接和说明、图像导出选项等。
上下文菜单自定义API
我们大大简化了上下文菜单定制的过程。现在,上下文菜单中的每个项目都被分配了一个DI,可以访问相应的字段和设置以及添加自定义ID。我们还添加了本地化上下文菜单的选项。
一般的API改进
我们大大改进了第八代JavaScript图表库中的AnyChart JS Charts API。 界面设置、网格设置、数据映射设置现在变得很容易。为了方便和简化从
AnyChart 7到AnyChart 8的转换,我们创建了允许大多数用户以半自动模式切换到新版本的迁移工具。
Timeline Labels Settings  Powerful HTML5 Gantt charts  AnyGantt
时间轴标签设置
甘特时间线文本格式属性现在非常灵活。我们添加了以下方法:baseLabels(), baselineLabels(), parentLabels(), milestoneLabels(), progressLabels()。我们还重新编写了方法labels(),可以用它来设置任何类型的标签默认值。

【慧都十四周年庆预热开启!全场满额送七级豪礼,AppleMac笔记本电脑、iwatch、iPad等您来拿!】

活动时间:10月1日-10月31日


 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA