首页
归档
留言
友链
广告合作
壁纸
更多
美女主播
Search
1
博瑞GE车机升级/降级
5,696 阅读
2
Mac打印机设置黑白打印
5,181 阅读
3
修改elementUI中el-table树形结构图标
4,973 阅读
4
Mac客户端添加腾讯企业邮箱方法
4,726 阅读
5
intelliJ Idea 2022.2.X破解
4,694 阅读
后端开发
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
登录
/
注册
Search
标签搜索
Spring Boot
Java
Vue
Mac
Spring Cloud
MyBatis
WordPress
MacOS
asp.net
Element UI
Nacos
MySQL
.Net
Spring Cloud Alibaba
Mybatis-Plus
Typecho
jQuery
Java Script
IntelliJ IDEA
微信小程序
Laughing
累计撰写
630
篇文章
累计收到
1,421
条评论
首页
栏目
后端开发
HarmonyOS Next
Web前端
微信开发
开发辅助
App开发
数据库
随笔日记
页面
归档
留言
友链
广告合作
壁纸
美女主播
搜索到
630
篇与
的结果
2022-11-15
解决小程序报错the api need to be declared in the requiredPrivateInfos field in app.json
一、报错信息从报错信息可以大概看到,应该是缺少授权导致的。PS:这里真的想吐槽一下微信的接口,真的是三天两头的变,发个版就得调整一次,心累。二、微信官方文档说明打开微信开发文档查看配置信息。为了开发者能够正常使用获取模糊地理位置等接口,以及后续对于代码提审环节的优化,自 **2022 年 7 月 14 日起,开发者在使用地理位置相关接口时(共计 8 个),需要提前在 app.json 中进行配置。在代码中使用的地理位置相关接口(共计 8 个),开发者均需要在 app.json 中 requiredPrivateInfos 配置项中声明,代码格式如下:地理位置接口新增与相关流程调整 | 微信开放社区三、解决方法因为我是用uni-app框架开发的,所以是在manifest.json里面配置,如果是用其他框架开发的话,一般都是在app.json里面配置,不过原理都是一样的。
2022年11月15日
1,893 阅读
0 评论
7 点赞
2022-11-14
微信小程序获取用户头像后上传到七牛云
一、事情起因【油耗笔记OilNote】小程序好久没有升级了,最近打算对代码进行一些优化,但是新版本突然发现无法获取到用户微信头像及微信昵称了。查阅官方文档才知道,官方有对getUserProfile接口进行调整了。自 2022 年 10 月 25 日 24 时后(以下统称 “生效期” ),用户头像昵称获取规则将进行如下调整:自生效期起,小程序 wx.getUserProfile 接口将被收回:生效期后发布的小程序新版本,通过 wx.getUserProfile 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。自生效期起,插件通过 wx.getUserInfo 接口获取用户昵称头像将被收回:生效期后发布的插件新版本,通过 wx.getUserInfo 接口获取用户头像将统一返回默认灰色头像,昵称将统一返回 “微信用户”。生效期前发布的插件版本不受影响,但如果要进行版本更新则需要进行适配。通过 wx.login 与 wx.getUserInfo 接口获取 openId、unionId 能力不受影响。「头像昵称填写能力」支持获取用户头像昵称:如业务需获取用户头像昵称,可以使用「头像昵称填写能力」(基础库 2.21.2 版本开始支持,覆盖iOS与安卓微信 8.0.16 以上版本),具体实践可见下方《最佳实践》。小程序 wx.getUserProfile 与插件 wx.getUserInfo 接口兼容基础库 2.27.1 以下版本的头像昵称获取需求:对于来自低版本的基础库与微信客户端的访问,小程序通过 wx.getUserProfile 接口将正常返回用户头像昵称,插件通过 wx.getUserInfo 接口将正常返回用户头像昵称,开发者可继续使用以上能力做向下兼容。现在只要是发布的新版本,默认都需要调整,不然就显示下面灰色头像,已经发布的版本不受影响。既然官方调整了,那么我们也只有被动接受的份。二、油耗笔记的开发框架油耗笔记OilNote不是直接使用微信开发者工具开发的,而是使用UniApp开发的,后端是SpringBoot。三、改进思路3.1、获取用户头像由于官方指导意见是,使用button组件 open-type 的值设置为 chooseAvatar,当用户选择需要使用的头像之后,可以通过 bindchooseavatar 事件回调获取到头像信息的临时路径。从官方的指导我们可以看到,微信并没有给我们返回一个具体的路径,只是返回了一个临时的路径,因此我们就必须自己获取到这个临时的文件,然后存储起来。3.2、使用七牛云由于使用的腾讯云的低配服务器,带宽、存储都比较捉襟见肘,所以我打算把头像都存储到七牛云上,既能减轻带宽压力也能节省服务器空间。四、具体改进4.1、UniApp页面改进当用户通过微信登录时,此时获取用户头像信息,如果头像存在,登录之后跳转到首页,否则跳转到个人信息界面,让用户维护头像及昵称,此方法适用于新用户,同时也适用于老用户重新登录。//微信授权登录 getUserInfo(e) { let that = this; var p = this.getSetting(); p.then(function(isAuth) { console.log('是否已经授权', isAuth); if (isAuth) { console.log('用户信息,加密数据', e); //eData 包括//微信头像//微信名称 还有加密的数据. // let eData = JSON.parse(e.detail.rawData); uni.getUserProfile({ desc: 'Wexin', // 这个参数是必须的 success: function(infoRes) { //接下来就是访问接口. that.$request( 'wechat/authCode2Session?code=' + that.weChatCode, 'POST' ).then(function(res) { if (res.code == 200) { //将接口返回的数据保存在全局变量中. let userInfo = {} // 用户id userInfo.id = res.data.id userInfo.username = res.data.username userInfo.tel = res.data.tel userInfo.email = res.data.email userInfo.wechatOpenId = res.data.wechatOpenId userInfo.nickName = res.data.nickName userInfo.avatarUrl = res.data.avatarUrl ? res.data .avatarUrl : infoRes.userInfo.avatarUrl userInfo.gender = infoRes.userInfo.gender userInfo.password = '' if (!userInfo.province) { userInfo.province = uni.getStorageSync('province') } if (!userInfo.city) { userInfo.city = uni.getStorageSync('city') } uni.setStorageSync('userInfo', userInfo); if (!res.data.avatarUrl) { //没有头像时,跳转到用户信息维护界面 uni.redirectTo({ url: '/pages/profile/profile' }) } else { uni.redirectTo({ url: '/pages/index/index' }) } } }, function(err) { uni.showToast({ title: '授权登录失败!', mask: true, icon: 'none' }) } ) } }); } else { uni.showToast({ title: '授权失败,请确认授权已开启', mask: true, icon: 'none' }) } }); },4.1.1、登录界面改造4.1.2、个人信息界面改造油耗笔记之前有一个【个人信息】页面,因此我打算把修改头像的功能发放到里面。在合适的位置放入选择头像的按钮<button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar"> <view class="cu-avatar xl round margin-center" :style="{backgroundImage:'url('+userInfo.avatarUrl+')'}"></view> </button>增加回调方法用户选择微信头像之后,会回调chooseavatar方法,因此我们增加一个chooseavatar用于用户选择头像之后上传到服务器(进一步上传到七牛)//选择头像回调 onChooseAvatar(e) { const that = this; this.$set(this.userInfo, "avatarUrl", e.detail.avatarUrl); uni.uploadFile({ url: operate.api + 'user/uploadAvatar/', //上传接口 header: { token: that.userInfo.id ? that.userInfo.id : '', }, formData: { 'userInfo': JSON.stringify(that.userInfo) }, filePath: e.detail.avatarUrl, name: 'file', success: (uploadFileRes) => { uni.hideLoading(); const back = JSON.parse(uploadFileRes.data); if (back.code == 200) { that.$set(that.userInfo, 'avatarUrl', back.data.avatarUrl) } else { uni.showToast(back.msg) } }, fail: (error) => { uni.hideLoading(); uni.showToast("图片上传失败,请联系开发!") }, complete: function() { uni.hideLoading(); } }); }4.2、后端改造我们首先在后端增加一个方法,用于接受前端传递的附件及其他参数(我这里主要传递的是用户信息,用户更新用户表,记录头像地址)。4.2.1、Controller增加接受用户上传头像的Api,具体的实现我们稍后在说。/** * 上传头像 * * @param multipartFile 文件信息 * @return 用户信息 */ @PostMapping("uploadAvatar") public AjaxResult uploadAvatar(@RequestParam("file") MultipartFile multipartFile,@RequestParam("userInfo") String oilUser) { return AjaxResult.success(oilUserService.uploadAvatar(multipartFile)); }4.2.2、增加七牛云依赖经过上面改造,我们已经可以将用户头像上传到我们的后端了,接下来的任务就是将头像上传到我们的七牛云了。现在pom.xml中增加七牛云的依赖<!-- 七牛云--> <dependency> <groupId>com.qiniu</groupId> <artifactId>qiniu-java-sdk</artifactId> <version>7.2.28</version> </dependency>4.2.3、增加七牛云配置为了方便使用,我们将七牛云的一些配置信息放入yaml文件中,方便维护。# ========================== ↓↓↓↓↓↓ 七牛云配置 ↓↓↓↓↓↓ ========================== qiniu: accessKey: XXX # Key secretKey: XXX # 密钥 bucket: XXX # 空间名称 domain: XXX # 访问域名 dir: XXX/ # 目录参数说明:accessKey:AK,在七牛云,个人中心,密钥管理中可以看到secretKey:SK,在七牛云,个人中心,密钥管理中可以看到bucket:空间名称,根据自己创建的空间填写domain:访问域名,根据控件绑定的域名实际填写dir:存储路径,因为七牛云默认是直接存储到根目录,为了方便管理,我们可以创建子目录,比如avatar,可以填写avatar/4.2.4、增加配置类为了方便使用,我们将yaml的值,映射到配置类上。/** * 七牛云实体 */ @Component @ConfigurationProperties(prefix = "qiniu") public class QiNiuConfig { /** * Key */ private static String accessKey; /** * 密钥 */ private static String secretKey; /** * 空间名称 */ private static String bucket; /** * 访问域名 */ private static String domain; /** * 目录 */ private static String dir; public static String getAccessKey() { return accessKey; } public void setAccessKey(String accessKey) { QiNiuConfig.accessKey = accessKey; } public static String getSecretKey() { return secretKey; } public void setSecretKey(String secretKey) { QiNiuConfig.secretKey = secretKey; } public static String getBucket() { return bucket; } public void setBucket(String bucket) { QiNiuConfig.bucket = bucket; } public static String getDomain() { return domain; } public void setDomain(String domain) { QiNiuConfig.domain = domain; } public static String getDir() { return dir; } public void setDir(String dir) { QiNiuConfig.dir = dir; } } 4.2.5、封装公共方法为了方便调用,我们将上传、删除等方法封装到单独的服务中。接口/** * 七牛接口 */ public interface IQiNiuService { /** * 以文件的形式上传 * * @param file * @param fileName: * @return: java.lang.String */ String uploadFile(File file, String fileName) throws QiniuException; /** * 以流的形式上传 * * @param inputStream * @param fileName: * @return: java.lang.String */ String uploadFile(InputStream inputStream, String fileName) throws QiniuException; /** * 删除文件 * * @param key: * @return: java.lang.String */ String delete(String key) throws QiniuException; } 实现@Service public class QiNiuServiceImpl implements IQiNiuService, InitializingBean { // 七牛文件上传管理器 private final Configuration cfg; private final Auth auth; public QiNiuServiceImpl() { // //构造一个带指定 Region 对象的配置类 cfg = new Configuration(Region.huadong()); auth = Auth.create(QiNiuConfig.getAccessKey(), QiNiuConfig.getSecretKey()); } /** * 定义七牛云上传的相关策略 */ private StringMap putPolicy; @Override public String uploadFile(File file, String fileName) throws QiniuException { if (!StringUtils.isEmpty(QiNiuConfig.getDir())) { fileName = QiNiuConfig.getDir() + fileName; } UploadManager uploadManager = new UploadManager(cfg); Response response = uploadManager.put(file, fileName, getUploadToken()); int retry = 0; while (response.needRetry() && retry < 3) { response = uploadManager.put(file, fileName, getUploadToken()); retry++; } if (response.statusCode == 200) { return "http://" + QiNiuConfig.getDomain() + "/" + fileName; } return "上传失败!"; } @Override public String uploadFile(InputStream inputStream, String fileName) throws QiniuException { if (!StringUtils.isEmpty(QiNiuConfig.getDir())) { fileName = QiNiuConfig.getDir() + fileName; } UploadManager uploadManager = new UploadManager(cfg); Response response = uploadManager.put(inputStream, fileName, getUploadToken(), null, null); int retry = 0; while (response.needRetry() && retry < 3) { response = uploadManager.put(inputStream, fileName, getUploadToken(), null, null); retry++; } if (response.statusCode == 200) { return "http://" + QiNiuConfig.getDomain() + "/" + fileName; } return "上传失败!"; } @Override public String delete(String key) throws QiniuException { BucketManager bucketManager = new BucketManager(auth, cfg); Response response = bucketManager.delete(QiNiuConfig.getBucket(), key); int retry = 0; while (response.needRetry() && retry++ < 3) { response = bucketManager.delete(QiNiuConfig.getBucket(), key); } return response.statusCode == 200 ? "删除成功!" : "删除失败!"; } @Override public void afterPropertiesSet() throws Exception { this.putPolicy = new StringMap(); putPolicy.put("insertOnly", 0); } /** * 获取上传凭证 */ private String getUploadToken() { return this.auth.uploadToken(QiNiuConfig.getBucket(), null, 3600, putPolicy); } } 有几个需要注意的点:在构造函数中,构造Configuration时,需要指定区域,因为我是华东区域的,因此使用的是Region.huadong(),如果使用的其他区域的,需要根据自己实际区域指定。在指定策略时,因为我一个用户只允许一个头像,因此上传时,如果存在我们直接覆盖的,所以在afterPropertiesSet方法中,设置上传策略时,直接指定的putPolicy.put("insertOnly", 0);,即如果存在就覆盖,如果不想覆盖,可以设置putPolicy.put("insertOnly", 1);,但是此时需要注意,如果上传重名文件,会返回异常。4.2.6、完善后用户上传头像方法用户上传头像后,更新用户实体(但是此时不更新数据库),将更新后的实体返回到前端,点击保存时,再更新数据库。 @Override public OilUser uploadAvatar(MultipartFile multipartFile, OilUser oilUser) throws IOException { String originalFilename = multipartFile.getOriginalFilename(); if (originalFilename == null || !originalFilename.contains(".")) { throw new CustomException("文件名不正确"); } String fileName = "avatar" + oilUser.getId() + originalFilename.substring(originalFilename.lastIndexOf(".")); String avatarUrl = qiNiuService.uploadFile(multipartFile.getInputStream(), fileName); oilUser.setAvatarUrl(avatarUrl); // LambdaUpdateWrapper<OilUser> userUpdateWrapper = new LambdaUpdateWrapper<>(); // userUpdateWrapper.set(OilUser::getAvatarUrl, oilUser.getAvatarUrl()); // userUpdateWrapper.eq(OilUser::getId, oilUser.getId()); // oilUserMapper.update(null, userUpdateWrapper); return oilUser; }4.2.7、用户保存方法分改造用户保存方法主要增加userUpdateWrapper.set(OilUser::getAvatarUrl, user.getAvatarUrl());,当用户有头像时,同步更新用户的头像信息。/** * 新增或保存用户 * * @param user 用户 * @return 结果 */ public OilUser saveUser(OilUser user) { if (user == null) { throw new CustomException("用户信息不能为空"); } if (user.getId() == null) { user.setId(""); } if (checkUserNameExist(user)) { throw new CustomException("用户名已存在"); } if (StringUtils.isEmpty(user.getId())) { user.setId(UUID.randomUUID().toString()); if (!StringUtils.isEmpty(user.getPassword())) { user.setPassword(passwordEncoder.encode(user.getPassword())); } oilUserMapper.insert(user); } else { LambdaUpdateWrapper<OilUser> userUpdateWrapper = new LambdaUpdateWrapper<>(); userUpdateWrapper.set(OilUser::getUsername, user.getUsername()); userUpdateWrapper.set(OilUser::getNickName, user.getNickName()); userUpdateWrapper.set(OilUser::getTel, user.getTel()); userUpdateWrapper.set(OilUser::getEmail, user.getEmail()); if (!StringUtils.isEmpty(user.getPassword())) { userUpdateWrapper.set(OilUser::getPassword, passwordEncoder.encode(user.getPassword())); } if (!StringUtils.isEmpty(user.getProvince())) { userUpdateWrapper.set(OilUser::getProvince, user.getProvince()); } if (!StringUtils.isEmpty(user.getCity())) { userUpdateWrapper.set(OilUser::getCity, user.getCity()); } if (!StringUtils.isEmpty(user.getAvatarUrl())) { userUpdateWrapper.set(OilUser::getAvatarUrl, user.getAvatarUrl()); } userUpdateWrapper.eq(OilUser::getId, user.getId()); oilUserMapper.update(null, userUpdateWrapper); user.setPassword(""); } return user; }五、效果微信用户登录后,如果没有上传过头像,会自动跳转到【个人信息】页面在个人信息上传头像后,自动跳转到首页。六、其他注意事项七牛云域名需要配置HTTPS小程序域名白名单uploadFile合法域名需要配置后台上传附件的域名。
2022年11月14日
2,043 阅读
0 评论
3 点赞
2022-11-13
JDK 8(Java SE Development Kit)全平台全版本安装包免费下载
Java虽然都更新到19了,但是我们日常使用比较多的还是Java8,虽然Spring Boot 3最低依赖都是Java17了,但是Java8的群体依然十分庞大。Java8(又称JDK 1.8)是Oracle于2014年3月19日发布正式版,是一个重要的长期支持版本(LTS),在生产环境中得到了普遍的运用;Java8 相比之前版本,新增了如下功能Lambda 表达式;使用函数式编程,使代码更少,更简洁;Data Time API 改进,优化对时间的处理新增 Stream API新增 Optional 类提供新的 Nashorn JavaScript 引擎,允许在 JVM 上运行特定的JS应用默认方法方法参数反射Oracle JDK 8u311下载安装平台下载地址密码Windows x64 64位jdk-8u311-windows-x648899Windows x86 32位jdk-8u311-windows-i5868899Linux x64 64位jdk-8u311-linux-x648899Linux x86 32位jdk-8u311-linux-i5868899Linux aarch 64位jdk-8u311-linux-aarch648899Linux arm 32位jdk-8u311-linux-arm328899MacOS x64 64位jdk-8u311-macosx-x648899Solarisjdk-8u311-solaris8899Oracle JDK 8u301下载安装平台下载地址下载密码Windows x64 64位jdk-8u301-windows-x648899Windows x86 32位jdk-8u301-windows-i5868899Linux x64 64位jdk-8u301-linux-x648899Linux x86 32位jdk-8u301-linux-i5868899Linux aarch64 64位jdk-8u301-linux-aarch648899Linux arm 32位jdk-8u301-linux-arm328899MacOS x64 64位jdk-8u301-macosx-x648899Solarisjdk-8u301-solaris8899Oracle JDK 8u291下载安装平台下载地址下载密码Windows x64 64位jdk-8u291-windows-x648899Windows x86 32位jdk-8u291-windows-i5868899Linux x64 64位jdk-8u291-linux-x648899Linux x86 32位jdk-8u291-linux-i5868899Linux aarch64 64位jdk-8u291-linux-aarch648899Linux arm 32位jdk-8u291-linux-arm328899MacOS x64 64位jdk-8u291-macosx8899Solarisjdk-8u291-solaris8899Oracle JDK 8u281下载安装平台下载地址密码Windows x64 64位jdk-8u281-windows-x648899Windows x86 32位jdk-8u281-windows-i5868899Linux x64 64位jdk-8u281-linux-x648899Linux x86 32位jdk-8u281-linux-i5868899Linux aarch64 64位jdk-8u281-linux-aarch648899Linux arm 32位jdk-8u281-linux-arm328899MacOS x64 64位jdk-8u281-macosx-x648899Solarisjdk-8u281-solaris8899Oracle JDK 8u271下载安装平台下载地址密码Windows x64 64位jdk-8u271-windows-x648899Windows x86 32位jdk-8u271-windows-i5868899Linux x64 64位jdk-8u271-linux-x648899Linux x86 32位jdk-8u271-linux-i5868899Linux aarch64 64位jdk-8u271-linux-aarch648899Linux arm 32位jdk-8u271-linux-arm328899MacOS x64 64位jdk-8u271-macosx-x648899Solarisjdk-8u271-solaris8899Oracle JDK 8u261下载安装平台下载地址密码Windows x64 64位jdk-8u261-windows-x648899Windows x86 32位jdk-8u261-windows-i5868899Linux x64 64位jdk-8u261-linux-x648899Linux x86 32位jdk-8u261-linux-i5868899Linux arm 64位jdk-8u261-linux-arm648899Linux arm 32位jdk-8u261-linux-arm328899MacOS x64 64位jdk-8u261-macosx-x648899Solarisjdk-8u261-solaris8899Oracle JDK 8u251下载安装平台下载地址密码Windows x64 64位jdk-8u251-windows-x648899Windows x86 32位jdk-8u251-windows-i5868899Linux x64 64位jdk-8u251-linux-x648899Linux x86 32位jdk-8u251-linux-i5868899Linux arm 64位jdk-8u251-linux-arm648899Linux arm 32位jdk-8u251-linux-arm328899MacOS x64 64位jdk-8u251-macosx-x648899Solarisjdk-8u251-solaris8899Oracle JDK 8u241下载安装平台下载地址密码Windows x64 64位jdk-8u241-windows-x648899Windows x86 32位jdk-8u241-windows-i5868899Linux x64 64位jdk-8u241-linux-x648899Linux x86 32位jdk-8u241-linux-i5868899Linux arm 64位jdk-8u241-linux-arm648899Linux arm 32位jdk-8u241-linux-arm328899MacOS x64 64位jdk-8u241-macosx-x648899Solarisjdk-8u241-solaris8899Oracle JDK 8u231下载安装平台下载地址密码Windows x64 64位jdk-8u231-windows-x648899Windows x86 32位jdk-8u231-windows-i5868899Linux x64 64位jdk-8u231-linux-x648899Linux x86 32位jdk-8u231-linux-i5868899Linux arm 64位jdk-8u231-linux-arm648899Linux arm 32位jdk-8u231-linux-arm328899MacOS x64 64位jdk-8u231-macosx-x648899Solarisjdk-8u231-solaris8899Oracle JDK 8u221下载安装平台下载地址密码Windows x64 64位jdk-8u221-windows-x648899Windows x86 32位jdk-8u221-windows-i5868899Linux x64 64位jdk-8u221-linux-x648899Linux x86 32位jdk-8u221-linux-i5868899Linux arm 64位jdk-8u221-linux-arm648899Linux arm 32位jdk-8u221-linux-arm328899MacOS x64 64位jdk-8u221-macosx-x648899Solarisjdk-8u221-solaris8899Oracle JDK 8u212下载安装平台下载地址密码Windows x64 64位jdk-8u212-windows-x648899Windows x86 32位jdk-8u212-windows-i5868899Linux x64 64位jdk-8u212-linux-x648899Linux x86 32位jdk-8u212-linux-i5868899Linux arm 64位jdk-8u212-linux-arm648899Linux arm 32位jdk-8u212-linux-arm328899MacOS x64 64位jdk-8u212-macosx-x648899Solarisjdk-8u212-solaris8899Oracle JDK 8u211下载安装平台下载地址密码Windows x64 64位jdk-8u211-windows-x648899Windows x86 32位jdk-8u211-windows-i5868899Linux x64 64位jdk-8u211-linux-x648899Linux x86 32位jdk-8u211-linux-i5868899Linux arm 64位jdk-8u211-linux-arm648899Linux arm 32位jdk-8u211-linux-arm328899MacOS x64 64位jdk-8u211-macosx-x648899Solarisjdk-8u211-solaris8899Oracle JDK 8u202下载安装平台下载地址密码Windows x64 64位jdk-8u202-windows-x648899Windows x86 32位jdk-8u202-windows-i5868899Linux x64 64位jdk-8u202-linux-x648899Linux x86 32位jdk-8u202-linux-i5868899Linux arm 64位jdk-8u202-linux-arm648899Linux arm 32位jdk-8u202-linux-arm328899MacOS x64 64位jdk-8u202-macosx-x648899Solarisjdk-8u202-solaris8899Oracle JDK 8u201下载安装平台下载地址密码Windows x64 64位jdk-8u201-windows-x648899Windows x86 32位jdk-8u201-windows-i5868899Linux x64 64位jdk-8u201-linux-x648899Linux x86 32位jdk-8u201-linux-i5868899Linux arm 64位jdk-8u201-linux-arm648899Linux arm 32位jdk-8u201-linux-arm328899MacOS x64 64位jdk-8u201-macosx-x648899Solarisjdk-8u201-solaris8899Oracle JDK 8u192下载安装平台下载地址密码Windows x64 64位jdk-8u192-windows-x648899Windows x86 32位jdk-8u192-windows-i5868899Linux x64 64位jdk-8u192-linux-x648899Linux x86 32位jdk-8u192-linux-i5868899Linux arm 64位jdk-8u192-linux-arm648899Linux arm 32位jdk-8u192-linux-arm328899MacOS x64 64位jdk-8u192-macosx-x648899Solaris*jdk-8u192-solaris8899Oracle JDK 8u191下载安装平台下载地址密码Windows x64 64位jdk-8u191-windows-x648899Windows x86 32位jdk-8u191-windows-i5868899Linux x64 64位jdk-8u191-linux-x648899Linux x86 32位jdk-8u191-linux-i5868899Linux arm 64位jdk-8u191-linux-arm648899Linux arm 32位jdk-8u191-linux-arm328899MacOS x64 64位jdk-8u191-macosx-x648899Solarisjdk-8u191-solaris8899Oracle JDK 8u181下载安装平台下载地址密码Windows x64 64位jdk-8u181-windows-x648899Windows x86 32位jdk-8u181-windows-i5868899Linux x64 64位jdk-8u181-linux-x648899Linux x86 32位jdk-8u181-linux-i5868899Linux arm 64位jdk-8u181-linux-arm648899Linux arm 32位jdk-8u181-linux-arm328899MacOS x64 64位jdk-8u181-macosx-x648899Solaris*jdk-8u181-solaris8899Oracle JDK 8u172下载安装平台下载地址密码Windows x64 64位jdk-8u172-windows-x648899Windows x86 32位jdk-8u172-windows-i5868899Linux x64 64位jdk-8u172-linux-x648899Linux x86 32位jdk-8u172-linux-i5868899Linux arm 64位jdk-8u172-linux-arm648899Linux arm 32位jdk-8u172-linux-arm328899MacOS x64 64位jdk-8u172-macosx-x648899Solaris*jdk-8u172-solaris8899Oracle JDK 8u171下载安装平台下载地址密码Windows x64 64位jdk-8u171-windows-x648899Windows x86 32位jdk-8u171-windows-i5868899Linux x64 64位jdk-8u171-linux-x648899Linux x86 32位jdk-8u171-linux-i5868899Linux arm 64位jdk-8u171-linux-arm648899Linux arm 32位jdk-8u171-linux-arm328899MacOS x64 64位jdk-8u171-macosx-x648899Solarisjdk-8u171-solaris8899Oracle JDK 8u162下载安装平台下载地址密码Windows x64 64位jre-8u162-windows-x648899Windows x86 32位*jre-8u162-windows-i5868899Linux x64 64位jre-8u162-linux-x648899Linux x86 32位jre-8u162-linux-i5868899Linux arm 64位jdk-8u162-linux-arm648899Linux arm 32位jdk-8u162-linux-arm328899MacOS x64 64位jre-8u162-macosx-x648899Solarisjdk-8u162-solaris8899Oracle JDK 8u161下载安装平台下载地址密码Windows x64 64位jdk-8u161-windows-x648899Windows x86 32位jdk-8u161-windows-i5868899Linux x64 64位jdk-8u161-linux-x648899Linux x86 32位jdk-8u161-linux-i5868899Linux arm 64位jdk-8u161-linux-arm648899Linux arm 32位jdk-8u161-linux-arm328899MacOS x64 64位jdk-8u161-macosx-x648899Solarisjdk-8u161-solaris8899Oracle JDK 8u152下载安装平台下载地址密码Windows x64 64位jdk-8u152-windows-x648899Windows x86 32位jdk-8u152-windows-i5868899Linux x64 64位jdk-8u152-linux-x648899Linux x86 32位jdk-8u152-linux-x648899Linux arm 64位jdk-8u152-linux-arm648899Linux arm 32位jdk-8u152-linux-arm328899MacOS x64 64位jdk-8u152-macosx-x648899Solaris*jdk-8u152-solaris8899Oracle JDK 8u151下载安装平台下载地址密码Windows x64 64位jdk-8u151-windows-x648899Windows x86 32位jdk-8u151-windows-i5868899Linux x64 64位jdk-8u151-linux-x648899Linux x86 32位jdk-8u151-linux-i5868899Linux arm 64位jdk-8u151-linux-arm648899Linux arm 32位jdk-8u151-linux-arm328899MacOS x64 64位jdk-8u151-macosx-x648899Solaris*jdk-8u151-solaris8899Oracle JDK 8u144下载安装平台下载地址密码Windows x64 64位jdk-8u144-windows-x648899Windows x86 32位jdk-8u144-windows-i5868899Linux x64 64位jdk-8u144-linux-x648899Linux x86 32位jdk-8u144-linux-i5868899Linux arm 64位jdk-8u144-linux-arm648899Linux arm 32位jdk-8u144-linux-arm328899MacOS x64 64位jdk-8u144-macosx-x648899Solarisjdk-8u144-solaris8899Oracle JDK 8u141下载安装平台下载地址密码Windows x64 64位jdk-8u141-windows-x648899Windows x86 32位jdk-8u141-windows-i5868899Linux x64 64位jdk-8u141-linux-x648899Linux x86 32位jdk-8u141-linux-i5868899Linux arm 64位jdk-8u141-linux-arm648899Linux arm 32位jdk-8u141-linux-arm328899MacOS x64 64位jdk-8u141-macosx-x648899Solarisjdk-8u141-solaris8899Oracle JDK 8u131下载安装平台下载地址密码Windows x64 64位jdk-8u131-windows-x648899Windows x86 32位jdk-8u131-windows-i5868899Linux x64 64位jdk-8u131-linux-x648899Linux x86 32位jdk-8u131-linux-i5868899Linux arm 64位jdk-8u131-linux-arm648899Linux arm 32位jdk-8u131-linux-arm328899MacOS x64 64位jdk-8u131-macosx-x648899Solarisjdk-8u131-solaris8899Oracle JDK 8u121下载安装平台下载地址密码Windows x64 64位jdk-8u121-windows-x648899Windows x86 32位jdk-8u121-windows-i5868899Linux x64 64位jdk-8u121-linux-x648899Linux x86 32位jdk-8u121-linux-i5868899Linux arm 64位jdk-8u121-linux-arm648899Linux arm 32位jdk-8u121-linux-arm328899MacOS x64 64位jdk-8u121-macosx-x648899Solarisjdk-8u121-solaris8899Oracle JDK 8u112下载安装平台下载地址密码Windows x64 64位jdk-8u112-windows-x648899Windows x86 32位jdk-8u112-windows-i5868899Linux x64 64位jdk-8u112-linux-x648899Linux x86 32位jdk-8u112-linux-i5868899Linux arm 64位jdk-8u112-linux-arm648899Linux arm 32位jdk-8u112-linux-arm328899MacOS x64 64位jdk-8u112-macosx-x648899Solarisjdk-8u112-solaris8899Oracle JDK 8u111下载安装平台下载地址密码Windows x64 64位jdk-8u111-windows-x648899Windows x86 32位jdk-8u111-windows-i5868899Linux x64 64位jdk-8u111-linux-x648899Linux x86 32位jdk-8u111-linux-i5868899Linux arm 64位jdk-8u111-linux-arm648899Linux arm 32位jdk-8u111-linux-arm328899MacOS x64 64位jdk-8u111-macosx-x648899Solarisjdk-8u111-solaris8899Oracle JDK 8u92下载安装平台下载地址密码Windows x64 64位jdk-8u92-windows-x648899Windows x86 32位jdk-8u92-windows-i5868899Linux x64 64位jdk-8u92-linux-x648899Linux x86 32位jdk-8u92-linux-i5868899Linux arm 64位jdk-8u92-linux-arm648899Linux arm 32位jdk-8u92-linux-arm328899MacOS x64 64位jdk-8u92-macosx-x648899Solarisjdk-8u92-solaris8899Oracle JDK 8u91下载安装平台下载地址密码Windows x64 64位jdk-8u91-windows-x648899Windows x86 32位jdk-8u91-windows-i5868899Linux x64 64位jdk-8u91-linux-x648899Linux x86 32位jdk-8u91-linux-i5868899Linux arm 64位jdk-8u91-linux-arm648899Linux arm 32位jdk-8u91-linux-arm328899MacOS x64 64位jdk-8u91-macosx-x648899Solarisjdk-8u91-solaris8899Oracle JDK 8u77下载安装平台下载地址密码Windows x64 64位jdk-8u77-windows-x648899Windows x86 32位jdk-8u77-windows-i5868899Linux x64 64位jdk-8u77-linux-x648899Linux x86 32位jdk-8u77-linux-i5868899Linux arm 64位jdk-8u77-linux-arm648899Linux arm 32位jdk-8u77-linux-arm328899MacOS x64 64位jdk-8u77-macosx-x648899Solarisjdk-8u77-solaris8899Oracle JDK 8u74下载安装平台下载地址密码Windows x64 64位jdk-8u74-windows-x648899Windows x86 32位jdk-8u74-windows-i5868899Linux x64 64位jdk-8u74-linux-x648899Linux x86 32位jdk-8u74-linux-i5868899MacOS x64 64位jdk-8u74-macosx-x648899Solarisjdk-8u74-solaris8899Oracle JDK 8u73下载安装平台下载地址密码Windows x64 64位jdk-8u73-windows-x648899Windows x86 32位jdk-8u73-windows-i5868899Linux x64 64位jdk-8u73-linux-x648899Linux x86 32位jdk-8u73-linux-i5868899Linux arm 64位jdk-8u73-linux-arm648899Linux arm 32位jdk-8u73-linux-arm328899MacOS x64 64位jdk-8u73-macosx-x648899Solarisjdk-8u73-solaris8899Oracle JDK 8u72下载安装平台下载地址密码Windows x64 64位jdk-8u72-windows-x648899Windows x86 32位jdk-8u72-windows-i5868899Linux x64 64位jdk-8u72-linux-x648899Linux x86 32位jdk-8u72-linux-i5868899MacOS x64 64位jdk-8u72-macosx-x648899Solarisjdk-8u72-solaris8899Oracle JDK 8u71下载安装平台下载地址密码Windows x64 64位jdk-8u71-windows-x648899Windows x86 32位jdk-8u71-windows-i5868899Linux x64 64位jdk-8u71-linux-x648899Linux x86 32位jdk-8u71-linux-i5868899Linux arm 64位jdk-8u71-linux-arm648899Linux arm 32位jdk-8u71-linux-arm328899MacOS x64 64位jdk-8u71-macosx-x648899Solarisjdk-8u71-solaris8899Oracle JDK 8u66下载安装平台下载地址密码Windows x64 64位jdk-8u66-windows-x648899Windows x86 32位jdk-8u66-windows-i5868899Linux x64 64位*jdk-8u66-linux-x648899Linux x86 32位jdk-8u66-linux-i5868899MacOS x64 64位jdk-8u66-macosx-x648899Solarisjdk-8u66-solaris8899Oracle JDK 8u65下载安装平台下载地址密码Windows x64 64位jdk-8u65-windows-x648899Windows x86 32位jdk-8u65-windows-i5868899Linux x64 64位jdk-8u65-linux-x648899Linux x86 32位jdk-8u65-linux-i5868899MacOS x64 64位jdk-8u65-macosx-x648899Solarisjdk-8u65-solaris8899Oracle JDK 8u60下载安装平台下载地址密码Windows x64 64位jdk-8u60-windows-x648899Windows x86 32位jdk-8u60-windows-i5868899Linux x64 64位jdk-8u60-linux-x648899Linux x86 32位jdk-8u60-linux-i5868899MacOS x64 64位jdk-8u60-macosx-x648899Solarisjdk-8u60-solaris8899Oracle JDK 8u51下载安装平台下载地址密码Windows x64 64位jdk-8u51-windows-x648899Windows x86 32位jdk-8u51-windows-i5868899Linux x64 64位jdk-8u51-linux-x648899Linux x86 32位jdk-8u51-linux-i5868899MacOS x64 64位jdk-8u51-macosx-x648899Solarisjdk-8u51-solaris8899Oracle JDK 8u45下载安装平台下载地址密码Windows x64 64位jdk-8u45-windows-x648899Windows x86 32位jdk-8u45-windows-i5868899Linux x64 64位jdk-8u45-linux-x648899Linux x86 32位jdk-8u45-linux-i5868899MacOS x64 64位jdk-8u45-macosx-x648899Solarisjdk-8u45-solaris8899Oracle JDK 8u40下载安装平台下载地址密码Windows x64 64位jdk-8u40-windows-x648899Windows x86 32位jdk-8u40-windows-i5868899Linux x64 64位jdk-8u40-linux-x648899Linux x86 32位jdk-8u40-linux-i5868899MacOS x64 64位jdk-8u40-macosx-x648899Solarisjdk-8u40-solaris8899Oracle JDK 8u31下载安装平台下载地址密码Windows x64 64位jdk-8u31-windows-x648899Windows x86 32位jdk-8u31-windows-i5868899Linux x64 64位jdk-8u31-linux-x648899Linux x86 32位jdk-8u31-linux-i5868899MacOS x64 64位jdk-8u31-macosx-x648899Solarisjdk-8u31-solaris8899Oracle JDK 8u25下载安装平台下载地址密码Windows x64 64位jdk-8u25-windows-x648899Windows x86 32位jdk-8u25-windows-i5868899Linux x64 64位jdk-8u25-linux-x648899Linux x86 32位jdk-8u25-linux-i5868899MacOS x64 64位jdk-8u25-macosx-x648899Solarisjdk-8u25-solaris8899Oracle JDK 8u20下载安装平台下载地址密码Windows x64 64位jdk-8u20-windows-x648899Windows x86 32位jdk-8u20-windows-i5868899Linux x64 64位jdk-8u20-linux-x648899Linux x86 32位jdk-8u20-linux-i5868899MacOS x64 64位jdk-8u20-macosx-x648899Solarisjdk-8u20-solaris8899Oracle JDK 8u11下载安装平台下载地址密码Windows x64 64位jdk-8u11-windows-x648899Windows x86 32位jdk-8u11-windows-i5868899Linux x64 64位jdk-8u11-linux-x648899Linux x86 32位jdk-8u11-linux-i5868899MacOS x64 64位jdk-8u11-macosx-x648899Solarisjdk-8u11-solaris8899Oracle JDK 8u5下载安装平台下载地址密码Windows x64 64位jdk-8u5-windows-x648899Windows x86 32位jdk-8u5-windows-i5868899Linux x64 64位jdk-8u5-linux-x648899Linux x86 32位jdk-8u5-linux-i5868899MacOS x64 64位jdk-8u5-macosx-x648899Solarisjdk-8u5-solaris8899Oracle JDK 8下载安装平台下载地址密码Windows x64 64位jdk-8-windows-x648899Windows x86 32位jdk-8-windows-i5868899Linux x64 64位jdk-8-linux-x648899Linux x86 32位jdk-8-linux-i5868899MacOS x64 64位jdk-8-macosx-x648899Solarisjdk-8-solaris8899
2022年11月13日
1,122 阅读
0 评论
2 点赞
2022-11-12
intelliJ Idea 2022.2.X破解
JetBrains家族的产品现在激活也是越来越麻烦了,倒不是说激活多么麻烦,而是现在网站分享破解文件的都在强推公众号,当然,这种行为也可以理解,但是无疑给破解增加了很多障碍。本文的激活文件及激活码也是在网络上搜集的,截止到文章发布时,都能够正常使用,如果发现不能使用了,请在下面评论区告诉我。本教程适用于2022.2、2022.1.x的所有版本;2022.1.4、2022.1.3 ... 2022.1等版本都是支持的,同时,改教程不限于IDEA, JetBrains 全家桶的所有工具都适用,包括 Pycharm、WebStorm、PhpStorm、AppCode、Datagrip、CLion、RubyMine 等。一、使用说明该教程不限于IDEA,JetBrains全家桶均适合,操作流程类似。我这边亲自验证的包括intellJ Idea、WebStorm、Datagrip。本教程支持最新版IDEA 2022.2、 2022.1.x本教程适用于 Windows/Mac/Linux,本文通过Mac进行操作演示,其他系统类似,需要特殊注意的地方会在本文中针对性的说明;二、破解2.1、前期准备直接从官网下载安装包正常安装即可,如果之前有使用的破解插件,建议先删除。2.2、下载破解文件破解文件文末有提供,下载后解压到任意位置。需要注意的是,文件存储路径不要有中文或特殊符号。2.3、破解文件说明破解文件保存后,不要移动或删除文件。*.sh 为Mac和Linux的脚本*.vbs是Windows的脚本请根据自己电脑的操作系统,选择对应的脚本安装2.4、安装插件2.4.1、Windows电脑安装插件如果是Windows电脑,双击 install-all-user.vbs脚本。出现下图的 done弹框,说明成功!安装过程因电脑而异,有的很快,有的需要等几秒。2.4.2、Mac及Linux电脑安装插件mac/Linux先进入破解文件所在目录,然后执行下面的命令sh ./install.sh注意我的电脑在这一步虽然提示成功了,但是实际发现并没有安装成功,这个时候我们需要手工处理一下vmoptions打开Idea,点击【Help】→【Edit Custom VM Options】,将下面三方复制到最下面--add-opens=java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED --add-opens=java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED -javaagent:破解文件路径/ja-netfilter.jar=jetbrains破解文件路径注意替换成自己本机路径。2.4.3、输入激活码上面完成之后,打开IDEA,输入激活码即可。下面是最新的几个激活码ideaXIZQAN09CR-eyJsaWNlbnNlSWQiOiJYSVpRQU4wOUNSIiwibGljZW5zZWVOYW1lIjoia2lkZHkgaW5zZWFtcyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBEQiIsImZhbGxiYWNrRGF0ZSI6IjIwMjUtMDgtMDEiLCJwYWlkVXBUbyI6IjIwMjUtMDgtMDEiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQUEMiLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBDV01QIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQUkIiLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBQUyIsImZhbGxiYWNrRGF0ZSI6IjIwMjUtMDgtMDEiLCJwYWlkVXBUbyI6IjIwMjUtMDgtMDEiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiSUkiLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQR08iLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBTVyIsImZhbGxiYWNrRGF0ZSI6IjIwMjUtMDgtMDEiLCJwYWlkVXBUbyI6IjIwMjUtMDgtMDEiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFdTIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjp0cnVlfV0sIm1ldGFkYXRhIjoiMDEyMDIyMDgwMVBTQU4wMDAwMDUiLCJoYXNoIjoiVFJJQUw6LTEwMzUwMzQyMiIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-CoFOL4hCLVDFAdlOcxtyff4LA+HU4DIoRo+QTdjWbEuevzCGrh4ghKPWTCWT7YdMYoaaLGQfpR7DP8I2w4AxRMBH5T/KEUeNM70uTkdzIXboS460xZGLImtcte5hiD/U6k3P6NL2BVQgQwGTMRG5utlGdj1WtF/jb+yzp7+vaJiCt8uqqqXjEohapQsROTUihqtVRVkd9peAtS1gzKc39YEMnxu7Oggjuo797zMSnSswT5b4EVjgs+GJxL8RObb1o5xnKk8z4fCSRzVXD4tcVbwMXs/OVcr9+cgUYMiRCLhlHVOQJtb8F5r3IFYKFEPCPmwVAFHfmkMxC3uVmAcVsg==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABqRoNGxAQct9dQUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onDwebstormQA01VSISIH-eyJsaWNlbnNlSWQiOiJRQTAxVlNJU0lIIiwibGljZW5zZWVOYW1lIjoia2lkZHkgaW5zZWFtcyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IldTIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUFNJIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQQ1dNUCIsImZhbGxiYWNrRGF0ZSI6IjIwMjUtMDgtMDEiLCJwYWlkVXBUbyI6IjIwMjUtMDgtMDEiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUFdTIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjp0cnVlfV0sIm1ldGFkYXRhIjoiMDEyMDIyMDgwMVBTQU4wMDAwMDUiLCJoYXNoIjoiVFJJQUw6MTg0ODI4OTEzMCIsImdyYWNlUGVyaW9kRGF5cyI6NywiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-PqVYTlv/yp1AaLCz/i/e//sf0n6LD6uvJTy7/jl9F2A3RJjjMvWCDeCx8tK8PZep5I+GosApeiQdzkv7aG/TfjJRiHzdF0PgJaATxwaf9hDQx7fWT2zALtrOqT89C0Qe/OsLKM9mSFm9y5ul4JW7MQSfCDMtm8B8fUQ5ZFu0nB3XcI4YnMPDjKGaifDUdY2B0u7k29CQ4JLnYxC8HL4644GG+T8F+mNkOoDDNTSE8LmcEKWXYKPzD+YEJ5flLyHc5OVtYDPF2MQ/wsbwMVf7l1O22pkr8jKdyHLzbtaeIXojlOI8fvqnXSSetFmdMa/eRC0kHHf42BZ7VQ8etd599g==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABqRoNGxAQct9dQUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onDdatagripFJVUHLU3X1-eyJsaWNlbnNlSWQiOiJGSlZVSExVM1gxIiwibGljZW5zZWVOYW1lIjoia2lkZHkgaW5zZWFtcyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBEQiIsImZhbGxiYWNrRGF0ZSI6IjIwMjUtMDgtMDEiLCJwYWlkVXBUbyI6IjIwMjUtMDgtMDEiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiREIiLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOmZhbHNlfSx7ImNvZGUiOiJQU0kiLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBXUyIsImZhbGxiYWNrRGF0ZSI6IjIwMjUtMDgtMDEiLCJwYWlkVXBUbyI6IjIwMjUtMDgtMDEiLCJleHRlbmRlZCI6dHJ1ZX1dLCJtZXRhZGF0YSI6IjAxMjAyMjA4MDFQU0FOMDAwMDA1IiwiaGFzaCI6IlRSSUFMOi0yNDc1NjQ2MTIiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-IWA8NqxA1nOvfTGTVFX4PNAWRswj0hTsqntqWZcqcYFz/zIobEAYmHm0Lks82E0mPcNCzt0LPW6BfUZCI8f4r5E1nsonNS40bDv44qAcjBmQaLf5XxZLyoKRzl7YacDuqql+NY3tInFBX8Q4PQu56aVsS6DOZmeoO4fC66Qtwg2z+A+kvVpSlB3+1Fqww7SHZMuQbLlEOVSHqO2tf4bJVTIMH/OSMph5CpY4uJ8iv7yeBX+WQpcOy4tv1AZNEY9tIKI8nRVbnVnZaAf5R2ng1AduGCVSOaU1/ElLPReBvXTG6gZHtjKDHlAy2kq6JIH/CCeG/3ZkDLB0GzB29aSgHA==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABqRoNGxAQct9dQUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onDphpstormZEW8I0GZC6-eyJsaWNlbnNlSWQiOiJaRVc4STBHWkM2IiwibGljZW5zZWVOYW1lIjoia2lkZHkgaW5zZWFtcyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjUtMDgtMDEiLCJwYWlkVXBUbyI6IjIwMjUtMDgtMDEiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUENXTVAiLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IlBTIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUFBTIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQV1MiLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOnRydWV9XSwibWV0YWRhdGEiOiIwMTIwMjIwODAxUFNBTjAwMDAwNSIsImhhc2giOiJUUklBTDo5NzM1MDQ0MzkiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-UVh/hXrqvTl8syZGee3sWsipAUdbN7XBg2XpFkSNh+oGBGzwvsj2k5A3v2LGO6+46rDU/HdG14jHYnT1iDMum5K5I7aCVYOIcJcmSAViwNDLqvTcOjMOdDZ4XS3aDg/KeaX5PozDa+H/KgHdGL07nKCBuhopAesiGXZC0RYerwCnYX1DjG9b/02igSyCuIYfsCO8d3GL+/ESz+sI8FiXmyZB7N413SJDGnp9klF51Kz469YzWZNEIXp9zg3Wu/Vsq8zlW9mGCFmsyiu0btTkS5PZfxp5BebH8Ef5SvPP7SyLJ2Q0FqeCJ9ESXp6aNBW8lmTVY+R0ZpqgsBOwbkq2xg==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABqRoNGxAQct9dQUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onDappcodeVKZAU5B43Y-eyJsaWNlbnNlSWQiOiJWS1pBVTVCNDNZIiwibGljZW5zZWVOYW1lIjoia2lkZHkgaW5zZWFtcyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiIiLCJjaGVja0NvbmN1cnJlbnRVc2UiOmZhbHNlLCJwcm9kdWN0cyI6W3siY29kZSI6IlBTSSIsImZhbGxiYWNrRGF0ZSI6IjIwMjUtMDgtMDEiLCJwYWlkVXBUbyI6IjIwMjUtMDgtMDEiLCJleHRlbmRlZCI6dHJ1ZX0seyJjb2RlIjoiUENXTVAiLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOnRydWV9LHsiY29kZSI6IkFDIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjpmYWxzZX0seyJjb2RlIjoiUFNXIiwiZmFsbGJhY2tEYXRlIjoiMjAyNS0wOC0wMSIsInBhaWRVcFRvIjoiMjAyNS0wOC0wMSIsImV4dGVuZGVkIjp0cnVlfSx7ImNvZGUiOiJQV1MiLCJmYWxsYmFja0RhdGUiOiIyMDI1LTA4LTAxIiwicGFpZFVwVG8iOiIyMDI1LTA4LTAxIiwiZXh0ZW5kZWQiOnRydWV9XSwibWV0YWRhdGEiOiIwMTIwMjIwODAxUFNBTjAwMDAwNSIsImhhc2giOiJUUklBTDo4MjMzNzExNjIiLCJncmFjZVBlcmlvZERheXMiOjcsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-RrHOvDeSwoPjgraFAh3zGXDfoJ1hXOrZJroE/sKj/96CimH7YlD0An0lUEGvSEsovDprHWDZ4q2Wq11vukassv+avD1JHuurWhjp1mpIOvOntp2VHbBV9+iUxsr5ET+zJaIl0WiaRd6n75LeU4ZhxT4y6Da7cLbrqEawH+zjUuHzs60mUaqZ/5+j3qfVlwnx+iwPPu3dFtXWvADmcV/nb2jwnrJcLx9HMGVbS3yrgNoXhqXI+YRsYdNwYXbF7yVseGoxjKHQDBWTd3dAjWES/iC0s8xzLD7VXGkd3gIDJ0cc8cgzmCUr3E/QABzU1CdpqY0hyCedCvb9IOwfmTH+ug==-MIIETDCCAjSgAwIBAgIBDTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTIwMTAxOTA5MDU1M1oXDTIyMTAyMTA5MDU1M1owHzEdMBsGA1UEAwwUcHJvZDJ5LWZyb20tMjAyMDEwMTkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCUlaUFc1wf+CfY9wzFWEL2euKQ5nswqb57V8QZG7d7RoR6rwYUIXseTOAFq210oMEe++LCjzKDuqwDfsyhgDNTgZBPAaC4vUU2oy+XR+Fq8nBixWIsH668HeOnRK6RRhsr0rJzRB95aZ3EAPzBuQ2qPaNGm17pAX0Rd6MPRgjp75IWwI9eA6aMEdPQEVN7uyOtM5zSsjoj79Lbu1fjShOnQZuJcsV8tqnayeFkNzv2LTOlofU/Tbx502Ro073gGjoeRzNvrynAP03pL486P3KCAyiNPhDs2z8/COMrxRlZW5mfzo0xsK0dQGNH3UoG/9RVwHG4eS8LFpMTR9oetHZBAgMBAAGjgZkwgZYwCQYDVR0TBAIwADAdBgNVHQ4EFgQUJNoRIpb1hUHAk0foMSNM9MCEAv8wSAYDVR0jBEEwP4AUo562SGdCEjZBvW3gubSgUouX8bOhHKQaMBgxFjAUBgNVBAMMDUpldFByb2ZpbGUgQ0GCCQDSbLGDsoN54TATBgNVHSUEDDAKBggrBgEFBQcDATALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQELBQADggIBABqRoNGxAQct9dQUFK8xqhiZaYPd30TlmCmSAaGJ0eBpvkVeqA2jGYhAQRqFiAlFC63JKvWvRZO1iRuWCEfUMkdqQ9VQPXziE/BlsOIgrL6RlJfuFcEZ8TK3syIfIGQZNCxYhLLUuet2HE6LJYPQ5c0jH4kDooRpcVZ4rBxNwddpctUO2te9UU5/FjhioZQsPvd92qOTsV+8Cyl2fvNhNKD1Uu9ff5AkVIQn4JU23ozdB/R5oUlebwaTE6WZNBs+TA/qPj+5/we9NH71WRB0hqUoLI2AKKyiPw++FtN4Su1vsdDlrAzDj9ILjpjJKA1ImuVcG329/WTYIKysZ1CWK3zATg9BeCUPAV1pQy8ToXOq+RSYen6winZ2OO93eyHv2Iw5kbn1dqfBw1BuTE29V2FJKicJSu8iEOpfoafwJISXmz1wnnWL3V/0NxTulfWsXugOoLfv0ZIBP1xH9kmf22jjQ2JiHhQZP7ZDsreRrOeIQ/c4yR8IQvMLfC0WKQqrHu5ZzXTH4NO3CwGWSlTY74kE91zXB5mwWAx1jig+UXYc2w4RkVhy0//lOmVya/PEepuuTTI4+UJwC7qbVlh5zfhj8oTNUXgN0AOc+Q0/WFPl1aw5VV/VrO8FCoB15lFVlpKaQ1Yh+DVU8ke+rt9Th0BCHXe0uZOEmH0nOnH/0onD激活码失效或者需要更多激活码,可以在评论区留言。
2022年11月12日
4,694 阅读
41 评论
9 点赞
2022-11-12
ApiFox-API 文档、API 调试、API Mock、API 自动化测试,一体化协作平台
一、ApiFox简介简单来说,ApiFox就是一款接口测试软件。官网的说明中,ApiFox=Postman+Swagger+Mock+JMeter,虽然多少有夸大带刺的成分,但是也可以说明了ApiFox的功能。ApiFox是完全免费的(私有化收费),登录之后支持账户数据的同步,并且支持所有平台二、ApiFox在线文档ApiFox上手几乎没有什么难度,跟Postman差不多,喜欢的朋友也可以看一下在线文档帮助中心 | Apifox 使用文档
2022年11月12日
914 阅读
0 评论
0 点赞
2022-11-11
去掉IDEA 警告:Raw use of parameterized class ‘xxx’
作为一个精致的代码主义者,是绝对不允许IDE里面出现各种屎黄色的警告信息的。比如Raw use of parameterized class xxx,当然出现这种警告有两种可能,一种是我们没有正确使用泛型,这种就比较好解决了正确使用即可,另外一种就比较膈应人,可能是调用别人的方法。一、对象带上具体的泛型 (推荐)这种就比较好理解了,好比我们相面New一个Map,我们只需要正确使用泛型即可。二、在方法上加注解这种就属于比较隔应的了,如果是调用别人的方法,要么强制转换,要么直接用,结果就是出现屎黄色的波浪线。这种方法就只能退而求其次,屏蔽到IDEA的提示,我们可以在方法上下面的注解 @SuppressWarnings({"rawtypes"})
2022年11月11日
3,464 阅读
0 评论
1 点赞
2022-11-10
黑苹果如何彻底屏蔽系统更新
一、修改host文件通过修改hosts文件,禁止访问苹果更新服务器。打开hosts文件sudo vi /etc/hosts 将一下内容复制到hosts文件内# macOS 屏蔽更新 127.0.0.1 gg.apple.com 127.0.0.1 gnf-mdn.apple.com 127.0.0.1 gnf-mr.apple.com 127.0.0.1 ig.apple.com 127.0.0.1 mesu.apple.com 127.0.0.1 skl.apple.com 127.0.0.1 swcdn.apple.com 127.0.0.1 swdist.apple.com 127.0.0.1 swdownload.apple.com 127.0.0.1 swpost.apple.com 127.0.0.1 swscan.apple.com 127.0.0.1 updates-http.cdn-apple.com 127.0.0.1 updates.apple.com 127.0.0.1 updates.cdn-apple.com 127.0.0.1 xp.apple.com 10.211.55.19 macos.shared macos #prl_hostonly shared然后保存hosts文件二、删除右上角角标打开终端,输入一下命令defaults delete com.apple.systempreferences AttentionPrefBundleIDs; killall Dock
2022年11月10日
2,313 阅读
0 评论
4 点赞
2022-11-10
xcrun/ error/ invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at/ /Library/Developer/CommandLineTools/usr/bin/xcrun
一、现象描述最开始的是要用,我的smartgit是正常使用的,但是使用的BigSur,后来升级到Ventura后,smartgit突然不能用了,提示找不到Git。所以我尝试使用brew安装一下Git,结果提示xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun二、解决方法初步断定是,升级到Ventura后,CommandLineTools没有更新导致的。打开终端,输入一下命令回车xcode-select --install弹出安装界面点击【安装】按钮安装即可。安装如果很慢的话,也可以去苹果开发者官网下载对应版本。不需要重新安装Git,再次打开SmartGit就能正常使用了。
2022年11月10日
1,013 阅读
0 评论
1 点赞
2022-11-10
MateBook X Pro 2020黑苹果Ventura自动获取与注入三码的方法
一、什么是三码?所谓三码是指的是Board Serial Number、Serial Number和RT VARIABLES选项页中的ROM。二、三码的作用没注入三码之前,我们可以正常登陆App Store下载和更新app,iCloud可以正常同步,注入了三码的黑苹果电脑,正常使用隔空投送、接力、iMessage、FaceTime、随航等附加功能。三、注入三码方式3.1、需要资源HackInTool:用于生成三码。Clover Configurator:用于挂载磁盘及Clover引导的方式的写入三码。OpenCore Configurator:用于OC引导方式的写入三码。3.2、三码注入方式3.2.1、获取三码打开HackInTool,找到【序列号生成器】参考下图步骤操作。①先选择一个跟自己设备接近的设备【比如我的MateBook X Pro 2020,我选择的是MacBook Pro 16.2)。②点击刷新按钮,刷新新的三码③点击进入苹果官网,查询序列号是否被使用,如果已经被使用,重复步骤②③,直到在官网查询到不到序列号时,就使用生成的这个三码。3.2.2、注入三码3.2.2.1、OC方式因为我本机是使用OC方式引导的,所以我需要使用OpenCore Configurator编辑我的引导文件。备份原来的引导文件万事第一步就是备份。打开Clover Configurator,找到【挂载分区】,点击挂载分区。挂载之后,点击【打开分区】依次打开EFI\OC,找到config.plist,随便找个位置备份一下或者另存一份。修改config.plist使用OpenCore Configurator打开config.plist文件。点击上方的【DataHub-Generic-PlatformNVRAM】修改完成后保存(command+S)并重启电脑。3.2.2.1、Clover方式同样先备份好config.plistclover引导方式需要使用Clover Configurator进行修改,修改方式类似。使用Clover Configurator打开config.plist修改完成后保存并重启电脑。四、验证成果修改完成后,我们可以验证一下iMessage等是否能够正常使用。如果iMessage能够正常发送,那么配置就没有问题了。可以开始享受了
2022年11月10日
959 阅读
0 评论
3 点赞
2022-11-09
华为matebook x pro 2020黑苹果BigSur升级Ventura
前段时间给大家分享了MateBook X Pro安装BigSur的教程,华为matebook x pro 2020安装黑苹果BigSur详细教程 - 李森的博客 (lisen.cc),最近Mac OS 最新系统Ventura也出来了,抵挡不住诱惑,于是把自己的BigSur(11.5.2)直接OTA到了最新版本Ventura(13.0){mtitle title="一、安装之后的一些体"/}因为是今天刚安装好的,所以体验时间不是很长,先来简单说一下感受吧。最直观的变化就是【系统设置】界面,跟IPad跟IPhone是一模一样。系统流畅性方面,我之前用的是11.5.2,这次升级到13.0之后,感觉不如BigSur(11)流畅。黑苹果最关键的驱动方面,感觉跟BigSur是一样的,在BigSur上面能用的在Ventura上面也能正常使用,在BigSur上面无法使用的在Ventura上面一样无法使用。软件兼容性方面目前没发现,当然可能是我使用的软件太少。简单罗列一下目前使用的软件吧:QQ、微信、IntelliJ Idea、WebStorm、DataGrip、VS Code、SmartGit、Typora、PicGo、Filezilla、Sublime Text、ApiFox、VMWare Fushion、WPS、QQ视频、搜狐视频、Parallels Client、Edge浏览器、VNC Viwer等等。【台前调度】算是个新增的亮点功能,可以用来装装X。可以在【桌面与程序坞】页签中打开{mtitle title="二、下面说说我升级的"/}前面也说了,我是先安装的BigSur(11.5.2),然后直接OTA升级到Ventura(13)当然升级之后,大概率跟我一样,系统无法启动了,所以我们需要提前准备一个PE,用户替换EFI文件。正确替换MateBook X Pro 2022的EFI之后,正常就能进入系统了。需要注意的是,第一次进入系统之后,输入完密码,系统很长时间都无法进入(密码框下面一直转圈,右上角提示正在优化系统),此时不用太着急,多等一会就进去了。{mtitle title="三、黑苹果比较关注的"/}蓝牙蓝牙没感觉出来有太大的变化,起码,我是没感觉出来太大变化,如果你的蓝牙鼠标或蓝牙键盘之前能用,那么升级之后也是能够正常使用的,如果之前不能使用升级之后大概率也是不能使用,目前我这边是这么个情况。WifiWifi正常使用,与之前也没感觉出太大的变化,目前没出现Wifi自动断开无法链接的情况。触控板触控板正常使用,多点触摸等都没有发现问题HIDPI目前不能用,原来一键开启的脚本我也没试,不清楚能否使用。睿频感觉CPU-S出现问题了,之前睿频的文件都删了,但是打开CPU-S检测,仍然显示睿频了,不太明白原理,也没过多关注。休眠休眠后,蓝牙能够正常唤醒。PS:我使用的蓝牙键盘。摄像头测试了一下摄像头,能够正常使用。指纹识别估计无解了,依然不能使用。位置服务正常,特意拿自己的小程序试了一下
2022年11月09日
1,976 阅读
9 评论
2 点赞
2022-11-08
Parallels Desktop的替代者VMWare Funshion
大家都知道现在Parallels Desktop的破解版是越来越难找了,其实,在Mac里面,除了使用大名鼎鼎的Parallels Desktop,我们还可以选择另外的产品替代。Oracle出品的VirtualBox,这个虚拟机的特点是比较小巧,占用资源比较少,也没有太多花里胡哨的东西,并且是开源免费的。而且这玩意是跨平台的,支持Windows、Linux及Mac OS,但是VirtualBox有一个缺点就是复制东西不太方便,得建映射,目前最新版本是V7,不知道能不能直接复制。另外一个替代品,也是我现在用的是VMWare Fushion,跟Windows下面VMWare WorkStation是一家,而且好处就是之前Windows的虚拟机可以直接复制到Mac OS,双击就能通过VMWare Fushion打开。VMWare Fushion虽然是收费的,但是跟VMWare WorkStation一样,网上一大堆的注册码。目前最新版本是12,付一个注册码ZF3R0-FHED2-M80TY-8QYGC-NPKYF
2022年11月08日
1,183 阅读
0 评论
0 点赞
2022-11-07
Mac Typora配置七牛图床
最近安装了黑苹果,原来写博客一直是使用的typecho的七牛插件把七牛作为图床,奈何typecho的编辑器实在太难用了,所以还是决定使用typora作为写作工具,配合七牛作为图床,写完之后直接粘贴到博客上。在Mac上Typora使用七牛作为图床时,需要借助PicGo,剩下的配置都是图形化的,比较简单了。一、安装PicGoPicGo下载地址:Releases · Molunerfinn/PicGo (github.com)上面是GitHub的地址,如果被墙了,可以腾讯云COS下载地址,不同版本如下PicGo-2.3.1-beta.8-arm64.dmgPicGo-2.3.1-beta.8-x64.dmgPicGo-2.3.1-beta.8.AppImagePicGo-Setup-2.3.1-beta.8-ia32.exePicGo-Setup-2.3.1-beta.8-x64.exePicGo-Setup-2.3.1-beta.8.exepicgo_2.3.1-beta.8_amd64.snap下载完成后正常安装并打开即可,没有什么特别需要说明的。二、配置PicGo打开PicGo,左侧找到图床设置,找到七牛图床可以看到主要需要的信息包括:AccessKey、SecreKey、存储空间名、访问网址、存储区域这些都是必填的,网址后缀、存储路径是选填的。OK,看到这些信息之后,我们去七牛网站查找需要的信息。打开七牛云并登录七牛云 - 对象存储 - 空间管理 (qiniu.com),然后打开个人中心,找到密钥管理,这里面有我们需要的AccessKey、SecreKey如果没有,我们可以点击右下角的【创建密钥】来创建我们的密钥。然后找到对象存储Kodo,找到空间管理,查看我们的空间当然,如果没有,可以点击【新建空间】创建一个我们的空间,需要注意的是,绑定域名时,域名必须是已备案的域名。点击我们的空间名称,进入详情页面可以看到我们的域名。也就是访问网址以及存储区域。需要注意的是,存储区域不能是汉字的,必须是区域ID。具体存储区域可以看文末说明,比如我是华南-广东,存储区域ID就是Z2支持,其实所有的必填项我们都已经找到了,因为我个人博客都是放到空间的具体位置了,所以我就要配置最后一项存储路径我们切换上面的页签到【文件管理】因为我个人博客的都是放到/blog/typecho/下面的,所以我的路径配置的就是/blog/typecho/将以上内容全部复制到PicGo后,点击确认并设置默认图床。如果没有设置默认,也可以右键点击Mac工具栏的PicGo图标,选择默认图床三、设置Typora打开Typora偏好设置,切换到图像进行如下设置【插入图片时...】选择上传图片勾选【对本地位置的图片应用上诉规则】网络图片如果也上传,可以勾选【对网络位置的图片应用上述规则】上传服务选择【PicGo.app】设置完成后,点击【验证图片上传选项】,如果出现下面的图片,代表设置的没问题,此时可以直接在Typora复制粘贴图片或文件了,Trpora会自动将图片上传到七牛并将文件路径替换成七牛云的路径。如果开启了PicGo通知,Mac右上角也会有提示信息图片上传后,可以在PicGo的xia相册页签,查看所有上传过的图片。附七牛储存区域ID说明存储区域 Region区域 Region ID域名华东-浙江z0空间管理:http(s)://uc.qbox.me 加速上传 :http(s)://upload.qiniup.com 源站上传:http(s)://up.qiniup.com 源站下载:http(s)://iovip.qbox.me 对象管理:http(s)://rs-z0.qiniuapi.com 对象列举:http(s)://rsf-z0.qiniuapi.com 计量查询:http(s)://api.qiniuapi.com华东-浙江2cn-east-2空间管理:http(s)://uc.qbox.me 加速上传:http(s)://upload-cn-east-2.qiniup.com 源站上传:http(s)://up-cn-east-2.qiniup.com 源站下载:http(s)://iovip-cn-east-2.qiniuio.com 对象管理:http(s)://rs-cn-east-2.qiniuapi.com 对象列举:http(s)://rsf-cn-east-2.qiniuapi.com 计量查询:http(s)://api.qiniuapi.com华北-河北z1空间管理:http(s)://uc.qbox.me 加速上传:http(s)://upload-z1.qiniup.com 源站上传:http(s)://up-z1.qiniup.com 源站下载:http(s)://iovip-z1.qbox.me 对象管理:http(s)://rs-z1.qiniuapi.com 对象列举:http(s)://rsf-z1.qiniuapi.com 计量查询:http(s)://api.qiniuapi.com华南-广东z2空间管理:http(s)://uc.qbox.me 加速上传:http(s)://upload-z2.qiniup.com 源站上传:http(s)://up-z2.qiniup.com 源站下载:http(s)://iovip-z2.qbox.me 对象管理:http(s)://rs-z2.qiniuapi.com 对象列举:http(s)://rsf-z2.qiniuapi.com 计量查询:http(s)://api.qiniuapi.com北美-洛杉矶na0空间管理:http(s)://uc.qbox.me 加速上传 :http(s)://upload-na0.qiniup.com 源站上传:http(s)://up-na0.qiniup.com 源站下载:http(s)://iovip-na0.qbox.me 对象管理:http(s)://rs-na0.qiniuapi.com 对象列举:http(s)://rsf-na0.qiniuapi.com 计量查询:http(s)://api.qiniuapi.com亚太-新加坡(原东南亚)as0空间管理:http(s)://uc.qbox.me 加速上传:http(s)://upload-as0.qiniup.com 源站上传:http(s)://up-as0.qiniup.com 源站下载:http(s)://iovip-as0.qbox.me 对象管理:http(s)://rs-as0.qiniuapi.com 对象列举:http(s)://rsf-as0.qiniuapi.com 计量查询:http(s)://api.qiniuapi.com亚太-首尔ap-northeast-1空间管理:http(s)://uc.qbox.me 加速上传:http(s)://upload-ap-northeast-1.qiniup.com 源站上传:http(s)://up-ap-northeast-1.qiniup.com 源站下载:http(s)://iovip-ap-northeast-1.qiniuio.com 对象管理:http(s)://rs-ap-northeast-1.qiniuapi.com 对象列举:http(s)://rsf-ap-northeast-1.qiniuapi.com 计量查询:http(s)://api.qiniuapi.com
2022年11月07日
1,377 阅读
0 评论
0 点赞
1
...
12
13
14
...
53