Python中random模块的使用1.random.random():用于生成一个0到1的随机浮点数。2.random.uniform(a,b):用于生成在(a,b)范围内的一个随机浮点数,且a,b的顺序无所谓。3.random.randint(a,b):用于生成在(a,b)范围内的一个随机整数,且a
Protobuf介绍
旺代
protobufc++
目录一、关于ProtobufProtobuf的优势二、Protobuf的使用步骤三、Protobuf语法1.文件声明2.包名声明3.消息体定义4.数据类型5.枚举类型6.map类型7.oneof8.扩展四、完整代码一、关于ProtobufProtocolBuffers(Protobuf)是一种由Google开发的高效、跨语言的数据序列化格式。Protobuf使用.proto文件来定义数据结构,这些
企业级软件定制开发如何提升用户体验
深度学习
在当今数字化时代,用户体验已经成为企业软件的核心竞争力。对于企业级软件来说,用户体验不仅仅关乎界面的美观程度,更涉及到功能设计、易用性、安全性以及性能等多个方面。因此,企业级软件定制开发过程中,提升用户体验是至关重要的。本文将探讨如何通过企业级软件定制开发提升用户体验。一、明确用户需求在定制开发企业级软件时,首先需要深入了解用户需求。通过对目标用户进行调研,了解他们的使用习惯、需求和期望,可以确保
深度解析HDMI的发展历程、主要构成及各代对比
wit_@
HDMIos硬件架构
深度解析HDMI的发展历程、主要构成及各代对比随着科技的不断进步,高清多媒体接口(HDMI)已经成为现代家庭娱乐系统中不可或缺的一部分。从最初的1.0版本到最新的2.1版本,HDMI经历了多次迭代和发展,每一次更新都带来了显著的性能提升和新功能。本文将深入解析HDMI的发展历程、主要构成,并对每一代HDMI进行详细对比,包括具体的使用体验区别。一、HDMI的发展历程1.HDMI1.0版本发布日期:
WordPress Icegram Express插件Sql注入漏洞复现(CVE-2024-2876)(附脚本)
iSee857
漏洞复现express安全web安全
免责申明:本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。0x01产品描述:IcegramExpress是一款专为WordPress设计的轻量级电子邮件订阅和营销插件,帮助网站管理员轻松收集订阅者并发送电子邮
正则表达式在QT开发中的应用
AI+程序员在路上
QT&C++实战系列正则表达式qt开发语言
一.正则表达式在QT开发中的使用:1.模式匹配与验证:正则表达式最基本的作用就是进行模式匹配,它可以用来查找、识别或验证一个字符串是否符合某个特定的模式。例如,在表单验证中,可以使用正则表达式来检查用户输入的邮箱地址、手机号码或密码是否符合规定的格式。2.字符串处理:使用正则表达式来搜索或替换文本中的特定模式。这大大提高了文本处理的效率,使得复杂的文本操作变得简单快捷。其在web领域应该更广,如网
Linux(7)软件包管理
梨涡~陌然
linux运维服务器
文章目录软件包管理安装方式1.rpm2.官方仓库3.基于预编译二进制文件4.基于源码rpm一、什么是rpm二、使用rpm工具三、获取软件包四、基于本地镜像五、RPM的使用1.安装软件包2.产看软件是否安装3.卸载软件包4.查看关于软件包信息yum构建本地仓库(基于本地镜像)配置网络源(阿里源)1.备份2.下载3.清缓存`yumcleanall`4.运行`yummakecache`生成缓存5.查看仓
nodejs 06.npm的使用以及package.json详解
摆烂式编程
node.jsnpmjson前端
一.npm(npm|Home)的介绍npm(NodePackageManager)是一个node.js的包管理工具,允许用户下载安装更新分享node.js包二.npm相关命令以及作用1.npminit-y这条命令主要是当项目中没有package.json这个文件的时候生成package.json这个文件2.npmi/npminstall(包名)这条命令主要是当项目中没有node_module这个包
第三节 MATLAB基本语法
程序员老冯头
MATLAB教程matlab数据结构算法
点乘运算,常与其他运算符点乘运算,常与其他运算符联合使用(如.\)矩阵生成矩阵生成向量生成或子阵提取本节将会介绍一些MATLAB的基本语法的使用。在MATLAB环境下进行的操作就像是使用一个超级复杂的计算器,不要被这吓到了。在您开始使用MATLAB时可以在“>>”命令提示符下输入命令。执行MATLAB命令MATLAB是一种解释型的环境。也就是说,只要你给MATLAB一个命令,它就会马上开始执行。M
【vue2父组件调用子组件方法之slot的使用】
睡不着的可乐
javascript前端vue.js
父组件调用子组件方法之slot的使用具体功能需求:一个页面,点击按钮,打开一个弹窗。弹窗有自定义表单和公共表单,提交的时候要获取两个表单的数据以及复显表单数据为什么使用插槽了,因为我需要在弹窗中复用公共表单,而自定义表单是不固定的,所以需要动态加载。1、实现方式直接通过插槽的this.$slots来获取子组件的方法注意:使用的ui组件库是iview页面index.vue打开弹窗importForm
Vue 3 中的父子组件传值:详细示例与解析
好奇的菜鸟
Vue3vue.js前端javascript
在Vue3中,父子组件之间的数据传递是一个常见的需求。父组件可以通过props将数据传递给子组件,而子组件可以通过defineProps接收这些数据。本文将详细介绍父子组件传值的使用方法,并通过优化后的代码示例演示如何实现。1.父子组件传值的基本概念1.1Props的作用Props是父组件向子组件传递数据的一种方式。子组件通过defineProps接收父组件传递的数据。1.2单向数据流数据从父组件
.NET Core 中依赖注入的使用
AAA猪饲料批发李师傅
.NET.netcore
ASP.NETCore中服务注入的地方在ASP.NETCore项目中一般不需要自己创建ServiceCollection、IServiceProvider。在Program.cs的builder.Build()之前向builder.Services中注入。在Controller中可以通过构造方法注入服务。低使用频率的服务把Action用到的服务通过Action的参数注入,在这个参数上标注[From
淘宝天猫 API 接口深度解析:商品详情与关键词搜索商品列表的使用方法及代码示例
技术猿18870278351
淘宝天猫API接口数据库
在当今电商业务迅速发展的背景下,淘宝和天猫的API接口成为开发者和企业实现业务自动化的重要工具。本文将详细介绍如何使用淘宝天猫的商品详情API接口和关键词搜索商品API接口,帮助开发者更好地集成这些功能,从而提高业务效率,拓宽销售渠道,提升用户体验。商品详情API接口请文末联系我允许开发者通过调用API的方式,获取商品的详细信息,如标题、价格、图片、描述等。这些信息对于商品的展示、搜索、推荐等功能
vue3中自定一个组件并且能够用v-model对自定义组件进行数据的双向绑定
傻小胖
Vue3vue.jsjavascript前端
1.基础用法在Vue3中,v-model在组件上的使用有了更灵活的方式。默认情况下,v-model使用modelValue作为prop,update:modelValue作为事件。1.1基本示例defineProps(['modelValue'])defineEmits(['update:modelValue'])import{ref}from'vue'constsearchText=ref(''
WeCube插件开发,你怎么看?
homie Xie
gitgithub开源
关于Wecube插件体系中前端工程方面的看法背景插件的前端工程里要做哪些事情想法背景大家都知道在WeCube2.0中我们把绝大部分功能都抽象成一个个的插件,在这样的一个体系下,各个插件独立开发,在使用的时候自由灵活组合,WeCube的使用者可以根据自身需求和喜好来选择他想要的插件来解决他的问题。当然,这一切的前提是我们有一个庞大的插件市场来供用户选择,而建设这样一个插件市场,我们需要依赖社区的力量
FreeNas OS Windows SMB 所有用户登录后共享同一文件夹
liwenguang2012
FREENASWINDOWSSMB公用文件夹的共享设置FreeNasOsWINDOWSSMB登录后共享公共文件夹。
@[TOC]**FREENASWINDOWSSMB登录后公共使用文件夹的共享设置。。**FreeNasOSWindowsSMB所有用户登录后共享同一文件夹。。有时候即使是公用文件夹,也不想给没有认证的使用者看到。上期讲了,不登录系统才能使用的共享文件夹,今天讲一下,要登录系统后才能看到及使用的公共文件夹内的文件。设置起来比较复杂。。第一步:用户及用户组建立及设定创建一个:“anyone”的用户及用
python keyboard模块使用笔记
G.O.Y
python
**前言:之前写了一个脚本使用到了几个模块,就记录一下用到知识点的使用keyboard模块:wait函数:#等待按下“t”键。keyboard.wait('t')#如果没有按下“t”键,则不会运行下面的代码:print('helloworld!')threading模块:threading.Thread继承threading.Thread的子类并复写run函数,实现多线程;classqq(thre
set判重与map判重(C++)
怼您恏1031
c++开发语言
set判重set可以理解为一个不重复且有序的集合,实现原理红黑二叉树。一般我们对与set的使用集中在以下几种操作:1.声明或创建set集合2.插入操作3.删除操作4。判断集合中是否有元素5.返回集合中元素的个数6.遍历整个集合。具体代码:#includeusingnamespacestd;intn,m;//建立setintset;setstringset;intmain(){strings1="测
百度地图API初体验和偏移纠正方法
u012373583
MapjavajavascriptViewUI
最近的项目想做一个在可以通过手持设备获取经纬度,然后在地图上进行标注显示的功能,因为还在技术调研阶段,所以决定先使用百度地图或GoogleMaps的API来做Demo。通过网上的一些资料和自己对于Google和百度地图的使用,对这两个地图做了一些简单的对比,结论是很明显的——Google在技术水平和成熟度上都要比百度高很多,可以说完全不在一个档次上,但是鉴于Google和中国政府的微妙关系加上中国
实验五 连接查询和嵌套查询
无尽罚坐的人生
#数据库原理oracle数据库mybatis
实验五连接查询和嵌套查询一、实验目的1.掌握ManagementStudio的使用。2.掌握SQL中连接查询和嵌套查询的使用。二、实验内容及要求(请同学们尝试每道题均使用连接和嵌套两种方式来进行查询,如果可以的话)1.找出所有任教“数据库”的教师的姓名。连接查询:selectdistinctt.Teac_namefromteachertjoincourseteacherstont.teac_id=
51单片机——7.LCD显示屏数据显示
m0_48261292
51单片机嵌入式硬件单片机
LCD1602调试工具使用LCD1602液晶屏作为调试窗口,提供类似printf函数的功能,可实时观察单片机内部数据的变换情况,便于调试和演示。本视频提供的LCD1602代码属于模块化的代码,使用者只需要知道所提供函数的作用和使用方法就可以很容易的使用LCD1602函数作用LCD_Init();初始化LCD_ShowChar(1,1,'A');显示一个字符LCD_ShowString(1,3,"H
MATLAB 工具库的使用说明和案例示例
go5463158465
机器学习深度学习matlabmatlab开发语言
以下是一些常见的MATLAB工具库的使用说明和案例示例:信号处理工具箱(SignalProcessingToolbox):使用说明:提供了用于生成、测量、变换、过滤和可视化信号的函数和应用程序。包括重新采样、平滑、同步信号、设计和分析滤波器、估算功率谱等算法,还包括参数化和线性预测建模算法。案例:音频信号滤波%读取音频文件(audioIn,Fs)=audioread('input_audio.wa
刷题笔记 贪心算法-1 贪心算法理论基础
圆圆滚滚小企鹅。
刷题笔记笔记贪心算法算法leetcode
贪心算法比较特殊,知识结构零散,而且理论考察比较少,这里只总结几个重要得部分1.贪心算法的使用条件实际做题的时候是不会给出“贪心算法”这个标签的,所以要看什么时候用,代码随想录给出的答案是没有明显特征!只能凭经验现场试2.贪心算法的解题步骤一旦看出来是可能用贪心,如何解题呢?代码随想录给的答案是:没有固定套路和代码模板,只能凭经验现想但有大致的步骤:1.找局部最优解2.模拟运行从局部最优找全局最优
开源进校园,开放原子校源行 Meetup(中南大学站)圆满结束
操作系统开源
12月4日,由开放原子校源行联合龙蜥社区主办,中南大学信息与网络中心、电子信息学院联合浪潮信息承办的开放原子校源行Meetup活动(中南大学站)暨龙蜥社区操作系统动手实践课堂圆满举行。本场活动现场近70位中南大学的同学们积极参与,聆听开源文化、技术分享,并通过动手实践学习操作系统的使用技能。(图/授课现场)开源分享|开放原子校源行Meetup(中南大学站)活动在开放原子校源行Meetup活动中,中
web报表工具FineReport常见的数据集报错错误代码和解释
老A不折腾
web报表finereport代码可视化工具
在使用finereport制作报表,若预览发生错误,很多朋友便手忙脚乱不知所措了,其实没什么,只要看懂报错代码和含义,可以很快的排除错误,这里我就分享一下finereport的数据集报错错误代码和解释,如果有说的不准确的地方,也请各位小伙伴纠正一下。
NS-war-remote=错误代码\:1117 压缩部署不支持远程设计
NS_LayerReport_MultiDs=错误代码
Java的WeakReference与WeakHashMap
bylijinnan
java弱引用
首先看看 WeakReference
wiki 上 Weak reference 的一个例子:
public class ReferenceTest {
public static void main(String[] args) throws InterruptedException {
WeakReference r = new Wea
Linux——(hostname)主机名与ip的映射
eksliang
linuxhostname
一、 什么是主机名
无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在,每个域名都对应一个IP地址,但一个IP地址可有对应多个域名。域名类型 linuxsir.org 这样的;
主机名是用于什么的呢?
答:在一个局域网中,每台机器都有一个主
oracle 常用技巧
18289753290
oracle常用技巧 ①复制表结构和数据 create table temp_clientloginUser as select distinct userid from tbusrtloginlog ②仅复制数据 如果表结构一样 insert into mytable select * &nb
使用c3p0数据库连接池时出现com.mchange.v2.resourcepool.TimeoutException
酷的飞上天空
exception
有一个线上环境使用的是c3p0数据库,为外部提供接口服务。最近访问压力增大后台tomcat的日志里面频繁出现
com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResou
IT系统分析师如何学习大数据
蓝儿唯美
大数据
我是一名从事大数据项目的IT系统分析师。在深入这个项目前需要了解些什么呢?学习大数据的最佳方法就是先从了解信息系统是如何工作着手,尤其是数据库和基础设施。同样在开始前还需要了解大数据工具,如Cloudera、Hadoop、Spark、Hive、Pig、Flume、Sqoop与Mesos。系 统分析师需要明白如何组织、管理和保护数据。在市面上有几十款数据管理产品可以用于管理数据。你的大数据数据库可能
spring学习——简介
a-john
spring
Spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只能由EJB完成的事情。然而Spring的用途不仅限于服务器端的开发,从简单性,可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。其主要特征是依赖注入、AOP、持久化、事务、SpringMVC以及Acegi Security
为了降低Java开发的复杂性,
自定义颜色的xml文件
aijuans
xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="white">#FFFFFF</color> <color name="black">#000000</color> &
运营到底是做什么的?
aoyouzi
运营到底是做什么的?
文章来源:夏叔叔(微信号:woshixiashushu),欢迎大家关注!很久没有动笔写点东西,近些日子,由于爱狗团产品上线,不断面试,经常会被问道一个问题。问:爱狗团的运营主要做什么?答:带着用户一起嗨。为什么是带着用户玩起来呢?究竟什么是运营?运营到底是做什么的?那么,我们先来回答一个更简单的问题——互联网公司对运营考核什么?以爱狗团为例,绝大部分的移动互联网公司,对运营部门的考核分为三块——用
js面向对象类和对象
百合不是茶
js面向对象函数创建类和对象
接触js已经有几个月了,但是对js的面向对象的一些概念根本就是模糊的,js是一种面向对象的语言 但又不像java一样有class,js不是严格的面向对象语言 ,js在java web开发的地位和java不相上下 ,其中web的数据的反馈现在主流的使用json,json的语法和js的类和属性的创建相似
下面介绍一些js的类和对象的创建的技术
一:类和对
web.xml之资源管理对象配置 resource-env-ref
bijian1013
javaweb.xmlservlet
resource-env-ref元素来指定对管理对象的servlet引用的声明,该对象与servlet环境中的资源相关联
<resource-env-ref>
<resource-env-ref-name>资源名</resource-env-ref-name>
<resource-env-ref-type>查找资源时返回的资源类
Create a composite component with a custom namespace
sunjing
https://weblogs.java.net/blog/mriem/archive/2013/11/22/jsf-tip-45-create-composite-component-custom-namespace
When you developed a composite component the namespace you would be seeing would
【MongoDB学习笔记十二】Mongo副本集服务器角色之Arbiter
bit1129
mongodb
一、复本集为什么要加入Arbiter这个角色 回答这个问题,要从复本集的存活条件和Aribter服务器的特性两方面来说。 什么是Artiber? An arbiter does
not have a copy of data set and
cannot become a primary. Replica sets may have arbiters to add a
Javascript开发笔记
白糖_
JavaScript
获取iframe内的元素
通常我们使用window.frames["frameId"].document.getElementById("divId").innerHTML这样的形式来获取iframe内的元素,这种写法在IE、safari、chrome下都是通过的,唯独在fireforx下不通过。其实jquery的contents方法提供了对if
Web浏览器Chrome打开一段时间后,运行alert无效
bozch
Webchormealert无效
今天在开发的时候,突然间发现alert在chrome浏览器就没法弹出了,很是怪异。
试了试其他浏览器,发现都是没有问题的。
开始想以为是chorme浏览器有啥机制导致的,就开始尝试各种代码让alert出来。尝试结果是仍然没有显示出来。
这样开发的结果,如果客户在使用的时候没有提示,那会带来致命的体验。哎,没啥办法了 就关闭浏览器重启。
结果就好了,这也太怪异了。难道是cho
编程之美-高效地安排会议 图着色问题 贪心算法
bylijinnan
编程之美
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class GraphColoringProblem {
/**编程之美 高效地安排会议 图着色问题 贪心算法
* 假设要用很多个教室对一组
机器学习相关概念和开发工具
chenbowen00
算法matlab机器学习
基本概念:
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
开发工具
M
[宇宙经济学]关于在太空建立永久定居点的可能性
comsci
经济
大家都知道,地球上的房地产都比较昂贵,而且土地证经常会因为新的政府的意志而变幻文本格式........
所以,在地球议会尚不具有在太空行使法律和权力的力量之前,我们外太阳系统的友好联盟可以考虑在地月系的某些引力平衡点上面,修建规模较大的定居点
oracle 11g database control 证书错误
daizj
oracle证书错误oracle 11G 安装
oracle 11g database control 证书错误
win7 安装完oracle11后打开 Database control 后,会打开em管理页面,提示证书错误,点“继续浏览此网站”,还是会继续停留在证书错误页面
解决办法:
是 KB2661254 这个更新补丁引起的,它限制了 RSA 密钥位长度少于 1024 位的证书的使用。具体可以看微软官方公告:
Java I/O之用FilenameFilter实现根据文件扩展名删除文件
游其是你
FilenameFilter
在Java中,你可以通过实现FilenameFilter类并重写accept(File dir, String name) 方法实现文件过滤功能。
在这个例子中,我们向你展示在“c:\\folder”路径下列出所有“.txt”格式的文件并删除。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
C语言数组的简单以及一维数组的简单排序算法示例,二维数组简单示例
dcj3sjt126com
carray
# include <stdio.h>
int main(void)
{
int a[5] = {1, 2, 3, 4, 5};
//a 是数组的名字 5是表示数组元素的个数,并且这五个元素分别用a[0], a[1]...a[4]
int i;
for (i=0; i<5; ++i)
printf("%d\n",
PRIMARY, INDEX, UNIQUE 这3种是一类 PRIMARY 主键。 就是 唯一 且 不能为空。 INDEX 索引,普通的 UNIQUE 唯一索引
dcj3sjt126com
primary
PRIMARY, INDEX, UNIQUE 这3种是一类PRIMARY 主键。 就是 唯一 且 不能为空。INDEX 索引,普通的UNIQUE 唯一索引。 不允许有重复。FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。举个例子来说,比如你在为某商场做一个会员卡的系统。这个系统有一个会员表有下列字段:会员编号 INT会员姓名
java集合辅助类 Collections、Arrays
shuizhaosi888
CollectionsArraysHashCode
Arrays、Collections
1 )数组集合之间转换
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
a)Arrays.asL
Spring Security(10)——退出登录logout
234390216
logoutSpring Security退出登录logout-urlLogoutFilter
要实现退出登录的功能我们需要在http元素下定义logout元素,这样Spring Security将自动为我们添加用于处理退出登录的过滤器LogoutFilter到FilterChain。当我们指定了http元素的auto-config属性为true时logout定义是会自动配置的,此时我们默认退出登录的URL为“/j_spring_secu
透过源码学前端 之 Backbone 三 Model
逐行分析JS源代码
backbone源码分析js学习
Backbone 分析第三部分 Model
概述: Model 提供了数据存储,将数据以JSON的形式保存在 Model的 attributes里,
但重点功能在于其提供了一套功能强大,使用简单的存、取、删、改数据方法,并在不同的操作里加了相应的监听事件,
如每次修改添加里都会触发 change,这在据模型变动来修改视图时很常用,并且与collection建立了关联。
SpringMVC源码总结(七)mvc:annotation-driven中的HttpMessageConverter
乒乓狂魔
springMVC
这一篇文章主要介绍下HttpMessageConverter整个注册过程包含自定义的HttpMessageConverter,然后对一些HttpMessageConverter进行具体介绍。
HttpMessageConverter接口介绍:
public interface HttpMessageConverter<T> {
/**
* Indicate
分布式基础知识和算法理论
bluky999
算法zookeeper分布式一致性哈希paxos
分布式基础知识和算法理论
BY
[email protected]
本文永久链接:http://nodex.iteye.com/blog/2103218
在大数据的背景下,不管是做存储,做搜索,做数据分析,或者做产品或服务本身,面向互联网和移动互联网用户,已经不可避免地要面对分布式环境。笔者在此收录一些分布式相关的基础知识和算法理论介绍,在完善自我知识体系的同
Android Studio的.gitignore以及gitignore无效的解决
bell0901
androidgitignore
github上.gitignore模板合集,里面有各种.gitignore : https://github.com/github/gitignore
自己用的Android Studio下项目的.gitignore文件,对github上的android.gitignore添加了
# OSX files //mac os下 .DS_Store
成为高级程序员的10个步骤
tomcat_oracle
编程
What
软件工程师的职业生涯要历经以下几个阶段:初级、中级,最后才是高级。这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师。
Why
得到更多的报酬!因为你的薪水会随着你水平的提高而增加
提升你的职业生涯。成为了高级软件工程师之后,就可以朝着架构师、团队负责人、CTO 等职位前进
历经更大的挑战。随着你的成长,各种影响力也会提高。
mongdb在linux下的安装
xtuhcy
mongodblinux
一、查询linux版本号:
lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noa