From a78cb5904cdc13a8473590cedb3361cee6ca08ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=86=8A=E6=AD=A3?= <1276292287@qq.com> Date: Sun, 21 Aug 2022 21:59:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=B1=B3=E4=BE=BF=E7=AD=BE=E7=9A=84?= =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...小米便签开源代码的泛读报告.docx | Bin 0 -> 18572 bytes ...资源-开源代码质量分析报告.docx | Bin 0 -> 21511 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/实践资源-小米便签开源代码的泛读报告.docx create mode 100644 doc/实践资源-开源代码质量分析报告.docx diff --git a/doc/实践资源-小米便签开源代码的泛读报告.docx b/doc/实践资源-小米便签开源代码的泛读报告.docx new file mode 100644 index 0000000000000000000000000000000000000000..e039c4d534cb5e69b2ead36e1def979d84707544 GIT binary patch literal 18572 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 literal 0 HcmV?d00001 diff --git a/doc/实践资源-开源代码质量分析报告.docx b/doc/实践资源-开源代码质量分析报告.docx new file mode 100644 index 0000000000000000000000000000000000000000..626edee6bb8b8a9a5b587ee52f726c15ca9517fc GIT binary patch literal 21511 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 WH!E=91GJA&lp!6sTcyhn!~+1MwC$S! literal 0 HcmV?d00001