- 推荐开源备份神器:BackupPC,企业级数据守护者
徐耘馨
推荐开源备份神器:BackupPC,企业级数据守护者项目地址:https://gitcode.com/gh_mirrors/ba/backuppc在数字时代,数据如同企业的生命线,重要性不言而喻。为了保障这份“生命线”的安全,今天我们来探讨一个高效且成熟的备份解决方案——BackupPC。项目介绍BackupPC是一款基于Perl编写的高性价比企业级备份系统,专为Linux、Windows和Mac
- 微信小程序图片拖拽排序组件:wx-drag-img 安装与使用指南
庞眉杨Will
微信小程序图片拖拽排序组件:wx-drag-img安装与使用指南项目地址:https://gitcode.com/gh_mirrors/wx/wx-drag-img项目概述wx-drag-img是一个专为微信小程序设计的图片拖拽排序组件。它允许用户通过原生微信小程序语法轻松实现图片列表的拖动重排功能,简化了开发者在微信小程序中集成此类交互的需求。目录结构及介绍仓库的主要目录结构如下:.├──exa
- docker部署dify结合deepseek构建知识库
deepseek
序本文主要研究一下本地docker部署dify结合deepseek构建知识库步骤difygitclonehttps://github.com/langgenius/dify.gitgitcotags/0.15.3-b0.15.3cddockercp.env.example.envdocker-comopseup启动之后访问localhostdocker-comopse.yaml#=========
- 一步解决Ubuntu中无法使用git clone的问题
AI_茗
gitgithub服务器
在网上找了很多教程都无法解决,最后用了一行命令成功解决gitconfig--globalurl."https://github.com".insteadOfgit://github.com输入这行命令,之后就可以使用gitclone了
- 学习使用Elm架构的JavaScript项目
陈昊和
学习使用Elm架构的JavaScript项目learn-elm-architecture-in-javascript:unicorn:LearnhowtobuildwebappsusingtheElmArchitecturein"vanilla"JavaScript(step-by-stepTDDtutorial)!项目地址:https://gitcode.com/gh_mirrors/le/le
- 学习Elm架构在JavaScript中的应用
萧书泓
学习Elm架构在JavaScript中的应用learn-elm-architecture-in-javascript:unicorn:LearnhowtobuildwebappsusingtheElmArchitecturein"vanilla"JavaScript(step-by-stepTDDtutorial)!项目地址:https://gitcode.com/gh_mirrors/le/le
- 探索 Elm 的 Material Design 组件库:elm-mdl
薄垚宝
探索Elm的MaterialDesign组件库:elm-mdlelm-mdlElm-portoftheMaterialDesignLiteCSS/JSlibrary项目地址:https://gitcode.com/gh_mirrors/el/elm-mdl项目介绍elm-mdl是一个基于Elm语言的MaterialDesign组件库,它是对Google的MaterialDesignLite库的El
- 推荐开源项目:Flame —— 构建PureScript Web应用的轻量级框架
贾彩知Maura
推荐开源项目:Flame——构建PureScriptWeb应用的轻量级框架purescript-flameFast&simpleframeworkforbuildingwebapplications项目地址:https://gitcode.com/gh_mirrors/pu/purescript-flame项目介绍Flame是一个受Elm架构启发,专为使用PureScript开发web应用程序而设
- 探索Redux:构建可预测、可测试的JavaScript应用
黎杉娜Torrent
探索Redux:构建可预测、可测试的JavaScript应用learn-redux:boom:ComprehensiveNotesforLearning(howtouse)ReduxtomanagestateinyourWeb/Mobile(React.js)Apps.项目地址:https://gitcode.com/gh_mirrors/le/learn-redux项目介绍在现代Web开发中,J
- 探索Elm架构:用纯JavaScript构建优雅的Web应用
邵瑗跃Free
探索Elm架构:用纯JavaScript构建优雅的Web应用learn-elm-architecture-in-javascript:unicorn:LearnhowtobuildwebappsusingtheElmArchitecturein"vanilla"JavaScript(step-by-stepTDDtutorial)!项目地址:https://gitcode.com/gh_mirro
- Git commit type 规范
老衲呢
Gitgit
gitcommit提交规范提交规范:gitcommit-m“feat(新增暂停功能):新增执行推广任务暂停功能”详情请参考:阮雪峰的Commitmessage规范(点击可转跳)(https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html)#主要typefeat:增加新功能fix:修复bug#特殊typedocs:只改
- 微服务es搜索关键词,实现关键词高亮,来自黑马头条的总结
菜鸡且互啄69
elasticsearch大数据搜索引擎java
为了加快搜索效率从es数据库中查询实现的效果,要求从标题和内容中搜索关键词,然后让关键词高亮步骤ElasticSearch环境搭建索引库创建文章搜索多条件复合查询索引数据同步ElasticSearch环境搭建这些都是死步骤,直接cvik分词器下载地址:https://github.com/medcl/elasticsearch-analysis-ik下载完后,解压安装包到ElasticSearch
- go语言获取机器的进程和进程运行参数 获取当前进程的jmx端口 go调用/jstat获取当前Java进程gc情况
march of Time
gojvmgolangjavapython
这里主要分享go中获取机器进程和进程参数的一些代码获取当前机器所有的pid:import"github.com/shirou/gopsutil/process"pids,err:=process.Pids()for_,pid:=rangepids{proc,err:=process.NewProcess(pid)iferr!=nil{log.Errorf("getpid%dinfoerror:%s
- InfiniteHiP - 在单个GPU上扩展 LLM 上下文至300万tokens
伊织code
#PaperReadingInfiniteHiP推理GPULLMtoken
InfiniteHiP:ExtendingLanguageModelContextUpto3MillionTokensonaSingleGPUPaper:https://huggingface.co/papers/2502.08910Sourcecode:https://github.com/DeepAuto-AI/hip-attention/SGLangIntegrationavailablen
- 什么是 Ollama?如何安装运行?一文讲清
程序员老冉
人工智能开源语言模型学习程序员创富产品经理面试
什么是Ollama?Ollama是一个可以在本地部署和管理开源大语言模型的框架,由于它极大的简化了开源大语言模型的安装和配置细节,一经推出就广受好评,目前已在github上获得了46kstar。不管是著名的羊驼系列,还是最新的AI新贵Mistral,等等各种开源大语言模型,都可以用Ollama实现一键安装并运行,支持的更多模型的列表可以查看Ollama官网。ModelParametersSizeD
- 新建github操作
qq_43361844
编程工具github操作
1.在github.com的主页根据提示新建一个depository。2.配置用户名和邮箱gitconfig--globaluser.name"name"gitconfig--globaluser.email"email"3.生成ssh秘钥ssh-keygen-trsa找到publickey对应的文件路径cat/root/.ssh/id_rsa复制显示的内容4.将复制好的秘钥复制到github上找
- mac搭建环境
吹泡泡的派大星
计算机网络visual6macos
从0-1搭建mac环境先查看自己的芯片信息bashuname-mbash-3.2$uname-marm64这里是自己的型号安装brewxcode-select--installxcode-select-p/bin/zsh-c“$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)”source/Users/lan
- GitHub每日最火火火项目(2.16)
FutureUniant
github日推github计算机视觉音视频人工智能ai
FujiwaraChoki/MoneyPrinterV2用途:MoneyPrinterV2旨在实现线上赚钱流程的自动化。虽然项目名称带有一定的趣味性,但从功能角度来看,它可能是通过自动化脚本、算法等手段,对线上一些能够产生收益的活动,如网络营销、广告投放收益、电商运营等环节进行自动化操作,以提高赚钱的效率和收益。其核心在于减少人工干预,通过程序自动执行相关任务,例如自动发布推广内容、自动处理订单、
- js:highlight.js实现代码的语法高亮
彭世瑜
javascript前端开发语言
highlight.jsSyntaxhighlightingfortheWeb译文:highlight.js为Web突出显示语法文档官网:https://highlightjs.org/文档:https://highlightjs.readthedocs.io/en/latest/index.htmlgithub:https://github.com/highlightjs/highlight.j
- Highlight:一款强大的源代码语法高亮工具
潘聪争
Highlight:一款强大的源代码语法高亮工具highlightSourcecodetoformattedtextconverter项目地址:https://gitcode.com/gh_mirrors/highli/highlight1.项目基础介绍和主要编程语言Highlight是一个开源的源代码语法高亮工具,由andre-simon开发并维护。该项目使用Lua编程语言编写,能够将源代码转换
- Springboot集成pagehelper-spring-boot-starter分页插件
帅大大的架构之路
#Java笔记springboot分页插件
Springboot集成pagehelper-spring-boot-starter1.添加依赖com.github.pagehelperpagehelper-spring-boot-starter1.4.32.application.yml配置#pagehelper配置pagehelper:helperDialect:mysqlreasonable:truesupportMethodsArgum
- Openshift或者K8S上部署xxl-job
RedCong
openshiftkubernetes容器
本案例以版本2.3.0为例1.packagejarbysourcecodesourcecode:https://github.com/xuxueli/xxl-job/blob/2.3.0/2.initmysqldatabasesqlcode:https://github.com/xuxueli/xxl-job/blob/2.3.0/doc/db/tables_xxl_job.sql3.buildi
- k8s集群离线安装kuberay operator
thinkerCoder
kubernetes容器云原生
1,安装方式采用helm安装方式,首先下载对应的helmchart,这里采用v1.2.2版本,下载地址:https://github.com/ray-project/kuberay-helm/releases/tag/kuberay-operator-1.2.22,解压并修改镜像源由于是在内网环境下搭建,因此需要将对应的镜像下载下来,并导入到本地镜像仓库,并修改values.yaml的镜像仓库地址
- 【devops】Github Actions Secrets | 如何在Github中设置CI的Secret供CI的yaml使用
CTRA王大大
gitdevopsgithubci/cd
一、GithubActions1、ci.ymlname:CIon:[push]jobs:build:runs-on:ubuntu-lateststeps:-name:Checkoutcodeuses:actions/checkout@v3-name:SetupGouses:actions/setup-go@v4with:go-version:1.23.0-name:CacheGomodulesus
- Github 2024-06-20 开源项目日报 Top10
老孙正经胡说
github开源Github趋势分析开源项目PythonGolang
根据GithubTrendings的统计,今日(2024-06-20统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Python项目4TypeScript项目4Rust项目2JavaScript项目1Dart项目1Java项目1Go项目1RustDesk:用Rust编写的开源远程桌面软件创建周期:1218天开发语言:Rust,Dart协议类型:GNUAfferoG
- GitHub 热点项目介绍
tomlone
技术热点人工智能
Oumi-端到端的基础模型平台项目简介Oumi是一个全开源平台,旨在解决大模型在各个阶段面临的复杂问题,提供构建先进端到端基础模型所需的一切,涵盖数据准备、训练、评估和部署等环节。项目链接GitHub-oumi-ai/oumi特点提供一致的API、生产级可靠性及研究所需的灵活性。已与13所研究型大学的学者建立合作。可通过pip安装并使用CRI命令进行模型训练、评估和推理。项目中还提供了详细的not
- Selenium WebDriver自动化测试(扩展篇)--Jenkins持续集成
职说测试
seleniumjenkinsci/cdUI自动化测试web自动化测试
文章目录一、引言二、Jenkins简介三、安装部署Jenkins安装部署四、集成Git与Maven安装必要的插件配置Git配置Maven五、创建Job创建自由风格的项目配置源码管理配置构建触发器配置构建环境配置构建步骤配置Post-buildActions六、触发构建示例:GitHubWebhook触发构建七、封装通用方法示例:使用Groovy脚本创建Job八、总结参考文献一、引言持续集成(Con
- Golang使用Redis与连接池
T
GoLangRedisgolangredis数据库
使用下载go的redis包gogetgithub.com/gomodule/redigo/redis如果网不好的话就很费劲了packagemainimport("fmt""github.com/gomodule/redigo/redis"//引入redis包)funcmain(){//连接数据源rediss,err:=redis.Dial("tcp","127.0.01:6379")iferr!=
- 爬虫工具yt-dlp
港漂青铜康
爬虫dlp
yt-dlp是youtube-dlp的一个fork,youtube-dlp曾经也较为活跃,但后来被众多网站屏蔽,于是大家转而在其基础上开发yt-dlp。yt-dlp的github项目地址为:GitHub-yt-dlp/yt-dlp:Afeature-richcommand-lineaudio/videodownloaderAfeature-richcommand-lineaudio/videodo
- 3G通信的一些概念
大水
网络知识学习电话网络数据库存储电信
3GPSTN(PublicSwitchedTelephoneNetwork)定义公共交换电话网络,一种常用旧式电话系统。PSTN是一种以模拟技术为基础的电路交换网络。ISDN综合业务数字网(IntegratedServicesDigitalNetwork,ISDN)是一个数字电话网络国际标准,是一种典型的电路交换网络系统。ISDN是最早为人们接受的宽带上网方式,除了具备128Kbps的传输速率外,
- SAX解析xml文件
小猪猪08
xml
1.创建SAXParserFactory实例
2.通过SAXParserFactory对象获取SAXParser实例
3.创建一个类SAXParserHander继续DefaultHandler,并且实例化这个类
4.SAXParser实例的parse来获取文件
public static void main(String[] args) {
//
- 为什么mysql里的ibdata1文件不断的增长?
brotherlamp
linuxlinux运维linux资料linux视频linux运维自学
我们在 Percona 支持栏目经常收到关于 MySQL 的 ibdata1 文件的这个问题。
当监控服务器发送一个关于 MySQL 服务器存储的报警时,恐慌就开始了 —— 就是说磁盘快要满了。
一番调查后你意识到大多数地盘空间被 InnoDB 的共享表空间 ibdata1 使用。而你已经启用了 innodbfileper_table,所以问题是:
ibdata1存了什么?
当你启用了 i
- Quartz-quartz.properties配置
eksliang
quartz
其实Quartz JAR文件的org.quartz包下就包含了一个quartz.properties属性配置文件并提供了默认设置。如果需要调整默认配置,可以在类路径下建立一个新的quartz.properties,它将自动被Quartz加载并覆盖默认的设置。
下面是这些默认值的解释
#-----集群的配置
org.quartz.scheduler.instanceName =
- informatica session的使用
18289753290
workflowsessionlogInformatica
如果希望workflow存储最近20次的log,在session里的Config Object设置,log options做配置,save session log :sessions run ;savesessio log for these runs:20
session下面的source 里面有个tracing 
- Scrapy抓取网页时出现CRC check failed 0x471e6e9a != 0x7c07b839L的错误
酷的飞上天空
scrapy
Scrapy版本0.14.4
出现问题现象:
ERROR: Error downloading <GET http://xxxxx CRC check failed
解决方法
1.设置网络请求时的header中的属性'Accept-Encoding': '*;q=0'
明确表示不支持任何形式的压缩格式,避免程序的解压
- java Swing小集锦
永夜-极光
java swing
1.关闭窗体弹出确认对话框
1.1 this.setDefaultCloseOperation (JFrame.DO_NOTHING_ON_CLOSE);
1.2
this.addWindowListener (
new WindowAdapter () {
public void windo
- 强制删除.svn文件夹
随便小屋
java
在windows上,从别处复制的项目中可能带有.svn文件夹,手动删除太麻烦,并且每个文件夹下都有。所以写了个程序进行删除。因为.svn文件夹在windows上是只读的,所以用File中的delete()和deleteOnExist()方法都不能将其删除,所以只能采用windows命令方式进行删除
- GET和POST有什么区别?及为什么网上的多数答案都是错的。
aijuans
get post
如果有人问你,GET和POST,有什么区别?你会如何回答? 我的经历
前几天有人问我这个问题。我说GET是用于获取数据的,POST,一般用于将数据发给服务器之用。
这个答案好像并不是他想要的。于是他继续追问有没有别的区别?我说这就是个名字而已,如果服务器支持,他完全可以把G
- 谈谈新浪微博背后的那些算法
aoyouzi
谈谈新浪微博背后的那些算法
本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。
微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针
- Connection reset 连接被重置的解决方法
百合不是茶
java字符流连接被重置
流是java的核心部分,,昨天在做android服务器连接服务器的时候出了问题,就将代码放到java中执行,结果还是一样连接被重置
被重置的代码如下;
客户端代码;
package 通信软件服务器;
import java.io.BufferedWriter;
import java.io.OutputStream;
import java.io.O
- web.xml配置详解之filter
bijian1013
javaweb.xmlfilter
一.定义
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.my.app.EncodingFilter</filter-class>
<init-param>
<param-name>encoding<
- Heritrix
Bill_chen
多线程xml算法制造配置管理
作为纯Java语言开发的、功能强大的网络爬虫Heritrix,其功能极其强大,且扩展性良好,深受热爱搜索技术的盆友们的喜爱,但它配置较为复杂,且源码不好理解,最近又使劲看了下,结合自己的学习和理解,跟大家分享Heritrix的点点滴滴。
Heritrix的下载(http://sourceforge.net/projects/archive-crawler/)安装、配置,就不罗嗦了,可以自己找找资
- 【Zookeeper】FAQ
bit1129
zookeeper
1.脱离IDE,运行简单的Java客户端程序
#ZkClient是简单的Zookeeper~$ java -cp "./:zookeeper-3.4.6.jar:./lib/*" ZKClient
1. Zookeeper是的Watcher回调是同步操作,需要添加异步处理的代码
2. 如果Zookeeper集群跨越多个机房,那么Leader/
- The user specified as a definer ('aaa'@'localhost') does not exist
白糖_
localhost
今天遇到一个客户BUG,当前的jdbc连接用户是root,然后部分删除操作都会报下面这个错误:The user specified as a definer ('aaa'@'localhost') does not exist
最后找原因发现删除操作做了触发器,而触发器里面有这样一句
/*!50017 DEFINER = ''aaa@'localhost' */
原来最初
- javascript中showModelDialog刷新父页面
bozch
JavaScript刷新父页面showModalDialog
在页面中使用showModalDialog打开模式子页面窗口的时候,如果想在子页面中操作父页面中的某个节点,可以通过如下的进行:
window.showModalDialog('url',self,‘status...’); // 首先中间参数使用self
在子页面使用w
- 编程之美-买书折扣
bylijinnan
编程之美
import java.util.Arrays;
public class BookDiscount {
/**编程之美 买书折扣
书上的贪心算法的分析很有意思,我看了半天看不懂,结果作者说,贪心算法在这个问题上是不适用的。。
下面用动态规划实现。
哈利波特这本书一共有五卷,每卷都是8欧元,如果读者一次购买不同的两卷可扣除5%的折扣,三卷10%,四卷20%,五卷
- 关于struts2.3.4项目跨站执行脚本以及远程执行漏洞修复概要
chenbowen00
strutsWEB安全
因为近期负责的几个银行系统软件,需要交付客户,因此客户专门请了安全公司对系统进行了安全评测,结果发现了诸如跨站执行脚本,远程执行漏洞以及弱口令等问题。
下面记录下本次解决的过程以便后续
1、首先从最简单的开始处理,服务器的弱口令问题,首先根据安全工具提供的测试描述中发现应用服务器中存在一个匿名用户,默认是不需要密码的,经过分析发现服务器使用了FTP协议,
而使用ftp协议默认会产生一个匿名用
- [电力与暖气]煤炭燃烧与电力加温
comsci
在宇宙中,用贝塔射线观测地球某个部分,看上去,好像一个个马蜂窝,又像珊瑚礁一样,原来是某个国家的采煤区.....
不过,这个采煤区的煤炭看来是要用完了.....那么依赖将起燃烧并取暖的城市,在极度严寒的季节中...该怎么办呢?
&nbs
- oracle O7_DICTIONARY_ACCESSIBILITY参数
daizj
oracle
O7_DICTIONARY_ACCESSIBILITY参数控制对数据字典的访问.设置为true,如果用户被授予了如select any table等any table权限,用户即使不是dba或sysdba用户也可以访问数据字典.在9i及以上版本默认为false,8i及以前版本默认为true.如果设置为true就可能会带来安全上的一些问题.这也就为什么O7_DICTIONARY_ACCESSIBIL
- 比较全面的MySQL优化参考
dengkane
mysql
本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。
1、硬件层相关优化
1.1、CPU相关
在服务器的BIOS设置中,可
- C语言homework2,有一个逆序打印数字的小算法
dcj3sjt126com
c
#h1#
0、完成课堂例子
1、将一个四位数逆序打印
1234 ==> 4321
实现方法一:
# include <stdio.h>
int main(void)
{
int i = 1234;
int one = i%10;
int two = i / 10 % 10;
int three = i / 100 % 10;
- apacheBench对网站进行压力测试
dcj3sjt126com
apachebench
ab 的全称是 ApacheBench , 是 Apache 附带的一个小工具 , 专门用于 HTTP Server 的 benchmark testing , 可以同时模拟多个并发请求。前段时间看到公司的开发人员也在用它作一些测试,看起来也不错,很简单,也很容易使用,所以今天花一点时间看了一下。
通过下面的一个简单的例子和注释,相信大家可以更容易理解这个工具的使用。
- 2种办法让HashMap线程安全
flyfoxs
javajdkjni
多线程之--2种办法让HashMap线程安全
多线程之--synchronized 和reentrantlock的优缺点
多线程之--2种JAVA乐观锁的比较( NonfairSync VS. FairSync)
HashMap不是线程安全的,往往在写程序时需要通过一些方法来回避.其实JDK原生的提供了2种方法让HashMap支持线程安全.
- Spring Security(04)——认证简介
234390216
Spring Security认证过程
认证简介
目录
1.1 认证过程
1.2 Web应用的认证过程
1.2.1 ExceptionTranslationFilter
1.2.2 在request之间共享SecurityContext
1
- Java 位运算
Javahuhui
java位运算
// 左移( << ) 低位补0
// 0000 0000 0000 0000 0000 0000 0000 0110 然后左移2位后,低位补0:
// 0000 0000 0000 0000 0000 0000 0001 1000
System.out.println(6 << 2);// 运行结果是24
// 右移( >> ) 高位补"
- mysql免安装版配置
ldzyz007
mysql
1、my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2、my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3、my-large.ini是为专用于一个SQL数据
- MFC和ado数据库使用时遇到的问题
你不认识的休道人
sqlC++mfc
===================================================================
第一个
===================================================================
try{
CString sql;
sql.Format("select * from p
- 表单重复提交Double Submits
rensanning
double
可能发生的场景:
*多次点击提交按钮
*刷新页面
*点击浏览器回退按钮
*直接访问收藏夹中的地址
*重复发送HTTP请求(Ajax)
(1)点击按钮后disable该按钮一会儿,这样能避免急躁的用户频繁点击按钮。
这种方法确实有些粗暴,友好一点的可以把按钮的文字变一下做个提示,比如Bootstrap的做法:
http://getbootstrap.co
- Java String 十大常见问题
tomcat_oracle
java正则表达式
1.字符串比较,使用“==”还是equals()? "=="判断两个引用的是不是同一个内存地址(同一个物理对象)。 equals()判断两个字符串的值是否相等。 除非你想判断两个string引用是否同一个对象,否则应该总是使用equals()方法。 如果你了解字符串的驻留(String Interning)则会更好地理解这个问题。
- SpringMVC 登陆拦截器实现登陆控制
xp9802
springMVC
思路,先登陆后,将登陆信息存储在session中,然后通过拦截器,对系统中的页面和资源进行访问拦截,同时对于登陆本身相关的页面和资源不拦截。
实现方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23