- WiFi通信——STM32通过ESP8266-01S上传DHT11温湿度和LED灯状态到阿里云物联网平台上(二)MQTT协议代码讲解
文科比理科更擅长的工科男
STM32单片机实战项目讲解stm32阿里云物联网
上一篇博客讲了ESP8266-01S的MQTT固件包烧录过程,配置了阿里云物联网平台,并且利用MQTT.fx验证和阿里云通信的过程,链接如下:https://blog.csdn.net/weixin_41011452/article/details/1406451301MQTT协议MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输协议)是IBM在1999年
- OpenStack 扩展镜像和虚拟机实例目录大小
chenjiang7359
参考:https://blog.csdn.net/Tomstrong_369/article/details/52574090https://blog.csdn.net/chinagissoft/article/details/504413011、镜像默认存放目录:/etc/glance/glance-api.conffilesystem_store_datadir=/var/lib/glance
- Pixhawk源码笔记五:存储与EEPROM管理
zhouxinlin2009
这里,我们对APMEEPROM存储接口进行讲解。如有问题,可以交流
[email protected]。新浪@WalkAnt,转载本博客文章,请注明出处,以便更大范围的交流,谢谢。第六部分存储与EEPROM管理详细参考:http://dev.ardupilot.com/wiki/learning-ardupilot-storage-and-eeprom-management/用户参数、航点、集结点、地图
- TCP/IP协议 结构图说明
目录一、TCP报文结构图(TCPHeader)二、TCP三次握手流程图三、TCP四次挥手流程图四、TCP状态迁移图(附加)五、TCP拥塞控制阶段图(慢开始等)一、TCP报文结构图(TCPHeader)012301234567890123456789012345678901+---------------------------------------------------------------
- 解决Nginx安全漏洞【CVE-2018-16844、CVE-2019-9511、CVE-2021-3618、CVE-2018-16843、CVE-2021-23017】等问题
名字咋这么难起捏
服务器配置nginx运维
前言最近网信办通报某服务器存在nginx[CVE-2018-16844、CVE-2019-9511、CVE-2021-3618、CVE-2018-16843、CVE-2021-23017、CVE-2019-9513]等漏洞,需要进行修复,查阅了下对应的资料发现这些漏洞是是Nginx的HTTP/2模块中的一个安全问题。此漏洞允许攻击者通过特定的HTTP/2请求构造,可能导致服务器崩溃或执行拒绝服务(
- ORA-27301错误分析和处理方法
ORA-27301错误分析和处理方法发生时现象应用不能连接数据库.alert日志告警ORA-27301.网络通信有问题,内存耗用高.发生时,有的系统连接数较高,有的不高.所以跟连接数没有必然联系.错误严重程度不能连接数据库.影响业务.预防/解决方法如果alert日志已经有ORA-27301错误,需要尽快修改.即使alert日志没有报错,也建议部署.部署步骤有2步.部署不需要重启数据库或者集群(如果
- 匿名科创无人机学习心得
heng6868
嵌入式项目物联网网络iot
*1.*飞控stm32串口5连接imu,串口五发送的指令会发送到imu中,如果是自定义的用户格式帧(比如:AAFFF103010101A067)会先到imu,imu的串口1接stm飞控。串口2接数传,从串口1接收到的数据会通过串口二发送给数传,数传传给另一个数传,在通过USB线传输给上位机。但是如果不是属于用户自定义的格式帧,imu会进行处理,比如飞控串口5一上电就会输出电池信息(如:AAFF0D
- 洛谷 P13016 [GESP202506 六级] 最大因数-普及/提高-
智趣代码实验室
洛谷算法数据结构洛谷c++
题目描述给定一棵有10910^9109个结点的有根树,这些结点依次以1,2,…,1091,2,\dots,10^91,2,…,109编号,根结点的编号为111。对于编号为kkk(2≤k≤1092\leqk\leq10^92≤k≤109)的结点,其父结点的编号为kkk的因数中除kkk以外最大的因数。现在有qqq组询问,第iii(1≤i≤q1\leqi\leqq1≤i≤q)组询问给定xi,yix_i,
- 【半导体设备通信SECS】SEMI E30协议标准都有哪些历史版本,分别发表时间及升级内容介绍
SunkingYang
#SECS协议SEMI半导体协议E30历史版本升级内容各版本信息
文章目录协议标准下载地址一、初始版本与核心框架建立二、技术扩展与功能强化三、技术融合与智能化升级四、最新演进与未来方向协议标准下载地址【半导体设备通信SECS协议文档】SEMIE5-0200A(中英文混版):SECS-II消息内容定义及应用详解【半导体设备通信SECS协议文档】SEMIE5-0301(中英文混版):SECS-II消息内容定义及应用详解【半导体设备通信】SEMIE5-1104标准(中
- 2025 Java NIO 面试题 (精选90题)
csdn_tom_168
面试题javanio
2025JavaNIO面试题(精选90题)1~301.什么是JavaNIO?JavaNIO(NewInput/Output)是Java1.4引入的一套新的I/OAPI,提供了与标准JavaI/O不同的I/O处理方式。它支持面向缓冲区的、基于通道的I/O操作,提供了更高的性能和更灵活的I/O操作方式。2.JavaNIO与传统的IO有什么区别?面向流vs面向缓冲区:传统IO是面向流的,而NIO是面向缓
- P13013 [GESP202506 五级] 奖品兑换
宇宇传奇
GESP题目算法
P13013[GESP202506五级]奖品兑换题目背景为了保证只有时间复杂度正确的代码能够通过本题,时限下降为400毫秒。题目描述班主任给上课专心听讲、认真完成作业的同学们分别发放了若干张课堂优秀券和作业优秀券。同学们可以使用这两种券找班主任兑换奖品。具体来说,可以使用aaa张课堂优秀券和bbb张作业优秀券兑换一份奖品,或者使用bbb张课堂优秀券和aaa张作业优秀券兑换一份奖品。现在小A有nnn
- usb3.0开发
小xiao白
usb3.0
CYUSB3014开发板开发开发环境:SDK开发工具,编辑器和编译器使用Eclipse,使用固件例程slavefifo。测试数据使用controlcenter,测试速率使用streamer,均在Cypress下。相关文档在:SDK默认安装路径/Cypress/EZ-USBFX3SDK/1.3/doc下。本项目使用了EP0的in和out端点作为控制端点EP1的in和out端点作为pc与fpga传输数
- C++2d我的世界V1.4
OC溥哥999
PaperMinecraftc++单片机stm32
源代码#include#include//#include//联机可能会用到#include#include#definekey(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)usingnamespacestd;intworld[301][601];intgrass[601];intx,y;intseed;intfps=100,render
- 【jetson】Linux下nvidia Jetson烤机程序(CPU+GPU)
前言烤机程序用于把设备的使用率拉满,进行可靠性测试。这里主要贴一下cpu和gpu的烤机程序。cpu为arm64,gpu是orinnano的模组。烤机的jetson设备为如下,输入54v:reComputerMiniJ3011-IntelligentEdgeAIComputerwithNVIDIA®Jetson™Orin™Nano8GBCPU-burn终端安装测试工具:sudoaptinstalls
- HarmonyOS 创建 createAudioCapturer 时候报错误码 6800301
chenbin___
harmonyos
一、错误码6800301的信息错误码6800301,表示包含参数校验异常、权限校验异常、系统处理异常(具体错误查看系统日志)。本人遇到的问题是,申请了麦克风权限,但是未弹出提示用户授权,所以权限校验失败了。二、配置权限src/main/module.json5文件中配置如下内容"requestPermissions":[{"name":"ohos.permission.MICROPHONE","r
- LeetCode第301题_删除无效括号
@蓝莓果粒茶
算法leetcode算法职场和发展c#学习pythonc++
LeetCode第301题:删除无效括号文章摘要本文详细解析LeetCode第301题"删除无效括号",这是一道考察DFS和括号匹配的困难难度题目。文章提供了DFS和BFS两种实现方案,包含C#、Python、C++三种语言实现,配有详细的算法分析和性能对比。适合学习深度优先搜索和字符串处理的读者。核心知识点:DFS、BFS、括号匹配、字符串处理难度等级:困难推荐人群:具备基础算法知识,想要提升搜
- 洛谷日常刷题3
eurotruck
算法c++ruby3.1.2洛谷
B3696[语言月赛202301]Hello,2023题目传送门B3696难度:入门-——入门这不是简简单单吗#includeusingnamespacestd;intmain(){longlongx;cin>>x;coutusingnamespacestd;intmain(){#defineintlonglongintk;cin>>k;if(k>2){coutusingnamespacestd;
- IPv4 前缀长度与主机位关系大全表(/0 到 /32)-版本2
韩公子的Linux大集市
二网络AiOps服务器网络运维
文章目录关键说明:以下是IPv4地址空间中前缀长度与主机位关系的完整表格大全,按照前缀长度从小到大(主机位从大到小)排列:前缀长度子网掩码主机位数量地址总数可用主机数典型应用场景/00.0.0.0324,294,967,296不可用默认路由/1128.0.0.0312,147,483,648不可用理论划分/2192.0.0.0301,073,741,8241,073,741,822国家级网络/32
- DIY语音控制车辆玩具全攻略:从硬件组装到功能实现
欧阳天羲
硬件工程语音识别自动驾驶
一、设备清单与成本估算1.1硬件组件列表组件名称价格(元)备注ArduinoUno兼容板7.04控制核心,支持多传感器接入DFRobot离线语音识别模块105支持10条自定义语音指令L298N电机驱动板5双路电机驱动,带散热片直流减速电机×2(JGB37-520)3012V供电,150转/分钟SG90微型舵机5控制前轮转向HC-SR04超声波传感器2.45测距范围2-400cm18650锂电池(3
- 算法竞赛备考冲刺必刷题(Python) | 汇总
热爱编程的通信人
蓝桥杯python白名单
本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。欢迎大家订阅我的专栏:算法题解:C++与Python实现!【排序】中等:蓝桥云课301实现基数排序-CSDN博客中等:蓝桥云课1264排个序-CSDN博客中等:蓝桥云
- 蓝牙技术|苹果AirTag发布固件更新,除了AirTag还有伦茨科技Find My方案
Lenzetech
蓝牙技术蓝牙芯片蓝牙物联网单片机
据MacRumors报道,苹果今日发布了专为AirTag物品追踪器设计的新固件更新。更新后的固件版本号为1A301,高于此前的1A291。由于苹果尚未提供发行说明,因此目前尚无关于固件可能会添加哪些新功能的消息。用户无法强制更新AirTag,因为这是通过连接的iPhoneOTA完成的。为确保更新发生,你可以将AirTag放在iPhone的通信范围内,但必须等待固件推送到设备。你可以通过查找我的应用
- GitHub 趋势日报 (2025年06月24日)
qianmoQ
GitHub项目趋势日报(2025年)github
由TrendForge系统生成|https://trendforge.devlive.org/本日报中的项目描述已自动翻译为中文今日获星趋势图今日获星趋势图433edit358Web-Dev-For-Beginners301typst216SpaghettiKart175ai-engineering-hub136Telegram131isle-portable121leaked-system-pr
- Python Requests:TooManyRedirects问题解决
一、重定向1.(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置,从地址A跳转到地址B了。2.重定向状态码:–301redirect:301代表永久性转移(PermanentlyMoved)–302redirect:302代表暂时性转移(TemporarilyMoved)二、禁止重定向对于一个网站,使用requests库直接访问:r=requests.get(url,hea
- 【unity实战】手戳一个类似星露谷物语的建筑系统(附工程源码)
向宇it
【unity实战】unity游戏引擎
文章目录每日一句话前言素材开始简单绘制个地图场景定义物品数据简单的建造物品排序问题添加预览效果添加碰撞体添加木围栏切换建筑物建造物品UI显示新增预制体建筑物删除建筑给预制体建筑添加碰撞体问题删除修改去除碰撞背景最终效果参考源码完结每日一句话“知识就像是茶水,越分享,越有味道。”-伊薇特·柯内利(YvetteCorneli)前言欢迎来到【unity实战】系列!本篇文章将带你一起探索一个令人兴奋的主题
- 你们要的流量卡旗舰级代理来了
你们要的流量卡旗舰级代理来了直接注册旗舰级代理旗舰级邀请码:40330123注册地址提卡地址:https://haoka.kaziyou.cn/s/1jhdxyKJ
- 【Datawhale组队学习202506】YOLO-Master task02 YOLO系列发展线
来两个炸鸡腿
Datawhale组队学习学习YOLOpython深度学习
系列文章目录`文章目录系列文章目录前言V1-2015-JosephRedmonV2-2016-JosephRedmonV3-2018-JosephRedmonYOLO之父的退出V4-202004-Chien-YaoWangV5-20200609-Ultralytics公司V6-20220623-美团V7-2022-Chien-YaoWangV8-20230110-Ultralytics公司V9-2
- Linux下shel脚本之批量修改文件扩展名
江湖有缘
linuxshell服务器centos运维
Linux下shel脚本之批量修改文件扩展名一、脚本要求二、脚本内容三、运行脚本一、脚本要求二、脚本内容三、运行脚本一、脚本要求1.在/data/tmp/下的所有文件扩展名改为.py二、脚本内容1.查看要修改扩展名的目录[root@controltmp]#lltotal0-rw-r--r--.1rootroot0Apr3014:06file0.txt-rw-r--r--.1rootroot0Apr
- AssertionError: Torch not compiled with CUDA enabled
微信公众号:AI创造财富
pythonpytorch
2025-06-1902:45:48,301-modelscope-INFO-Nopreprocessorkey('latent-text-to-video-synthesis','text-to-video-synthesis')foundinPREPROCESSOR_MAP,skipbuildingpreprocessor.Ifthepipelinerunsnormally,pleaseign
- (02)Cartographer源码无死角解析-(72) 2D后端优化→OptimizationProblem2D-约束残差、landmark残差
江南才尽,年少无知!
机器人cartographerslam自动驾驶增强现实
讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下:(02)Cartographer源码无死角解析-(00)目录_最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/127350885文末正下方中心提供了本人联系方式,点击本人照片即可显示WX→
- python--向数据库中循环插入数据
烨然若神人~
数据库
python–向数据库中循环插入数据学习周期10.1011:00~12:0010.1114:40~16:3010.1223:04~23:5410.1318:34~19:2010.1610:20~11:40一共使用五小时四十分钟.代码原理本次代码是实现数据库中循环插入模拟数据pymysql在python3.x中有一个专门用于连接mysql数据库的库,叫pymysql,python2中使用的是mysq
- java杨辉三角
3213213333332132
java基础
package com.algorithm;
/**
* @Description 杨辉三角
* @author FuJianyong
* 2015-1-22上午10:10:59
*/
public class YangHui {
public static void main(String[] args) {
//初始化二维数组长度
int[][] y
- 《大话重构》之大布局的辛酸历史
白糖_
重构
《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。
背景
公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中
- 电驴链接在线视频播放源码
dubinwei
源码电驴播放器视频ed2k
本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网:
http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。
项目源码:
http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。
项目源码依赖于两个库项目,库项目一链接:
http://git.oschina.
- Javascript中函数的toString()方法
周凡杨
JavaScriptjstoStringfunctionobject
简述
The toString() method returns a string representing the source code of the function.
简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。
句法
function.
- struts处理自定义异常
g21121
struts
很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。
非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。
此处我们用的是非运行时异常,首先定义一个异常LoginException:
/**
* 类描述:登录相
- Linux中find常见用法示例
510888780
linux
Linux中find常见用法示例
·find path -option [ -print ] [ -exec -ok command ] {} \;
find命令的参数;
- SpringMVC的各种参数绑定方式
Harry642
springMVC绑定表单
1. 基本数据类型(以int为例,其他类似):
Controller代码:
@RequestMapping("saysth.do")
public void test(int count) {
}
表单代码:
<form action="saysth.do" method="post&q
- Java 获取Oracle ROWID
aijuans
javaoracle
A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row.
The oracle.sql.ROWID class i
- java获取方法的参数名
antlove
javajdkparametermethodreflect
reflect.ClassInformationUtil.java
package reflect;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.Modifier;
import javassist.bytecode.CodeAtt
- JAVA正则表达式匹配 查找 替换 提取操作
百合不是茶
java正则表达式替换提取查找
正则表达式的查找;主要是用到String类中的split();
String str;
str.split();方法中传入按照什么规则截取,返回一个String数组
常见的截取规则:
str.split("\\.")按照.来截取
str.
- Java中equals()与hashCode()方法详解
bijian1013
javasetequals()hashCode()
一.equals()方法详解
equals()方法在object类中定义如下:
public boolean equals(Object obj) {
return (this == obj);
}
很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I
- 精通Oracle10编程SQL(4)使用SQL语句
bijian1013
oracle数据库plsql
--工资级别表
create table SALGRADE
(
GRADE NUMBER(10),
LOSAL NUMBER(10,2),
HISAL NUMBER(10,2)
)
insert into SALGRADE values(1,0,100);
insert into SALGRADE values(2,100,200);
inser
- 【Nginx二】Nginx作为静态文件HTTP服务器
bit1129
HTTP服务器
Nginx作为静态文件HTTP服务器
在本地系统中创建/data/www目录,存放html文件(包括index.html)
创建/data/images目录,存放imags图片
在主配置文件中添加http指令
http {
server {
listen 80;
server_name
- kafka获得最新partition offset
blackproof
kafkapartitionoffset最新
kafka获得partition下标,需要用到kafka的simpleconsumer
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.
- centos 7安装docker两种方式
ronin47
第一种是采用yum 方式
yum install -y docker
 
- java-60-在O(1)时间删除链表结点
bylijinnan
java
public class DeleteNode_O1_Time {
/**
* Q 60 在O(1)时间删除链表结点
* 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点
*
* Assume the list is:
* head->...->nodeToDelete->mNode->nNode->..
- nginx利用proxy_cache来缓存文件
cfyme
cache
user zhangy users;
worker_processes 10;
error_log /var/vlogs/nginx_error.log crit;
pid /var/vlogs/nginx.pid;
#Specifies the value for ma
- [JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题
comsci
嵌入式
假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做:
string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))"
定义一个0整数c,然后用这个整数c去
- 如何集成支付宝官方文档
dai_lm
android
官方文档下载地址
https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash
集成的必要条件
1. 需要有自己的Server接收支付宝的消息
2. 需要先制作app,然后提交支付宝审核,通过后才能集成
调试的时候估计会真的扣款,请注意
- 应该在什么时候使用Hadoop
datamachine
hadoop
原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html
存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。
--------------------------------------------万能的分割线--------------------------------
有人问我,“你在大数据和Hado
- 在GridView中对于有外键的字段使用关联模型进行搜索和排序
dcj3sjt126com
yii
在GridView中使用关联模型进行搜索和排序
首先我们有两个模型它们直接有关联:
class Author extends CActiveRecord {
...
}
class Post extends CActiveRecord {
...
function relations() {
return array(
'
- 使用NSString 的格式化大全
dcj3sjt126com
Objective-C
格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c
- 使用activeX插件对象object滚动有重影
蕃薯耀
activeX插件滚动有重影
使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#
- SpringMVC4零配置
hanqunfeng
springmvc4
基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。
项目说明如下:
1.db.sql是项目中用到的表,数据库使用的是oracle11g
2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动;
3.默认项目为零配置启动,如果需要更改启动方式,请
- 《开源框架那点事儿16》:缓存相关代码的演变
j2eetop
开源框架
问题引入
上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。
该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。
当然去看相关实现代代码的时候,大致是下面的样子。
[java]
view plain
copy
print
?
public vo
- AngularJS浅析
kvhur
JavaScript
概念
AngularJS is a structural framework for dynamic web apps.
了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm
Directive
扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间
- 架构师之jdk的bug排查(一)---------------split的点号陷阱
nannan408
split
1.前言.
jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug.
2.代码
String[] paths = "object.object2.prop11".split("'");
System.ou
- 如何对10亿数据量级的mongoDB作高效的全表扫描
quentinXXZ
mongodb
本文链接:
http://quentinXXZ.iteye.com/blog/2149440
一、正常情况下,不应该有这种需求
首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。
说一下,
- C语言算法之水仙花数
qiufeihu
c算法
/**
* 水仙花数
*/
#include <stdio.h>
#define N 10
int main()
{
int x,y,z;
for(x=1;x<=N;x++)
for(y=0;y<=N;y++)
for(z=0;z<=N;z++)
if(x*100+y*10+z == x*x*x
- JSP指令
wyzuomumu
jsp
jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %>
常用的三种指令: page,include,taglib
page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%>
include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include