- 解决ModuleNotFoundError: No module named ‘scipy‘
Love向日葵的兮兮子
code错误解决办法pythonscipypipconda
运行程序出现如下错误:这是环境中没有安装scipy包,可以使用pip或者conda命令进行安装#pip安装pipinstallscipy#conda安装condainstallscipy#我一般使用pip镜像安装,更迅速pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplescipy出现如下输出表示安装成功!!!
- 【解决】ModuleNotFoundError: No module named ‘scipy‘
neter.asia
人工智能python
问题描述:今天运行python程序结果报了一个小小错误:ModuleNotFoundError:Nomodulenamed'scipy'分析原因:`ModuleNotFoundError:Nomodulenamed'scipy'`表明你的Python环境中缺少了名为`scipy`的模块,`scipy`是科学计算库,包含了许多数学、科学和工程计算的功能。解决:解决就很简单只要安装上就可以了pipin
- 【不降级的解决方案】ModuleNotFoundError: No module named ‘numpy.testing.decorators‘
link_in_csdn
python机器学习数据分析开发语言
之前发现代码报错,出现这个提示,第一反应是在百度和csdn上找,没想到找了一整圈,都在建议我用降级numpy的方法来解决pipinstallnumpy==1.17.0注:当前代码因为包的版本出现问题时,除非在实现逻辑上新包引入了恶性bug(且包的维护者停止了更新或者无力解决),否则极其不推荐降级包;大多数因为升级了包的版本而让原先代码报错的原因,都是因为新的包里面对调用方法、命名空间这类顶层进行了
- 【已解决】ModuleNotFoundError: No module named ‘scipy‘
鳗小鱼
Bugs(程序报错)前端javascript服务器程序员创富计算机视觉人工智能自然语言处理
问题描述今天遇到这样一个问题:ModuleNotFoundError:Nomodulenamed'scipy'问题的具体描述为:Traceback(mostrecentcalllast):File"/media/visionx/monica/newproject/globetrotter/main.py",line20,infromtrainerimportTrainerFile"/media/v
- 【YOLO】X-AnyLabeling 半自动标注
Abaaba+
YOLO
【YOLO】X-AnyLabeling半自动标注前言整体思路模型转换修改模型YAML文件导入自定义模型常见错误export导出错误AttributeError:module'numpy'hasnoattribute'typeDict'ONNX:exportfailure:UnsupportedONNXopsetversion:13X-AnyLabeling加载自定义模型报错前言本文介绍如何使用X-
- Cisco Secure Client 5.1.7.122 发布,新增功能概览
cisco
CiscoSecureClient5.1.7.122发布,新增功能概览CiscoSecureClient5.1.8.122(macOS,Linux,Windows&iOS,Andrord)-远程访问和安全客户端思科安全客户端(包括AnyConnect)请访问原文链接:https://sysin.org/blog/cisco-secure-client-5/查看最新版。原创作品,转载请保留出处。作者
- docker启动elasticsearch常见问题
朱杰jjj
elasticsearchdockerelasticsearch运维
一、Errorresponsefromdaemon:Nosuchcontainer:elasticsearch.ymldocker启动elasticsearch挂在文件时出现错误dockerrun--nameelasticsearch-p9200:9200-p9300:9300-e"discovery.type=single-node"-eES_JAVA_OPTS="-Xms64m-Xmx128m
- Postman便携版指南
岑风霖
Postman便携版指南项目地址:https://gitcode.com/gh_mirrors/po/postman-portable项目介绍Postman便携版是基于Portapps平台制作的一款便携式应用程序,旨在提供一个无需安装即可运行的Postman版本。Postman是一款广受欢迎的API开发工具,它为开发者们提供了一个完整的工具链,支持API的设计、测试与协作。通过采用便携化设计,用户
- Golang os模块功能详解与示例
demonlg0112
Golanggolangmicrosoft开发语言云原生后端运维开发devops
os是Go语言标准库中与操作系统交互的核心模块,提供了丰富的功能来操作文件系统、进程、环境变量等。下面我将详细介绍os模块的主要功能,并提供相应的代码示例。1.文件与目录操作1.1文件操作创建文件packagemainimport("fmt""os")funcmain(){file,err:=os.Create("test.txt")iferr!=nil{fmt.Println("Errorcre
- SpringBoot使用Websocket技术实现聊天功能--后端部分(三)
oct1025
Ideawebsocketspringboot后端
所需依赖:javax.websocketjavax.websocket-api1.1providedorg.springframework.bootspring-boot-starter-freemarkerorg.springframework.bootspring-boot-starter-websocket-->org.apache.tomcat.embed-->tomcat-embed-w
- 探索现代化的Slack API客户端:Slack Morphism for Rust
邱行方Mountain
探索现代化的SlackAPI客户端:SlackMorphismforRustslack-morphism-rustAmodernasyncclientlibraryforRust,supportsSlackWeb/EventsAPI/SocketModeandBlockKit.项目地址:https://gitcode.com/gh_mirrors/sl/slack-morphism-rust项目介
- 终端连接mysql是出现error 2003_远程连接MySQL报错ERROR 2003解决办法
天眼妹
2003
转自https://blog.csdn.net/hjwang1/article/details/51669223问题代码代码ERROR2003(HY000):Can'tconnecttoMySQLserveron'192.168.0.19'(111)ERROR2003(HY000):Can'tconnecttoMySQLserveron'192.168.0.19'(111)这个原因就是Mysql数
- 探索音乐之美:APlayer - 超可爱的HTML5音乐播放器
强和毓Hadley
探索音乐之美:APlayer-超可爱的HTML5音乐播放器APlayer:lollipop:Wow,suchabeautifulHTML5musicplayer项目地址:https://gitcode.com/gh_mirrors/ap/APlayer在寻找一个既美观又功能齐全的HTML5音乐播放器吗?APlayer,以其小巧可爱的设计和强大的功能,无疑是您的理想选择。这个开源项目将为您带来前所未
- Amazon Textract 代码示例教程
孔祯拓Belinda
AmazonTextract代码示例教程amazon-textract-code-samplesAmazonTextractCodeSamples项目地址:https://gitcode.com/gh_mirrors/am/amazon-textract-code-samples项目介绍AmazonTextract是一个从扫描文档中自动提取文本和数据的服务。amazon-textract-code
- Gocron 开源项目安装与使用指南
苗圣禹Peter
Gocron开源项目安装与使用指南gocron定时任务管理系统项目地址:https://gitcode.com/gh_mirrors/go/gocron一、项目介绍Gocron是一个用于Go语言的工作调度库,允许您定期运行Go函数。它借鉴了Ruby模块Clockwork和Python工作调度包schedule的概念,并以简洁的人性化语法实现定时任务执行。该项目由jasonlvhit开发,后来由go
- 大规模文档处理利器:Amazon Textract 参考架构
裘珑鹏Island
大规模文档处理利器:AmazonTextract参考架构amazon-textract-serverless-large-scale-document-processingProcessdocumentsatscaleusingAmazonTextract项目地址:https://gitcode.com/gh_mirrors/am/amazon-textract-serverless-large-
- 【吓我一跳】docker错误:Error response from daemon: Cannot start container
努力努力再努力呐
dockerlinuxdocker容器运维linux
当你遇到Docker报错"Errorresponsefromdaemon:Cannotstartcontainer"时,这通常意味着Docker守护进程(daemon)在尝试启动容器时遇到了问题。这个问题可能由多种原因引起,以下是一些常见的排查和解决步骤:1、检查容器状态:使用dockerps-a查看所有容器的列表,包括未运行的容器。找到出错的容器ID或名称。2、查看容器日志:使用dockerlo
- 【银河麒麟系统常识】Error: RTNETLINK answers: Operation not permitted
一拳一个呆瓜
银河麒麟系统常识linuxcentos
错误:RTNETLINKanswers:Operationnotpermitted解析没有足够的权限来执行此操作;解决方法在执行指令之前添加下述命令;sudo-以root权限执行指令
- 推荐一款强大的Django管理界面排序工具:django-admin-sortable2
郎轶诺
推荐一款强大的Django管理界面排序工具:django-admin-sortable2django-admin-sortable2Genericdrag-and-droporderingforobjectsintheDjangoadmininterface项目地址:https://gitcode.com/gh_mirrors/dj/django-admin-sortable2项目介绍django
- ModuleNotFoundError: No module named ‘matplotlib‘问题解决过程记录
tankeven
python学习matplotlib
1.编写了一句python代码:importmatplotlib.pyplotasplt在windows的cmd下运行的时候报错如下:Traceback(mostrecentcalllast):File"D:\codePy\count.py",line4,inimportmatplotlib.pyplotaspltModuleNotFoundError:Nomodulenamed'matplotl
- 解决 MySQL 的 sql_mode 中包含 only_full_group_by模式导致group by SQL报错
zLcw_
mysqlsql数据库
sql报错:Cause:java.sql.SQLSyntaxErrorException:Expression#6ofSELECTlistisnotinGROUPBYclauseandcontainsnonaggregatedcolumn'ev_data_transmission.p.push_type'whichisnotfunctionallydependentoncolumnsinGROUP
- Go Micro:构建分布式系统的利器
翁然眉Esmond
GoMicro:构建分布式系统的利器go-microAGomicroservicesframework项目地址:https://gitcode.com/gh_mirrors/go/go-micro项目介绍GoMicro是一个用于分布式系统开发的框架,旨在简化微服务架构的构建和维护。它提供了分布式系统开发的核心需求,包括RPC和事件驱动的通信。GoMicro的设计哲学是提供合理的默认设置,同时保持架
- Tekton Pipeline 深入指南
秦凡湛Sheila
TektonPipeline深入指南pipelineAcloud-nativePipelineresource.项目地址:https://gitcode.com/gh_mirrors/pipelin/pipeline1.项目介绍TektonPipeline是一个Kubernetes原生的持续集成和交付(CI/CD)框架,它允许开发者在云端构建、测试和部署软件。Tekton提供了一套可组合、可扩展的
- dockerfile内容例子
康康!!
容器
FROMros:kineticRUNcp/etc/apt/sources.list/etc/apt/sources.list.bakADDsources.list*/opt/RUNcp-f/opt/sources.list.ustc/etc/apt/sources.listRUNmkdir-p~/.pip&&echo“[global]\nindex-url=http://mirrors.aliyu
- PosstgreSQL安装test_decoding-1.0版本插件
树下一少年
运维日常数据库postgresqltest_decoding运维插件
1.本文以解决此问题postgres=#CREATEEXTENSIONtest_decoding;ERROR:couldnotopenextensioncontrolfile"/usr/pgsql-13/share/extension/test_decoding.control":Nosuchfileordirectory2.cd到extension目录cd/usr/local/postgresq
- AI巨头正面交锋:Grok 3图片编辑功能横空出世,与谷歌Gemini争夺图像生成主导权
Sinokap
行业热点分析人工智能
纽约,2025年3月23——全球人工智能竞赛正在加速升级,xAI推出多模态模型Grok3,集成图片编辑能力,直接挑战谷歌的Gemini模型。两大科技巨头分别代表着不同技术路径与战略节奏,其在多模态AI领域的博弈,引发了全球技术圈的高度关注。一、Grok3:对话驱动的图像编辑体验Grok3搭载xAI最新的Aurora图像生成模型,用户通过上传图片并输入自然语言提示(如“给这个人加顶黑帽”),系统便可
- streamlit UI控件使用大全
水水不水啊
ui
streamlitUI控件使用大全速查表控件名称控件简介信息显示set_option设置配置选项。set_page_config配置页面的默认设置。write向应用程序写入参数。info显示信息消息。success显示成功消息warning显示警告信息error出错信息显示exception显示异常。spinner在执行代码块时临时显示一条消息help显示给定对象的帮助和其他信息。title以标题
- Vosk-Server: 高精度离线语音识别服务器
柯茵沙
Vosk-Server:高精度离线语音识别服务器vosk-serveralphacep/vosk-server:VoskServer是一个基于Vosk语音识别引擎的服务端实现,可以部署为HTTPAPI服务,接收音频流并返回语音转文字结果,适用于在线语音识别场景。项目地址:https://gitcode.com/gh_mirrors/vo/vosk-server基础介绍Vosk-Server是一个基
- Flutter-WebRTC:跨平台实时通信的利器
傅尉艺Maggie
Flutter-WebRTC:跨平台实时通信的利器项目地址:https://gitcode.com/gh_mirrors/flu/flutter-webrtc在当今的数字化时代,实时通信已成为各种应用不可或缺的一部分。无论是社交应用、在线教育还是远程工作,高质量的音视频通信都是提升用户体验的关键。今天,我们要介绍的是一个强大的开源项目——Flutter-WebRTC,它为开发者提供了一个跨平台的解
- nginx 配置m3u8播放视频
超级小龙虾
nginxnginx音视频运维
第一步nginx配置:参考csdn-CircleMouseNginx配置搭建m3u8格式的视频播放服务userwwwwww;worker_processesauto;error_log/www/wwwlogs/nginx_error.logcrit;pid/www/server/nginx/logs/nginx.pid;worker_rlimit_nofile51200;stream{log_fo
- 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