From b4b66cb8578afb85b22470aaff0ee8a81f9055fd Mon Sep 17 00:00:00 2001 From: Mr_Worldwide <1905563644@qq.com> Date: Mon, 2 Apr 2018 20:50:40 +0800 Subject: [PATCH] =?UTF-8?q?src\MyApplication\.idea\sonarlint\issuestore\3\?= =?UTF-8?q?4\342c9edfd27db16bba3e3455e68c749d04c55cbd=20src\MyApplication\?= =?UTF-8?q?.idea\sonarlint\issuestore\6\7\67ee5a70c0947c6377cf1e29856f6a79?= =?UTF-8?q?659f84e7=20src\MyApplication\.idea\sonarlint\issuestore\c\5\c5c?= =?UTF-8?q?e6afdb0606af7b3aad034a3799dc44d4d4c5c=20src\MyApplication\.idea?= =?UTF-8?q?\sonarlint\issuestore\index.pb=20src\MyApplication\app\src\main?= =?UTF-8?q?\java\com\example\administrator\myapplication\adapter\NotebookA?= =?UTF-8?q?dapter.java=20src\MyApplication\app\src\main\java\com\example\a?= =?UTF-8?q?dministrator\myapplication\app\BaseApplication.java=20src\MyApp?= =?UTF-8?q?lication\app\src\main\java\com\example\administrator\myapplicat?= =?UTF-8?q?ion\db\NoteDatabase.java=20src\MyApplication\app\src\main\java\?= =?UTF-8?q?com\example\administrator\myapplication\ui\NoteEditActivity.jav?= =?UTF-8?q?a=20src\MyApplication\app\src\main\java\com\example\administrat?= =?UTF-8?q?or\myapplication\ui\WelcomeActivity.java=20src\MyApplication\ap?= =?UTF-8?q?p\src\main\java\com\example\administrator\myapplication\utils\B?= =?UTF-8?q?mobConstants.java=20src\MyApplication\app\src\main\java\com\exa?= =?UTF-8?q?mple\administrator\myapplication\utils\SystemUtils.java=20src\M?= =?UTF-8?q?yApplication\app\src\main\res\layout\content=5Fmain.xml=20src\M?= =?UTF-8?q?yApplication\app\src\main\res\layout\layout=5Fnote=5Fdetail=5Fm?= =?UTF-8?q?enu.xml=20src\MyApplication\app\src\main\res\mipmap-hdpi\mine?= =?UTF-8?q?=5Favatar.jpg=20src\MyApplication\app\src\main\res\values\strin?= =?UTF-8?q?gs.xml=20src\MyApplication\.idea\sonarlint\issuestore\3\9\39949?= =?UTF-8?q?154a1e615e7862369e7bbdbc02d8e85f887=20src\MyApplication\.idea\s?= =?UTF-8?q?onarlint\issuestore\6\7\67dcf9378cf673b1d3b665701ca8ab112314a41?= =?UTF-8?q?a=20src\MyApplication\.idea\sonarlint\issuestore\a\f\af19bd5acf?= =?UTF-8?q?2e10910134fc735da2908d48302bd8=20src\MyApplication\libs\BmobSDK?= =?UTF-8?q?Demo=5Fv3.6.0\BmobDemo\.gitignore=20src\MyApplication\libs\Bmob?= =?UTF-8?q?SDKDemo=5Fv3.6.0\BmobDemo\.idea\compiler.xml=20src\MyApplicatio?= =?UTF-8?q?n\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\.idea\copyright\profiles?= =?UTF-8?q?=5Fsettings.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\B?= =?UTF-8?q?mobDemo\.idea\encodings.xml=20src\MyApplication\libs\BmobSDKDem?= =?UTF-8?q?o=5Fv3.6.0\BmobDemo\.idea\gradle.xml=20src\MyApplication\libs\B?= =?UTF-8?q?mobSDKDemo=5Fv3.6.0\BmobDemo\.idea\markdown-navigator\profiles?= =?UTF-8?q?=5Fsettings.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\B?= =?UTF-8?q?mobDemo\.idea\misc.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv?= =?UTF-8?q?3.6.0\BmobDemo\.idea\modules.xml=20src\MyApplication\libs\BmobS?= =?UTF-8?q?DKDemo=5Fv3.6.0\BmobDemo\.idea\runConfigurations.xml=20src\MyAp?= =?UTF-8?q?plication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\.gitignore=20s?= =?UTF-8?q?rc\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\build.g?= =?UTF-8?q?radle=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\ap?= =?UTF-8?q?p\hs=5Ferr=5Fpid14476.log=20src\MyApplication\libs\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\BmobDemo\app\libs\BmobPush=5Fv1.0.0=5F0627.jar=20src\?= =?UTF-8?q?MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\libs\filec?= =?UTF-8?q?hoose.jar=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDem?= =?UTF-8?q?o\app\proguard-rules.pro=20src\MyApplication\libs\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\BmobDemo\app\src\androidTest\java\cn\bmob\sdkdemo\App?= =?UTF-8?q?licationTest.java=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0?= =?UTF-8?q?\BmobDemo\app\src\main\AndroidManifest.xml=20src\MyApplication\?= =?UTF-8?q?libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sd?= =?UTF-8?q?kdemo\BaseActivity.java=20src\MyApplication\libs\BmobSDKDemo=5F?= =?UTF-8?q?v3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\BatchActionAc?= =?UTF-8?q?tivity.java=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobD?= =?UTF-8?q?emo\app\src\main\java\cn\bmob\sdkdemo\BmobApplication.java=20sr?= =?UTF-8?q?c\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main?= =?UTF-8?q?\java\cn\bmob\sdkdemo\MainActivity.java=20src\MyApplication\lib?= =?UTF-8?q?s\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkde?= =?UTF-8?q?mo\acl\ACLActivity.java=20src\MyApplication\libs\BmobSDKDemo=5F?= =?UTF-8?q?v3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\autoupdate\Ac?= =?UTF-8?q?tAutoUpdate.java=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\?= =?UTF-8?q?BmobDemo\app\src\main\java\cn\bmob\sdkdemo\bean\BankCard.java?= =?UTF-8?q?=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src?= =?UTF-8?q?\main\java\cn\bmob\sdkdemo\bean\GameScore.java=20src\MyApplicat?= =?UTF-8?q?ion\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmo?= =?UTF-8?q?b\sdkdemo\bean\MyUser.java=20src\MyApplication\libs\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\bean\Perso?= =?UTF-8?q?n.java=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\a?= =?UTF-8?q?pp\src\main\java\cn\bmob\sdkdemo\crud\CRUDActivity.java=20src\M?= =?UTF-8?q?yApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\ja?= =?UTF-8?q?va\cn\bmob\sdkdemo\crud\QueryActivity.java=20src\MyApplication\?= =?UTF-8?q?libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sd?= =?UTF-8?q?kdemo\crud\QuerySQLActivity.java=20src\MyApplication\libs\BmobS?= =?UTF-8?q?DKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\crud?= =?UTF-8?q?\QueryStatisticActivity.java=20src\MyApplication\libs\BmobSDKDe?= =?UTF-8?q?mo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\file\Bmo?= =?UTF-8?q?bFileActivity.java=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.?= =?UTF-8?q?0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\file\Movie.java=20?= =?UTF-8?q?src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\ma?= =?UTF-8?q?in\java\cn\bmob\sdkdemo\file\Song.java=20src\MyApplication\libs?= =?UTF-8?q?\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdem?= =?UTF-8?q?o\location\LocationActivity.java=20src\MyApplication\libs\BmobS?= =?UTF-8?q?DKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\perm?= =?UTF-8?q?ission\PermissionListener.java=20src\MyApplication\libs\BmobSDK?= =?UTF-8?q?Demo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\permis?= =?UTF-8?q?sion\PermissionManager.java=20src\MyApplication\libs\BmobSDKDem?= =?UTF-8?q?o=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\push\ActB?= =?UTF-8?q?mobPush.java=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\Bmob?= =?UTF-8?q?Demo\app\src\main\java\cn\bmob\sdkdemo\push\MyBmobInstallation.?= =?UTF-8?q?java=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app?= =?UTF-8?q?\src\main\java\cn\bmob\sdkdemo\relation\Comment.java=20src\MyAp?= =?UTF-8?q?plication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\?= =?UTF-8?q?cn\bmob\sdkdemo\relation\CommentListActivity.java=20src\MyAppli?= =?UTF-8?q?cation\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\?= =?UTF-8?q?bmob\sdkdemo\relation\Post.java=20src\MyApplication\libs\BmobSD?= =?UTF-8?q?KDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\relat?= =?UTF-8?q?ion\WeiboListActivity.java=20src\MyApplication\libs\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\sms\SMSCod?= =?UTF-8?q?eActivity.java=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\Bm?= =?UTF-8?q?obDemo\app\src\main\java\cn\bmob\sdkdemo\user\UserActivity.java?= =?UTF-8?q?=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src?= =?UTF-8?q?\main\res\drawable\selector=5Fbutton.xml=20src\MyApplication\li?= =?UTF-8?q?bs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\drawable\sele?= =?UTF-8?q?ctor=5Flist=5Fitem.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv?= =?UTF-8?q?3.6.0\BmobDemo\app\src\main\res\layout\act=5Fpush.xml=20src\MyA?= =?UTF-8?q?pplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\?= =?UTF-8?q?layout\activity=5Fcode.xml=20src\MyApplication\libs\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\BmobDemo\app\src\main\res\layout\activity=5Fcomment.x?= =?UTF-8?q?ml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\s?= =?UTF-8?q?rc\main\res\layout\activity=5Ffile.xml=20src\MyApplication\libs?= =?UTF-8?q?\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\layout\activity?= =?UTF-8?q?=5Ffind.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobD?= =?UTF-8?q?emo\app\src\main\res\layout\activity=5Flocal=5Fthumbnail.xml=20?= =?UTF-8?q?src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\ma?= =?UTF-8?q?in\res\layout\activity=5Fmain.xml=20src\MyApplication\libs\Bmob?= =?UTF-8?q?SDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\layout\activity=5Fne?= =?UTF-8?q?w=5Ffile.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\Bmob?= =?UTF-8?q?Demo\app\src\main\res\layout\activity=5Fweibo.xml=20src\MyAppli?= =?UTF-8?q?cation\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\layo?= =?UTF-8?q?ut\item=5Flist.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.?= =?UTF-8?q?0\BmobDemo\app\src\main\res\layout\list=5Fitem.xml=20src\MyAppl?= =?UTF-8?q?ication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\lay?= =?UTF-8?q?out\list=5Fitem=5Fweibo.xml=20src\MyApplication\libs\BmobSDKDem?= =?UTF-8?q?o=5Fv3.6.0\BmobDemo\app\src\main\res\mipmap-hdpi\ic=5Flauncher.?= =?UTF-8?q?png=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\?= =?UTF-8?q?src\main\res\mipmap-mdpi\ic=5Flauncher.png=20src\MyApplication\?= =?UTF-8?q?libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\mipmap-xhdp?= =?UTF-8?q?i\ic=5Flauncher.png=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6?= =?UTF-8?q?.0\BmobDemo\app\src\main\res\mipmap-xxhdpi\ic=5Flauncher.png=20?= =?UTF-8?q?src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\ma?= =?UTF-8?q?in\res\mipmap-xxxhdpi\ic=5Flauncher.png=20src\MyApplication\lib?= =?UTF-8?q?s\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\values-w820dp\?= =?UTF-8?q?dimens.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDe?= =?UTF-8?q?mo\app\src\main\res\values\colors.xml=20src\MyApplication\libs\?= =?UTF-8?q?BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\values\dimens.xm?= =?UTF-8?q?l=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\sr?= =?UTF-8?q?c\main\res\values\strings.xml=20src\MyApplication\libs\BmobSDKD?= =?UTF-8?q?emo=5Fv3.6.0\BmobDemo\app\src\main\res\values\styles.xml=20src\?= =?UTF-8?q?MyApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\test\j?= =?UTF-8?q?ava\cn\bmob\sdkdemo\ExampleUnitTest.java=20src\MyApplication\li?= =?UTF-8?q?bs\BmobSDKDemo=5Fv3.6.0\BmobDemo\build.gradle=20src\MyApplicati?= =?UTF-8?q?on\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\gradle.properties=20src\M?= =?UTF-8?q?yApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\gradle\wrapper\?= =?UTF-8?q?gradle-wrapper.jar=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.?= =?UTF-8?q?0\BmobDemo\gradle\wrapper\gradle-wrapper.properties=20src\MyApp?= =?UTF-8?q?lication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\gradlew=20src\MyApp?= =?UTF-8?q?lication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\gradlew.bat=20src\M?= =?UTF-8?q?yApplication\libs\BmobSDKDemo=5Fv3.6.0\BmobDemo\settings.gradle?= =?UTF-8?q?=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\libs\BmobSDK=5F3?= =?UTF-8?q?.6.0=5F20180321.jar=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6?= =?UTF-8?q?.0\libs\arm64-v8a\libbmob.so=20src\MyApplication\libs\BmobSDKDe?= =?UTF-8?q?mo=5Fv3.6.0\libs\armeabi-v7a\libbmob.so=20src\MyApplication\lib?= =?UTF-8?q?s\BmobSDKDemo=5Fv3.6.0\libs\armeabi\libbmob.so=20src\MyApplicat?= =?UTF-8?q?ion\libs\BmobSDKDemo=5Fv3.6.0\libs\mips\libbmob.so=20src\MyAppl?= =?UTF-8?q?ication\libs\BmobSDKDemo=5Fv3.6.0\libs\mips64\libbmob.so=20src\?= =?UTF-8?q?MyApplication\libs\BmobSDKDemo=5Fv3.6.0\libs\okio-1.12.0.jar=20?= =?UTF-8?q?src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\libs\org.apache.htt?= =?UTF-8?q?p.legacy.jar=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\libs?= =?UTF-8?q?\rxandroid-1.2.0.jar=20src\MyApplication\libs\BmobSDKDemo=5Fv3.?= =?UTF-8?q?6.0\libs\rxjava-1.1.6.jar=20src\MyApplication\libs\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\libs\x86\libbmob.so=20src\MyApplication\libs\BmobSDKD?= =?UTF-8?q?emo=5Fv3.6.0\libs\x86=5F64\libbmob.so=20src\MyApplication\libs\?= =?UTF-8?q?BmobSDKDemo=5Fv3.6.0\res\drawable-hdpi\bmob=5Fupdate=5Fbtn=5Fch?= =?UTF-8?q?eck=5Foff=5Ffocused=5Fholo=5Flight.png=20src\MyApplication\libs?= =?UTF-8?q?\BmobSDKDemo=5Fv3.6.0\res\drawable-hdpi\bmob=5Fupdate=5Fbtn=5Fc?= =?UTF-8?q?heck=5Foff=5Fholo=5Flight.png=20src\MyApplication\libs\BmobSDKD?= =?UTF-8?q?emo=5Fv3.6.0\res\drawable-hdpi\bmob=5Fupdate=5Fbtn=5Fcheck=5Fof?= =?UTF-8?q?f=5Fpressed=5Fholo=5Flight.png=20src\MyApplication\libs\BmobSDK?= =?UTF-8?q?Demo=5Fv3.6.0\res\drawable-hdpi\bmob=5Fupdate=5Fbtn=5Fcheck=5Fo?= =?UTF-8?q?n=5Ffocused=5Fholo=5Flight.png=20src\MyApplication\libs\BmobSDK?= =?UTF-8?q?Demo=5Fv3.6.0\res\drawable-hdpi\bmob=5Fupdate=5Fbtn=5Fcheck=5Fo?= =?UTF-8?q?n=5Fholo=5Flight.png=20src\MyApplication\libs\BmobSDKDemo=5Fv3.?= =?UTF-8?q?6.0\res\drawable-hdpi\bmob=5Fupdate=5Fbtn=5Fcheck=5Fon=5Fpresse?= =?UTF-8?q?d=5Fholo=5Flight.png=20src\MyApplication\libs\BmobSDKDemo=5Fv3.?= =?UTF-8?q?6.0\res\drawable-hdpi\bmob=5Fupdate=5Fclose=5Fbg=5Fnormal.png?= =?UTF-8?q?=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\res\drawable-hdp?= =?UTF-8?q?i\bmob=5Fupdate=5Fclose=5Fbg=5Ftap.png=20src\MyApplication\libs?= =?UTF-8?q?\BmobSDKDemo=5Fv3.6.0\res\drawable\bmob=5Fupdate=5Fbutton=5Fcan?= =?UTF-8?q?cel=5Fbg=5Ffocused.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv?= =?UTF-8?q?3.6.0\res\drawable\bmob=5Fupdate=5Fbutton=5Fcancel=5Fbg=5Fnorma?= =?UTF-8?q?l.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\res\drawabl?= =?UTF-8?q?e\bmob=5Fupdate=5Fbutton=5Fcancel=5Fbg=5Fselector.xml=20src\MyA?= =?UTF-8?q?pplication\libs\BmobSDKDemo=5Fv3.6.0\res\drawable\bmob=5Fupdate?= =?UTF-8?q?=5Fbutton=5Fcancel=5Fbg=5Ftap.xml=20src\MyApplication\libs\Bmob?= =?UTF-8?q?SDKDemo=5Fv3.6.0\res\drawable\bmob=5Fupdate=5Fbutton=5Fcheck=5F?= =?UTF-8?q?selector.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\res\?= =?UTF-8?q?drawable\bmob=5Fupdate=5Fbutton=5Fclose=5Fbg=5Fselector.xml=20s?= =?UTF-8?q?rc\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\res\drawable\bmob=5F?= =?UTF-8?q?update=5Fbutton=5Fok=5Fbg=5Ffocused.xml=20src\MyApplication\lib?= =?UTF-8?q?s\BmobSDKDemo=5Fv3.6.0\res\drawable\bmob=5Fupdate=5Fbutton=5Fok?= =?UTF-8?q?=5Fbg=5Fnormal.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.?= =?UTF-8?q?0\res\drawable\bmob=5Fupdate=5Fbutton=5Fok=5Fbg=5Fselector.xml?= =?UTF-8?q?=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\res\drawable\bmo?= =?UTF-8?q?b=5Fupdate=5Fbutton=5Fok=5Fbg=5Ftap.xml=20src\MyApplication\lib?= =?UTF-8?q?s\BmobSDKDemo=5Fv3.6.0\res\drawable\bmob=5Fupdate=5Fdialog=5Fbg?= =?UTF-8?q?.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\res\drawable?= =?UTF-8?q?\bmob=5Fupdate=5Fwifi=5Fdisable.png=20src\MyApplication\libs\Bm?= =?UTF-8?q?obSDKDemo=5Fv3.6.0\res\layout\bmob=5Fupdate=5Fdialog.xml=20src\?= =?UTF-8?q?MyApplication\libs\BmobSDKDemo=5Fv3.6.0\res\values\bmob=5Fcommo?= =?UTF-8?q?n=5Fstrings.xml=20src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\r?= =?UTF-8?q?es\values\bmob=5Fupdate=5Fstring.xml=20src\MyApplication\libs\B?= =?UTF-8?q?mobSDKDemo=5Fv3.6.0\=E6=9B=B4=E6=96=B0=E6=97=A5=E5=BF=97.txt=20?= =?UTF-8?q?src\MyApplication\libs\BmobSDKDemo=5Fv3.6.0\=E7=94=A8=E5=89=8D?= =?UTF-8?q?=E9=A1=BB=E7=9F=A5=5F=E5=A4=9A=E8=B0=A2=E5=90=88=E4=BD=9C.txt?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\.=5FBmobSDKDemo=5Fv3.6.0?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\.?= =?UTF-8?q?=5F.DS=5FStore=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDem?= =?UTF-8?q?o=5Fv3.6.0\.=5FBmobDemo=20src\MyApplication\libs\=5F=5FMACOSX\B?= =?UTF-8?q?mobSDKDemo=5Fv3.6.0\.=5Flibs=20src\MyApplication\libs\=5F=5FMAC?= =?UTF-8?q?OSX\BmobSDKDemo=5Fv3.6.0\.=5Fres=20src\MyApplication\libs\=5F?= =?UTF-8?q?=5FMACOSX\BmobSDKDemo=5Fv3.6.0\.=5F=E6=9B=B4=E6=96=B0=E6=97=A5?= =?UTF-8?q?=E5=BF=97.txt=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\.=5F=E7=94=A8=E5=89=8D=E9=A1=BB=E7=9F=A5=5F=E5=A4=9A?= =?UTF-8?q?=E8=B0=A2=E5=90=88=E4=BD=9C.txt=20src\MyApplication\libs\=5F=5F?= =?UTF-8?q?MACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.=5F.DS=5FStore=20src\MyAp?= =?UTF-8?q?plication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.=5F.?= =?UTF-8?q?gitignore=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv?= =?UTF-8?q?3.6.0\BmobDemo\.=5F.gradle=20src\MyApplication\libs\=5F=5FMACOS?= =?UTF-8?q?X\BmobSDKDemo=5Fv3.6.0\BmobDemo\.=5F.idea=20src\MyApplication\l?= =?UTF-8?q?ibs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.=5Fapp=20src\My?= =?UTF-8?q?Application\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.?= =?UTF-8?q?=5Fbuild.gradle=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDe?= =?UTF-8?q?mo=5Fv3.6.0\BmobDemo\.=5Fgradle=20src\MyApplication\libs\=5F=5F?= =?UTF-8?q?MACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.=5Fgradle.properties=20sr?= =?UTF-8?q?c\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo?= =?UTF-8?q?\.=5Fgradlew=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\BmobDemo\.=5Fgradlew.bat=20src\MyApplication\libs\=5F?= =?UTF-8?q?=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.=5Fjar=20src\MyApplica?= =?UTF-8?q?tion\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.=5Flocal.?= =?UTF-8?q?properties=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5F?= =?UTF-8?q?v3.6.0\BmobDemo\.=5Fsettings.gradle=20src\MyApplication\libs\?= =?UTF-8?q?=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.idea\.=5Fcompiler.x?= =?UTF-8?q?ml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\B?= =?UTF-8?q?mobDemo\.idea\.=5Fcopyright=20src\MyApplication\libs\=5F=5FMACO?= =?UTF-8?q?SX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.idea\.=5Fencodings.xml=20src\?= =?UTF-8?q?MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.?= =?UTF-8?q?idea\.=5Fgradle.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobS?= =?UTF-8?q?DKDemo=5Fv3.6.0\BmobDemo\.idea\.=5Fmarkdown-navigator=20src\MyA?= =?UTF-8?q?pplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.ide?= =?UTF-8?q?a\.=5Fmodules.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDK?= =?UTF-8?q?Demo=5Fv3.6.0\BmobDemo\.idea\.=5FrunConfigurations.xml=20src\My?= =?UTF-8?q?Application\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.id?= =?UTF-8?q?ea\copyright\.=5Fprofiles=5Fsettings.xml=20src\MyApplication\li?= =?UTF-8?q?bs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\.idea\markdown-na?= =?UTF-8?q?vigator\.=5Fprofiles=5Fsettings.xml=20src\MyApplication\libs\?= =?UTF-8?q?=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\.=5F.DS=5FStore?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\Bmo?= =?UTF-8?q?bDemo\app\.=5F.gitignore=20src\MyApplication\libs\=5F=5FMACOSX\?= =?UTF-8?q?BmobSDKDemo=5Fv3.6.0\BmobDemo\app\.=5Fhs=5Ferr=5Fpid14476.log?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\Bmo?= =?UTF-8?q?bDemo\app\.=5Flibs=20src\MyApplication\libs\=5F=5FMACOSX\BmobSD?= =?UTF-8?q?KDemo=5Fv3.6.0\BmobDemo\app\.=5Fproguard-rules.pro=20src\MyAppl?= =?UTF-8?q?ication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\.?= =?UTF-8?q?=5Fsrc=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6?= =?UTF-8?q?.0\BmobDemo\app\build\.=5F.DS=5FStore=20src\MyApplication\libs\?= =?UTF-8?q?=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\libs\.=5FBmobPus?= =?UTF-8?q?h=5Fv1.0.0=5F0627.jar=20src\MyApplication\libs\=5F=5FMACOSX\Bmo?= =?UTF-8?q?bSDKDemo=5Fv3.6.0\BmobDemo\app\libs\.=5Ffilechoose.jar=20src\My?= =?UTF-8?q?Application\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app?= =?UTF-8?q?\src\.=5FandroidTest=20src\MyApplication\libs\=5F=5FMACOSX\Bmob?= =?UTF-8?q?SDKDemo=5Fv3.6.0\BmobDemo\app\src\.=5Fmain=20src\MyApplication\?= =?UTF-8?q?libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\.=5Ftes?= =?UTF-8?q?t=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\Bm?= =?UTF-8?q?obDemo\app\src\androidTest\.=5Fjava=20src\MyApplication\libs\?= =?UTF-8?q?=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\androidTest\?= =?UTF-8?q?java\.=5Fcn=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\BmobDemo\app\src\androidTest\java\cn\.=5Fbmob=20src\M?= =?UTF-8?q?yApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\ap?= =?UTF-8?q?p\src\androidTest\java\cn\bmob\.=5Fsdkdemo=20src\MyApplication\?= =?UTF-8?q?libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\android?= =?UTF-8?q?Test\java\cn\bmob\sdkdemo\.=5FApplicationTest.java=20src\MyAppl?= =?UTF-8?q?ication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src?= =?UTF-8?q?\main\.=5Fjava=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDem?= =?UTF-8?q?o=5Fv3.6.0\BmobDemo\app\src\main\.=5Fres=20src\MyApplication\li?= =?UTF-8?q?bs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java?= =?UTF-8?q?\.=5Fcn=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.?= =?UTF-8?q?6.0\BmobDemo\app\src\main\java\cn\.=5Fbmob=20src\MyApplication\?= =?UTF-8?q?libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\ja?= =?UTF-8?q?va\cn\bmob\.=5Fsdkdemo=20src\MyApplication\libs\=5F=5FMACOSX\Bm?= =?UTF-8?q?obSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\.?= =?UTF-8?q?=5FBaseActivity.java=20src\MyApplication\libs\=5F=5FMACOSX\Bmob?= =?UTF-8?q?SDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\.?= =?UTF-8?q?=5FBatchActionActivity.java=20src\MyApplication\libs\=5F=5FMACO?= =?UTF-8?q?SX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkd?= =?UTF-8?q?emo\.=5FMainActivity.java=20src\MyApplication\libs\=5F=5FMACOSX?= =?UTF-8?q?\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdem?= =?UTF-8?q?o\.=5Facl=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv?= =?UTF-8?q?3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\.=5Fautoupdate?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\Bmo?= =?UTF-8?q?bDemo\app\src\main\java\cn\bmob\sdkdemo\.=5Fbean=20src\MyApplic?= =?UTF-8?q?ation\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\m?= =?UTF-8?q?ain\java\cn\bmob\sdkdemo\.=5Fcrud=20src\MyApplication\libs\=5F?= =?UTF-8?q?=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bm?= =?UTF-8?q?ob\sdkdemo\.=5Ffile=20src\MyApplication\libs\=5F=5FMACOSX\BmobS?= =?UTF-8?q?DKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\.=5F?= =?UTF-8?q?location=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3?= =?UTF-8?q?.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\.=5Fpermission?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\Bmo?= =?UTF-8?q?bDemo\app\src\main\java\cn\bmob\sdkdemo\.=5Fpush=20src\MyApplic?= =?UTF-8?q?ation\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\m?= =?UTF-8?q?ain\java\cn\bmob\sdkdemo\.=5Frelation=20src\MyApplication\libs\?= =?UTF-8?q?=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn?= =?UTF-8?q?\bmob\sdkdemo\.=5Fsms=20src\MyApplication\libs\=5F=5FMACOSX\Bmo?= =?UTF-8?q?bSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\.?= =?UTF-8?q?=5Fuser=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.?= =?UTF-8?q?6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\acl\.=5FACLActiv?= =?UTF-8?q?ity.java=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3?= =?UTF-8?q?.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\autoupdate\.=5F?= =?UTF-8?q?ActAutoUpdate.java=20src\MyApplication\libs\=5F=5FMACOSX\BmobSD?= =?UTF-8?q?KDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\bean\?= =?UTF-8?q?.=5FBankCard.java=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDK?= =?UTF-8?q?Demo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\bean\.?= =?UTF-8?q?=5FGameScore.java=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDK?= =?UTF-8?q?Demo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\bean\.?= =?UTF-8?q?=5FMyUser.java=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDem?= =?UTF-8?q?o=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\bean\.=5F?= =?UTF-8?q?Person.java=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\crud\.=5FC?= =?UTF-8?q?RUDActivity.java=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKD?= =?UTF-8?q?emo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\crud\.?= =?UTF-8?q?=5FQueryActivity.java=20src\MyApplication\libs\=5F=5FMACOSX\Bmo?= =?UTF-8?q?bSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\cr?= =?UTF-8?q?ud\.=5FQuerySQLActivity.java=20src\MyApplication\libs\=5F=5FMAC?= =?UTF-8?q?OSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdk?= =?UTF-8?q?demo\crud\.=5FQueryStatisticActivity.java=20src\MyApplication\l?= =?UTF-8?q?ibs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\jav?= =?UTF-8?q?a\cn\bmob\sdkdemo\file\.=5FBmobFileActivity.java=20src\MyApplic?= =?UTF-8?q?ation\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\m?= =?UTF-8?q?ain\java\cn\bmob\sdkdemo\file\.=5FMovie.java=20src\MyApplicatio?= =?UTF-8?q?n\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\?= =?UTF-8?q?java\cn\bmob\sdkdemo\file\.=5FSong.java=20src\MyApplication\lib?= =?UTF-8?q?s\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\?= =?UTF-8?q?cn\bmob\sdkdemo\location\.=5FLocationActivity.java=20src\MyAppl?= =?UTF-8?q?ication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src?= =?UTF-8?q?\main\java\cn\bmob\sdkdemo\permission\.=5FPermissionListener.ja?= =?UTF-8?q?va=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\B?= =?UTF-8?q?mobDemo\app\src\main\java\cn\bmob\sdkdemo\permission\.=5FPermis?= =?UTF-8?q?sionManager.java=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKD?= =?UTF-8?q?emo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkdemo\push\.?= =?UTF-8?q?=5FMyBmobInstallation.java=20src\MyApplication\libs\=5F=5FMACOS?= =?UTF-8?q?X\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdkde?= =?UTF-8?q?mo\relation\.=5FComment.java=20src\MyApplication\libs\=5F=5FMAC?= =?UTF-8?q?OSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\java\cn\bmob\sdk?= =?UTF-8?q?demo\relation\.=5FCommentListActivity.java=20src\MyApplication\?= =?UTF-8?q?libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\ja?= =?UTF-8?q?va\cn\bmob\sdkdemo\relation\.=5FPost.java=20src\MyApplication\l?= =?UTF-8?q?ibs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\jav?= =?UTF-8?q?a\cn\bmob\sdkdemo\relation\.=5FWeiboListActivity.java=20src\MyA?= =?UTF-8?q?pplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\?= =?UTF-8?q?src\main\java\cn\bmob\sdkdemo\sms\.=5FSMSCodeActivity.java=20sr?= =?UTF-8?q?c\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo?= =?UTF-8?q?\app\src\main\java\cn\bmob\sdkdemo\user\.=5FUserActivity.java?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\Bmo?= =?UTF-8?q?bDemo\app\src\main\res\.=5Fdrawable=20src\MyApplication\libs\?= =?UTF-8?q?=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\.?= =?UTF-8?q?=5Flayout=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv?= =?UTF-8?q?3.6.0\BmobDemo\app\src\main\res\.=5Fmipmap-hdpi=20src\MyApplica?= =?UTF-8?q?tion\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\ma?= =?UTF-8?q?in\res\.=5Fmipmap-mdpi=20src\MyApplication\libs\=5F=5FMACOSX\Bm?= =?UTF-8?q?obSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\.=5Fmipmap-xhdpi?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\Bmo?= =?UTF-8?q?bDemo\app\src\main\res\.=5Fmipmap-xxhdpi=20src\MyApplication\li?= =?UTF-8?q?bs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\?= =?UTF-8?q?.=5Fmipmap-xxxhdpi=20src\MyApplication\libs\=5F=5FMACOSX\BmobSD?= =?UTF-8?q?KDemo=5Fv3.6.0\BmobDemo\app\src\main\res\.=5Fvalues=20src\MyApp?= =?UTF-8?q?lication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\sr?= =?UTF-8?q?c\main\res\.=5Fvalues-w820dp=20src\MyApplication\libs\=5F=5FMAC?= =?UTF-8?q?OSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\drawable\.?= =?UTF-8?q?=5Fselector=5Fbutton.xml=20src\MyApplication\libs\=5F=5FMACOSX\?= =?UTF-8?q?BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\drawable\.=5Fsel?= =?UTF-8?q?ector=5Flist=5Fitem.xml=20src\MyApplication\libs\=5F=5FMACOSX\B?= =?UTF-8?q?mobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\layout\.=5Fact=5F?= =?UTF-8?q?push.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3?= =?UTF-8?q?.6.0\BmobDemo\app\src\main\res\layout\.=5Factivity=5Fcode.xml?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\Bmo?= =?UTF-8?q?bDemo\app\src\main\res\layout\.=5Factivity=5Fcomment.xml=20src\?= =?UTF-8?q?MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\a?= =?UTF-8?q?pp\src\main\res\layout\.=5Factivity=5Ffile.xml=20src\MyApplicat?= =?UTF-8?q?ion\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\mai?= =?UTF-8?q?n\res\layout\.=5Factivity=5Ffind.xml=20src\MyApplication\libs\?= =?UTF-8?q?=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\lay?= =?UTF-8?q?out\.=5Factivity=5Flocal=5Fthumbnail.xml=20src\MyApplication\li?= =?UTF-8?q?bs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\?= =?UTF-8?q?layout\.=5Factivity=5Fmain.xml=20src\MyApplication\libs\=5F=5FM?= =?UTF-8?q?ACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\layout\.?= =?UTF-8?q?=5Factivity=5Fnew=5Ffile.xml=20src\MyApplication\libs\=5F=5FMAC?= =?UTF-8?q?OSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\layout\.=5Fa?= =?UTF-8?q?ctivity=5Fweibo.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobS?= =?UTF-8?q?DKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\layout\.=5Fitem=5Flis?= =?UTF-8?q?t.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.?= =?UTF-8?q?0\BmobDemo\app\src\main\res\layout\.=5Flist=5Fitem.xml=20src\My?= =?UTF-8?q?Application\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app?= =?UTF-8?q?\src\main\res\layout\.=5Flist=5Fitem=5Fweibo.xml=20src\MyApplic?= =?UTF-8?q?ation\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\m?= =?UTF-8?q?ain\res\mipmap-hdpi\.=5Fic=5Flauncher.png=20src\MyApplication\l?= =?UTF-8?q?ibs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res?= =?UTF-8?q?\mipmap-mdpi\.=5Fic=5Flauncher.png=20src\MyApplication\libs\=5F?= =?UTF-8?q?=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\mipmap?= =?UTF-8?q?-xhdpi\.=5Fic=5Flauncher.png=20src\MyApplication\libs\=5F=5FMAC?= =?UTF-8?q?OSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\mipmap-xxhdp?= =?UTF-8?q?i\.=5Fic=5Flauncher.png=20src\MyApplication\libs\=5F=5FMACOSX\B?= =?UTF-8?q?mobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\mipmap-xxxhdpi\.?= =?UTF-8?q?=5Fic=5Flauncher.png=20src\MyApplication\libs\=5F=5FMACOSX\Bmob?= =?UTF-8?q?SDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\values-w820dp\.=5Fdi?= =?UTF-8?q?mens.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3?= =?UTF-8?q?.6.0\BmobDemo\app\src\main\res\values\.=5Fcolors.xml=20src\MyAp?= =?UTF-8?q?plication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\s?= =?UTF-8?q?rc\main\res\values\.=5Fdimens.xml=20src\MyApplication\libs\=5F?= =?UTF-8?q?=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\main\res\values?= =?UTF-8?q?\.=5Fstrings.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKD?= =?UTF-8?q?emo=5Fv3.6.0\BmobDemo\app\src\main\res\values\.=5Fstyles.xml=20?= =?UTF-8?q?src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDe?= =?UTF-8?q?mo\app\src\test\.=5Fjava=20src\MyApplication\libs\=5F=5FMACOSX\?= =?UTF-8?q?BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\test\java\.=5Fcn=20src\My?= =?UTF-8?q?Application\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\app?= =?UTF-8?q?\src\test\java\cn\.=5Fbmob=20src\MyApplication\libs\=5F=5FMACOS?= =?UTF-8?q?X\BmobSDKDemo=5Fv3.6.0\BmobDemo\app\src\test\java\cn\bmob\.=5Fs?= =?UTF-8?q?dkdemo=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6?= =?UTF-8?q?.0\BmobDemo\app\src\test\java\cn\bmob\sdkdemo\.=5FExampleUnitTe?= =?UTF-8?q?st.java=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.?= =?UTF-8?q?6.0\BmobDemo\build\.=5F.DS=5FStore=20src\MyApplication\libs\=5F?= =?UTF-8?q?=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\gradle\.=5Fwrapper=20sr?= =?UTF-8?q?c\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo?= =?UTF-8?q?\gradle\wrapper\.=5Fgradle-wrapper.jar=20src\MyApplication\libs?= =?UTF-8?q?\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\BmobDemo\gradle\wrapper\.=5F?= =?UTF-8?q?gradle-wrapper.properties=20src\MyApplication\libs\=5F=5FMACOSX?= =?UTF-8?q?\BmobSDKDemo=5Fv3.6.0\libs\.=5F.DS=5FStore=20src\MyApplication\?= =?UTF-8?q?libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\.=5Farm64-v8a=20src?= =?UTF-8?q?\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\.=5F?= =?UTF-8?q?armeabi=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.?= =?UTF-8?q?6.0\libs\.=5Farmeabi-v7a=20src\MyApplication\libs\=5F=5FMACOSX\?= =?UTF-8?q?BmobSDKDemo=5Fv3.6.0\libs\.=5Fmips=20src\MyApplication\libs\=5F?= =?UTF-8?q?=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\.=5Fmips64=20src\MyApplicat?= =?UTF-8?q?ion\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\.=5Fokio-1.12.0?= =?UTF-8?q?.jar=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0?= =?UTF-8?q?\libs\.=5Forg.apache.http.legacy.jar=20src\MyApplication\libs\?= =?UTF-8?q?=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\.=5Frxandroid-1.2.0.jar?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\lib?= =?UTF-8?q?s\.=5Frxjava-1.1.6.jar=20src\MyApplication\libs\=5F=5FMACOSX\Bm?= =?UTF-8?q?obSDKDemo=5Fv3.6.0\libs\.=5Fx86=20src\MyApplication\libs\=5F=5F?= =?UTF-8?q?MACOSX\BmobSDKDemo=5Fv3.6.0\libs\.=5Fx86=5F64=20src\MyApplicati?= =?UTF-8?q?on\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\arm64-v8a\.=5F.D?= =?UTF-8?q?S=5FStore=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv?= =?UTF-8?q?3.6.0\libs\arm64-v8a\.=5Flibbmob.so=20src\MyApplication\libs\?= =?UTF-8?q?=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\armeabi-v7a\.=5F.DS=5FSt?= =?UTF-8?q?ore=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\?= =?UTF-8?q?libs\armeabi-v7a\.=5Flibbmob.so=20src\MyApplication\libs\=5F=5F?= =?UTF-8?q?MACOSX\BmobSDKDemo=5Fv3.6.0\libs\armeabi\.=5F.DS=5FStore=20src\?= =?UTF-8?q?MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\armea?= =?UTF-8?q?bi\.=5Flibbmob.so=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDK?= =?UTF-8?q?Demo=5Fv3.6.0\libs\mips\.=5F.DS=5FStore=20src\MyApplication\lib?= =?UTF-8?q?s\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\mips\.=5Flibbmob.so=20?= =?UTF-8?q?src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\m?= =?UTF-8?q?ips64\.=5F.DS=5FStore=20src\MyApplication\libs\=5F=5FMACOSX\Bmo?= =?UTF-8?q?bSDKDemo=5Fv3.6.0\libs\mips64\.=5Flibbmob.so=20src\MyApplicatio?= =?UTF-8?q?n\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\x86\.=5F.DS=5FSto?= =?UTF-8?q?re=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\l?= =?UTF-8?q?ibs\x86\.=5Flibbmob.so=20src\MyApplication\libs\=5F=5FMACOSX\Bm?= =?UTF-8?q?obSDKDemo=5Fv3.6.0\libs\x86=5F64\.=5F.DS=5FStore=20src\MyApplic?= =?UTF-8?q?ation\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\libs\x86=5F64\.=5F?= =?UTF-8?q?libbmob.so=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5F?= =?UTF-8?q?v3.6.0\res\.=5Fdrawable=20src\MyApplication\libs\=5F=5FMACOSX\B?= =?UTF-8?q?mobSDKDemo=5Fv3.6.0\res\.=5Fdrawable-hdpi=20src\MyApplication\l?= =?UTF-8?q?ibs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\res\.=5Flayout=20src\MyAp?= =?UTF-8?q?plication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\res\.=5Fvalues?= =?UTF-8?q?=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\res?= =?UTF-8?q?\drawable-hdpi\.=5Fbmob=5Fupdate=5Fbtn=5Fcheck=5Foff=5Ffocused?= =?UTF-8?q?=5Fholo=5Flight.png=20src\MyApplication\libs\=5F=5FMACOSX\BmobS?= =?UTF-8?q?DKDemo=5Fv3.6.0\res\drawable-hdpi\.=5Fbmob=5Fupdate=5Fbtn=5Fche?= =?UTF-8?q?ck=5Foff=5Fholo=5Flight.png=20src\MyApplication\libs\=5F=5FMACO?= =?UTF-8?q?SX\BmobSDKDemo=5Fv3.6.0\res\drawable-hdpi\.=5Fbmob=5Fupdate=5Fb?= =?UTF-8?q?tn=5Fcheck=5Foff=5Fpressed=5Fholo=5Flight.png=20src\MyApplicati?= =?UTF-8?q?on\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\res\drawable-hdpi\.?= =?UTF-8?q?=5Fbmob=5Fupdate=5Fbtn=5Fcheck=5Fon=5Ffocused=5Fholo=5Flight.pn?= =?UTF-8?q?g=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\re?= =?UTF-8?q?s\drawable-hdpi\.=5Fbmob=5Fupdate=5Fbtn=5Fcheck=5Fon=5Fholo=5Fl?= =?UTF-8?q?ight.png=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3?= =?UTF-8?q?.6.0\res\drawable-hdpi\.=5Fbmob=5Fupdate=5Fbtn=5Fcheck=5Fon=5Fp?= =?UTF-8?q?ressed=5Fholo=5Flight.png=20src\MyApplication\libs\=5F=5FMACOSX?= =?UTF-8?q?\BmobSDKDemo=5Fv3.6.0\res\drawable-hdpi\.=5Fbmob=5Fupdate=5Fclo?= =?UTF-8?q?se=5Fbg=5Fnormal.png=20src\MyApplication\libs\=5F=5FMACOSX\Bmob?= =?UTF-8?q?SDKDemo=5Fv3.6.0\res\drawable-hdpi\.=5Fbmob=5Fupdate=5Fclose=5F?= =?UTF-8?q?bg=5Ftap.png=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fcancel=5Fbg?= =?UTF-8?q?=5Ffocused.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDem?= =?UTF-8?q?o=5Fv3.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fcancel=5Fb?= =?UTF-8?q?g=5Fnormal.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDem?= =?UTF-8?q?o=5Fv3.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fcancel=5Fb?= =?UTF-8?q?g=5Fselector.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKD?= =?UTF-8?q?emo=5Fv3.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fcancel?= =?UTF-8?q?=5Fbg=5Ftap.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDe?= =?UTF-8?q?mo=5Fv3.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fcheck=5Fs?= =?UTF-8?q?elector.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo?= =?UTF-8?q?=5Fv3.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fclose=5Fbg?= =?UTF-8?q?=5Fselector.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDe?= =?UTF-8?q?mo=5Fv3.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fok=5Fbg?= =?UTF-8?q?=5Ffocused.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDem?= =?UTF-8?q?o=5Fv3.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fok=5Fbg=5F?= =?UTF-8?q?normal.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5F?= =?UTF-8?q?v3.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fok=5Fbg=5Fsele?= =?UTF-8?q?ctor.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3?= =?UTF-8?q?.6.0\res\drawable\.=5Fbmob=5Fupdate=5Fbutton=5Fok=5Fbg=5Ftap.xm?= =?UTF-8?q?l=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\re?= =?UTF-8?q?s\drawable\.=5Fbmob=5Fupdate=5Fdialog=5Fbg.xml=20src\MyApplicat?= =?UTF-8?q?ion\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\res\drawable\.=5Fbmo?= =?UTF-8?q?b=5Fupdate=5Fwifi=5Fdisable.png=20src\MyApplication\libs\=5F=5F?= =?UTF-8?q?MACOSX\BmobSDKDemo=5Fv3.6.0\res\layout\.=5Fbmob=5Fupdate=5Fdial?= =?UTF-8?q?og.xml=20src\MyApplication\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6?= =?UTF-8?q?.0\res\values\.=5Fbmob=5Fcommon=5Fstrings.xml=20src\MyApplicati?= =?UTF-8?q?on\libs\=5F=5FMACOSX\BmobSDKDemo=5Fv3.6.0\res\values\.=5Fbmob?= =?UTF-8?q?=5Fupdate=5Fstring.xml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../342c9edfd27db16bba3e3455e68c749d04c55cbd | 11 +- .../39949154a1e615e7862369e7bbdbc02d8e85f887 | 2 + .../67dcf9378cf673b1d3b665701ca8ab112314a41a | 16 + .../67ee5a70c0947c6377cf1e29856f6a79659f84e7 | 40 +- .../af19bd5acf2e10910134fc735da2908d48302bd8 | 68 +++ .../c5ce6afdb0606af7b3aad034a3799dc44d4d4c5c | 52 +- .../.idea/sonarlint/issuestore/index.pb | 28 +- .../adapter/NotebookAdapter.java | 6 +- .../myapplication/app/BaseApplication.java | 3 +- .../myapplication/db/NoteDatabase.java | 2 +- .../myapplication/ui/NoteEditActivity.java | 4 +- .../myapplication/ui/WelcomeActivity.java | 2 + .../myapplication/utils/BmobConstants.java | 8 +- .../myapplication/utils/SystemUtils.java | 7 +- .../app/src/main/res/layout/content_main.xml | 2 +- .../res/layout/layout_note_detail_menu.xml | 6 +- .../src/main/res/mipmap-hdpi/mine_avatar.jpg | Bin 53584 -> 204263 bytes .../app/src/main/res/values/strings.xml | 4 +- .../BmobSDKDemo_v3.6.0/BmobDemo/.gitignore | 8 + .../BmobDemo/.idea/compiler.xml | 22 + .../.idea/copyright/profiles_settings.xml | 3 + .../BmobDemo/.idea/encodings.xml | 6 + .../BmobDemo/.idea/gradle.xml | 18 + .../markdown-navigator/profiles_settings.xml | 3 + .../BmobDemo/.idea/misc.xml | 162 ++++++ .../BmobDemo/.idea/modules.xml | 9 + .../BmobDemo/.idea/runConfigurations.xml | 12 + .../BmobDemo/app/.gitignore | 1 + .../BmobDemo/app/build.gradle | 38 ++ .../BmobDemo/app/hs_err_pid14476.log | 151 +++++ .../app/libs/BmobPush_v1.0.0_0627.jar | Bin 0 -> 57783 bytes .../BmobDemo/app/libs/filechoose.jar | Bin 0 -> 46699 bytes .../BmobDemo/app/proguard-rules.pro | 17 + .../java/cn/bmob/sdkdemo/ApplicationTest.java | 13 + .../BmobDemo/app/src/main/AndroidManifest.xml | 105 ++++ .../java/cn/bmob/sdkdemo/BaseActivity.java | 88 +++ .../cn/bmob/sdkdemo/BatchActionActivity.java | 271 +++++++++ .../java/cn/bmob/sdkdemo/BmobApplication.java | 32 ++ .../java/cn/bmob/sdkdemo/MainActivity.java | 266 +++++++++ .../java/cn/bmob/sdkdemo/acl/ACLActivity.java | 163 ++++++ .../sdkdemo/autoupdate/ActAutoUpdate.java | 137 +++++ .../java/cn/bmob/sdkdemo/bean/BankCard.java | 26 + .../java/cn/bmob/sdkdemo/bean/GameScore.java | 97 ++++ .../java/cn/bmob/sdkdemo/bean/MyUser.java | 68 +++ .../java/cn/bmob/sdkdemo/bean/Person.java | 107 ++++ .../cn/bmob/sdkdemo/crud/CRUDActivity.java | 170 ++++++ .../cn/bmob/sdkdemo/crud/QueryActivity.java | 367 ++++++++++++ .../bmob/sdkdemo/crud/QuerySQLActivity.java | 367 ++++++++++++ .../sdkdemo/crud/QueryStatisticActivity.java | 415 ++++++++++++++ .../bmob/sdkdemo/file/BmobFileActivity.java | 511 +++++++++++++++++ .../main/java/cn/bmob/sdkdemo/file/Movie.java | 42 ++ .../main/java/cn/bmob/sdkdemo/file/Song.java | 51 ++ .../sdkdemo/location/LocationActivity.java | 140 +++++ .../permission/PermissionListener.java | 25 + .../sdkdemo/permission/PermissionManager.java | 156 ++++++ .../cn/bmob/sdkdemo/push/ActBmobPush.java | 303 ++++++++++ .../bmob/sdkdemo/push/MyBmobInstallation.java | 28 + .../cn/bmob/sdkdemo/relation/Comment.java | 55 ++ .../sdkdemo/relation/CommentListActivity.java | 189 +++++++ .../java/cn/bmob/sdkdemo/relation/Post.java | 89 +++ .../sdkdemo/relation/WeiboListActivity.java | 205 +++++++ .../cn/bmob/sdkdemo/sms/SMSCodeActivity.java | 167 ++++++ .../cn/bmob/sdkdemo/user/UserActivity.java | 523 ++++++++++++++++++ .../src/main/res/drawable/selector_button.xml | 37 ++ .../main/res/drawable/selector_list_item.xml | 11 + .../app/src/main/res/layout/act_push.xml | 16 + .../app/src/main/res/layout/activity_code.xml | 35 ++ .../src/main/res/layout/activity_comment.xml | 36 ++ .../app/src/main/res/layout/activity_file.xml | 65 +++ .../app/src/main/res/layout/activity_find.xml | 19 + .../res/layout/activity_local_thumbnail.xml | 87 +++ .../app/src/main/res/layout/activity_main.xml | 19 + .../src/main/res/layout/activity_new_file.xml | 19 + .../src/main/res/layout/activity_weibo.xml | 37 ++ .../app/src/main/res/layout/item_list.xml | 10 + .../app/src/main/res/layout/list_item.xml | 10 + .../src/main/res/layout/list_item_weibo.xml | 16 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10486 bytes .../app/src/main/res/values-w820dp/dimens.xml | 6 + .../app/src/main/res/values/colors.xml | 15 + .../app/src/main/res/values/dimens.xml | 5 + .../app/src/main/res/values/strings.xml | 152 +++++ .../app/src/main/res/values/styles.xml | 11 + .../java/cn/bmob/sdkdemo/ExampleUnitTest.java | 15 + .../BmobSDKDemo_v3.6.0/BmobDemo/build.gradle | 25 + .../BmobDemo/gradle.properties | 18 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 53636 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + .../libs/BmobSDKDemo_v3.6.0/BmobDemo/gradlew | 160 ++++++ .../BmobSDKDemo_v3.6.0/BmobDemo/gradlew.bat | 90 +++ .../BmobDemo/settings.gradle | 1 + .../libs/BmobSDK_3.6.0_20180321.jar | Bin 0 -> 515283 bytes .../libs/arm64-v8a/libbmob.so | Bin 0 -> 14064 bytes .../libs/armeabi-v7a/libbmob.so | Bin 0 -> 17748 bytes .../libs/armeabi/libbmob.so | Bin 0 -> 17740 bytes .../BmobSDKDemo_v3.6.0/libs/mips/libbmob.so | Bin 0 -> 72160 bytes .../BmobSDKDemo_v3.6.0/libs/mips64/libbmob.so | Bin 0 -> 23768 bytes .../BmobSDKDemo_v3.6.0/libs/okio-1.12.0.jar | Bin 0 -> 81088 bytes .../libs/org.apache.http.legacy.jar | Bin 0 -> 303407 bytes .../libs/rxandroid-1.2.0.jar | Bin 0 -> 8825 bytes .../BmobSDKDemo_v3.6.0/libs/rxjava-1.1.6.jar | Bin 0 -> 1052737 bytes .../BmobSDKDemo_v3.6.0/libs/x86/libbmob.so | Bin 0 -> 13576 bytes .../BmobSDKDemo_v3.6.0/libs/x86_64/libbmob.so | Bin 0 -> 14304 bytes ...pdate_btn_check_off_focused_holo_light.png | Bin 0 -> 418 bytes .../bmob_update_btn_check_off_holo_light.png | Bin 0 -> 242 bytes ...pdate_btn_check_off_pressed_holo_light.png | Bin 0 -> 1244 bytes ...update_btn_check_on_focused_holo_light.png | Bin 0 -> 1372 bytes .../bmob_update_btn_check_on_holo_light.png | Bin 0 -> 1191 bytes ...update_btn_check_on_pressed_holo_light.png | Bin 0 -> 1940 bytes .../bmob_update_close_bg_normal.png | Bin 0 -> 3207 bytes .../bmob_update_close_bg_tap.png | Bin 0 -> 1950 bytes .../bmob_update_button_cancel_bg_focused.xml | 6 + .../bmob_update_button_cancel_bg_normal.xml | 6 + .../bmob_update_button_cancel_bg_selector.xml | 10 + .../bmob_update_button_cancel_bg_tap.xml | 6 + .../bmob_update_button_check_selector.xml | 30 + .../bmob_update_button_close_bg_selector.xml | 10 + .../bmob_update_button_ok_bg_focused.xml | 6 + .../bmob_update_button_ok_bg_normal.xml | 6 + .../bmob_update_button_ok_bg_selector.xml | 10 + .../drawable/bmob_update_button_ok_bg_tap.xml | 6 + .../res/drawable/bmob_update_dialog_bg.xml | 5 + .../res/drawable/bmob_update_wifi_disable.png | Bin 0 -> 3228 bytes .../res/layout/bmob_update_dialog.xml | 142 +++++ .../res/values/bmob_common_strings.xml | 17 + .../res/values/bmob_update_string.xml | 18 + .../libs/BmobSDKDemo_v3.6.0/更新日志.txt | 6 + .../BmobSDKDemo_v3.6.0/用前须知_多谢合作.txt | 6 + .../libs/__MACOSX/._BmobSDKDemo_v3.6.0 | Bin 0 -> 212 bytes .../__MACOSX/BmobSDKDemo_v3.6.0/._.DS_Store | Bin 0 -> 212 bytes .../__MACOSX/BmobSDKDemo_v3.6.0/._BmobDemo | Bin 0 -> 212 bytes .../libs/__MACOSX/BmobSDKDemo_v3.6.0/._libs | Bin 0 -> 212 bytes .../libs/__MACOSX/BmobSDKDemo_v3.6.0/._res | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/._更新日志.txt | Bin 0 -> 350 bytes .../._用前须知_多谢合作.txt | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/._.DS_Store | Bin 0 -> 120 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/._.gitignore | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/._.gradle | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/._.idea | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/._app | Bin 0 -> 212 bytes .../BmobDemo/._build.gradle | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/._gradle | Bin 0 -> 212 bytes .../BmobDemo/._gradle.properties | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/._gradlew | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/._gradlew.bat | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/._jar | Bin 0 -> 212 bytes .../BmobDemo/._local.properties | Bin 0 -> 212 bytes .../BmobDemo/._settings.gradle | Bin 0 -> 212 bytes .../BmobDemo/.idea/._compiler.xml | Bin 0 -> 212 bytes .../BmobDemo/.idea/._copyright | Bin 0 -> 212 bytes .../BmobDemo/.idea/._encodings.xml | Bin 0 -> 212 bytes .../BmobDemo/.idea/._gradle.xml | Bin 0 -> 212 bytes .../BmobDemo/.idea/._markdown-navigator | Bin 0 -> 212 bytes .../BmobDemo/.idea/._modules.xml | Bin 0 -> 212 bytes .../BmobDemo/.idea/._runConfigurations.xml | Bin 0 -> 212 bytes .../.idea/copyright/._profiles_settings.xml | Bin 0 -> 212 bytes .../._profiles_settings.xml | Bin 0 -> 212 bytes .../BmobDemo/app/._.DS_Store | Bin 0 -> 120 bytes .../BmobDemo/app/._.gitignore | Bin 0 -> 212 bytes .../BmobDemo/app/._hs_err_pid14476.log | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/app/._libs | Bin 0 -> 212 bytes .../BmobDemo/app/._proguard-rules.pro | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/BmobDemo/app/._src | Bin 0 -> 212 bytes .../BmobDemo/app/build/._.DS_Store | Bin 0 -> 120 bytes .../app/libs/._BmobPush_v1.0.0_0627.jar | Bin 0 -> 212 bytes .../BmobDemo/app/libs/._filechoose.jar | Bin 0 -> 212 bytes .../BmobDemo/app/src/._androidTest | Bin 0 -> 212 bytes .../BmobDemo/app/src/._main | Bin 0 -> 212 bytes .../BmobDemo/app/src/._test | Bin 0 -> 212 bytes .../BmobDemo/app/src/androidTest/._java | Bin 0 -> 212 bytes .../BmobDemo/app/src/androidTest/java/._cn | Bin 0 -> 212 bytes .../app/src/androidTest/java/cn/._bmob | Bin 0 -> 212 bytes .../src/androidTest/java/cn/bmob/._sdkdemo | Bin 0 -> 212 bytes .../cn/bmob/sdkdemo/._ApplicationTest.java | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/._java | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/._res | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/java/._cn | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/java/cn/._bmob | Bin 0 -> 212 bytes .../app/src/main/java/cn/bmob/._sdkdemo | Bin 0 -> 212 bytes .../java/cn/bmob/sdkdemo/._BaseActivity.java | Bin 0 -> 212 bytes .../bmob/sdkdemo/._BatchActionActivity.java | Bin 0 -> 212 bytes .../java/cn/bmob/sdkdemo/._MainActivity.java | Bin 0 -> 212 bytes .../app/src/main/java/cn/bmob/sdkdemo/._acl | Bin 0 -> 212 bytes .../main/java/cn/bmob/sdkdemo/._autoupdate | Bin 0 -> 212 bytes .../app/src/main/java/cn/bmob/sdkdemo/._bean | Bin 0 -> 212 bytes .../app/src/main/java/cn/bmob/sdkdemo/._crud | Bin 0 -> 212 bytes .../app/src/main/java/cn/bmob/sdkdemo/._file | Bin 0 -> 212 bytes .../src/main/java/cn/bmob/sdkdemo/._location | Bin 0 -> 212 bytes .../main/java/cn/bmob/sdkdemo/._permission | Bin 0 -> 212 bytes .../app/src/main/java/cn/bmob/sdkdemo/._push | Bin 0 -> 212 bytes .../src/main/java/cn/bmob/sdkdemo/._relation | Bin 0 -> 212 bytes .../app/src/main/java/cn/bmob/sdkdemo/._sms | Bin 0 -> 212 bytes .../app/src/main/java/cn/bmob/sdkdemo/._user | Bin 0 -> 212 bytes .../cn/bmob/sdkdemo/acl/._ACLActivity.java | Bin 0 -> 212 bytes .../sdkdemo/autoupdate/._ActAutoUpdate.java | Bin 0 -> 212 bytes .../java/cn/bmob/sdkdemo/bean/._BankCard.java | Bin 0 -> 212 bytes .../cn/bmob/sdkdemo/bean/._GameScore.java | Bin 0 -> 212 bytes .../java/cn/bmob/sdkdemo/bean/._MyUser.java | Bin 0 -> 212 bytes .../java/cn/bmob/sdkdemo/bean/._Person.java | Bin 0 -> 212 bytes .../cn/bmob/sdkdemo/crud/._CRUDActivity.java | Bin 0 -> 212 bytes .../cn/bmob/sdkdemo/crud/._QueryActivity.java | Bin 0 -> 212 bytes .../bmob/sdkdemo/crud/._QuerySQLActivity.java | Bin 0 -> 212 bytes .../crud/._QueryStatisticActivity.java | Bin 0 -> 212 bytes .../bmob/sdkdemo/file/._BmobFileActivity.java | Bin 0 -> 212 bytes .../java/cn/bmob/sdkdemo/file/._Movie.java | Bin 0 -> 212 bytes .../java/cn/bmob/sdkdemo/file/._Song.java | Bin 0 -> 212 bytes .../sdkdemo/location/._LocationActivity.java | Bin 0 -> 212 bytes .../permission/._PermissionListener.java | Bin 0 -> 212 bytes .../permission/._PermissionManager.java | Bin 0 -> 212 bytes .../sdkdemo/push/._MyBmobInstallation.java | Bin 0 -> 212 bytes .../cn/bmob/sdkdemo/relation/._Comment.java | Bin 0 -> 212 bytes .../relation/._CommentListActivity.java | Bin 0 -> 212 bytes .../java/cn/bmob/sdkdemo/relation/._Post.java | Bin 0 -> 212 bytes .../sdkdemo/relation/._WeiboListActivity.java | Bin 0 -> 212 bytes .../bmob/sdkdemo/sms/._SMSCodeActivity.java | Bin 0 -> 212 bytes .../cn/bmob/sdkdemo/user/._UserActivity.java | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/res/._drawable | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/res/._layout | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/res/._mipmap-hdpi | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/res/._mipmap-mdpi | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/res/._mipmap-xhdpi | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/res/._mipmap-xxhdpi | Bin 0 -> 212 bytes .../app/src/main/res/._mipmap-xxxhdpi | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/res/._values | Bin 0 -> 212 bytes .../BmobDemo/app/src/main/res/._values-w820dp | Bin 0 -> 212 bytes .../main/res/drawable/._selector_button.xml | Bin 0 -> 212 bytes .../res/drawable/._selector_list_item.xml | Bin 0 -> 212 bytes .../app/src/main/res/layout/._act_push.xml | Bin 0 -> 212 bytes .../src/main/res/layout/._activity_code.xml | Bin 0 -> 212 bytes .../main/res/layout/._activity_comment.xml | Bin 0 -> 212 bytes .../src/main/res/layout/._activity_file.xml | Bin 0 -> 212 bytes .../src/main/res/layout/._activity_find.xml | Bin 0 -> 212 bytes .../res/layout/._activity_local_thumbnail.xml | Bin 0 -> 212 bytes .../src/main/res/layout/._activity_main.xml | Bin 0 -> 212 bytes .../main/res/layout/._activity_new_file.xml | Bin 0 -> 212 bytes .../src/main/res/layout/._activity_weibo.xml | Bin 0 -> 212 bytes .../app/src/main/res/layout/._item_list.xml | Bin 0 -> 212 bytes .../app/src/main/res/layout/._list_item.xml | Bin 0 -> 212 bytes .../src/main/res/layout/._list_item_weibo.xml | Bin 0 -> 212 bytes .../main/res/mipmap-hdpi/._ic_launcher.png | Bin 0 -> 212 bytes .../main/res/mipmap-mdpi/._ic_launcher.png | Bin 0 -> 212 bytes .../main/res/mipmap-xhdpi/._ic_launcher.png | Bin 0 -> 212 bytes .../main/res/mipmap-xxhdpi/._ic_launcher.png | Bin 0 -> 212 bytes .../main/res/mipmap-xxxhdpi/._ic_launcher.png | Bin 0 -> 212 bytes .../src/main/res/values-w820dp/._dimens.xml | Bin 0 -> 212 bytes .../app/src/main/res/values/._colors.xml | Bin 0 -> 212 bytes .../app/src/main/res/values/._dimens.xml | Bin 0 -> 212 bytes .../app/src/main/res/values/._strings.xml | Bin 0 -> 212 bytes .../app/src/main/res/values/._styles.xml | Bin 0 -> 212 bytes .../BmobDemo/app/src/test/._java | Bin 0 -> 212 bytes .../BmobDemo/app/src/test/java/._cn | Bin 0 -> 212 bytes .../BmobDemo/app/src/test/java/cn/._bmob | Bin 0 -> 212 bytes .../app/src/test/java/cn/bmob/._sdkdemo | Bin 0 -> 212 bytes .../cn/bmob/sdkdemo/._ExampleUnitTest.java | Bin 0 -> 212 bytes .../BmobDemo/build/._.DS_Store | Bin 0 -> 120 bytes .../BmobDemo/gradle/._wrapper | Bin 0 -> 212 bytes .../gradle/wrapper/._gradle-wrapper.jar | Bin 0 -> 212 bytes .../wrapper/._gradle-wrapper.properties | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/libs/._.DS_Store | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/libs/._arm64-v8a | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/libs/._armeabi | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/libs/._armeabi-v7a | Bin 0 -> 212 bytes .../__MACOSX/BmobSDKDemo_v3.6.0/libs/._mips | Bin 0 -> 212 bytes .../__MACOSX/BmobSDKDemo_v3.6.0/libs/._mips64 | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/libs/._okio-1.12.0.jar | Bin 0 -> 212 bytes .../libs/._org.apache.http.legacy.jar | Bin 0 -> 212 bytes .../libs/._rxandroid-1.2.0.jar | Bin 0 -> 212 bytes .../libs/._rxjava-1.1.6.jar | Bin 0 -> 212 bytes .../__MACOSX/BmobSDKDemo_v3.6.0/libs/._x86 | Bin 0 -> 212 bytes .../__MACOSX/BmobSDKDemo_v3.6.0/libs/._x86_64 | Bin 0 -> 212 bytes .../libs/arm64-v8a/._.DS_Store | Bin 0 -> 212 bytes .../libs/arm64-v8a/._libbmob.so | Bin 0 -> 212 bytes .../libs/armeabi-v7a/._.DS_Store | Bin 0 -> 212 bytes .../libs/armeabi-v7a/._libbmob.so | Bin 0 -> 212 bytes .../libs/armeabi/._.DS_Store | Bin 0 -> 212 bytes .../libs/armeabi/._libbmob.so | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/libs/mips/._.DS_Store | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/libs/mips/._libbmob.so | Bin 0 -> 212 bytes .../libs/mips64/._.DS_Store | Bin 0 -> 212 bytes .../libs/mips64/._libbmob.so | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/libs/x86/._.DS_Store | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/libs/x86/._libbmob.so | Bin 0 -> 212 bytes .../libs/x86_64/._.DS_Store | Bin 0 -> 212 bytes .../libs/x86_64/._libbmob.so | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/res/._drawable | Bin 0 -> 212 bytes .../BmobSDKDemo_v3.6.0/res/._drawable-hdpi | Bin 0 -> 212 bytes .../__MACOSX/BmobSDKDemo_v3.6.0/res/._layout | Bin 0 -> 212 bytes .../__MACOSX/BmobSDKDemo_v3.6.0/res/._values | Bin 0 -> 212 bytes ...pdate_btn_check_off_focused_holo_light.png | Bin 0 -> 212 bytes ...._bmob_update_btn_check_off_holo_light.png | Bin 0 -> 212 bytes ...pdate_btn_check_off_pressed_holo_light.png | Bin 0 -> 212 bytes ...update_btn_check_on_focused_holo_light.png | Bin 0 -> 212 bytes .../._bmob_update_btn_check_on_holo_light.png | Bin 0 -> 212 bytes ...update_btn_check_on_pressed_holo_light.png | Bin 0 -> 212 bytes .../._bmob_update_close_bg_normal.png | Bin 0 -> 212 bytes .../._bmob_update_close_bg_tap.png | Bin 0 -> 212 bytes ...._bmob_update_button_cancel_bg_focused.xml | Bin 0 -> 212 bytes .../._bmob_update_button_cancel_bg_normal.xml | Bin 0 -> 212 bytes ..._bmob_update_button_cancel_bg_selector.xml | Bin 0 -> 212 bytes .../._bmob_update_button_cancel_bg_tap.xml | Bin 0 -> 212 bytes .../._bmob_update_button_check_selector.xml | Bin 0 -> 212 bytes ...._bmob_update_button_close_bg_selector.xml | Bin 0 -> 212 bytes .../._bmob_update_button_ok_bg_focused.xml | Bin 0 -> 212 bytes .../._bmob_update_button_ok_bg_normal.xml | Bin 0 -> 212 bytes .../._bmob_update_button_ok_bg_selector.xml | Bin 0 -> 212 bytes .../._bmob_update_button_ok_bg_tap.xml | Bin 0 -> 212 bytes .../res/drawable/._bmob_update_dialog_bg.xml | Bin 0 -> 212 bytes .../drawable/._bmob_update_wifi_disable.png | Bin 0 -> 212 bytes .../res/layout/._bmob_update_dialog.xml | Bin 0 -> 212 bytes .../res/values/._bmob_common_strings.xml | Bin 0 -> 212 bytes .../res/values/._bmob_update_string.xml | Bin 0 -> 212 bytes 315 files changed, 7003 insertions(+), 95 deletions(-) create mode 100644 src/MyApplication/.idea/sonarlint/issuestore/3/9/39949154a1e615e7862369e7bbdbc02d8e85f887 create mode 100644 src/MyApplication/.idea/sonarlint/issuestore/6/7/67dcf9378cf673b1d3b665701ca8ab112314a41a create mode 100644 src/MyApplication/.idea/sonarlint/issuestore/a/f/af19bd5acf2e10910134fc735da2908d48302bd8 create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.gitignore create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/compiler.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/copyright/profiles_settings.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/encodings.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/gradle.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/markdown-navigator/profiles_settings.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/misc.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/modules.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/runConfigurations.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/.gitignore create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/build.gradle create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/hs_err_pid14476.log create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/libs/BmobPush_v1.0.0_0627.jar create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/libs/filechoose.jar create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/proguard-rules.pro create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/androidTest/java/cn/bmob/sdkdemo/ApplicationTest.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/AndroidManifest.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/BaseActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/BatchActionActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/BmobApplication.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/MainActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/acl/ACLActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/autoupdate/ActAutoUpdate.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/BankCard.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/GameScore.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/MyUser.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/Person.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/CRUDActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QueryActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QuerySQLActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QueryStatisticActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/file/BmobFileActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/file/Movie.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/file/Song.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/location/LocationActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/PermissionListener.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/PermissionManager.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/push/ActBmobPush.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/push/MyBmobInstallation.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/Comment.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/CommentListActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/Post.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/WeiboListActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/sms/SMSCodeActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/user/UserActivity.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/selector_button.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/selector_list_item.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/act_push.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_code.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_comment.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_file.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_find.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_local_thumbnail.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_main.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_new_file.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_weibo.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/item_list.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/list_item.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/list_item_weibo.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values-w820dp/dimens.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values/colors.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values/dimens.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values/strings.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values/styles.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/test/java/cn/bmob/sdkdemo/ExampleUnitTest.java create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/build.gradle create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/gradle.properties create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/gradle/wrapper/gradle-wrapper.jar create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/gradle/wrapper/gradle-wrapper.properties create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/gradlew create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/gradlew.bat create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/settings.gradle create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/BmobSDK_3.6.0_20180321.jar create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/arm64-v8a/libbmob.so create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/armeabi-v7a/libbmob.so create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/armeabi/libbmob.so create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/mips/libbmob.so create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/mips64/libbmob.so create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/okio-1.12.0.jar create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/org.apache.http.legacy.jar create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/rxandroid-1.2.0.jar create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/rxjava-1.1.6.jar create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/x86/libbmob.so create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/libs/x86_64/libbmob.so create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable-hdpi/bmob_update_btn_check_off_focused_holo_light.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable-hdpi/bmob_update_btn_check_off_holo_light.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable-hdpi/bmob_update_btn_check_off_pressed_holo_light.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable-hdpi/bmob_update_btn_check_on_focused_holo_light.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable-hdpi/bmob_update_btn_check_on_holo_light.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable-hdpi/bmob_update_btn_check_on_pressed_holo_light.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable-hdpi/bmob_update_close_bg_normal.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable-hdpi/bmob_update_close_bg_tap.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_cancel_bg_focused.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_cancel_bg_normal.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_cancel_bg_selector.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_cancel_bg_tap.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_check_selector.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_close_bg_selector.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_ok_bg_focused.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_ok_bg_normal.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_ok_bg_selector.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_button_ok_bg_tap.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_dialog_bg.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/drawable/bmob_update_wifi_disable.png create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/layout/bmob_update_dialog.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/values/bmob_common_strings.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/res/values/bmob_update_string.xml create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/更新日志.txt create mode 100644 src/MyApplication/libs/BmobSDKDemo_v3.6.0/用前须知_多谢合作.txt create mode 100644 src/MyApplication/libs/__MACOSX/._BmobSDKDemo_v3.6.0 create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/._BmobDemo create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/._libs create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/._res create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/._更新日志.txt create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/._用前须知_多谢合作.txt create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._.gitignore create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._.gradle create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._.idea create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._app create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._build.gradle create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._gradle create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._gradle.properties create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._gradlew create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._gradlew.bat create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._jar create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._local.properties create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/._settings.gradle create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/.idea/._compiler.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/.idea/._copyright create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/.idea/._encodings.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/.idea/._gradle.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/.idea/._markdown-navigator create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/.idea/._modules.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/.idea/._runConfigurations.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/.idea/copyright/._profiles_settings.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/.idea/markdown-navigator/._profiles_settings.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/._.gitignore create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/._hs_err_pid14476.log create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/._libs create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/._proguard-rules.pro create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/._src create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/build/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/libs/._BmobPush_v1.0.0_0627.jar create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/libs/._filechoose.jar create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/._androidTest create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/._main create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/._test create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/androidTest/._java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/androidTest/java/._cn create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/androidTest/java/cn/._bmob create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/androidTest/java/cn/bmob/._sdkdemo create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/androidTest/java/cn/bmob/sdkdemo/._ApplicationTest.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/._java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/._res create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/._cn create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/._bmob create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/._sdkdemo create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._BaseActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._BatchActionActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._MainActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._acl create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._autoupdate create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._bean create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._crud create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._file create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._location create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._permission create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._push create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._relation create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._sms create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/._user create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/acl/._ACLActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/autoupdate/._ActAutoUpdate.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/._BankCard.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/._GameScore.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/._MyUser.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/._Person.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/._CRUDActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/._QueryActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/._QuerySQLActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/._QueryStatisticActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/file/._BmobFileActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/file/._Movie.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/file/._Song.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/location/._LocationActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/._PermissionListener.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/._PermissionManager.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/push/._MyBmobInstallation.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/._Comment.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/._CommentListActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/._Post.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/._WeiboListActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/sms/._SMSCodeActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/user/._UserActivity.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/._drawable create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/._layout create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/._mipmap-hdpi create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/._mipmap-mdpi create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/._mipmap-xhdpi create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/._mipmap-xxhdpi create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/._mipmap-xxxhdpi create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/._values create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/._values-w820dp create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/._selector_button.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/._selector_list_item.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._act_push.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._activity_code.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._activity_comment.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._activity_file.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._activity_find.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._activity_local_thumbnail.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._activity_main.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._activity_new_file.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._activity_weibo.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._item_list.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._list_item.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/._list_item_weibo.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-hdpi/._ic_launcher.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-mdpi/._ic_launcher.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-xhdpi/._ic_launcher.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-xxhdpi/._ic_launcher.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/mipmap-xxxhdpi/._ic_launcher.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values-w820dp/._dimens.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values/._colors.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values/._dimens.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values/._strings.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/values/._styles.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/test/._java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/test/java/._cn create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/test/java/cn/._bmob create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/test/java/cn/bmob/._sdkdemo create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/app/src/test/java/cn/bmob/sdkdemo/._ExampleUnitTest.java create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/build/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/gradle/._wrapper create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/gradle/wrapper/._gradle-wrapper.jar create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/BmobDemo/gradle/wrapper/._gradle-wrapper.properties create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._arm64-v8a create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._armeabi create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._armeabi-v7a create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._mips create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._mips64 create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._okio-1.12.0.jar create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._org.apache.http.legacy.jar create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._rxandroid-1.2.0.jar create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._rxjava-1.1.6.jar create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._x86 create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/._x86_64 create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/arm64-v8a/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/arm64-v8a/._libbmob.so create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/armeabi-v7a/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/armeabi-v7a/._libbmob.so create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/armeabi/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/armeabi/._libbmob.so create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/mips/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/mips/._libbmob.so create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/mips64/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/mips64/._libbmob.so create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/x86/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/x86/._libbmob.so create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/x86_64/._.DS_Store create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/libs/x86_64/._libbmob.so create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/._drawable create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/._drawable-hdpi create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/._layout create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/._values create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable-hdpi/._bmob_update_btn_check_off_focused_holo_light.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable-hdpi/._bmob_update_btn_check_off_holo_light.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable-hdpi/._bmob_update_btn_check_off_pressed_holo_light.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable-hdpi/._bmob_update_btn_check_on_focused_holo_light.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable-hdpi/._bmob_update_btn_check_on_holo_light.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable-hdpi/._bmob_update_btn_check_on_pressed_holo_light.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable-hdpi/._bmob_update_close_bg_normal.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable-hdpi/._bmob_update_close_bg_tap.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_cancel_bg_focused.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_cancel_bg_normal.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_cancel_bg_selector.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_cancel_bg_tap.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_check_selector.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_close_bg_selector.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_ok_bg_focused.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_ok_bg_normal.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_ok_bg_selector.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_button_ok_bg_tap.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_dialog_bg.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/drawable/._bmob_update_wifi_disable.png create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/layout/._bmob_update_dialog.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/values/._bmob_common_strings.xml create mode 100644 src/MyApplication/libs/__MACOSX/BmobSDKDemo_v3.6.0/res/values/._bmob_update_string.xml diff --git a/src/MyApplication/.idea/sonarlint/issuestore/3/4/342c9edfd27db16bba3e3455e68c749d04c55cbd b/src/MyApplication/.idea/sonarlint/issuestore/3/4/342c9edfd27db16bba3e3455e68c749d04c55cbd index fb6d4a9..504c03c 100644 --- a/src/MyApplication/.idea/sonarlint/issuestore/3/4/342c9edfd27db16bba3e3455e68c749d04c55cbd +++ b/src/MyApplication/.idea/sonarlint/issuestore/3/4/342c9edfd27db16bba3e3455e68c749d04c55cbd @@ -1,9 +1,8 @@ -v squid:S3008"\Rename this field "BMOB_PICTURE_PATH" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ә -Q squid:S1444"7Make this "public static BMOB_PICTURE_PATH" field final(Ә -"squid:ClassVariableVisibilityCheck"WMake MyAvatarDir a static final constant or non-public and provide accessors if needed.( T squid:S1118":Add a private constructor to hide the implicit public one.(׼ -F squid:S1444"1Make this "public static MyAvatarDir" field final( -G squid:S1135"2Complete the task associated to this TODO comment.( "squid:ClassVariableVisibilityCheck"]Make BMOB_PICTURE_PATH a static final constant or non-public and provide accessors if needed.(Ә -k squid:S3008"VRename this field "MyAvatarDir" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.( \ No newline at end of file +p squid:S3008"VRename this field "MyAvatarDir" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(߭ +Q squid:S1444"7Make this "public static BMOB_PICTURE_PATH" field final(Ә +"squid:ClassVariableVisibilityCheck"WMake MyAvatarDir a static final constant or non-public and provide accessors if needed.(߭ +v squid:S3008"\Rename this field "BMOB_PICTURE_PATH" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(Ә +K squid:S1444"1Make this "public static MyAvatarDir" field final(߭ \ No newline at end of file diff --git a/src/MyApplication/.idea/sonarlint/issuestore/3/9/39949154a1e615e7862369e7bbdbc02d8e85f887 b/src/MyApplication/.idea/sonarlint/issuestore/3/9/39949154a1e615e7862369e7bbdbc02d8e85f887 new file mode 100644 index 0000000..ceae00d --- /dev/null +++ b/src/MyApplication/.idea/sonarlint/issuestore/3/9/39949154a1e615e7862369e7bbdbc02d8e85f887 @@ -0,0 +1,2 @@ + +isquid:MaximumInheritanceDepth"=This class has 10 parents which is greater than 5 authorized.( \ No newline at end of file diff --git a/src/MyApplication/.idea/sonarlint/issuestore/6/7/67dcf9378cf673b1d3b665701ca8ab112314a41a b/src/MyApplication/.idea/sonarlint/issuestore/6/7/67dcf9378cf673b1d3b665701ca8ab112314a41a new file mode 100644 index 0000000..36e8a5c --- /dev/null +++ b/src/MyApplication/.idea/sonarlint/issuestore/6/7/67dcf9378cf673b1d3b665701ca8ab112314a41a @@ -0,0 +1,16 @@ + +_squid:HiddenFieldCheck":Rename "drawer" which hides the field declared at line 41.( +_squid:CommentedOutCodeLine"").(̿h -`squid:UselessImportCheck">Remove this unused import 'cn.bmob.v3.listener.LogInListener'.( -fsquid:UselessImportCheck"?Remove this unused import 'cn.bmob.v3.exception.BmobException'.(ƚ -esquid:CommentedOutCodeLine"Remove this unused import 'cn.bmob.v3.listener.LogInListener'.( +esquid:CommentedOutCodeLine"").( squid:UselessImportCheck"XRemove this unused import 'com.example.administrator.myapplication.app.BaseApplication'.( -msquid:ModifiersOrderCheck"EReorder the modifiers to comply with the Java Language Specification.( - squid:S1186"Add a nested comment explaining why this method is empty, throw an UnsupportedOperationException or complete the implementation.( -`squid:CommentedOutCodeLine"").(̿h \ No newline at end of file diff --git a/src/MyApplication/.idea/sonarlint/issuestore/index.pb b/src/MyApplication/.idea/sonarlint/issuestore/index.pb index 82839be..9bd139e 100644 --- a/src/MyApplication/.idea/sonarlint/issuestore/index.pb +++ b/src/MyApplication/.idea/sonarlint/issuestore/index.pb @@ -1,27 +1,15 @@ < build.gradle,f\0\f07866736216be0ee2aba49e392191aeae700a35 - -Oapp\src\main\java\com\example\administrator\myapplication\utils\DialogHelp.java,9\5\954e8115c9434902b13d9840c149e0ff3fe59df2 - -Rapp\src\main\java\com\example\administrator\myapplication\utils\HTQAnimations.java,6\5\65764ff37783669e71501692a607a3cea49c4bdc z Japp\src\main\java\com\example\administrator\myapplication\entity\User.java,c\5\c5ce6afdb0606af7b3aad034a3799dc44d4d4c5c - -Uapp\src\main\java\com\example\administrator\myapplication\widget\CircleImageView.java,d\2\d2c92a556e47fd0e9a3fa038dbf835129e2f5090 - -Tapp\src\main\java\com\example\administrator\myapplication\ui\AlarmAlertActivity.java,6\0\6017e946e5380fbd8e8ec44cf82432536cb0c89d -P - app\src\main\AndroidManifest.xml,a\c\ac6e0c942798c8a768fab2e3ab7e6a6b69b346f1 - -Qapp\src\main\java\com\example\administrator\myapplication\ui\WelcomeActivity.java,f\4\f4db46de912ee15bd8dff2e67791e614cfdc8ae8  -Rapp\src\main\java\com\example\administrator\myapplication\ui\AboutAppFragment.java,2\4\2432e00ff27b3c4e488bc12d8149cc4f0583cb71 - -Wapp\src\main\java\com\example\administrator\myapplication\adapter\BgPicGridAdapter.java,0\3\037b293928bff3f763d72038512124d16aebd627 - -Qapp\src\main\java\com\example\administrator\myapplication\ui\SettingFragment.java,9\f\9f49ae81d31735cbb5ea0dec8c22fb85771170ad - -Oapp\src\main\java\com\example\administrator\myapplication\ui\LoginActivity.java,d\9\d9f0b00bd9259256a0cc6a48eb4c59665266c4ea +Rapp\src\main\java\com\example\administrator\myapplication\utils\BmobConstants.java,3\4\342c9edfd27db16bba3e3455e68c749d04c55cbd  -Rapp\src\main\java\com\example\administrator\myapplication\ui\RegisterActivity.java,d\5\d5b72c9513d313bcf937771f4e19798894789154 \ No newline at end of file +Rapp\src\main\java\com\example\administrator\myapplication\ui\UserInfoActivity.java,a\f\af19bd5acf2e10910134fc735da2908d48302bd8 + +Rapp\src\main\java\com\example\administrator\myapplication\ui\NoteEditActivity.java,3\9\39949154a1e615e7862369e7bbdbc02d8e85f887 + +Papp\src\main\java\com\example\administrator\myapplication\utils\SystemUtils.java,6\7\67ee5a70c0947c6377cf1e29856f6a79659f84e7 +~ +Napp\src\main\java\com\example\administrator\myapplication\ui\MainActivity.java,6\7\67dcf9378cf673b1d3b665701ca8ab112314a41a \ No newline at end of file diff --git a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/adapter/NotebookAdapter.java b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/adapter/NotebookAdapter.java index 6f99d3a..55aa5f1 100644 --- a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/adapter/NotebookAdapter.java +++ b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/adapter/NotebookAdapter.java @@ -1,6 +1,9 @@ package com.example.administrator.myapplication.adapter; import android.app.Activity; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.provider.CalendarContract; import android.text.Html; import android.view.View; import android.view.ViewGroup; @@ -88,6 +91,7 @@ public class NotebookAdapter extends BaseAdapter implements HTQDragGridView.Drag datas.get(position).setIid(position); NotebookData data = datas.get(position); + ViewHolder holder = null; if (v == null) { holder = new ViewHolder(); v = View.inflate(aty, R.layout.item_notebook, null); @@ -104,7 +108,7 @@ public class NotebookAdapter extends BaseAdapter implements HTQDragGridView.Drag LayoutParams params = (LayoutParams) holder.content .getLayoutParams(); params.width = width; - params.height = params.width - height; + params.height = (params.width - height); holder.content.setLayoutParams(params); holder.titleBar diff --git a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/app/BaseApplication.java b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/app/BaseApplication.java index c36f503..f597f43 100644 --- a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/app/BaseApplication.java +++ b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/app/BaseApplication.java @@ -3,7 +3,6 @@ package com.example.administrator.myapplication.app; import android.app.Application; import android.content.Context; -import com.example.administrator.myapplication.utils.AccountUtils; import com.example.administrator.myapplication.utils.BmobConstants; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; @@ -23,7 +22,7 @@ import cn.bmob.v3.Bmob; public class BaseApplication extends Application { - private String ApplicationId="d1ee9b58531115c8f6d57b1efe8b24bf"; + private String ApplicationId="82cacaa4470ab6b8d61d3f0ce6d6201d"; static public String avatarPath= BmobConstants.MyAvatarDir+"avatarIcon.png"; @Override public void onCreate() { diff --git a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/db/NoteDatabase.java b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/db/NoteDatabase.java index 637fab3..5df308e 100644 --- a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/db/NoteDatabase.java +++ b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/db/NoteDatabase.java @@ -173,7 +173,7 @@ public class NoteDatabase { StringUtils.getDataTime("dddHHmmss"), 0)); } editData.setUnixTime(StringUtils.getDataTime("yyyy-MM-dd HH:mm:ss")); - editData.setContent("欢迎使用颖火虫记事本,赶快记下你此刻的灵感吧!"); + editData.setContent("欢迎使用嗖藏,赶快记下你此刻的灵感吧!"); editData.setUserId(AccountUtils.getUserId(context)); save(editData); } diff --git a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/ui/NoteEditActivity.java b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/ui/NoteEditActivity.java index b64fd9d..725900a 100644 --- a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/ui/NoteEditActivity.java +++ b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/ui/NoteEditActivity.java @@ -7,9 +7,7 @@ import android.support.v7.app.AppCompatActivity; import com.example.administrator.myapplication.R; -/** - * Created by htq on 2016/8/9. - */ + public class NoteEditActivity extends AppCompatActivity { diff --git a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/ui/WelcomeActivity.java b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/ui/WelcomeActivity.java index a2f09cf..571b948 100644 --- a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/ui/WelcomeActivity.java +++ b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/ui/WelcomeActivity.java @@ -13,6 +13,7 @@ import com.example.administrator.myapplication.entity.User; import com.example.administrator.myapplication.utils.SPUtils; import com.example.administrator.myapplication.utils.SystemUtils; +import cn.bmob.v3.Bmob; import cn.bmob.v3.listener.SaveListener; @@ -31,6 +32,7 @@ public class WelcomeActivity extends AppCompatActivity { getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_welcome); + Bmob.initialize(this, "82cacaa4470ab6b8d61d3f0ce6d6201d"); //初始化bmob // String libName = "bmob"; // System.loadLibrary(libName ); diff --git a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/utils/BmobConstants.java b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/utils/BmobConstants.java index 99bdafe..bdfef5d 100644 --- a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/utils/BmobConstants.java +++ b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/utils/BmobConstants.java @@ -4,12 +4,6 @@ import android.annotation.SuppressLint; import android.os.Environment; -/** - * @ClassName: BmobConstants - * @Description: TODO - * @author smile - * @date 2014-6-19 ����2:48:33 - */ @SuppressLint("SdCardPath") public class BmobConstants { @@ -21,7 +15,7 @@ public class BmobConstants { /** * �ҵ�ͷ�񱣴�Ŀ¼ */ - public static String MyAvatarDir = "/sdcard/beautynote/avatar/"; + public static String MyAvatarDir = "/sdcard/soucang/avatar/"; /** * ���ջص� */ diff --git a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/utils/SystemUtils.java b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/utils/SystemUtils.java index 3bee5ce..a128e5c 100644 --- a/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/utils/SystemUtils.java +++ b/src/MyApplication/app/src/main/java/com/example/administrator/myapplication/utils/SystemUtils.java @@ -20,6 +20,8 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import static android.content.Context.MODE_PRIVATE; + /** * Created by htq on 2016/8/10. */ @@ -109,7 +111,6 @@ public boolean isTarn() /** * 保存背景皮肤图片的地址 - * @author: htq */ public void saveBgPicPath(String path) { @@ -142,13 +143,13 @@ public boolean isTarn() */ public static void shareApp(Activity mActivity) { - String shareAppContent="各位亲爱的小伙伴们,我发现了一款非常好用且颜值爆表的记事本App,分享给大家,记得关注作者的博客http://blog.csdn.net/htq__,福利多多哦!"; + String shareAppContent="各位亲爱的小伙伴们,我发现了一款非常好用且颜值爆表的一件收藏App,分享给大家"; new File(mActivity.getFilesDir(), "share.jpg").deleteOnExit(); FileOutputStream fileOutputStream=null; try { fileOutputStream = mActivity.openFileOutput( - "share.jpg", 1); + "share.jpg", MODE_PRIVATE); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/src/MyApplication/app/src/main/res/layout/content_main.xml b/src/MyApplication/app/src/main/res/layout/content_main.xml index a4b6b0c..012eaf6 100644 --- a/src/MyApplication/app/src/main/res/layout/content_main.xml +++ b/src/MyApplication/app/src/main/res/layout/content_main.xml @@ -19,7 +19,7 @@ android:visibility="visible" > - diff --git a/src/MyApplication/app/src/main/res/layout/layout_note_detail_menu.xml b/src/MyApplication/app/src/main/res/layout/layout_note_detail_menu.xml index 872826b..bb31cb3 100644 --- a/src/MyApplication/app/src/main/res/layout/layout_note_detail_menu.xml +++ b/src/MyApplication/app/src/main/res/layout/layout_note_detail_menu.xml @@ -40,7 +40,7 @@ app:border_color="@color/white" app:border_width="2dip" /> - - - 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 z zeZLyfQ`uYviAh{poYd_0-~D)Bl{vNdn)DTE)0Iz!Q3>2-)$FEEj=lF;7N9?bRy_oegDRGU_+W zOXOC}+c#HyhzA9pVU^l}J|>5kZ~f|mNM^#Csdsap(eT=*^6KOQ7et`Y!dOLt-=_X_ zUC9xIT$qRL`Bq1VAlKv)Zi06H-VRFjjME&gO-G41YwI+&UC{1Q49W;YW;tZ2DXZ)$ zQ0z~2UrGxmGn+p&lmsI+Bid#%w*7zv&=A9Qa97KzSEAqIRo2tJZbucSWXson)ROR% zkoxWz0^6!t8rc7G0=;{~O&nyYiHrGsGL8A96e`dbo{0m4>H+wx*v5)h(!21y6~2-6 zX^-=(mgPZ}fnTvX)DSN$%dL3eMYM{*$>jX-LdA1GD>v#*xVO^vlh;1pUCy{OUS4?_ z3O$=5jn}(^n0SMbip+mh*)45^Q=4hE>%A~zhe1YQ6!&*2L!akH;8LOZ0i@!@xCzMh zxSVog*y|#t?(xzsc41Ql2SQMe5^ zL0-9^e-gXxNdQN9H28AJp00xzs^8v8UXN4dMsA3zp^s2c500lM9GK1!dHARF+^f)U zywkZ&Ln|bx2W6cgF!YWyyAK-c(U_IN>9j}xV)VV<@goxe6%652}xJ#K#A z7OItPn;EnVcrtya{;5t5FZ*0XeeH78GUgn#bf@;pt!KHG7IK%6 zR}vjpX3Qj|6nisdQ~>x&5^B>BYz13s0J_=Va$L-Nyb<6Gyz?5@HR$BsK&hn_!@T!# zpI7&_&Uek+-Sgzb(VklVk@7b#`?OS)(+%#IDB17y-pi>L0Wu&fwTLmc{}YgH(gIho4=G<#w3`p}&1#G{3WXclOqrA03?M(g;B)uVyD`uUbf!jJ{)KbcAGKL( zGPUhSd58AGHt2o-Tq%l;J!F^D>h-(+S6&2eJwBO-!@sw6dHw}iV-Vu%`0Q7!U8Wws zxQ=YK((Rmx?efrNIB^@y;{?uCdaO^rgV?{6?kP*B_GmVnUf6ejI@@vPnZqkdw~A-? zx^XJNrvPn!fWgW(K7gupeR<`b2HuEn%9Tby^fr4U|v7up$>c`$`q8F8Zhih1DGX|BwaVr#w! zuw$4jU^q{c0e9Th`>0LWU@&tIwuo(d(4*?AYgc3zC_>p|>=wG?X@_Xi4RFeC73s&! z0jT=FA{G#bvn{Y=wHE-XYZAUemluD=;r9)ZLsP?nznS_!49#t(^1KrN z6>&j72|$1V#UvWJWLn(5|8EceuyWV{ZGf|5z`(TS#omsd)Zt&{-SGF8!0bT)cKAHr z%|uzS_o@wbplK6WWh=~EL8IhTA!+yL>%0<3^Y5}>4*z+-bq3JoPc3-ERHxE!jcn`{}?p@N1&cE5A8^$b7Y`*H54QxhTOx;8=6 z{B*J@`?q_ybj~FYqdpY{mI}8S?@?ZcJh3V?RL8`Y-d|~U;D*9Cig9yKo40YHVGy?z z%M`a3zr`8@;nZ1%vX#VZ!GfS6UHQUo>R<;-VV@j@wVT4=j(p226hLZl)zBz?_h zE3js>A(Jh)@5VQM4#`w0Q+kRFcjvmJ4u#b*GJ&ffU#?+4sB5ds&1$Z>MwPVH1cQ{o z3*@uYk1hozcp3}+4MTaG+#eVvi|)`+KDaT{naK}@b4!#u4jU-KB^v;LKn~*zsS=Lx zFv|S#q|1Nb+VmS{7<0DYe+R4G%tld6cavgz=&rQ)Ae1)`<2%8?%7o2 z2a$;0(7Q6jII+YgzG-Y2vy}N&f8bR9v?zhpV%ecPKZ{7S68*JU$uS+W0m&)hxT+t@?nw~0lGJ?S z?nW*rs0Rb^;lRC*5czqXk`g~`+QdZVCc4dXo7Ylwe@`Zz>ya~;4pFUzoVcNrSDb2L zRg%XhmQ1HQd#A=FFlE}&t>eI%`MpM9sxwj;{ZjY?D2+xYAqh#X`T#ShMK|S! z5p-G3p{f?VXTxmZNhMvi{Zm5R*ZE25Ub$P<$$qLcIVy2}3h|fDA^U=QXA@5y^SF}c zh^o3p5_V!e zVk1Nn<~3n$(2twEAW7TkX}y||><;mePoIb#QevwwJ~DHI<4;&zb}DqwdJW`@`=TQA ztd6^4^mK=Fh88!kqEMhv9|(EV^kty*!=-PfPjallE*8P~buNWmoePwf_IlUV9zMUz zYC%TdKvT3q{$G*3@(&ZQb;&;z8pf3urgP>f!lY;i!e1J_gq`iB9UW2pCY@@Y;lJMi~;d)iYpy zp~)fB5i3a+PwnVQcz7o8LC`9)s-rpF=or(XyqOrp-3VDDma}n>-ULpJwEIW9dkX6{ zxN|G$-o)#k9>HZnAdm?o3hzuRK~V_3J~yYpra-fc^If8rgiEIA!}e1OFQ;&#irApU zZskKQ8TGGwdyR_kg^%lh-!dUISm{z2$V;pPx_aftyobd_r9r&pcDIyot4#&YK5V%0(0ko#w@yt|q#H?fxf^ zetNb@>Gnf|qv_u{z<^WNQ72mLjH;V`yQ5mH9VhD-%WT@Zk4O*lhA(mkAVwQG&UM?hVu)a61B_R<_#q4{Kaw}&N!oVtK6}P^Gp&x`^p~g$^d`KC zW<<+dpIEotDAlZ!@O5=eeEY0yZ;A`o_K45N3rdIfKK(~81txWByPdfN(hLwV=;fyIup&VC|ZG6xm_f)E9NGVRKdiG^k<_pE1T z6y!kqll09s7Gxgz-u-5Lcr46rC9v_ollc;%USL?wDewaym=9_RnUo^bDg;(3TO9mx zpeN&D==f)qH%8uaaw!HT>3baua>-w)Gw3R4aD**LklAOF%m3YY_Oe>apdqW6?ZGfc zXJ87*Mz{JfdhgCi99UmJ8NDMm#Fl3LwcT7#e!A^x$@#j_)K?lwpN!znV;-00N|?Gh zjtW25l83Ckzw+^PQ+<<{W}JVJM@} z^72gx&au4i+vgKw6Xh|I-!AjudyhT8Ma@z_-lP3qIj{jgbI3x}FxL9s-0FWVb7-KP zk+3w=o1~lCw2}E>*yVf5@0T;Gt)9L`^`=@ENXn(BQ<_`d#` za2FRl`wJf{ngh>2e0->4>IruQ0X%6KBgi{(Ehvek$mm1S5y50)fiJ!0lSz?O?LTc# z3$`xw-HHn;t@uQ9rBf>xkDw>^|Ffgz7*H2g(-N0ZSk!~aw7mo=XFL=Sb;2zX35n3m zJwH89B^^e~yez#8((ks(iSS*^1gNio7W0Df0B!x|fx9~bU7wdRPcuL@6Q~@xPyW-F zz%x#a(g73`#S`}i19nqc^Z^U6GV_AJ%enbxKRFg7HuxC3Z*QuCE5~oCPDet*5_F$h zG&?8Qf={%KN!d=C?w@T`&5hJvJ!$u4LPwHe_%)}xj!@63Y#L80pSV1U6P?|!*+K}j zw$O=A1m(b^2odW*I%}Q-6pw7Ez&jXw$HUwlm(_pPp1qGBU7+;&HL6Z^PP}qEm63n> zjD~#N43XdUF}er4>kn47Jz(a5!oC{Ccj<7;BZcF6^A6;6 zd*_WWywJvcHjy)yG{iJ41qx`q4Z1U{KIp;KKx!C2gkJ_7;y^P0eMT3En9fC$JhTCL zwUOZj?v01+P*L6ct&{7Ks^aaHyK3rJF;CJ@w91*)B>uS_a>*?6{ksgX!mB&oUm3%a zCUJR(+gyxR?naAK?w1~yxlyBhDDN25HP2C+Vlq$bqT#10X-PkQ!)9_Sx@ILEQfF=R zFVTRA#TKV(ZIK(eVc2mNf0(T}sl){eIZZCa+*%TT{!GX8>RoNmE%+R}vfDxq-Cdt^ zt~m-6%ls_;gr8@-VLJUBU%!K1SSR2w@U|35E;mmU->6=N`Chz<%Zw(R!)aX|lRx z*SbX&3@-hub3ncd^fM_=JXQOliNe!oDR*)=GvicdQak^V@c=vRlh!v=zLNGl%@rT# z5~XgFN2#U_bo;xULaDjL>YgUSa&s&gY*;XgSnfQc#r&&2WM27^pPgcsc;nZR(|Y-< z8t_LS&HmhxQwZzq3)65|)>fL7y?to{C}tHZ>ht~srRWX*-VA?~Hg8sOyujL(<@e21 z5jF=ZcV{>5NeY<+@9Th`11noq;?6lF9qG{~Ha;6Xn;*Z!37qxSfd3)V;JE=6-+&k= z5yASzCP+9+*Tg+Jzfs8Q3b93c6Kys@+c&*WON~Ytna#SmGTbu;J*;nR|8clNS2}#a zud_8bcHgbLl4<81(>kMn#>$xGmU;ze;6V&@ZX^LaI=nIeyTqXX1dWQ&L-q7iS>+M) zy6kfxlRumqEtic%k(SWHKR3uqmAZp|6)puvvcCs_kh02+OWVZcn6E}wP+a3h*;kvC zJC2Wrd$f_hukS3L?Xh!&UzPnU>Uloasp|hu(+}zU} zcUf0&M`3k7{kHCq|4+BK@4lY5j5%|?ORPTC-P^WuB@=k?i^!Yh%=38nMNQwHS36<- z`p|v$DN(V6TQha4TR-0_h+dKm#{oATCgASI3so?`16LyH>-pPHGHuCUXvI#o@rKJq zaTS-xiEq_s0<|X-qi9g=}o-ItPw4@e84upRC< z=jhH9Z&oi*yh~%teK>#-sKqy`1}REFLdO$32?5e-U`cxUUuY z3=fp+7KZrCNOkh?f|^pxD0608aCwnTNts_8HOYX$Ly=xN9!=0GThR^gHcF(*4_p}1 zYLuNHZXQ3`KRP+9{o}Ei*(}L7^D;(tDX@2rAOs47msXE`Z@v^TYHyeO=4AK>i~H~2 zTd2d{q2h{)2WluZU>h`Ux=(A)yHPK;&C)Nbx)g$Z@ZVSK+0EskQ&H;is?)?JOs~dQ zS`ll{^uxsmi;qLZ0?jwu_kV96Rle?7-^}>i(`pCgQG90l{l=G^7`IqJ_=Y?q2=z6` zb?C!K&sB zC4JO2< z{}q9$nvgTOi|H95uTvZH5}5N-q8|e~gfU&`QVDou?|-lDl5r?_B6O{3t_15W@k?sB zPurS56-$ZX^tsI0fz$trR30{38(2P8baDVa35p;HsPlj?HOM#^zDfhwrY&>^Y16DZ zGe{=zN5A>?JZ9|an4}d0eHonH8%QaL4UI7NRYhR2fS0Gz6@z0%If2K0}0Zf!jTe(R+k5+^Tp7X}$>**WkJsvN_)~vV& zxs|wubLq^guv0E$VP!)if4`j*^|$-lmKgnfy6oefb1VKgA2%~Dw2zi(52NN8mn_05 z9Pn186F-FioVDMwQTZ8mlS(k&WRy&f66z=d$acPPmvGcXB=tL5MsT!nqx??HlN@L- z{#OU?89C{yriYK~&(_VixsoqI&{-5DeD}kZfOELtnnv@5z9jqfkqR!tASHr@=KRkvU}v!2XO{1KG|eD5YT99 z7muzdIgt^j;WIR2MkGFYV>tNjz22S+mv4VbvpV|bO|M_qA1bjDW>jHDiDrkeeZ^ z$DQ8U5bGd3IMA2aH_XhNIt_me`DdlPe{B}aC4fxGXkPRdw`R#Jud`LcU~S;BE$*Km z#)0E`qSt3X{t{bmttd>P)q8Hn2ocXj=N#}K(sT3jo3rMF1jehWdF!I`PaCuJ5N?EA zBx7;gRP=8&ZokR4Hi(h=--iDg_12Ly`co<5&~&z z$cqfO(ykNrQu{yB_bbyKix5!w@gtvU9H~ z=vC`aNx*@ilg?#vIM@a#t%>9v^X>!q*&HcJ8|GEeREI``WE*@U@zFn#KU9f-KA1`& zVfhi%N%0S;)&DqnoC04dBGu$#(?0+dXF2&zjvGeqC*JvrP1nJe3V*B8tl0X%6@_vqucaVbTc6z%XS`nv9F`jNMrl=quS`RtoxLZO&=eY z0(?av#d9`&)b)?#-}~ztw&_%WsI15UZ$NYJ@@?JgeQ1lCJG#WwA~WxgB>814rVfaZ zzdzP+l*mYCVbFYjhk)z-`_Zv4IUkB3;7E?*26YC@*4^0OkXn-tT+)rEnU}?l)~8}f zi53UU2gq$ULxXxDJP!yV1NA<5F~WhAMV^VUR(2Kr)e zOZK70>K#D^suYH~iks~ckJMc7M#*BOs~XMk`5!Gjp)F_J{q8+I_t<{jS9+nMr5!S+ zt-CEQ=J~WA3n)=kg~C}nL@s8LmU}Va!|_F3%HQp$Xl4xu0)YqBEG51AFw=U#!3Y;1 zo>F))aTc6*<+p|1Z?WBCF$oDzHnUK7&)6rnTNib`!D894i1Y^yEO;}jVXPqeahX%j zmtp9o+r}I}Z`wL|)23g*_`K92l@0Uq++UdN6B?mVv4^3RRlThPEmW=kl5ysa>g#>` zuTaFnE63h_i_eq{&~de;DA&FXQK^CXc&wAX{dkrX70714qm6?SsipiYxkRbXa8+e> ztRxg4AIc8#4gz{&_oYs@4H3Nu4m?Zjj%fuSX}l_zX!cPCDlq=S(i$(%nt4C1mF4>I z>OToP3!eaI?AdPvudndY@3IcGe<>^2H=@{^QZrdr10Ax)NX@x9E5ZfdYrXwt(~ak| zyuy&)`csaI29}GKBZ>-L9FNf&4tyCBi5_rR4}iFyh&yrcl;H z8&W(z`C#;l^RuH`2OE~Agq2F9%~84i@uea5;=A?*B>fz+Pin+6TBM0iJfA8-RK5iQ zLftN=60A?-{%dJ)^G^GlqHXV6JAQG?^7_?q=j&RRd&FLvQ!0x*y`Qyc>{xoBS!%Xe zsxlQ#D5>_jh*{h!#q!8D1cp5sXW-ak>DN_=fi^2A&kLH2S;4d58$UnNkUwt_8_m(T zPVAxjjcQ%qxjwyHReF+-Exy3NCfE&Z}fU*8lkAj zIs4TWw>hGt3bk@*ux7twUV-Lcy{}jzMPb?R$VEM|o3)mc?v;X~&=P5L!S8mjT&C~2 zy@Ag2ogX$lp(^-Do1Fr0&H@JGo+_eNDxw~ko=jQ24HMb4&m=D&$9RwVp^C7?E4{AM z4+$9$4rs`U9ebe}$&oSeP#ZNebCd0{JK48_49W{TLFc1!fc#7GrbZR;7xb;I3-b z>h-fZSEWvwKfj{nk$A_2R-LgZ3|td>Y;U>L(oEsbt3n<$g4k2w?ODRwISPF??r~!R z8vHIH(8G7j^6|#8BqdoE?`6Npm=cPCZ9x0Ul_5^zFDp*d?%= ziy=&fOSD$U;+&s`)W@d(Is8uk@8(AAvQ3=imGrv0@IcNgUXAU#`&s*wBw#YT8MW}) zdiCM_CHwcUr$rJ?kHNRQOZ!*o|ypJVe_VjsY;A)mpK0+H~{CK>bR1MMu zI=V)q&qO&c!(MXtm#TZMR`XLP4=x!^h>ac{!(e_M?@kX^u9Nt9;~&!tyWDX=gaN1m)-8hnJ=IALw(@XiBY4~vEhkGgC;&{5> zmCnGTtF3d4p|z!PjcLEN*G~~XH(}HOhW6~ z_rmkbsLugfR=bM64c*y)FweBnN%I`V&*ay&@12H~`*qI-TqL45THb4fCNHXs=1Zk(4y8=SzZ0!C)ER~TXTmT6^zcKWz7zSi^SyRk8s0I27RGP59dwk z;`*@tCA7$L$dGgB@T$YijW?DW)nB-Q@Yz9p4h=MiL~-o@s=uPB^nHCWUy-={z?YB{ z82v{nNERn`s(FTNfhS2oT^F$|s3 zTEA7sjoQ-1@6C{&Jw0&c_x{GW$JCtns^EyA>4x?H$fk1zuJ_YNh-W!`zA4e|clYpv zuJtbqhqEVGF8Nc#$>iW$W+jimpMHCPpns2|!Tyh7C5x+WMHnP&bJeiaId44G$|^c= zTW*7A76H28E?4dsZe%E-nOm~YJS$x0um9DQa52wRmwV-xZ2HtY_=UhXCBXqjS$7+G z2<8EFqIpM^BP`N+~PFC`Iy{G2*<+~fyljA=NlS~b~q?4~ra$s$ZLM z(o85E8uBUej)+?EfJWA1*h=fpY-YKcM82Vc$E8aiqk$CGi1BS_OJ82qHRAkK{2Q;wimoGX&x@zOIlVVO`0xr6#7VXugss> zIn0F}0?D9*%O3?tQwu9+lDgIdp8EFl zFNDpFewaG3XLx2Es%ntiynS*EP+foHzQ9gc>Hor7gFJhx^FQeUoq3_LwOxNWzRYe;} z8^RqSDWt+zcU|{yyB<76M*jYKtJ==n2lPKSd{wi!NE~UjK41gCxff*bK3H%D{4^i9 zh5GUS;@9BL^gY9U~OfHc^AWyQWs^gY) z&~PqY??H^^$#b9IzeUVX+<2K<-wc;Yo$?oq|4Ppc<~pOj2hDLA^#-Pv8INL9w#P~A zvgXEZBQmggWwY=tcWUFjNX4;t#%{Ky%i|YfIv-vUH`e;O5*RcQX<(1OOdwms08)bl zY2XW&TsmTV+=F6fl;h#b23=jgU{ zQVkYOrE|8*=oPbm>SN`quhMYAnb4D*W?ZDte8Zau3PA8@ z(r0_qRFS@Lr{@0I#rHcc?xVu^?~G5a^oO6D{=>vd)*+^8n?VtMrcH=047HBgy^n)1 z*5Uq|56)#U{u$TZF`U{UuU9K;3-H9J@+Yo-Y^n?4uCBmooSLoqK!;a6!rZ3NFg)D1 zpJ!X2Xm_OZp2pcL`lf2@QwFD}Y87Vc03j_<2Qrp500&h-DGeDgH< z?}O9Nht-RQK46;oWjur(GM1CYZ#3JNVi(Z>?n7WWbQULL4l++U`wr@-T2wtOX8!|7 z5DQ0>EoKYnm$Li{{Re_X-zp7)w98}lr(N($7kRXLWP<@l2j8v7C?-IOK>x;O zP{P{Zbwaq>=2-LgrtUyT5_LehXKSfr{momKjn7*q*GmM38-$thuF{PN%GmiObi%B; z=FJ0FR2$4oz~h8INj&Li6)4>Q>cZp0l$i}w_}4nHUsIl7E3kR1oX%us2@-QZJk49g z08k0-dTRNW(0fH^*?i({59_1C z!Qa|F=yUSP@=qPa{JJ(z-Vf2M-1=99=m#*RaPvHqW3pxsd@LZ{fG4Se0ajQIZSbl3 zsa_V7Uq6J8B&HAk$^B{d6M6*rE(0|C^tmP1edN3K& zuL<||+0oHMkRCAbW_7J?+q#byOO#%^n2%Xqr2OZ|-p#H|{Lv6Pza2Et9b61Lm3ALjEt}-6CR+0!VVRk0$QO}O-3oc)#Mr! z0h%kdK2Md@kO}*7dH#hO_wZ`^1=CFZ4q=Y+4>_Sp7;x&&Leur5E>hiYDX_b9)Yf75!cZkK1c%ghf&G3~_N=Ay*ex@Lc- z%vRsJ4}aKZv-y29Z=Q-oq|d~sQu%PeEhj|gj;J(%Hawbeh;K8_seQK&w%bezt4hbs zx2`2#eVKAF+AHhv_>`ju4_~$|Yh}C{N_32@=J3J}Ty^@p#@&jB4dA*6AyX#{e`I;~ z?sJKg*%h|Br?ca$G!q+{V%s_CJEs~AMC0^QSE31^ql<$@&AA+}raBDNhbJsdHQfy43Ye4ekOt3*YF_nbL0a%_zZwtZ^!rbn4QVot-zhQF* zad&sByhM|TqT;T%*7VnTT)F1!SkveKiew{zV>!jJ=`DH+Fb<>vcAmb=CJ(RwS^t9% z)C~F|=+sx#(JUK(l9x)gYF;H!qMMz3H}P#&87s{UCXg&!na^Kf_REalJd|a0=E3P{ z)OezQpt(EqFob!QC8Y1@Oi}V0zw_K%f5Afb@K+Cd{)(@H;ZIA}O!EqeJ|}e3rUL#o zfJtk+5BplfKunkqHtu47=RMDRr6TGnG2QsQw?T7HzvH{#58nPUvDljzcuihn&-nfX zFU20&O&yXmj>{;oCC!j+Q4AmWs-V7jJo-$v)fVseF*JuWSbH2*=ulqUXACfxPs@AGnKd3 zy>8@=u9E#Y&783(iaY9);HBQ$@ms zIigRuaD3hjur^bhMoSwA$kqLGHR!8Z-Qlq6`m}Ip^hevG&AFBN#et6P1J+VW<%J*5 zK`_o1l$+o9M+blBSMKh)a7Ev5hk=+BZd0peVmsf!(Czjh70!Ybu_B@C#6BMZWHvmy z&R6?GP@C?@_MO=BM;A208%dJAm3QEK9m9;U$48$7-J@cxI$ z2Pd1SR`A5DxvY^Aay_&}N(h#*qG$HlZbcN~%Gs>)Cbs9-T-QW{g-0JAr`-H>w|B~6 zMDbM7J~sZ6l>EcH=MD~eT~DqYNZ{WxbAO2n z&FJ;;3(s$A_My`gHErm1`sa!%?^EW4P$YT^`zKR3Cu)7mgV?iyC3v38yE>=z^w}>K z@2<i$~;`;u~gC1?`lWcvNDDH?439~#Kxf8yFZ5uWbVzc4UtOkIA|&8J7F>hKAV z)X$&Gh^H7_f7r-Q4oWFJ?&+R2ZeQ@G{C-ztX~-&sPb}Z8D%tgBojYYY$Ro-=-BM-q zs2(LfD3y)2(w?s@peUVw<6_MauYTTHlX!7RpESi$@yS zUYu~^G*Tr zSsl-#UI^F32(Lz&Ys@*}o0UiYyc$`&_Q6m7-bCxlkpW__$W_5-S(~Bmt(Q70;Yo2D zW8I;Co37&&mVN)WeYC4Mk z;F^rOYh#c7Q|=5bqD|OSm+u^(!5s;@>!4s}pJP8?m(E4i_gLF;$!?dxze;|Lc^u=7 z#ssq=3N+lz+$wMd56Y<}tHE+MY=g8HlE2K_Eu4*dvtJwKNBgepFm-A@LDweQ?Ns8x zH*Ri;UBxF#gN>Vq2aFF#oML3>cBucjKRcZe0cEMUK|-RNJf_!I5oHz=J~FSbx_;To zB8o=Jeo~j;F>qS#j{FPTsuv%^?**6BhBKAj$;~P0yl4Vzb=E9iyR@y#b#ShLHVmrf zvqLZ>qW1*rh`p_0j3`V=T@F zaw66~f+?T8dFGU2p2Eow&oH5xc_RW`@D_`{u#xBFbAo+-FAQJKFQyLi5#v2hi$Xxc zerp@ksH2*|mLU?BVU)r!%%bZF3z_7jwv;5=Q~rvL*|nCPwiK^gzdLR<1Y)@9EHb1S zT8>NTn3S~`0Oc^Sm2?)f7+(puaQie&g%aYA>S#8$Bxa!X9_r{1U1%pGYPadl>r0IqJ^olrj3N*pX6OX&q|cHgc{|_>N?-Da>OSz zUccGVETgb1R;%9m?+!WQ*_zcP;EaNu$@~WH76RVf&TROgmHZ~@c-Bqbce^dB<#R7V z<=!Pwk6-S&_@vW7pGpu9xe?V*2CHvH_N{}X7bk<$9?v|*OlLY}+JZZrOJAzosSSiN^STC_4Vb0ZB~M+vcyjk4>j3+x%KA`Y5sj~I3~#8TXX+TLcL?mb3xKTqRMYVDP^{oVAl~)VbEq<0HMxD=j_At`hP;>CO!#+MBB^^aVY+p-1XT4AkP`zvfdTwm; ztnWG~$f5KE25n``DH{Q%A3}4yJJ|m6Kww4sh;P2P{6ycgW=F*`7zm4rgp|+JZBa`t z{8Ax@jk_t=f+PQ`d8H;POIFt-#o|^dPiyh80|8;Rur2O0Cq`$ zdSi-oM&?4N7$vs`xX1KLPy1cJnhf{LB?@g}EVB7$fj{!cEfb9}@)R+trYV$suWm?q zdc)ZvwbRp`faHA*`e^9c==rk^VlZX0=k z`+}#3fu-t8LoWNNfB+rmhKF!-M9+ux>{2u&Hk(ogqTha#X&-F(vHrj9h!JVeiV((X z_zgidk#*Ma4-GQdnxgTX{rx91V0^~R#B+SL<6PHu-RJO*3-IX2v!{k2KrF zo^A-=9-Yq(2WTY_6!uT^zK1VFc4bYUeHd}(&|XCmS)cz8YNHZmN?w(ax8oi-+*@K` zSo@SGhbsAvnkEMpJZs9wctg064dHVuuD@3qZF2abo4X9-cD)c^I$)-`mnm}QPWxh5 zm+}7qOvF`f2`g9i)e@A(0{1-G`|A3SQ1QBc$<&4D*lJ*_2|f&}7DCskw#Ilk`K20E zo6lZvLS`<5{Q6s3cy#Nf44LeIoc%*P`R_}=+tso<>g0?h7&l+$7B3PTctH*;kqQJJ z!A}t#S5!y@yTRwNjTHd=f*wpmKnJr69qiuMrD=HPe}8yFG2^>QjI_L;4!8EQ+w6VY z8nRH_8?xzBVnzuyiD;4d-7rZ#JMR*N`vmqOB1)9w)+BN z(iPm~v9^N~%XuHhFsCE1i$DY28lR0BoS3}gF{I_xye-Si<@n`bgg#nLfWG!&nvfm! zJ}y)7@Ue!PDkT@Ia>eYryI*DWpIWRnIIJ@ZJp=mbSqTS+MdJ!8$@lQFrZT0yQBfj+6rk9LvajbZHB}m=?;V$2bkt- z(x1cy1d+7Bw)KzYKN}F;axp9a^>4cVqDvK5MU{e(IE@g9(_6?She7C04m8KPUp1t1Fclf9q7};9= zHyzT6BR)G)Wf&Z1Mv2p51hJm#vq!oVu{a-*chZ-OzptyTBs2y#;N(=NE^0#@0|myG zACKNO926RI);8U5O_tsrH6CrQiB-YRE1+x?eAeQ}7 z-pdi+qN?D+Nm@F5EbH&-suV#o_NnNZmU*j2#aEcEtaeXu+rHi=&SE0> zSRA;pypHN>Q#fvexTjubJQ$ZM!2Pr_+s}dZAg;nIyS~z283^MP-h12x)P-{vy;sX@ z>eKWpAi-XePborAN6_w$NZ75#keJna5&(je; zSo%;TZSWcA9cxJ{V^c0$M5`&lLFS|77;*)el%d-l2#iwmyDMkgICnSDg+@_mfaRkQ zL0tUD5}&F%vh!WsZ@j2^LSLDF?vw4N-ClT zZA{~KlUl@*JiES(^b6zQ`SmE8{V^YUYgBMTzJD$6Y%cpSO9t`Rpi2s$e}U4k8~%Ce zzYx$~X9>dx25=1=2~%1_TQ8;A_Te1g$SnmSN@}X%w8|O%z|EDxDSTS4$;>K~Tu`Je zyfdVl(kQ&VzX_FG{sAzTR!Xq-;XbOMngq?<$$j-a^=sE<3ebwMtmeq+?Sm8*AO`LQ zzmF3zEK)ZVRPI;~Sn$uglyh)c=Z8lu=e3Vgry9a0ZdQ8*wl&*XPs|viBT~h&doQbo z8V8~GNA6P#SbYCB^>4E&i?-V8)eBD|jE1WbE1Ti_UWZm8(k?*n6y^aLJv7n}T^T89 z(7pZ#{$63}rr#*6Rd+p|*1YiQEq2Y{=m5gXbo03lR1mhEi*~wCwyFC5ztd6|PyHs} z1A0uiPoB1AgHoET^A7n4ynbNI7gJkk9Ym9&DPv?1tm2M5ckLASVHz%fDJc(fB`PWO zm+;cC<_bgbAdivS%z*p?dpdT7p4LtIdZ|rzHc9YV|I)jHKO&t5?U8aV#kc^JR{+D( z(zjPyF&&u=#)sCl!6_TaWh9JuJxtDDeVNFfaPeN6)yYQ@H-cO2tDs0W#S4qjezp$Oo@&3Q`)Qq+LD}oDm+pim5gHLp81*fEW zJe%u(y+4MJ8Ws-Du%rQb_?)YtcNxmCSxZ&&$o4xK{9pX|#S#tqN=W`Pu@Al!kYhFq1nb2!} zZk%NE*OjFL1*S(E@^V!hdV4q1v!`mkA?klI7y z-QlGq8ddOj>W7+FDz1nKkp`EK1D$+9*4;5*TRyZ;J4wFnm>^oPp3s@C(jI0Q@1_j< z^T(YB33XIHu$ng6Z=2lq4Ir54XWEG%jO^E8@Hbo+Pvp3Uc-B>zW-4F|Y?!p{5QHKa zuY=d_*q|vsm~C5&l^Xk|ZhJ347{GCGSo^+Zd(i=>tH#|+y{6Bt1zj8Zp_C+dXS}X{ zMWRA~t~N}$MLHQ7fI5aLM-84aDJBlal}T$aqe~Eh;Tq2zCD} zc2`{^sQEj&Co7F`{<@%_$Vl`hz{SoH-B=FQCEYqVaFS6ht8pH2#Ce=<&$HOb_Vbrh zoy66mq~Y?hia`r$algq`!yM0jPaGB%7_g_=Jz4_eteQzGxIV(a>t=HAg~yz9V5Lu? z2^9?YfN@QOI(%IG*=Kn+vfvlxa<#Jrw-&M_x_q^q^StJ@I2|W|P<9TuJU5@D&8T*1 zEef<51q|>QJ}TpDQ-KWy-p65ZK)M&2n(FjLe$MGYK;*&QM}yCKZ|%De^ggbXblFet zZn`eU!h&70j84y(ry0(uZ>R@Qeb6m)Mfgr^pt#by+vI2~^4RNm(_yY ztM!HTv9G=%rVwAbIiLh@Xxv`(yQ@nbF->E~(h|9rX< zmtoC$XeLB-CfTVpSOIkGP4xQsL26=43?4D_BuML zWZ(sSWRbup+F-|*Lp;Xf_S#b;9#YJIHDEuXf0|7aS2{~les6|eKeb%oHkIe{IIF|4 z@kCo2NO?%;l6;t-Wtmr~sb7%yY+D16vgYBoI~Bx{CGZCo-Z^b8PtiLRi!_J9K|7lS zZi=nF#@BuF;G6N8>B84BEOX~SKWnV68nRAm^nz3K-*O&&X6h&Rj18kpxmmMa2f4!~ z(ullTFDNH&XVdY zi5@>@*DLlz1D*Dh)r#Ae-2THPj`DjPO*vb0dEBu#gb}Sn;bM_#nM?R7K@eScDc2!R@TwP44sy-&Dm@5vL&zGNJTM@UmeGT4S^6#A=3IQNF6>sb{69}V;v0NYE6^_bc=O5?h z6_cVW`ATVX*7e^Rswov;Uiwv;RX$siF7tjxx@No{JO?M0K!d#sihzKiZU^>%EG~9_ z7#(_YX^46~FMg z)PKec#*s1Wb_Bq)B$e3vW^NLkJz1fBLz}1Kj*MG;h5l@k=t{V0OUqnYNp949Ai;t2 z)#p6*unE_l%8_k^@Nt>c98vPlUN9Aj`q9HMKF(;n%@CrbL=#525g!~UBXk$Qg1qY< zgnWy&7b!Aqo>{2a0ZAHk&N=Rdz|&#rSL`Z6eVme#XA!flDiom)N=LHQ?>Y!|%1du* za>~Dxql;IhAu*zJEe;_0IvWP$hD(O5L;$3A&7xS04X^g3C22e}!>iVhA)HkWTo@F) zAeYz6x_)~)?p>VPntNr)#o1KA7ymM~U*B5V%`Jb)YU#rl0qx{Ruao|isiY+8AX)4IK~UXsJXxKW(jx7`nI z>=f3wyT^Ct>D>0?0dkF?zw+>WNo$N;)7FaUq(vjl{CE8~Zzt%(v9utIVD=fwFTxfY zqHMk1tV2J3cfRyzln_?r&o?c4ggYekSc}`x9DoM0mMX~B*meH8Qxyk*~4;lyd0Sx!TW5m3aWb|3htHM!w3`ff}9ZScO( z7od-t;{T87GVw0MS>pbu$9{Ut zOxxL*%Ao2?pPkfn|GknnF*98Mr9k#4o2HV09_R9>CtPmuB70~}`LwrJeaQ{SeMDq< z7-<<%wPY}!ZUQ6(&aF0Uw8u==OfL>_J+1Q)n#RyQ{br5J zEV6r<=yFSkI`X$ii`(Wvy-i%IEqD**7G-7!(3m-bG75hM3~M>vs&h=P8?Zc4lFqUa z+y8g=KSRQr1wyI62Bwi*hO2?Wy&A%l!i+O)b0amCOK@cp5QP`D>~kgM7lpK4IJZiO zS+c`^q?U+;KMx`rFF@Y@=oj3hE}e82T{MM@~=Wqe?~SD!Ld=Fo|(Ww$8vfnPs+)w^D!JF;!ueAzy7L2e7zC@QmL5q#~Y?|KNx(4wSX7P|*kMizS}d{x%1?uU&hy zaW7hbs*Bqs17twzzld)MYf**Nar&#Ub*+7_=ru18%o#q)so33`2&YX_ppb5DV%*}4 z9G$f2bBP|LR2{%}@;JLIX#aO;Ecb-h{LzsUI0kAh6k6Q+fi-0EZq}!3!W9Ub+dEka zWsOHM-=2+_P4ZnK$s{O0mJJt~VpPLD*T~wO6fLp)z0QC2@;T8(#%~N%wE|5hx95($ zsigq$Q+ zjXRvPvmLr7^ZKdD;PHEJyJ>dc)A!ZJy4me@O_a=h0ugHhnhWIw@}D8EGd89liUx9M zuU9csK5hqd8xZXfNS}YV)0;ncLEm`gubTLd>mCukx3&Q;cgbwKF3CBh&~vOJM_&8~)E9HV814YW9^HT9-q=mF} zh_$$w*WRYc_;KNpbqmVX&(A)_L(%8uSIR^l7t5|XkBrZv7__*6+dwa=ujRZ8AJ2!`DBH_RpIFqAmI@j- z9)Ps+9K-GKZD>1`UHih^G{z>+#FJ*H0f>=LwY60XBp2g*gh2(*zt6m5sMVeNWEjTr zh*f#};caAFUNg95V{5w^kj(m+4&>RifcBb$Y>qcJeI7K|7W`M)(Y%nBmV!tv12h(W zsW(qvP^wg{$t4wy&qOj^(+$`IZY~3ZbT6?>$_oPL=Q=hEbVX}&>uZ`JG$T!!o_!@t zIhR5Q|MuzstB^)-iVJjFG`Y#3GqzY)dRK3#P)4+j?3+&GzQw^M`#mu2$7BZ#@XbiMW@D6{qF2k|<+Avx3^kWegeMB)4?BDa!pB?TWdBc=^2C?ESCg$!ZkwAT z_!_3gj#}7+dGXdEm|8){`>3uLseG2-caIof3iG;fB>d=o51(f1On!}ylIDFLR$)II5dLX-M*|hwPIUP9@RH-#Z}9=Gg)V zqu1AzYNmPOScghVur)Ysd3-et-|}PF;f!GkZ<95G)xGlS>glv0lfFCFtP?BNnK}kGy45n_yMFp$5(0lb z)1KY8aI<0}PBKiScAB~#Ow&m1hbczQw*yOaz>GdKx{!&Bk>}ZxBYo7kUftKd6Xw&GF`Mk4CAIXkkcr zqR&pvO+w{0a$|yw$LKclRW-$I%I*Mth~@)$PxSl+O`Zs8N@_wY>k?65^C3k$W=|h| z(Pms4n*~<4AK0*3j{o-5r_O$+cRD5pcOQ+~rm231w(EB+iZ43NWc7muHNb!I+5>I0 zpqkNcs_l)}ZGImUYctcKxKK$FR;09A3go57G`cyMzMcocn*iDmSlA}?Bi)WhoZI&) z0j@8~cNz^d@=8cGAdz`$TR{YzK}&Zke_b)cR%TxVJm0MO0H5<#PU_o>6DEH5lhRU> z^C*A)4}w{5@}~9e?3`c6XjJ1^E0zy;l!sY@gLdNhtN{8JtER$zsMh(l+5157lc}Wv zAa7BnG0}mF=F0i$*?6Xm<~CDu=Dr30L~d4LXdI|L?x9k>6nyvpa^ z7dTFgcpwTdeda?6UJ{ATUxLIpXH1sJ^PQ8=Jr(|y{&IlpDyNMB^zL-tgX2OAtSF{H z{2NNw>lFi`F(ML|?CI$fP+fThSRQKk!dmJMS!0yE29njDF1>=bfWuL9p&m?8r1$ef zSf7AGQ+|!r{8_gPF$p&h-1R=NDDml@_|+k@pOej=<>d3ipf>EY&5UQvp2V*1;DcHy5w&f1rz2(k) z`AC|la_8snn^3;D%R5^B^=thwqc7P12Obp&ue2Veet+00Yo#49?;PzQUAA?f%aBxzNp;ArZV)%%L1a;Folw`NMM_I{4? ztlij5oeI?ls`gtCB8(~nD6)36l&xR?xz2wO;jP&NAcXIy_zns_d298G<9xRMTz1c~ za;Q%U)1nSNpW(WuVS#DaM+ausdmS>e%?1-|Zi_G9yP!P`JM>iUf~2Rg$*2CWfqiq| z-uS3};W~5^@BBm^z~2rmzkOu#6S|2!ar%^KkR$5l1OK#~fokz^Wk0Gt1!aVkpBZ#G z3bu5e)l19}&P0^)Dq)@q}!wQ!^IOQ}hd$|SYvW21K=CZS2+j4|E}wA%7fptr)o+`Lr#r^PFBKbNh- z>Lm>?cuLtJ$0l@rBEv%Qc6^#QqE5Kmh!MRgMYiO)1cZs;HG1xIteO!)@e9^*VzoYH zW82`wle?e8y)>p5iBesmvF>Sh1+rtXzj}G9Ac=msllUX5NomelS&vrBh3o)O@B5j5xu&5SrX-O$iJjPeP`GEdMoywp52UVLxG6lTezpQg-* z>uw?RK(im-&nsOXuAd~Tx3pg23Rw)YJU0MQ_|`KB%=GpLX`fa6ZRYn^;9T{YMBysz z_TqS3GOR{F+I_L2H^enVM)3V4J;zSfW?*KXh&Ed1+kXb@HIDk_z~<14VzrnoGtis9 z?CvBvY^jIY{)+r9u(Be1-35wug{~}}gQ|Hte&p$}07!FDY5bue`K9KJztp1(SM!8R zhL)~3`mPp=7o9XlaDw zqL(5;tP{aO$C+j+S$3%iHy60|qp}Y5t1$`;AR$$Q)lDT_+QDOwHEX@mS#bx9f@ z+ql;3MMBoP4x$7vnlzknE;p~r5M6JiYL&G@!3K6MO<+hU;~z^Bzt59cB_BR<>6WhU7??Dd`al`5exTbQxB~epG-K7m3CKcFL(=W~4`y#Rd-(B~Fvryk^ zLGq5mN0^GF263{+H+jZ)6ic^CvSx7!yZ zbEE7a3BY^XEy~H+=St&S~l0GSRU1EZPR<0zZ;RL2J^-_g~~^QQy6@_ zW%&0j$NgX5ta`6~)_G(;Z${!vg?${lYVtvFIB-%|UGUYB=X`a=gPEcWCW+~FC`k}R zjtL29_+jCblP!le1GD!-Zov7@$)|!lp48*;Hp+8|e79Xha+%+Tc z%FA3=7`LQN_`v7tF_Y6%9*FfT`Q(fHZuDE^x}SJnO?TMGEXy3t)U6)edkujI-m$%9Iv>YDYPTCQ$>ObN&Bolqw&pR$?a~b zQ+$gKNfG)-)*(ek6j;}skQRn{J!&*cc;Y6xJ%M5TRbRfQNi$(vE~IqguJm>cTwCHX zr9-MB3%5nCFQjM=4#Aa1cG$Q>+Hdzch8PomeE9$;IOi4rkj|d;)D2e}(VfUfa}OFQ z-|?SVdGlepz2wI82GoU>v`il5Bc7RAOEfH>Mp}UfXm^B&<=!Ok3HP#~~{(%5=rQzVe^Etf# zSe`XL=)S@?5}`CgH+I|^B}#-`*qu|mbZZYZk{LOk9uB@CAEw%Zq#LmlBwy0I#QQq4 zr7oD})hDjlsD_45j{jrHwLCUIF4OchVzFXQ3i1GLT>Eskj+f7ZVmF;3JI{lwCVF|d zYLgdf*5vJXZd^YI!#307OzqfF(-g^d;xq+%4~oW3OL2vZL!v`~cdIZEawD$K0Z*{r82bHUH*iu{^9)`;_u`kx2fp?yr+Ju z{@ll4Dlw=%M+0iDCL5u}8*AWM4}aFAS5VpwXz4rK*|Hwa zS^v>zmDKm{zLHvv+4s-!V;MdlygAz2k@>p~s2xihNJFqAuO`r+N1yxgW)Auj&UbjfYi zl~1mGA?*HMHE8gwSCsOqw3!~+;rXqFU*e7p?FGLdt@u4sw>6NdNB^Uh#6%726&EF> zLu1U9F}ZPaLMC!EZ(2FWfict+|C8+H)LZaJj(?AQT)4^4bglJEnwr&VEy!xoD5Z## zboh}vxJ`p1olhz1uz!GTqGZ9#)*Y^Z2-n6MjLrZCMdT_hv~(&2Vx`g=B~jOmy<8Ae zHZwb0et$Hw%4W7(idYhNY(e2mRI?x-bzRDhZ-j7B8qYbdPxw`+V1*Zo5pLXG8K(9v zbFe{cp9?Dy&$%4d{@f=?x7f z@;ErmEk;8sVJsM$?s z@`d8FK~xy))Vy>V_e^1mD6(~2;bO*wEwrI~N-yFa=X?I#7K`Kp0yZ_r?E4+bV;(}n z@+|0)vrvxl&pGk%>lVq%K8oJJYy!EDv%uo17{ZqQbwv?Xk1@FLatj)}M~tdmzJJ%- zE8B0I*_m%!y>#Zb@{p(L&AcU#*K6s$vS-5mx?g^`LTnBEcQ{m1*wZ8a%#Yfha_C?V z5V}9><*k=pS1bdDayem)-J?ZBVDO;o&Ge^yT~~|jpM9UtyQYtN>5Eb(_>bH(V#&k& zpIK_X3UJk<-5NR@b0tNjv->qtow#4-rxBj~_Kt+k94d*%D(0gR3IKYf|FIxemCTxA zV$x=-hRg7sZ~0=T->;9DeaSr?({*)c>8+A5eUB*yK>Eg0O)oPPcYqI-H!MC@vYX%H ziyHZ|YN8|kNK-CGm# zMU_z2Z^{R;8%b_tx4$Dpf<4C&OxM6&v7;+h@=D%XMClNhEAjm|?>&E|HP>DOdE%G!_;;ux#?m8{UqWvF zWzelnrZqeyFm9kN{b2ubdCy%9M`BZ`34P9UP~Rg8bU0%-^N+={5uyoCBzK4@3X>~r zNJq2-cl7H$OC0?kg_KYep}&N`v5C5RmsB0n-lI|sy}aUZq}?5sIr~gEZRVASz^_L^ zE(zaO<7RzigoM*>F&o>A|k)A zIbQOi`jy}V?@7|LK%h~KfVi+tYwI5uwMvS`?oEBGrMD3DtsJ_u((h?eMB_g?)ln33 zVzs#~AACv_$-C=jHLdmXOPOl)+8PhNM9OcYMOO`Ks5GI!48a|!CqHT`02 zo&UM=hi0}(>G%4zICzNxhh2a_2^Do%T!ZnUaepjJETshG`0A=wbF@I2;GhHaZhFM% zREdSiE0bu_CC60!sc(BMJLebPodI7<=a4(?jXR(cmJ_HHb5ugOlr_5|cclSU{v7GP-a#)dn(N z!v-x-llrS|f^z$9RkOV5T*=>FIo;1cieFYz=l4&^+nd7W{I3h=iiqCMUvxkuq-BL( zv)ZjvE7_ZR>*c|$|G-N1Q5J^oj(VkNNaCa^j^yY>U|gM-73Oj1y2X8BPq6{S6|Z$4Lc zIK4HW3d-FY*K(P+x-RUh-{@_2Kf zOF*}5rY&816eth0 z245Qo1Gly1Lu64n3R2MP^54FEUSV|u91<4gdF%jrI@)POmxgS`_$_JARAZv%8@ z?8p;YOfGsCS0;zHFMQpD`%7_1<*Lx>nsI9_N;l2bt{S{1**oqSw>2wMAi>;PqX=gd z&lRb^-fe@{8rhoC4t}g!hEKEGP0LKOQE_{I zebcq6v>=-_Fv%p=%shvxKI>3^ofOQ&ly0)6jhxk4Qogz7@2qz*GFr%2=!Q<87C)sR zPU&=7uivB7r}UJV_K(z6+_23HdulLyZRM|5pz~MzG7xgbF|q0c-&P~4bcW16Xl0ar zUiXR(C`rP9{PFK8)1wc2{6j`gp&aRsO_z$+dSWxYmpW}6~Ux&xewLl)?$xnRf zV$wxNrVR7+C44tn)rxtZAu)M(yEN6Ju0U0Wm)`d4xicAA1(i&M>+?;b+S+o?rV_b= zaQ{6~Gie@B)3`aD#mZ*E87f@GRM_4F@@HzJERi#QZhskqpZWxCuK5a#%eD$O6^;$> zfm9EsH!b0s^@9BL$~mDNrQ*PPl&Omk+n2hnl?$iteE9F2JCV?kJMS{=Cz zQCdIT&bl+8Bj%G6+V9xkF~aJP%b~xvkO)dQ(7*wbE)^2Cy<-DAwa=rbQk;|MJyX_J z6Yg<5!N`vE>2vVBvUx$3<<$F<;FBFZ-{-PkNB2HF^*-#x=xCL}Gk_Q8u_Ai7pN<>f z*dUF)fZF1`Xu&IUh{3gRaCoh6D3|c3HUTqpAtmz*eVM1B=TB8Qck%m4NILOnWWm;I z8gO=;KI`b2b^~tVf&?Toy>2p?A&3v(a<(7k|5UrJ{M@T!c_m(X#Q&}C(v0v5yg%2( z&(KC4X~zcuW%p)@v^+a#L%twY9l4F%X*VOijq@~Ez43D)>F5D$VwcqM*SA0=58e*4 zpHDeFo<1fS_nO8IuDKnP0CQhiRJc`p%0=<}V)&mDIy2F?SYGm{Xc781WY3*#40RTB zlk~wt!i)Z~TmY!#S^GHm$qJd^tidr__UIOEb2&8H;H2F6+N#*illT0F^P-_)-bb@9 zU+s;UbHp6j5%H6{Q5FZ@q+qOGZstKvwO6`+Xz-3c$<8NA-?-J|)vI31Km6n=!5%sl z-xi9{2n1XAvKycZJ&3_k^AkXeZ?PN~yu5x)&!ZRCb|ySEDvti}SIh z1~{q(?nZrfWXZ(vB8WFA7r;bGqK(752zk}A5B1tXXTbqqfYA&=w9Wcembi2vM?~~# z<3~S)IYK>6LzzDpq_2I;045SH;&(dQz-00DMgm&<2xrlMCSdSFdTGv9|Rtr83i3wL}*@i z_T{-0CD1CNTKUNqlirRt@%5%{rO&VHlEPuXfq9*pI9ohZXxNSLf%^@;&v;Ba;Bu_^ zt(JPq>1=MU7Op$7yRMV3rym!yiMw=MdXfrss7X|Da@V57=V#|1>y=T=#~s=YC!?~7 zHO;_W{42kda#f2=1}LXni+|gz0cB~AYD0xR11ywyuZtZP1%l&@%VcJU4yN^d@j7q7 zr<+#*n(7ZXsRsFEfkmdSv`LWJ1>(L}c?-Ydfk@96BtPw=zouv5rg?YIGt)8UW@vq& z7sIp;5Wiba9MdjdQZRp8mava`0XKx#FE?3=sU%g6k2N0YE6gO;2Ctx2A&hI7{TL+K zGPVlhM!W(jbRf6lf&;jTZIch%Fkg%m&o+krHPWQx}SjJQi`@2h+HXJQibH9ZWO zW5pYi4f!=hh{X&Vs(GP}4-UJyA*;Jm(U>W0v9@}yL*w-i&EQo*B2oFK3htOEBrvJ6 zcI4JKi{v}KMO|7SG6IcDluHI?!mFcpv0IS5FZJ$Y)uvZ+EA|qUl?Sa$O91g!5k3kI ztO&e3ZX2Dj$P&{^{q?EQA8GdM(Tkd5j)$Yh??d?0_oO92K&C+?aPv?%$|<;#;~z1; z4h&Wu6ycKxHu?2NE;VwpH^Xz4^@WW&&VQT?=`btsYJbC}iqGo0HBgC@dM%=ovBoux zMuOJGZ4UQ?4%*7J&bC&V>3X&sdPFrqg3S^6?w-FlPz_Yodd-&&moAs)4Lz|QDoT(p zcu@aI>&2%qKOS7h!uOqQQPc|hNXCQdkU0K#f7aRJib2aBsw!)A8CX2Jjzgn{37h#i z0e<$HQF^xCQA}*MfLcY4e0Q4audiQ)iTvsB&Cer1Z1$Xm8|HMUW+}Y|-vK6B(~O1<+_ z;T|7{TbVK<@muFk--6KjRa0oPg!$Ed0~Jgn%>pqOY#%(2Q_CHx&(A_bBW)RnJ9yIM zSbCI?7k_io^eZhc*OWEm4{}%SM(^t`=PYu69ATZ3gT0#Tc$Q>)I<5GlNU)$xN}KiD z!A;5;9mgM^|4w97U?S3Jw$(23fu)GZ`BBRarNI-?6(4(y5o&7u%Gh)BrFGD8QX47K z9))I>9e;`9bBA45vqLcc%k8Bw6eywbc> zU#c&R-tG^T`@!{Irq1YYus9Cq)uB$^7qA3l;Sank7b7DZiZKyOM*3A z&V&ZGZ22vD>QInkI)J-Z^IY8gh#d-dV*KnN%Wy<7Ifc zU&DPX7s<#4lAMTam+3NH1>(n<%$v+12P7<^^tgZ&#plTsr0P->-{Wj%>fVW*fBDKDx4-ww;zUZPce`NWpb&ODu&@QZJGXBKq!^2)gN~ zpWw~l^IbLF$^_hj}Ip9Flpbo9lN2}_QC`FR)tacP?V z-6L4>f`#}EZ=t4?`HO)ZMOswFgswIbdPzLui*^iMq3tSnZtw38wNs`qJ|-1TxEM$z zD?O6GKA?AgFiqMs#eOxgi=SOh&2#nh!0aDy{VI8#aBUBxrzNE={rhOrx1QM$F!S68 zsI85|^tvMLJdHsb+FZnKAf7?JhVi^tgV*`aSYhR=Qt+cYy~y(> z$ri^%TU1L!Gu+x5?K1~#4^RyDxE?KlT+17hsM7-W^(fQzqAc}Vnt*r~Smayh?~Rd` z>K;1g_;LnkO;)I5XNrYeEta-IgnDF(Q{%49E1vI^j=e7Y!@=z5;*w2^Ua`}PhmGMr zL|IDNo9Q4&FuD{{YDWIt+9#i}R4jpmYiDT+5KE70a%gS&QQ1c)nS(05Kgt*nj|((k zLlOlqw>lQ8$^Nw|h+fn@OQ)E)WEPy;J1+<02??SZH{g#jZdD$<$SVK%weV+8WiK_B zts5^Hy4k#0v_Cxpepx(TVbK7J&y>G7K+5r7LDtL=+nRHinH;Z_%?{{bg)YNj+jdYj z7b+hyD9~VOZ=f)b2w&{m8ve&}##n=!BAQM%-Ty*&p%~)3H3XV5YQ~~p77#29HF_D` zoi`CiynNeB+myWPX6&V_8~%AWUvGXrQFkAl{V6_om;mEqhz?O-w}ryHT&y>H2*uws zBV(?M!h5jCGug795=Mji4e37KLS&#kdaTg%BKa+}6H3mNS8}>p1eTU=JoD?FZV{bt zm?xsR{;}MJxCq9OqedK%TKR~m=?0wO#rpPGUd8wbH-dp+ceBXfItn6@p?L<+xHZqM zQbK$?E*JM9H@+TT2Hn2yaB|!YM_VFut=dex+xh4 zm~n~X@@*WB)QPUhVRC3*sR?I%Zs0d`mF2_Y_e7k1T?talijOr~~aD^Lw8=}*_$ zXQf6EHIIU7e{nDej$KnOF&#QJ^#oLwG`V($vL(8^qzP5eo~i79&$PYoTb%FS*!Z|O zQ@P1BDCTL|)^YyReC1A`{-yQ{vKoB-WvP9w{xB&_(co5YuqV!@%mq0~^Pnn6`Fixd zaA2i}_hg4j?P~C6fk@{&mYjI#rk0fKG=*wkf|tTxeTj9ASHNz;9I2$~8tYjXA-O3-)BTki$e*oY0;SW~$!0v4?^2tc@=itgI z-`g>>GPlKF|GLg~nI3km&zcWJw}t2dOD8Y5OKb-3K1b%XWmtdNHW7WKib(5n^cYK( zmLJKttFAS|+j+GBT9>Aup4_rMTp5+P%QqXa=D~dzZn3wHXuSNwDv8th(?9HIQQ(nb z8S;EP|IXrlm4(Rn(CGL6J_UyjMT0a|c$?erT83E(5ikk&E#|{yEis^($l#rcmHNG$ zg@=gNiy^|v=R%k+1%9@T=b>7R((x95YFtOZ-bHq?(bA(Z02Y$Q2>!j1WPWF-4+LcV z%~;@uNwd4vH%?#JOy7ANUzS9?6sqPdoD#zC{Z|*^RKUx*z7AO0k1Ie_hTV4PUONn7 z#JCWAbb#0aZHDzra$yUeG;z#ZoML(ZSQiCERy4rAow}Kn=ga9V@xTC$0xq}zSTxLO z=&1&dA_KHaFv)UwyWL=JR20cxn!XsG&0j*Smu%AN;`;@?@rMO!<;C-+ML+r%;un4J zqTtpLL}a#!SC{CzQA&&)$E~7%?1lRKus`xB(P^Ri=7JF*K#ZCq2e=!>v;q5=Mu>ke zH~0Nvg?HqoMf2pU@#|MyFn1%2OFi!CJgw~2RNP`ZRmJzvLX8BsfxoLjlfBXBOje}K z14d_h1@VWxxOk_5AEbH0pvQh=T0JnL-%Bw3_~rs*?V8{@38w>(rtu=f`v5^juf$zp zukClU-SVD=W-`yJ@9Op&TRCNXx}>0@S=as3mxnZhlve6~A=Y14n{_z4cV?JX;MV+C z4JoveSFH%-p-9lQ+u~kzd%7Q=9Vb8&OIHzRM8u{ zHTy=Her+ybX`PTFDU~jS3PdoKpHdv0WQ}e5p!MSAYZ%mEHg3`VD2c);K=xt z)+a#CwI64I7Uo<@4{-q(f9*-hGJBTsmwsmt*j_$b`|dsk-9CS#P~S3h(Jbu=j>|WL zKz%M{1UArcM{ZXK=XlEmV0=+f-7-$h#(=*K{n9HD!=jI-(REo_02PA>-k@RS5xY;0 z#G~34pDeK$cW&nJaSNOJ4^pnUK*t4^mYb{N5{q(r_x!KUGKbhifB!M< zcih%~4mj@iveVP^Y|_17OyxMq2`p0N@+*@7pB+s*u#{O@Ej zq0jKEGcEe4JMYY|#qKToc`w|bX` zQWKc7x@vB;$ZTIHjH<~AaSP8)&O-za(M_fYZKVSa#cX#@|N6)cJ@238`)8?LE#TMM z^_qCyPDaDzObw1ojif0_bZNmdr}u*J44EA)3G3dRW0%Ha5EC82NP2yx3mX3R;b#BV zLs#79)fL}b6ocyse`xbJlv*+xK&m;yKOL{#^*$ouO}+lqSSSXiC%5pt+Bw(?xkwd! zy#V`+{S6mg&adCYEurl5+CMVw-W2fOx3OmiTi_#Uoz)j1W|H%~qtBov-todCX-C30y?wX1Krp;NWPad0{}Q z0e2tsI!;Y+k*FaR{s-q3$n9t_d$OYlfdmIA`-*jB=>#F&8L!aV{ z$u$ra`P+!I_49{d;pX*19}*UYShFUvbvAHS!Rpb?GL-5`w2ycHW_TTaAE;W%%&unq zRxrggn9MNU6g;c;rglT{QmftRM^ysnOR{!oUAV0*vQ$A4;V2VyivJt$&ONtxT=)Es zuR@pBm&Bh{P%R=_T8PA}xGxRUp2q(%h2RDaN zo&}*{Gu?#P5JGN*y;ZW!ytUeJPrOSgySdH{o~w=D9k<&(b7|(;={U<3zzM@gq7IwZ z)rDzn9?gesWv}9Jemb_a2?*en^*J$PJaM-)pc7@3T4j z1{S7fS#@#g)$JH{RN{+}`S-bwacYt8vQ&ks*u z%_W_3N3l{#v&8jAD)fipSq7gY88Ur^YLMw#IIdBNZw?AeTN<|nAO*a*&hd4V_|w~- zNqtGSl)RDfPa8w4t#PfCy}lp|Hd?+W#c*6(4(&!5`KNFi$EP%6mFp3d`Yi@K$##9< zJX3G|A0fwNvUkbWBV8tl+xcI2+m!Qg0tJNS9V-_~O5QfsoWb_8>Qb2lS<5h& zTWq4{cNdtKi}YKJ1W)h6_D8`_B30y~DO4_f(&nT3p*f?w!VjJZ>n>af;k3$oDmRs4 zq#sr#XuIe`Stc!Sh5QMA<|$|U1cI9;IX7Y^P7ITA1>w?#^+(rz8g9IG+a!0o6>aG@ zJ=11MHV?g;YQtVIbVxeRZig|YiWW9Y5h<6}Cm^t)=@4}cPLdR@1jBq=)V(d``a-_< z)!kMf2m8_<5jB>UhkCaKIXP_WR_^7mT0AV;B$L8X!#%i_La2-5VW#|tq|GDP8pP0m z5^{`7Y>MyiW@4^KeK&%m4b8u0TaIj1|K`vY7T{fIY-nuaHW7J#G0XI=+g9r9??n$+ zp@oXGy|z9{i6ur2Iwl~nksQbdo=?X_Rz^j2zN0ppU#Ng;mzGS}rsJ1=$kXJ5!%$P~ z$vS+BSRWY`HYP<2piUp`bk1_c`Z-GCP293ObMh-YKQV1Bk~{tHA>o{MSyxZ`k7s& z;W5Gvu(D$<@^sEBbAEE5OLIm$N8O`wDS(9OhB3r*dN<0~cAa>$Y{%5Wms?zYeJMQ` zhn$>OBb-}brsCQ;K8|0!1YYzT;z?L>8;6JUKauO!;C33D8g<^R!qkjHs+Nz9e&|Gf z{@~7wiY$9PHsOh>wE)Y6RD?DU9#4f<|DkY1ou3CM6exar{*BrnhnQnS=YL?^+?Z?5 zHmiBO%F!1Y5OAriqk==N?F_3TrOnV7$*zVFY<}1>`*p9(4*jlo#k$VAC?_dIKIKL5 zh%;SbEkuEm80A%SnZNRm)k5YScKQDPKA-{=Q;jaJtRI+{VOrrTt4^S_RHiB6c(Ufv z@mT4SqTh1(Evbcp0C(=9+TOWMj$2Q4K05DL?3ZS-)ym(S@p zDtrHG&&3XNK-OW6MInBF6lU1LbtSC0KDw>p{hegHvVC0WSoFkNG??P^h-nw@P5RFX zwD>Mb;6KTy=}TvEuZBxHbR;BS-eu(ee8wrw&t;}*S;@Bwf(@sW7U4vNUGWbuZs!Hv zF}K6yGrVAH3z>(oP^|OT<%j36A0A$lh5i06+WILn?XGy-z3`vQe+CTD6Gy^4AjvP0 z;VieE?yFmTv~>Men8z*QF5k1fRJjR>FT*r zOb{tb)T>%NuF9<9DI_QU==BfTQJ6-nOn-?0zZ<*%_glJQA|#(XW*99XPT7+wT=W|u zx=iEmU=U{o?WWVl6+m01izE_IbPFb3^gH)q{oBRn2^?65O6?#$cS{C+yd?$=TMUVO zmpY#Yc%~T8C-OTlC_v2XE1xykK=>?hw4`#Ad^KYtVqzWal08~K0EoK<6;4ERxa_1@ zYym@eNPU}|jd;I%ROI*Sx5RUGDP)d=Lfp3VVO%q$d{i~=;QiV1?GLuMP1_iq6`b3S0-+#_Udt4MM&9-iKWr%eXTX^D5fJ<(_ODlFF? zpN^EtwltVs!kC8=`nxnU*DFv`r%5eNS6gY1loW^G-wJ4Rx1JZTu*}!)GVQ}$7|A3^ ziB4^~mzy6^1oUL6%pLLpgsQ?k`re$5GNxIT(8T8svZ=ds;y?U&pcZhZJ-sg)T1rE- zF}U-$_;kZGSn2vzpLuifLncaX>F@vJ9ygp7(doZ6x2RnEW7+#T39VB4eC-Dc zTt4!o+}SZCchSqKzPPRwZzPbhTHvGHVzDXblsd_m!MLDH}7J8yg~} z-H%}r(_^)ca?+HQPZnqWmoLv2_;egCJpa;Im~GW|KifpBXWeTLpPAkFhkOL?piphN z$bf?a(lX7DE)>PFEj5bC`_ST!C=WBgo^1bLSrxUapyP0(bdb zR+hx72;4ueci4-XQQ-(&e!rcY@MkHk*W1QXz_8k~T!{NkMw!uYRkjl2FH5AeYxTfV zRLDoyZSJ0Cy)F^eiJfMzR*df5{(*vYEFOP6h10bsGUwwhvc#Fse_852W;>mh8A7yZ z(P)>CzEx3j?sH1_+nOpX^U@Tvs9JGR64EiVYd2+fY&OXHzob_r!xMo#Co0^h3h-nC z_q{4mYm~yP{@b^lGFE%e$5b?aSx8?>93HI(Rc%?Ff3?k_m0jCzQ*LBNGPiL>t7n5- z8Pnt9Mqyfvi^6m{T7+U4iKzkSg3nSTV9w}5CWO=l2om_Q2U?0hv^==lQPq}>bA;xxC4^rm)6>=yCi`|rS{QzkY zCwujuH3?D0&_g?~DeU2zt!k#PgTn}B%W|SBk1nH!WbzaCHfx|%MW^+}>B9uy=}VncM89U$wt*!F0@d7~ONaaOZ*q@w1~ zF)BMJ-Q32f8f~2(`XU9?deIa>m(gjrOsDyPGiAb2HPMZP4U3$RlyNMBy`3)5OkQpk zkLLr|8NRNQHWhC@2z}G;Vmbaugso16ry^pi{6QI(Q$61pQZa5o@~%<8Cvi-$=|nsr z@}pVfyNRR83hkY_ml9({__&jV>eG>gN%Uo(OpH(6bT-29qd!=TS|wB;&N4GhrY>REX7`LXhKT9)`2ftiS(*O=WZxIl&%R#eSBL15<9Y}HEZ9%=4 z*yMi2VM|?{QiI^DMQM0U%_e5_=bxWp=o|AkiV2CT?r%#aOFQsRdXOr2`S%8p`a>KE zTCO>mP6r@bZtKAe_?%tf%zl`-o=GG%v~BukN~a(7#tHO*!ZGDF5a2c@gl)|alv@(Q zY&73C@hSepf2SZ{DoxD^KfHRSB^c?~;$q-G#&b2U=ftDCym=^N_FkrlkpNvsr)xN) zQKA39bT_2dQNtaPJul7?hLl2ER{!G>U+gTOv3lnk)Y>l<*j44|HK7l8oDye0u{y2R z5Wj+G(cCv2U!J#UQ{i!847psUt<9F6*fAk_{4}W5(EbD>4$eEI0pRe_3;VJfDLlac zd%W!HsN3kelCpYg)O#ao0%76L#pa)(_qZqO-mIRHP$N$~(@CCz0+#s)J7;|6 z3h_bhjZUvB0hSsjlCCw_A}=k6vDx+7Xbjr;|#{LIdTRBS)jWl6?<}9Xnx~*=kq+t z7vt$j{?k`HppoD=Z}R>qIeN}mm}gc>9#bGb?b9AXny#dazW5wglE4sn=&irjL<*3`MFa+w=10 zf!9#x%4_2&kBl;XA&Z)(aRX=PVT2y|XR4^OAp6n5vUMHKGTZ#il9hkgKYa&45q6J+#8M|h_4;R!{}~t4&=Zu)4=hC zM86K5`7~Xzi=v@+8sJ%L<~O()^Q`HFczC0A(xIb(pM+&jze=A9evJBj-?;Z*ftKr> zZh0ahKQ)fBxs3p9NeQEYfROP~ruxPpcQqR3z}N+xfaw8rneEF1w&K)(qm7r1Flnpv zW(7+<4xVhgK6O*zIf>tEst>+jy;@)2sKR3=rhZ=rDe{H5oYLX+BS{=};2IYqabD3# zyDCKPZqI7%!rKhD{4$_ycb_^6?j9<|cuUPHV4n+Rh$>;R*aF-hkXX>SE8Z>fsH8aD zTCu6=w`=Ik$qcOa$$1E0%k=<3Bnh2%` zoa|UmQ~)=PIs$vMQFla6?;Z-$TdRrKZ>asq;&dWq>cDR0Xv-%oGtz8hBRUl9MXskS zA=)P#F8%nK2yoke$#EvXR~7bEhLsiSE}oGpruzM02yK!2BVxL{pBy=WYa$dhfz4gh ziWU|YFC4DBYJqO zry))_d-UzBWkB$xCG!#0w`vDLA+U|wY08k+`g^)l80esZy3P>YR=q;RZr7#M`m`>3=33cEp{__ zmpyFU7$p;iIdDmGfj~lWewz{Fg?%!$sZt->{O@YB4lAX1=)zV~DZB&g&4q`E?{`dt z>F;ku$9z4S*~Ka}=e$!))>zJu33Nw{qN+S$I*_*!2WmowEX{}cwh3|x>oMpVXpczza|h)_2^PaniO$MToBqT31+g5Ht!GQi%Jbm zgVvPx=uPy#wHINJ7VqOaC0i4VXIE!fw$E+W#LCnknY z9#5!={P*hJLZVtsrsNc7$)elkvqgz)wwKRHIhYGvS2q!AG1c${yU~4L z#hu+pQgW81=d#9}k=uqd5mPRwk%sS?O*?`pe8iAd&w?5{7mM^Of!x^x2BBR5B7l(3 zv;u8TN8?7c+4GN%7QQ{A6+PDs9v!4;3nY>%P&wI~C@`!f}woW2sR*^tB zC=Le$GQ`^_6-3Ng`Q`o1LlbN*j+XM9)~gT8Crl9nl)8a+()QT{5REv8hyh>m5!0O# z{4B&*tT%|JRkx~0cC@xfC=LE2T>iLN>CVpZVfL-*hc8qWWe4rHbbMc!hyweSRn18| zw7q@I)WM&rsexs0l5FM6QVq$`0y49?8W};^@;zK64$O&#_Zt+RR=fToe%jNh1={S8 zHV-RFbVAeGx5W;*;q*21%yK=Jlo_&mD0Q_gG31zG@NwS&AF-VCtM@Mpz=9?-uzq`n zizba&A9tm8THNt_XP`v;^lXfv7RJ!tnBLrKzw^4YM4WTn`MwWC{tsLvMwwlh%>X4)TOmi)lyQ#^5y) z*d(+E{bXCXgLL`u@qPaSS3WJ@GX??5FcG%fV#1eduBWDKrUBus$R*Npin>p=onO35 zgc6Y|TRG%+%pvikBaa_9fri*XEBEnD>sSn>Cp0IyWay~$maMz*drtccfvSyBmlxc` zxFmUUPIfA09Rt(T@$~AYoYj;1Q_B~l4fHC*HdXP?Rng((YZzHr`+4|T zf{r%pS)H!s{DJhGfn2CF!}0VlODRg0e1NN;M(`eo6G{404Sz+Ok!%n`iovoX09qoFim0d7SWI)~f2R0koON9GG4g0N;btnhBE z4|9QN+Pm>ki~XY<`o%*8b89ez0Om~>2Ky$1Air52yd&T+ zH#NMqkSVz{_T@BhQaG>)v&k6AhUY|g)2Bvm{xO6AgG}|W)lWlKR(f{olZyMHj!FHQ zL7{#;T_LW1iU-?2Pz4@IqVcLJpK5S~70U~3k_vXE*|T5Mil@BNY!vG(ZHdho-2O>O zQ{%`t?hMJ*z~agptix$fWCUJ0bN@s`v=wrxWOc}K#lIDL;d4+xiHnJdP)MFXW^`le zvxIyRAMBQq)aV-jrXn>0JikGAUz+Z-&HHFY(LLxxy~tv)HjYlRqBo+yvQHw zDH*Nq1JX4Pa_XzR^zQ^xfG}JX8GaVg@~@$v46U%#3whpv!^;k4$jszCQfdayCFsWP z!f&o#apG@C?wkMU+M=M}lnZKq2MAHg_VzXFHf7{7hrX|i>Z zLzOMr{FV>FwrK9NY$M`U*qaWGZy^fzG9MZ_mm7^oS7Q9E89-D;6&$EPBrh;$ZS=tY zruF1G&G?O*4sE#Z3XbazXRh~x4cyvI2R448%$d4pm8zYwjcFhgV7G@0^))}0q|9KT z<`rmLi(DJj9<3~tI5hzPTWM5HWKO;6lz?ptrU*X2<$w3*g6pt!blRGnek5TRK@X%i zPwgDH5wi^HnRiYapt=en^d*yuyaiC;rvA$k*}|FjYI5Hvuf4&-FW-NG6y`d(b3kkq zi&o5i93r)?KIGNkS1vs|ytcN$6Z2?-v)sVZ%giFvPqtC}PtG8wtO;g5g!BH(a*y~s z<$ElpMNEwr=XdaK5B#2=aEW^OwiwU6u4&4BYD$a*b#!z+`OB^PI|a2bf&wDH{nNW` z-|S-E$;Dthm1>B0x{vhu-WP(6fc&wxyMg25Dlr-g-76X@;b=xGRT`>@ z;2N|k>@v9&mtH(8fRYlcO}7g?jGnUg(dtD>77^^3GqdlE!7K(ZHTgYVH_Uf|18=6U z(&2KOu9z$|M4nAkxlHrjaLqdtYB(-A<`MgF;?_OXJ=s9S=+?Nxo=d0u@AblzAa7pC zQ|?mRe6zZVw~Zr1p&8!m>syi2$LQXaIbzX3JTI>z3=o&eDtROkx~0*leh^VtNgz#c zAo~&T{%d&C>Ig~ucgT4PzwqUOisDdBlVXj$s(azPj7Lw;DShbMwL2AlTqq)?{cNTF zPwT^$^)z3yj62bn1S~u`4tBNUu@cw8+7O`NDc^m*_)~oFj&4d^totzf{XbcrMG~4d ze_8%{cmh8;^8sBV!z$QsdR)5F-Lpx`t8_oI;bAovUO>62{;tpk#++{?V?$5rTyVQ971uP(~6?SLE$okN| zmN4Z_fo;^lL$SsKs<)n0cOhUqBuu^$0~}%Jhfv;rbWd(5#Ms00pi#_K^LI~E=Ec>( zhr$HcnCJd#E}D08-Yyi@ERG(J0IKJQ%e?nWJCwAiFg2w9P#kGs0J;`bNTs}U8MgSP zI1>xa#U zoJcij;7F$3!Vyne=uv(C5pE9WnvF=tNuUA74ynHe~E-`a~P3OSwu5T8?qCo4^0ExK6I6h7USItJE=R zrc3ee3}8PzgCIUnOV^s|ExcA{TY9gUNA!JrcW#V)Ri+mVE!)>X@B1@)>gavSY%XhM za$XXF3qF@gc1p|FVG2bc`e}IViIp!&Kaf6WvF=BAfDeeXoCt4|=D-QeNP`4$Ei!JO zD|R5@*(?BY?T?EpHSf;U7|NYf6AnQ#xHVsg%Vd!cyn8}<%N*N%;?@DZsml@BsAoz z9W*j@23D;hqv_RVmQJYr@UUhn0- zx*X8^$GuZ(7d-!{f6sawpw;;FF-o7KJ4;y=8 zTJ~UepQ(uAugCHoW0Rwz;e(y!pfG2@*ep*FkLxd2|*xN>85-@F$>*>5Z|C3CT@<-S08T;2;O{U16;PU&yI?%mci9=WlP zzSv(Ww`*-9BE#BWMbtpVV0W|E2bs6mLu;X1hShVCWe)bYWfDA)ZQSFO6(X10m>Xu> zw^R(p+qd){1$F#{ZH#LbGDp4e(O;hyd@YcKioc|}vucuNoL<;ojq*DeW}0m`W5`)( zayI`-F?FXh_8@rnPC|j+POwMO)KF;s&gumAO{;`u2-nKE=#D|g?uZ};^GPLRmp z5YMs2?~M&vP_6n5XHyC1d#xv}^IU@3%kkUVwC&KVbKA7u5Fd(HgDJt@fUed%g;UmE4=GN^=_Xaj|t=-KT)+hC}tsev!#{7mXD3 z{I}AyKVLZiaU<$GA77HMOe5=04E_0}VyNoRu}xuvR@NXtM};hMj}IM8$kD|+FF&|tDQjO$>(M@P(V5Tg&9cIq)+cL5 zYc5)s=N>&%xc;bP`cB~!yMxT2s2>8lgs5u@6C4V=4rT@Yea_*Ss(1ELn$j6L1=4s& zSS{MtX=J+AY#UNuTsNf@5oMF>{CZM5Z9{P6;jZBI@Ee|!IwLX-*1?ds-;9-&pT3_@ z3-aUS8{kBJs>x^HcN=4CN^Ppm--32Y73UOHS00S&yN~bNSmkD4GJ?2`YD7+L^zm2t zgbePg4|^@L={YE-1e}#~s1m%9!-0L%lQXyC2>zyCd|ME4<*tZb+SIFqNR3!whbvCL znTPgz#==~R#;RA#&6R?zAghf<7@%MA@dQw`X!=7p^{Zup0++?Ok%od*!f0a&P6rBI z#gR8$mUugedOyE)hWhA8Yhg1*xlN0kUfc!>seYWzc82=X(Z3=R<)2z%*GIr-2LAEtyq~Wrj(V7++Fqe4ZN$H(jY;J%$7aMkE~(3UnLo zoqE{sA4LCa+;x+cNiUv#-lt!eQ*nEWMIt1pTUILGL~ROWmOm0!Qyx&5-gDLBRuG2s z!9?QRO84&Jm!otH@mh5yp3{Im(aQxRZ$n*Cj?i%JGc8{1o^-5rW+qi^1Th=tWVHj; z)4abdUiv~y!*iXlyfrR)S0Kk38pCt(J)N4Q%b@jN)$fML&{LqJPwHJr1^%>FJ%Oif zuvU&yNJXv~b&3hjQT@a}4v5FS{ZjTUAVhxTvn=z6c#|_I1;cAufHUU}FVPV1{WavD z`CIR-n<&lOsi1^3!qfAohNj3$L||^{i3N^|-l%21=Lz+v#O%Q2FM`GAfoFfFD{i%$0b{q*rjMvDvhawtMJA3!15+KQ?7P z>yoj&Q#3Rvr+ok$ts6e>nM3}djN38TN2wkv2~1n%epuAi?a2rQ4QS#KdRxqn4>{u-I+FiRx zLm}cUf5vKCFO&w%144!JAVpIklYlbyI}dJ7Zw99khyJphfrbU7Q|p5|e~TD%sD6KO z4KlZTJ~?0hQ>;)xh|I-jmazE1Kr7&hlH^n_qAv>iA;26|(0Q|83ar#>mzyXzqqAa_ zmf*{8NpS%k<3XdRBx?4-Sz0JvE=p!Qv}0i6zR~CjcwR?6UwXoUc7Fz!Z)im#u+qfa zCBvfO613xok_8|ilUDQ-Q*UphCURKl6WOMztZyL#P1P-7)hpsT+x$Wnmu4BDH$Ar+ z;WtXhTCBn%GBZRSB$wIhmaWp$a_BbFpCfU|BI;Ib1E+zhCHjh8TYm^Mz^Z22ba!gR z4ylUI%Ep@DM=4!~!f-Bd)Q#=n0&%T_=JiprtAzyW!g#x?Ntk9{NwNL@Kg5S(y~kmF}S;2>8_TH ze)Td8(?mKFZcFB2wDl`AjT8dS0>kXiL)&$xy4P&e2{{H(urVd=kC;>OTEEHC)7zuT!P*-%=j)Ms{DD~7Axzpj3pw4sVz^}Uxz<=mm;-(fT=#+^fSmKrlkH! zgsto}wZ#v1u=|*JXg}xbmK1I{mv?pay^KJ0vDqFn`>5}bvATzw++LKC={`6K_1j+C znXpWLnFc8K8oresRgU@QOFP^9EVK7*@|l@$^Abb@rqG~J(8!UjgakvDPo?W2l&ZvQ z;T6+)#Omx^`thg3JCV+wc6{w%pV40PqgNl~xE6gmonmYrb^Y|q`^S_Onb7ASylwC8 zm{(M7TyD#7XRkkUIrZBL2_Q|h%n_;`dGZ@wWmoqwi%Ox4t%5b+z>47kHw{wE_$5w# z~0AtA7Vl`kL%|Vv-5K@uQ6M3Vw&3~uTB6y%DI&^JIB#x{c^}o`^{!Mvh()0 zoCROWcNl?nA3ybzh11N<(7KqxVYXmQC=1i4KkEbck%@ zle~PPnAtG0UtfJt1vBu>r zaT2NFu)4~?IIOI|kwOFchna5w~Cob$mrhdspOG4U=7EFi>Z;HFSul z%RP<>?NM06H|GPwCjeVMj$5d@p>dQXCyuI`mMfeqeoMY>*5Xf~!OF9d%_^q{68-Z=E?L>>j#~=eP2}Shria;k zBW(d#X`8h+1^}UVj#kM-Z|yFpT|{+^{q$(z+KE+ogA+-8^8tRqsz)-sx%ofLpj&}{ zSeL&n%ctS_2FQrd+@h&+XzJT@xBIQ1*6*)&TZkkkzE+J)T*|Xewc7>x`KI)ce3ZxE zR8ZFBWaGY}Cdjc_GfI&?Q;3l2EwIn9i^K@W)H&2A02 z|Ew^|imFlBfuc^dYh8Rf;Vj5Kci0-LW_pdpvm&%`b&}lfx7JjIqU?@CcjL^IyHA=`xUOI}B9lpEz>a*stGQ zRslr{APnbl#|Mn6AQxolVdu%fJ|`_{``Xe*W?QHKir(c4v+NOq=aXV4i51@4KbezZ)!yuwF+L8SW;}97ya4Uz^c8} zOvWH3F&l(6hhSVy6UaL!lv(u0BXMxCgRP!p;0pez9RKWwgG~|SGBa%IHk@@uj$c(Iwm#Kq6kH^UYcEDwYLX}~#^D<4N zTyHwf*CAL~t z94*SC%EyLFkmMb|9_xt+WMbK~l*Lz3B|kE)jX!)TO`R;`XQqvPWaax~RMWt%C_n2$ z^gz8Xe4AKVk)InKUj1YW3!9k2)$fhsYN@@p?(aIfx-A1qedR8&wPG@CP%5kj=R1}9 z^Y9q!0{Gnuv5iFNLea_I;M$^Z=W#&P zoxyc=a4g}>a4<-AZ-c$HCC91$+k^I}Ux!_OkQq>1EbR8XZeU2HKi#@kH`87F*+G;3UdkogM_!%US>`SxAN-8*3u4a$z=S%p2eAz9&NvuUbgw3_p>kN z;NqGmp+;+Px6v`=Msdgmlf+NGK?I48xj$nE87pH*a?@CdrQh`GK4#Ar=OeBW);;P-GJF3jY|d!$ zKL7dF5_%%h1+VJ=?@eNjyJ@6zb@?D-VuIL3Il@?2?Kp<`n47IFGUSv(A}5wN_k52T zSKom^P9>(<7h$)OXS8}nFC&I-|8y--d#&?b8h;|91HqCh$JV4!vced7b!*1;MX1UE zeo+d;EaH(3^?S;K*KwF;j++~9CQ{PY*VWD|I(i5yUNHTsC(GWJzWR8DDGix?YsI)^ zVZ@B-k2pqBHx#y~icjU)8<1e#M@<`NKuuW1x}r0cp3SiD-fMJ*2Jy z(#kV8UZ|WZM^i$?uy~9Q?ue9>^HA}5zBR9dn~9@TSDe3e@cB0m{I7j*IvjzNB@vho^A*v+^wI zxXFNc<63ND?gS5K6rs(VrQGuOY+<9TW0lT~&$A41c3QSdSVM<3B7C4Xvua+7Z+LgH z#s^aks@>vBF}R-Ff}}pK77M#S2Y#a$TIDIuS||OB_}tr7u} zUrhe^u*VQaxXW->La1^d)7?_3(>PX~<;LB~xa{`vT>$@ufMlq}RXh2)N#kc6&r#;^ z31(;N`3=j$x8Yu+8FDUVXmem+U^~z{FrG0xb5g7PW2iv7LXOVL+f`%@Zo@`+jpiRL zfu?HnXj61m2L@RjOL|S<2owHcz)6MUW|^-R-w4qgEJ_pl?ihBD)Zti!m=IGWCJRR< z;BQoNiCpPV-@;lbn zc}L-8_ju6#a~a_|i>8v47spA-bDMH4gWd9Xv`tN$Mz2poN{oQGx*Vs;8VtR1OPatq zZ6vbC{bKrN)Dv{_vJCKM7r&R*Suri6ROzCJE@yFK}mV`~T zd2fm3hNz=H1KK`S6nQ3yFECFt{D#}ZiQk-}=WM((wC|q*t=T^^kPeCw%6Pu4Y+Z&H zHn6TL$RcW>H&e(_^FhmK8@LyykLov#W0`%87Cpn6 zd@`c-t~>oMDwcV-xMkgL7~NEG zPz4J*L~Rz6orazS0^5lz-o)6i0_=KqH!k7=>E99%JhhG}G#-j(27jOwHd6RoQVeXB zYuF@{z&%uzvPnHWN?T~k`cHCLHx_<+Q4GrEjBdFVlir2kYnm~HOA(X7~|K^%aQ;~qZ|PAo1l;KBY|*O(-Yi(49N_$2X^LVx2VQ^(g*`hu5-v{H{)Ao z?{7H>_elNoGtF2?bK}QY*uy4kl0NX7rQ`GtpmM4S>>NU?!cmXhQS80=}G z#A|ntGbddl6-tsxlFaEw=c2@QEupumj;l|Ve}5j{5V_0E*BDx%zJp=w;fOh~|B337 z0U8zO16K1#=OaM`obK*Op-Y9kd0up%MtzPBrF@5eh;x&$O&;t~d-b&h@~`~b((R;s z|8^TMgPiC)@`{5{S8APb=I?^E7P1sndw=NE5>RH)3 z;fPxn(YDD00E|aw{z80CWpZ2@Bq!@t*>C$Pdl!fG#;>D%qUJv?X>i7NbKoM^0J+YN z9CB_dXomseTBq)t&5<7y9w4k{HkIe5+4}t-cl(FOTD<=(XM;{jx|5-w2SMwYkUQ++ z^Pc_0O%+e|b6U-s-$a8{s^u@u$?fQvGKq^;P9%`#blI4rEGiP&ueAZ78=jalN8avH zZuO^?L=Qm^49%fxRmpFj_zx00;DaJmE50ucvvPd3%xX0p;u@&Yr}AW%`x5((u=Aa+ zFLjrm|7BTSekG>iZ!(nrdRP21jVRahm!ZJuwa(ePikQA*Km9|sadv^xk#8N-NF3VXqAFVl6UF`u9@qaYBI&x z17QS$I9q&SO3EnX^JPbQmo3%e)rLwJ{AfYn6b8oNK_norG`mtK{-s5iyR2v#uu?rf z&jG>T2Th8{Tch1w=YaQ^3nxh7n*bg&c)cM*I)8Rc-NC-i(k7m&Q>E+^i$x~Gj&+Gf#Qgst zh@q`+NsGqxr|(B?l+RoMRy}mL;q-5wQT<>lnRm<3L3|d#R2n1W;to2)+*y8YPUaVz zkR5WK{}-M#(aWlrDB79EHWM{%uCjrcK+-?#$(<5YJ%)JG)I8l23m<-4V0$wM;q)F4 z&sY7N@XzCy|IXx4-7UzC!<0|z8xz*YM~vvr;Qk~tYUUlgK$sUfO4))LF~SV)IQ_+Z zE$)W3wzakrnXwJA8piHa@SD9J6`skS8)>@Ex|XBfpZwbEDsRLKNY-K{6$*PLQ$JM+ zh;UJH2U%hN?p7?bCilpyRLW2GKTg5J!^Wo+)_e>cR|hsJUphsfd|&vKWffm4=5E@W zWdUOBOc3hLDGE5~NgiVydG#3$OE*37qQ!WmCRp%f<*OlI6cBq{m3C4PlH zW61rFmU{}4{jvo7VO}(aZbE0E3mz^L9lOf{(dx~_I|)Q|L3t>#`VA}(%(VHfSpH>M zK!{a}`ZN!A7ixE&_3R(BYF7O!c~VixsW14iFIy=}TUHxbZb*zMhz{N=bgaTzzeUN& z2K%6^!=adil)2G~1fn06&P<>qT&4AxZBt%hB9kN>2RCgOEJV^i`YIMCyET0!#7M=1 z@CE?QhGf81RlrR(siJM?YdOs#^EXzGC-MiGM;F*hGH5~NaBRM-W65@8(jqQ>@ zTNW*R=9rp7RgNCISU5-O)(@I{my5cOUgfGvZ z@J>}2xOSC5A|{QhDjlU$>rU4$E$o`br0h^c{F4>VzssXiGayr48hq(yHWDFjb@3GWmkjCcQM;6}2^HTi@iz@R@ozL{bl}PYc(UUG9ykF$n98x%ZLgx#+a{ zv@OwB;M@{HIxYBXrkpiHrm1SPAU(VC0E+~vSJMrIMLB^?9?H*>0?a zBfr10!{Cp2cwESURCIKBKiiU~ENC^!t3&f~_!(I2WUDIY>1J!`aiBTyEFc$X5E)$! zUOce_)mCFh|FQ(CmR*UN?8{5G=bHax+Nm=y`cQ|{>j{3VW@mWAr??y#>97VHS8PhO zmzFv6Q#dH`Oq#{;%c+PLf~%e0THA)q1o;0)cpORg_)jX?rr;S?LKpVtL$8T*Thw>A z2odg}oV~;{OUnMyiDNWHDOkEO-*jiu-!W7{twr@iY5ff;=oY56c0%niv21WjgY8hPtQD*;(s`vg&>i^^ZZQ8JGsX5AqBX?@<)pDoi z-ddTO65yUFWtrtnP0jr-2QDNBnghtaHAN*s#ckq1oQOcz`P{zW>xYZK0M0qQ&T~8- z_s3=^t5jR?6-_4|rs%!^v&7%)=JBN2epnZE1nYEu=ayJJw9Ym@m92R1or!V2g2MbD ziX7th5reB~Q>*W9Iv7C81&>h!i~q8H=CC~Gh)>8tNoH;&tduR{Tpu#QL|-q=HoQoS2zu= z!2E+SQf2Hvj=w>??+wQ||K{!Y=OP7YH1h;;PP&< zi^f3*SAA4GbLm2!nx4|lv>_hdNR%V{8V0Z~3v(Hld-niSuRBl+6Jl8UzA`Vi{H#GDjGBJBW z!RSHt{q~?4gM?cde@}_)z!KLYwAeXOA<~CB4H;Zo1}=S>O_1E$Kwk3RDrL`MJf>`X1xu2l-yjbpyOlvYa6Hy&7#Ed z@iD7O*WP~3@;jBTkQv3lGYYX2iITZzo@N&*qwbKidWJkHY5P-<95Z2sfs$vNN`-MPpr=tlv%DAluPV-h6k(P}0oy%)jvQgTLe=6lC5 zU9U_^HMW2D=3uCc&IONoLIP_5Ot~@#$(}s zF-6th^;I(ORpVdDw`H0Nnrj}3{z+VbKbqbA;u8=mp}dwx8aJsopIQyCt0ZS*2|9V8 zIVlew&re9P+}(KR@1!r|ge}}q1U^O0NzaUPgE5Z-lQTwXIjNV65#jYH=wWyt@^FQ+ zai=fYK~g6;2kRUjG=YdPe&K8|uOp|)klzJze*vEDAc(uXRiZ})aeyAft~0xM7iC}^1=g%*vX^n>Mii=g3G~5oPGf0ih!LoqSeK3^nzf-?&>rydZ zTa_~Hs;=a-S&^!zckCcpSFvlc%1QsGyQ{1XS5>!L%H!k<1)*vmc#GYmQBm)$at%;{ zrAo3cL34A3+3~40MuxR{rIfIS*Yj^XEIRZ|WiQzTlm555h-@k^uK&mJC_k1U%%gc5 zkhAy$O6X3m6e8YC5etx&!h299IFf69zT<_ zP7x>Bx;xJpVm@_(odV4dk`QsF4t2^r*Cean{YO?ZtDcPrSPe(xTx)46?fuh9C(O>i zFE{M^vqhB!Mbfm27I4N`Pq{^njvuD!jjuDl5!o9OD5%HwF^xX|aOl10zLS1_KZMd{ zRn$D5aR~27q%4%buda}Fe)DT~Wj0s9NFiWdwWNc24jdszh;Uinl#%Y^%N*&KnirYU zH-9|^KuR#c5|9=qMavo}CqFtO-ErIMuK_ge6aS5XZvJCcw?)!WAa0ZKG>R0stZ`&l zgBmUsWJ0aTlSkg^=rRFPR#q9TrNK3`t#=6@W(3<88}FS;0ok!_HGDuv#}-Q%`#VT&v-RnF#eU_Z{NL*f z9K?QGj(5!aM-}|I#l@9sCAY&9ifc&$sc8(%`qqAM6D~QftnHMCffRAjLOBlv&s`kJ_~0Ye{DlNc}m1RQK0Ht# z!&b?}KA8A2Z~uP(ir-ixFj~$-Q)ClwjWU zGdSV)C!N+Lo;%CaDk1m}Gi-r!%WG}?+G-E2Uo4w9KF$8JXx-8)J3Y`-m`hfyftAAj zeR9ue^8fmp6XdD(bU@1dU7L}Kp5efNhBAK4Fsul08q5LKp8OVJ9yVS_5U^ARNB*7( ziKQ_gFSoSWA9YsP?obYn&YBZcOL+m)n#p$j8L)+ge_>SIe7x|(fdyJooJ%yB75-qa zb9}SI&b;3}=7Zq1GhoR<__>B>qo`mRfhI@qLKxzMll-SS?Yrek0}|?AjnH4lB|3NA z1P4kV7G@g*dxLD@nojd{4> z646>OU-jhIqO=wapWZDQzE<*T3Qh#bqNs?DKR z6#WjOCI8d)69i`9oXLx!*{+ypbhPg#qAhhbxQ1*tA3l8MoUp}6#rpc|sT<>Kxkz4q zaXIjJC+GgP?S~L4hNU(`$QOQY&U-HJsQrgaYVOitCjdg5W|Lt56zNiQ+N#t<65A`u zBW|P9*py-c%c0U-uFMau1niRBP8JFFN*2x(K|E>p_F9l^VBB?#SG~}J zKcT^Xtm0g0VxWCNLkfv?ee3kg?VFd3GA^tH`89)iiZH|J6t!M{DSDe`%bd^891|`R z`v<>~k`~|iL`_PpOL-fvq-QCwQ6pVLHMS!sK6cI`G>h$c%gno43(I`A@Xk8$FE3Q{#$KyLX6Wm?U6+eVLq^7976>a9Rihcl67l zE_;OOtzZW+2C;XgKC(%+Z$mfRJ*R#6;YIg$o4xKR8!l`2!%Jc-{LG)46SdZ!LCI*1 zzl#ki?un|MKf^3@tp$SppnafT>IT7d-PNWi#Yln3a3o|I22ya&M3YdnE&#yq!o|wN z3VOR%HnXBX7`bpu=&dF$t=w?)cKG>jA?bdFQY!7I!Y|8uNF{$^jGd88p= zo{8i+zIPiN-(no_ML+O6LsvSZ{!To(F}6N3IF1j>7a8Z>8Yu3KgGx!SN_hIW%^`l@ zZq2*VQzHaDKhEfsP2??l)pkzuQe2MLSe8w+@(5Gf=59YiT<09|s4$yzTX>1nrpS41KW*@v+sdAf{yt zpOP~xS@UjbWPi~jZ4X^nJBj-Zh|pozLZQ=Gkj&n~_tDB&@AkbKOz5k{e z`^^6)hfitnHk1Ixl@sm>)*IIVjqeTnHa*Dk?0}-h1ueo|=ZD@HuN zybP1rbgnr`sj(#tz=3q}wAy9Vz&H0bx)qZO$nh6C-Na*ODL!2 zuc%F5Fw<{J(P{YUCj53Dd)}vi-uR;RZ%0uHXTaeH58R*f-WY13zE|Hs0Ht3$t1*x} zYFY|AdW)6ER`A}Vesiv^>GJ&6R<;^cWk>&@uUA)VV%+Lbo1SG_6?me;TN?7+ZuY}` zAfWox)if$ijkv{>Y^9xdeHa~iv-iiBG8UBkYV)JCdkY6;07Js`%hDJ=#nP|=J-|Hp zSo&%9yu=6I={E7);4{60^4^wTo(G28*Hw^BsGvLy@SOOuG6LXdn1-AA>xQ!|1>rTF zI6fQgEA+VVX98y*(TKaNqrQ{Z_##NC2W^Wy_`*LO=)H(!C;Mi?w$16Wua8goW;971vWyv*HnoL zw%+Sq`f%-pzhfk3Os0TFc$H4>RTW!v!%L3sZ)L5?y&14qmsE?;Tn{DRd!6C2<^a@e z{~1}8&Tr;BbmF7WeDT6F64WL1&dc0m5s(eiJIrfC+f-o_oBq3LuXG6ECs)pc! z(T($ZC8KlSn<{5&FKmwQJ@Mk@;}gFIZ+VGW_K?zF3MQVvKf_4`NtZP*$L-0;Iu;dC z3n^VVE7Acq;)#5~SP=@^Vpxfdbk)eqj_l8J|K&p(XbC;re5Sl9j3fFvSFEY3=%)j{ z`48f2zL(R^S|$J{StNXMIp1|GD0s7hPsf$QqAt>R)uG%iiy?tR2O(~$hYKEy-B+K+ z8Z4v^aV#t~_YMq2VwzD9ER?ztpl7OrM%V5CZ;P)G?*7o-+P&{&i_hKjA~zD6B3~zc z-qIY1`F!>IDP7BwCA7CfP`ID8;UL{NvD!Otllz4$N%)`bQ7)eqp8}E66{rRE1d@rt+JGYF*T< zM8Z4-Dh_D8{_mj4uEf`=u6V}@GW|b-#U%pBTQrdyebB?TpxNi;f8p?0(~09f{!s9> zf!WRpxjg-Z7oXCPFgs!jj0z=GTkoY`^J~4A67Np6N?52kbfwzX1hXFTIQZw<8%~Xa zvZ*D9Kq8&;y zk56W+-4IaY3#P-9yYr!*BH76E4Zx{PS0`v8Wzo!0!VL5eDZ}HGFmju-B{Z}?44!Y|F zMpS#p@-TbMUcFmHOKbP(^U)3p@>>Q)M78^BCuTp3RK-m3`+R?#q9gBUbOE4BrOh4U z)MPOuR3?TL?2rSpC>4(G9WW9AOSn3R%kJ$rA|o!(EO(k+XP%<%rOi`gh=@H%(Tmj+ z0|kB3VL>&;MjLVg304Q)0wi-U{=BWlsoKML*ZN;e&!_*UYd&iGquF-O#xg$JH^_Gp zL$!4dUP0{VWkZvo;)yO%%4pMUz6MKO4G13Kl}3$t%i%{k${ z>oc7F^ow&|m2cV_Yn%Zy$Kdzfy>v;8q<25d(q(=}hkZ6de2=sU8Y36yiwB30`P$W$ zCc%I45Giaaml~G=~(hFsZ>@ zTplNZigt&4b}VCRN(yY}{$^w-?clQNkT6@wQaH%}C}rzSY0iJO=hzaIcObKM79p}zQZYLa=@ zuGW{sNN#4lw|+z|d8pp3f4Yu#MMcg0_Fc$XMbGDgo3@qS zSSko*mbQyUWSjey8jtL6gCmVLsAbd3=Fg%+O(qp^UpGJ62g_wh9wo)U5u5v8j$LY} zze|NhVvmkB_HcC>(O0!(m778KV0)2Wn--gzWZ>>bh5c2P7t#|oRnikOj{nE$|Q2(6u1vdOq7f&$lt5x2LuTyh4QCjZ`(yKG$C+iCY$ z0Wk@B@0SBPl4gysn>)s9xwXO7zyliuD3X2SF8O$`DH%w*K(vF!at;;bz=CS87BN5| z$W#(!vnv*i?$a1hXAsX>44Kz8RO9fXCVN@A=&{}upGtZ8HIGKPr$nPCm2OQGg z!Zkzd$L7tB{bdVd#+h=ZJ$wn8d=c*4xku@?9hY5P{@5L)Z|Yu*Pzb5q*|$yz%Jzvr zE8)SKm+qhc)Y4ju;E{kCI`p|@1aCX6pr@C&Z30vD_@iHSDpZ?K69A|B4%4NwYyZTY z@UbB`!KB*IC~4)Tr&kuc7uJQ}QVgH^*DfCvT>cEC!ie*^gI3sbEo9)y3Wlyu%DSCN zF;rUE*ck@_!tB1r>f{+lKk%friB2oFrEoo3dggZ$Kgc1JXz$-iJZN?~VQERN%vak$ zO-#Y|4H(iqrr~5Hnt(tLlZRI$6M~?F04rsWZUIRj{?Pb-O3D#chh*&BFo9Fr4AK`EX*c^ zZYL=ftkN|AzKTm&-Y%E)i|n+D4Dhu{6cS0_G2MTHa1YpbXOFbsz3r7G$t~>{%%`Ps zYzlK)?T}js=$Ftuo<{kK!z8@3Gb7l+v51P#ZWuu><{6k<=pA2stUI}7@TfhEeS0HKq{AB9L_|}&ucnrbWv1(NSl8X4_ zMPQ6KluZ03YR5oDH|k3%84@73!Vd2gV}DkaW}d}LAD6*E6Ku)ixMY;!F`Eg`v-34i z0^Ic!($q{f#Mq;Njw;7x9~b@A*W;MPud#&C4ih~hI)VZuZU*DF*1_=802EZ1erExz zQ!}c4HWGM^FkIUni0ol+(fT?2#+m~~{L_Edj!ZeIJ>SG-9*rJ#5i_Ru{ZZ*tQ(}4j z$~ht=BVg?t;985gx+2;;+EBdMUnJOcXF^{;ys6Trh?(CxeWQ=h^`ib+d$icdBGg?n z?r{+|4sT2WW)c@6MLt96B9f;@U(UKIQ2(e6wyremnWYPHo)J2!Q~&I4z+H21Wn3VL zoE26dv}@M1f*huwgeJ7Rd7E11seSltk0t?AJ;kEw*8H+WK)LT)ketTZ{ zh&Ol0rzNqf8SZ*)(%z{n_mop~5sr3!KC}+3UT9FL`OidL_{^GR~z9(*>rooZGrCW z$I;g2-|=SMPTCwt#hf+{MGF!f$%j4oG!=O;1^9zyyr$LPP90Q#4?aPfU$h-kav2#S?!mL9mWIG8)CeA2Qup^!PYWuM6Zh&VRvC$@{OPjABZkR!lB6MJf!SoEFWTT2JJ zy(VbLFg`*KFfEwDThy?p9GPycLQP>edp?_no&@}^}!?aOiuqDQ1mMKZM*=_LUg zK%(nq8-cFhAwo!19Vg)Xflp8X67r zYtwe`;pRO+7Y!m)9CSXy?kCHi(}`n(`~#u0e`Mzq+I8CJB(M?iYr5No|{L1!xRV`(_Wvsn(J8~rCBZA*_XuZu7Z#-=RcMicP!5+1%$(`Li zY`)`%Z+{4wXY+j>OX}g#Q%d8`7CNBFD=_)r>`P3I&HOgA)Apj+PqW~o=LAk&`E_pR zRn;WrljesLv99YTHY3{((7TO%-l$fE&2Fz7e{r3g)XIl+aj?b)Z$f_Y4 zDt*Vv9GdhkME2ooMM;f4XJGvF40Y2#^)coRuBSi>WCxR~@9D=!ZKm&R;0N>@Po?jT z=!(QU{?(5A8b6rvaYFeRXH5DnscZTZcUl9lJQrB$Da;Ovx3yU~aDZmIxQfp4LM^#l zGMOOLF&=FPKM2|Tdl2rsgEr9%MQb}zG@fv%8luwSN+Py5>ZKkUP<$r;zU~oALO6S| zPdmTBJJ-Z6@o&J&g@&g@molyN~2Cpap?NS{MVc6{nC5Hh)m01ucPEAc+F2jrT;h-wH17p zpvk^<-c|R+jiR4GByD_CjI@d9dPDmr2arbb#!Bic``_j}&0d+vR*FBeFS zUQ$!`_T=XLa4mvk(6*3Ks%naw=3;yaC|mcg9p&O@pZF>@b%&(MgP?l3@M~i&iGj@j z4wFF3fc$1!Q0T(P@e zbYFNqu*%Aj=sdrdnuFls^OB2uoI7F*?h#cJ`btd0B6XhkFBP3^nlQBu$9#b>Yl9)n zXKB#cx@emJEFwXhA5<56Z|KUadWK<*bE;?>9om*aM&hiTov|mNOIIXjQ8eqnyF;r?V&s2lPNVpDd1^i$8~p*1}>e(dCLjhX3_f} z)iq_rsMof6BR9QA1U=p}Z9+Zh+AP?EvOep~89Yb6 z=rv9xzG|F0r1urJ; zfv8z53vFY|3g~0DoP*AUCispR>k43DyZ({ z%5`P90zJc6qSN=Jt#o7I6=ypyPC=Lj!FZ*HGBq}J06om!#J5Mv|Bp*Blb*cF7RidZ z-HyFNS3~s_dlAfaNC94&&PZ>cSKG>57mLQ;6O`)|h_w%m9i_SxN>dN?Hz>lg}h)qq_7asIB zIh?pYQBSu8Zbug@7p8J(&Biy5BWTxk*5%HI=$njc+9U689Ct`HE+w5c7S5AcOea`k zn-29#xIR!kbT3RjI@)&@{te(c>G0XU!=8M^`2}wWbC(vD+5@G)dTQ%ZBGgy0iG%+* z`doN6tszo0$x64xFJ-ghAD8z@U%;Vog&^!6c73&oynEdIyjLDI{zRyp9TpTSX^|h6g3iE;OKjUUarcw+|*yN;W4OSx3V!vd%@O!7MwR zbh*UTt*d0QGWdlOiqU4^BL9>cM$I+LHW)mSU(34DtkCk3uIh2%bXyomH%moasUUf+ zH8(;~!3DTvc*}*z+Z6Srw~>;tTeuY4ADe>(#q=118ZXUq5Dx*R1lF;wj=KAYi|py_ z=4DxL6|43M^c2jEJT!-C_V^BW)A47|*cqj*92yOtxr;G1C>nT4r5bxK)%!v540Rfh z!|wC6u~M-NX@Mp-;MgW3@+uwd6{m4CKU_~fr)L~$J)p^s|1z0_zhe|7V*Ew!#6^g| zS86J`3>=WwAM+(CcF5hhZ%sbUwIA#pRL5p@25}D|>P2k_dxGy38I;On8U-H3oJsB4;cvt?6eVgJaqK0SML)dWL;9jlmbGSr*{A%A$)Z?%Y= zqzoQfM2#U|rk|eQ-L8lX-ic(GFThM5TKj}v_s_^mNdXs*SlEE;%YnLS zW}E*Ry|1-*!r5Bj=Nj+j66@hL5j*P1e;Q$CM*2(^auiO<~%}tJ%pb<)GPNqzie&%H8bc!^M|08 zZXF5IhhsUs3n?ZMiNI?6HuoWLNcdT42lLe8P}N~|KZ>P7UtVl$3M)OZdpCOYk->u= zqFJ#zZ;LP}k-ox!Z?&}?dOALfZq|C{eoIB8zU;tPjKdG%uh*}pHaI`jmvRcF9--|K z9sb}{KIn?ONR;+SCjT~{4~uLqqQ1+|alzNgb%1?3SuUD^Vs%IK9NN*#_GbauxY;c9 z?f3j%vqU&LBQ`L>;!dUNXh8n4R}fzQG0nPgXua-Bd^uDs;7xgFSvPrkdE_#SfujTS z`37#X>M^?1Fnr_DLFw4!p+W(0>GZ<*Dcs}2Wp{v zW;7}aT0AAm)53`m7uQ+kRJ~2wrWo|}O@!)i{Ns2NwgYm^8VdK`xAC9a4qRE7Uyd9f zchAyHQQ=U%rV}3^lJ`y=DCge}`WKIijG;!R(ds+H;`>s{=$*e-riNNJO|RD$>u@@) zjH!lMJ=-BYi}*q*soT6Zz=x}%uw3dTkBCrWnd~Kms#TMT2nwOS$ti|JtPLzDLg;&`;NocxOh zynEfHu6xoPQOYXH13aTo`?aB}voP7`A5bSwHJEszQK1NYHKDSnZXAm>>rkzz=P`8| zH@fT1Xp(VXb}w`!AJ`-Sv%KG)Yt%y<*j-lTJ+tZuGWF5gQf;qmK#|A8%R>rAnI*aT zj+^NI*caFzjTf8qC)C1MpEu4K_goVDg!>voXk$iRM;rYN^M7i#R-B#)A%&_$punV5 z_?XarS*~{O_q+uz6zaaU$#S=aw*FfZm zf<%3?Z8)b!^5E#xv%IL-wpqz%C4&hs5AcS_V2hGkoM$jp&3i1H1xbI-)mrO&&ppJ^ z#kpb~R&Tx?b=qI&bjdB=c+belmDe!*a# zu1E0;9vJ-$nE)yP-GcWGM6eMjo(x{!2Y{QqonEgV#F2~Ny%swW5*mLZC4A71_$zB+gGhDqJp8i%U)(p>kteY(uHRW zW~LKGx)thvDei|(<;AGpP*$5s?hzS}?CaGDW*!^*e{-8G@oQEoZeYaXRfS`V%gZ{- zSAFqNH7;Axs&@e;+ot15J@8L~E_J+8%^*H95lZPh zW_tg+%dc-%d^bKTr~X=28}uFZC_^e8Cqw15pj(R|6b3v;O_K&$ESiNoMl=)+jQ!(~ zBpmh*nS`$MG9m;m?zU*|(erM+S2!rWnVfcAvHn#+kj;~Fj+vJiOkqP6Mhg2b^)}># z!aAI%po|M4*f#QetF-&+DJiAO?DA1tG$0-lEo)fqo7LfGmI3bmsAsj~cy#kZ+8f#P7ax3m z_Fg>5ze`%rVDSF(cC+JNqPcg^l-Gos+&J3->IonA%MZ8N*dYvCflw&+@%=j7jgW%Q zf#N>tn?;>#8FC*iF^TJ4i>Fj&l6y}+eFR$`Do=e*`JHR(okO&jqnYTmN?{K%4vgNb z8Ah<`>clKky-NOm?(Ql!CI{Zy@qseaqV+3isFz~bcDFBuCqCiB(+17GXD7p$OXA|? z$0x63+15nDdIDCVLslC@!KdR3kcHWJeb4d8u)wkP;-N?1@Vkq+_guHq5FV^m(X zKA}xPp}--{lxb^CtP5ek_h~UIsJa9~XA__7;KO0fEkvgL%C9wF&bcbJH0q zK-}|$kiXuePb~7SZcc+TL@L1e+EEl^!k2k4Zhez{%-9DaZ z7+4VU$Y=|t`Mk0x#^4(ua{kksUQ{;#1Wu|b$!G%fTp z8u>E!<%)%Wjeqvj*e3MCF65%iwio+RyAbGopTwN_hf<@!n}u%5Sz)8tIOp^%vd#K8 z`iVme_LM6h&iicF@98!AquGcmMK59Qou&!%>yu8$puuwyrqeSjA9p{A7AO+nohHfy@#;{;C8{{}vVDUZ{Y=7psRuC$A=GPMdke1sNJ`3o z(;0y}81#H)T}^D0c`!W;Wc$)nCf(}dqQw=~Z;y7#s`j`mXCedY-;11?xtru8<65p; zcKT`2)lOwY4Nzg3?EYWekTI?oLXns&QZq7~5-%IKbavItKA?VUrzpEW{twbZik~kD z(#pV+ms3vl1m#i#SAyNrE#6NNBh+Ox>elz+krfNEhD&*>oQd4d1JpIu9jyndl^?CL zol+L-vQ{I6rn976h}6BX;z^aOt+3La=^ig}(jvk+P~QyEwj{YRbgheHL8V0dO%k0? zB=L1u?m@)RKaLa)6K$C{9Euyhc}Wadvm2>l(w(Wm#u8Aw^b9?d!NIBUoxMEx*m$GH zt__LjstN~qWz;Qn|5vy0hfq;}Cu<1ahB!XFiX`tcC}9DiVXh{1Y&L^ITErH;3p#!A z1L^0-HWb;S>qT{n!Ewm(OQ!}E6wZfe#UWK6+OkE}q+AH`)QOdiPIlAZ34(;5WooQN zbr6=gO@&P24iu+~$@`>#948kIrqzIk&NGCppHs0#Vw%(6&349K>krDLz#j9InnhyuZwSXkaUR6@^iu$=)V2gmM{iyx!7ABqDrS# zcbD$=JIPzAH=e~_yZ?{FRQ0S@#+A)ZPM$b~UheC%c!^n7tha(ivtTZ1sWE|Vw80P_ zY_@zKvp4y2VZ3I`6&x|`0@5RS%3Vn@;4hK~KZw^C{pr?*qB;JUSJO#SyNasxhcNVp zifX407?I(1uqnekhJ|Cb=)>^6Ro2+@^v3=I8XUcFr0^OyWA({1#XV&>3u30Fm>uiu z8v!WWXIvuTcuyCB3!p3pGD9yriy0WfmI-KVNf;yul8yn1@w%fM@xX6_Glv{q*Vaisp_9_dm z*=0Ge;V?OBXg$S`z*=}Yom7125*hIwH%o;()EJ69szp%Uo((KXK0BUV{o`)%3m=1% zk7`rM%Hupc0b-M4xp{q_Ogyl~M6fiNQz1p-EXd+AQ76eJNsNXp-0CWxEjqD`se1<* zJ|xsN+6lnKf=#wIB_!t{V2mG$8&pikoQM#lyNM^&wAdn}7D`V=u8%I}IH{$vR?+>;-Lb-{klPP@tZtmKsW+t)(H3g7k*9tp4&ICdc(8GCWH7wNtl3?reyxS3(xR+F^TJc|IGSiWvCpGc(l><9 znU%NAP91yF9O58DcFm$4C|aZDDNiykR%@E`z4&m{P5xe?iR*gj>k>fk;8p{Z z6^KJxo*4@hs{6(xq&b7ULK>6Mg6olK=PwoMx1}xf=3r`-fZpK+B6}Ne;y{?wL2ysR zwX+pAh2vzIYRcuI@XbEJ^mCql0p|8Q07Q3>v)oL~E~hJZwKCSGx$zE<{9#xjnvbQX zVo&h7jQ6{Liu2UuUI=9VCkcYn~>xjU&_> z&DA)7gjJh0{i^?%Nj)gr>j<$zcMQ2IiYbaS+{<gb( zj6V)}T^A4wHfX?0=p-JHvHZg`mzBN%h+4* z&f0(d8lXP(CJumQ9y!+UsSLvtOX!OFo3nwuvg5FdC4fs64}P+M0k)e?yv~o&X#tuG z0`-c)O0U01{Z45FqpKb5Cszh;#ta%~hu%mJwLdCof3eVT%2W06Gx#JRpNssQ$(N+5 zmi_E*;G$_+>tK${CG$AgDCOZ+ZC+ghpn#O!*GW(%w5<`M*yZtEwn%llmu{z0k*v+U zY-#z9OU5wh_C6QWXB7S#N*4tf%AOS@nZcUkSGErD__^8;Odi=L<$Zxv)+aDf z?&TqvU~)#QBDI5S+-BTMP!Axxq0alH3$_gv1#$BkHk-VLs9c$>5j2|oT?(;5f_F9; zQ^HlFLsd@hGvlBSbotSn(N;HOhK(efzf7hh4}V~DU+#c~PXR~gnLwn9KD~+N)&uo$b|t#DX8rsX=Zv*A28IWqt-c{?I9^VpFdt7+3xYJeLJ* zF?4XAA8fxa!Jtv7H@#N0D^*INUSr><)O1aKzZ6}mH#eyqAUoQz%DeilUpKw;=lfV{ zRHPzsW(z#v0vT`G*|v48O=Xq?Ux1Gux#aw49ud3oEo-mu@ODf3({4Wzu+i3`)7YGX zWb`HHfnwfzzwD<@lO&Zd7c`+P=%Km1-D!Gw`l1<+q{F(pEMT}wF6+YUAdWFGmf*+P|zHl zi;{Jv*x=KLXGHA+go8mv$D71ZIUB0!q~Pmuh1xuCSv>o3$b)t|-B^uvml3AUTFCbpSP8Bc*NOB;i0956e6-VD$I zpqD;=lr~s2oBz=j&AoO2_m#dxbnuG27uA=1fuJb?q_;qwQeVcCn=&2x26e47lf-=9 zJ^RO@7nxl>jP<$$RBcHLG&@{7Q7I*|8Qw+~#>31;Rjgf|yP__%qs zG1V$x{r%+;GB!+%B|I=u4%{_u!2Y81VK1NaAIEEM;-eOUh(_Ha2bd|1?^Ck|`05#O zv(|h%l<)7}kK=aVd3kLZIqB&JRgl(FdgGvm1Lp2{ap{@KQ>4Hl)A$KD}K zvrQV5HaY;#YPsIms?XwGFGU|rsz*=S>d2Z&UX?%R`WIsUKoWH^Xd!px?-Z$Se~P@c>!rcwi)$a; zvPr;P+x1I|9A<{0{fCtd&pH}oKBol)oK>h>y5x4^q5IokB1ccL_w=~&V>x9#YW5-( z$i@Cjl36%gt`fmzJuk8AtPT~a#V}-)$PuO#{fmDYb`LT|>-Cd4PCO7P{Zn{derVw5 zc1~*6qHp8&_*DJs7Bf6imez#dTooN>Ww>D7c|LYpn53}iea~+kVxP$*P3{o2Az_zO z3AF?=MfeTBwXWpET<-q+tEo(*XeY>D{SkuaeEiceRu{xu!*mX^xx zj=-0PfmAY~e%C*)Ddv*Gc0CR?4SfygrobEh_%A+w1N$$>cPLWj9|!IBw&w4Xm>LCC zUpy^-IZ;qc@b~thS+5$Y7cva3KOiwi|9?SU8jUvC zI~frwD|q9k$vNah9ygVKJZKH$Xc`%5cmS$QX$~{Rl+%OlYiZ{{Rk*$)4rbq)n($`0 zq0y|0&CtXYBJ1s0d-J4v$$E%*ShT&UN0p)HXvaKPRMNXjEMGot$B_9^AXXQV_vTpl1}c@zjPT z=7+n%5z|CgW0&;^YJFGcI%C>ej2DkW4!e!sXsd);_CDT}$!j+o0& zmYmSojFjM;8!p*KptE-Ca2m)_2-9g*BbQ6dA>cqL7a2}z zC|V9K!boR>wL;B~lf19r#;9a$T`QLbKeK36a;mrXTTeM@Ht_b1f}i0^`}2}v3twz5 z5T5mN#~70_0QFMYray_ieT7*1GT)BeoMF4X*hKbUcja_YO3|(H{y28T;H}^m{{wJ) zivF~!*2DOVgchXZ{JYq?xW|qDt8{HtWSth{s`aVHUO%vC0X;ZBm$8q@!i)wo;#%vL zHi()=pTxVZgf_aRBYeAEz7C$^=Tzz&;9g|%9VFXW?q}D}gNZg&JiKwehA0ibq~YOM z2%kRQUjF8Yo`=&*mFb)MBDsazZ@fASpHX>G-?z8fwW~p)_%wa~JB5qG8dIxsBjm8@ z5z|meb9dI&#h0C9Pop0kE^sZVJT1T{Dj0~R8R{VqQk{{*E-n%IbBvswzXK+N!G@0D z`iv=@s|gszU$PQx!}lrl)+d1Yq)-!ee{1=YY*5-vn&1cj56@2B7LTKRvGg~E^?`_k z(<4*R`msHvKmjKcV1T#5ldLCy*o(H9gFW;XycsXRU7>q=E?)S!+}N6W*o+(r6LAG<7u z0KcxZuDGn#81P2iO|OIN=#7j~U_*NYPp&x{K?n}8#Uko9v`1=#FoNUS4bO$i3`FCtwrmIZ=ZUv39@a&=srEcS6Ud`l=_v|w+1LV^VpPT{heYb? z7Fz_d=B{R_q3ca{on9@cpf}ReNV-s>;~o}1(c4bH+~VDs)Zs|_KV5xySd#zSwtX8` zmR9CAZD>|%mV3gtp{Ay$<{o6GhNQT+(lX0jIm<=mASdR+O=@c9AVnoXL7d?NH_Gt6 z`#rzsJ>KK>5B^Z$=DzOFy3Xr7&r8RIl->JUmm}Xsw4VBElHKd3Y8vsy>_|GblG@_Zh>8{E?Uwn_a;e4%RAI(8Q2mKzzMVS2Ad_>&N4;2} zgn@o}z;<4CW^)j->iHdX9(XZ7=_RGG+SO9bOmZCd5npgNw`j?O<#x^lnglB&K9US` z3KL@AJ+!^v>n&q?#g@Jka{Phv?$PTnFSs9c7cJOvHl)kKYRCx_g`a)8*VVyq0**bG4Kx=LTe-ZN~ZLoFXzeYNiQ9d9i>$n`xdbf4tdm08D&>?BfAT zg^BrpoG^>d-K-vU(39RE7n9c(FWt-4S=fn+)=qdruh`vz!K&j&Hs`BBk3An_hS%!%lTtt8Y{FhSd%lh zv=!52H8-@jv%J+zS>wu=k70_6osRj9=e5Xe|1nO&H%wTnR96x~FMtC(!Yz@DHGA*p zG(gGZv@8M^vJ0B6wuoLXd3_x+|EXX=y>5JES`tZ@+&c4>LZI1?d$g7 zz$gy!bQZ5`L6Y})x>qA8A!U(tt0ym%ubOm;-)RHOn@DZP*zHeAIDg6gz?s7KDonqV zuSKE7{fxo1AR_p56WVm66)^NP{B(q+e`)72mf^lqvF%W?z%i!-#+UboXX`od5RVll z`cD~tX8Rh%DddvPFq51^j~#Acp^De8#8?<+)St@qriRQVIbBiboG1G&Q6bycYgY@pIU+JpTT`V)jx znX7753AvbNd3d)?i*I#wpdS2W0Z zWHrYx;gxfT7+E>L=JA8;0j=5H0yahqtnM{(KhmvjI6ZQGztIB9;pAqE5gN3+iwY^` z9E`kF8#@VM3nEO1*)Q>QRe>?m{nbMD=!@PIffJ$Fc4E<2Kb?#p5;Ch&??+kK=!6sN zp6P@rL>F9qdNukyN8`%WSLNKu3j-x>0UDPaauy8B3Dbm#Zpaq=1>@u-{gAwE+!n&2 z{b~+oZhmAr1jfxw#m`7H&taZ@j-`5bE4{w@Ssu`&hT=?q8S6gLWd=6!MbMs1=9zX) zpyBA1srn4t6j=k?wUG=1cmby%G)G@3)wj!0PFzzGDCC~-=`l;YNV13ubC00alDtWC zprreHd2*_K;lmXa<%xCc;<4bSQC5%72bNZ`mkrT9m-~_6Cjry(XpJBhta;CyIEMAV zBzV~TBjMPh-M_IMZ)0-id?&Rro$gakkKHNnXjXHKTUV%hC4SZG|7q1GsQz=|&Q!`J_MO%v*_Mq-ey@ZaKmO`eoK5?Rs6ZIzyh=L6 z%xwD&?aGnjPoufHoh~3wGyf7S=jgv2#O!`hn>onzj%_U05e{!Kr?xUS-+d z)dV&lifzDDTb*h`9xq24MKQ>``s;9{`Dodu z{OzFvmV;`!8~jyH4Q|Kq6a#Z?l^zqC)Bd@`b=^r#({*06P&{3Bv+uT>Wr?xne1g`^ zbgBeP+qc=>df?Mm11Jo#59Cmtju!EZfa|r)7H*EL5CQmrvpCsra&r|K%lkS~s}!1d zZfIn#y0N}4N8+uwao2UfQfTAwCEUfNGU%f3sLif-yV&{Bn(~{_qI%3_4{VnfC02`m z)OC$SU1+|lMnKm1<~BfoTE1;5ug!57>R%zkH+8Gu`2Mc%dWn)4Aa4@J{Qr>O0E#U2 zjnsx6U@1N5F$}t77d_B3iR69kP*KpTG-3>cqQ*>%&FY8;yf0Q}st{l2#}Vvum(=8I zQx1g;D|kDQ?atYML~M9&`TUwZ!hB{c-L>hPM(Y|bR4^$>G0UOBEw-c72c6{t0G2yV zsyfH#mKDd*+TG=PNMKm@U_a*-1r^am9)hn5O!BgYbhh$2xvDzmhrJjykSe1!{*j5P zMCWcKgA7&V6v~dE$5v{_yp=|37K>inzpjnREulOm|v%`u+_f7*V=z2s>>;P%c# zEJ)iv4LV>|XnQQ3dZeC`amvl8B;S=nJ{i8Qc z#*9#(Vct=56-%T^>=S8H^%QQoSyzr~3TqD!c~yfDFjwnJ&1VM7H+@k%4!8BJ;}Tj- zN*7Cum849best_U`1#yb?|lZz9Prat{?MQe-!{KP+7+-@>Du?bG}lK9MyAE|KLq zaFWH8+3DhC-yIJ(Pwi7aS56gc`-i+NtEjErhTHnMv25EZe8sbDiPxcjfHr4~W>6VY ze0jc$*+fuyT>);cY3fzNDvNuhm*wEH*m|Pp)Br}t)|T^R0iod_JrtI>{6efz$AU|^AR{7cwOM&YhPf8(mfHeY`PRmymJmK&E!n&ofd)%{`uW=^}Ijx)XV#+DU!?sfAhQ6H|TBcBf&$ zDB4l~VqF49a4~?@`;GsfJsunXIJ+|UtM+SFAvw+~IrNBfrQV=mbYR7J5DN_@&Grp; zOZ1)=SQCyDGMcN!oc!WV_4a&mPq-;JuG2R!!1!k$B0dzRzMB`3alc^P^;MT^L)lWx z!mnD6PeJVtt74Dms~_a5%E7o&Q}VSJF@&s~h^-c^4Q_sMYk$@>6~Y$on3j9yJ^2W; z%3lg}+XBp=jujvH<#kWv^|IT^%LWQcPh10~m0xE;CO+89N-yyyZh%Jx^05MQ{_!3R zW~8D^goX_5r$trzQtDiDdbYPxm;=Cf6o0T#Aw8{KBRFGMQe_&cfdw^fdPky5OzaVp zwOj$n@#x>;kT)L_bsp>bF>Kp3t`3rn@y-i*XNGl6^PPWG@g8>3f%U74y*&iKe0E=^ z+rqFPf%F)H4mHNl{B>FcwYl2IC^0#E_(pq@|3A4q zJ!dBoA6h|ZcjQB$hF~rWHyOb~DED9_;cx>k8ffpX101n7dkL{xasl9ES}$0 z&k~Q&es3(Fr6Voq9si#+?bU?nW$XPIH}2TxmQ3Qfr`SV3oom4Hiwj{TkJNb_+wa!; z@78fV(6Mnt&rtb4sy4cLMlNBRdpQhHPYq^QPIQYW8z;UWFbwW#^ND4LKZ^SfC?li+ zWyB@Zu!f$UJ1Yi8+^f;s0H46f;^x~FKS%6(bTlMxp@SqF668)YpI?t^Q43$_8>@)z zyD_6&dByCO{B@fH*UlCn{Ta~KEh))*FFuG85ericFCC`M)Dfa#W4{@I*2u=}UX*q? zu6&ooaL`H1`y(0$I^*D;;{1a*Z)vH_CoY}kkbdE$(@tgHErT29n?A+%mJV!AOBo>5 zhA8COx)z8}u}`XJw)RfCxX^{zw6x(*Kk?~HD4iwJm{%@60v^n5=6pbSDF#pt$_1V` zI|fAo?o^{n%Zf^YrSaou{*iBZDNU4;3JwzYa_AczA15tkeRGhR(os#5sojwl^-WiB z4^Q{?jWcR+R$Q8+1Vt@nl-Hw58(3f-zb<*8&7kJbs(@|l0%Al@Nb54F#d?VZiervI zi?9jrR9pUC2o_OK_7c~dIr4gLXjAMM(Vb|ND$y;Q6JV%v<*CnI{owOy;KP7SYH3{U zj;RAIgWy2BEMMB%11+sx!2{57)leTQ>!(^;!zY=FZD;Q&mt9Kjaz*?G_*L+UvD?{G zrw$TBet>-M_;vlt&w1)EAO@({cKW;_!8QoJ-JcUWkkyfzC=Xi`>jmsa`EqnFR&Wt= z)S)}%B2{$X&3L&3jE+*_0e6nHBNGaXOd4m*Ewi!-~e%rsW6jgH>QH^PRx8|T# z+QQOPswSBr&6!sQg^X)!BBqHCJ$aGo&n8~+tTu_Z^++abbrW}bcY(DeQ9KQUUx7@G zIXZJ@=eBint?sv%H(vU2@2CO4=;aUwP;L|BQx`*A)cOmbgdOO?Nu;GDPfvf}QTIj-7qXVZcDvST>$q6*?z zBxclTWu*~pSiaVQey0!*$!eecq%)kFzOhga zm^%uSvnq%abtA3Um~W5W>j|xnW}R#PD#e%5_bupvTXOdWoe=*cHt0hw(0~@9T0CS9 zPz)ksZK4buI9X5_%nOL_$!L?+h??lA$UAuUpu&@Xj53wwFL(Xwv-Q;T7m-QrT6*xj zpEg<2pl{#^4Mrp4g6SiWc^Gk-6_8HrY4OQI0I4Q&g9O&)UZg3)1L;1eGhG|rT!6ii zaC?4~D)cl=8>yf@b4m((S9^w=i$29|Mowc5MPtWW27S7bezk5Zfn zS=ffZ-{svhWgx$s25l;u+|F>8Gp)?(5+0F&zP0^8Klf_wuBu{GHBPK$s~BH_U)O+MVk;`tGD=VD-V0CxzpOL+}a zW#7dT=2+hSsJL21aWUhn_e&dZrZIIdBfmEaB{!AD_s%Un&d{p|fAyW)FYvr~#6i0^ z9V)NZ%*HmAtc>QZU4Hnp`0IO!w) zt$gOL|E)KWheJ-}H)Q2&Eog4E(LTl6Vpa3DDb3rIXlL!E6=FzxiX?*6g}J{qD#7mjg2^=m3FRAN*B`RigvDS``yP_#`0{Y2>DT7vp9^TVZ7v*y>7Gwm7Aef=jTqoa-$5&> z(gEJGlF|Y<8j1JJbfK+&C>&T#Z95ntyto#@pR>7Q5axbktw)nqJG7n+iE73#Y?w}5 z849S)gtQH_M*(J5*>Zcek`7?T&W_IibBEn18DJKdNWkXx+O{Sv!@|ZF=A$72fbDc* zRr^8Q!6dV3WP0^4&yS+pI5}P|Dt+0KR#CFeGI91Mm}e}j4}`#=i{;y!+;^q2^|ycU z>iQdXlOG`dy(R#Tcy6e3KMtYu*911pGTRttSXZ&U!e(<9gQdNnxZLL3?t6XV`1Y~F zA8(v|ja8rW?tAvz&c|k7>Ca9}t9;dL+cb6jGN>15hBrir&J#E7XEy;Xb7#sLjVo7? z2(+Tbu*HL>{96wI0(#+>61h6xA%}Gxk6H3Yt-`cL;%Z=*rBvVXbrHCNL75(-q$|;k z>z1IDn8QP#Vgd^(2(6qBBneSY?bfssu_7;5ZQwhQKTCX}-oA|A4C6y7d5f zDHqaPjZI+2qMTb{$5!$jx!1%3oU6{$?GSMo)hv=gby8(BVvm5%=}{n2CYjgcdYz|Dj~BvCUpn zU3Js?7rZJro!#{BhHH6 zfc2&$j)mM&X;})@TsoueAM76v5K}Ma*hcrWS)~AP>%?327eO$9?9`b4>A83BtV~tI zow2SVLmUR)zx^{cN0Mtj?V&6RKCW5SVy}5q%jcYyoCn&V(Iz~&jw4*$gtVv5YS_kA zWx*V$&QgBnN3qe{V@&`JAseYbk7=eG+!}IplZymj3905ctv@);DVIt5-AE^kX7y75UDY^ zI+SSoez>#WBHzrEWq_t%N!N088k{q>ur)TSy@20`;O3jvKoCX^=2fV49c zn+_8-I9%up`A^5P&%8uw{fzMv%r(-WSLj=M5yo7uuvS(`aoF{BM(iE#5GNB1vr~N8 zxlw*=D{@rX{(#7XP>f}zbi?(PhueaNf+sruxvBEh2uO6RmyTVx2b5jY^6OR|3fhs3 z?J&Z~WTpy`Y`2B0uOP&J!6Y&~YOa9nsH;b;d|PIp=ZyQ=cw%YJ@r`OW?&SD_Fwk>Z{`BiL^G}gCenpcCZs#v$1*cCL zQ7kbn?>;x0uj|mV-{z+=OEcy*CH2H>E*XS+y~|NLqF^l&JC~lfu$|awyj+*%xtSCb zG;14s?POj_+M~}EO9a)=J56h}ZF)gAs|4SL5rkr^Fw5ow*{IN0<3zRu^R?Uk8gcDV z{Jl}#%U>Lv@7zru8)Mo|p<=y*B!W}7N5g}QPqbvs1+(n9+8wjfR(SsU5gV50`yvp05 zl!&dln81KL;Mqb`#}O9NVyceL9y%{3ae_4M@nsYE=YT#mFwy(LsgY`)4@#QM7T88~NW7R~^AlK{XD}KKKe?O-R#dUe( z%k8IZ(gvO=+CT6r$s0l`L@Pq1$3Qn1`1*f+RnInPQyYzOFp2|I}-B1MOnEA!GQH`ta*f%K= zZpBAd6whN?hSZYz^I|Pt%}yt{f?dI;R61V1v*P$C+e__k4_EJ_kD^tIo%`j7XREEu z?K(j#H0RoYnROhmrnzn(qIN{?a9bVCB3>_be(SB>mqk>M5B`z#QN-j2NR>!iLNr(~ z)Qb9RIEZxG{A>SIn8%2N`pz^o1N!-mrS%)iLCinnS7Id=nBBDesUk$i)LL0o_|d$p z$}z_8?QQ0&{hQ3JU?vnslh3@_Evg9LtR}jQ%AgbVQS_U_g99X4_s`*gV@_n1=U9rp z=wX}OS(#7CK!xE>*ol>^;`@&M+an`9H1PbKgv8@Rowv?o*Cf{?ofh0yYZt7#%tb)q zNy6g`a+ilg64CcbBg>D=b3U++`6jg5XTCe}rueC!`PEI$mne;J@O2qvJJ#iH zvt8&`ZLNaQ->_APZ}byNZz2ye1_tz^$$<^{O>d92Y0Fl;$IWjoalNy|d|h{HfL=}K z!;tHuE5cgci;=L6##QqK|6QgNPUz-|Ts1Qj0qvgpT1)Nq`ys)EO>?VmD&=s!?S=F& zuCrPJa^kgaB9@BArv9xE^VAH?2q*ZKs&^gvvP@!_=S$(PHY>H535wm>=fL0jyI&gFf)=gQlLLC$a|QhS2pXoywJsOX#g?g}l#ip8cCUNYl1GaK)HXIcuYqwJ`c*Wu;~)cyuM zcyf{>rDJ%Mi244ip`L8yb`>=#oB{|ag75JKMP!_Fwr}6pYT%m69l@Bq0lltSoJ$%r z%Q$3FKvS(K9?5ZAb=jT)nq-1dtHN;6ImxK-6u;ea_{187%p95{pygSlrdnJPVzSvq zN|<|zlT{m>x_ln~5BoM=?nAI=6gIwD&Hvf>+0;iKr{3{Q^U0KSVoqVP+^(g-Rn3aa zy`|s@_up}_Oov~dXH>>R>ro|MUTXwfcjm?@ zkZB&iaOYgzzqj)QEYP)8u#` zRU!{;&}V;=3J0`g1J2iS&s-*oEeqaZD|bwmAcK40MoO`DTFcJU>1 zhUaf^-9wqVk$XHsa*f4`Enf0OPDC`^YFFbKRop%hcGI*sL)aFo=TYd62mB$*yXNQk z{6$lub6eL1?ru*b&2O5ozf6HN)g^941^Ta#Zn32*mRLymmEn0U*&yN;vy9xb)VMWD z!(_{m;p=QmU<*e&BJUx`4^_TK`1L4nnF<_Eoqs!#t$1`b|5S=&!m0n@-e~` zVzr{*u_N-shrZ>VRu}L~7!QlpA}z-UcBl);5M)Y>c7oPN5$&SGpn>FpAA0}{~xEzQ>iw!jezCoWwBYJq1YbJGeiUjKvdVW8Z9i+0qJ!$ zkSYS^miB!MJw-JHwDZg!kM;a#Ahgz)N-a4_Pu^b`Y%y)4>skOtDF>*JF!zanenX}k*i}CK=fye2ryVO#?ZPG3^r1(i$F$7~rbS@&ErDq%Y(NjO za%t*}nD*BgEww0FiSjT)bOt+I2SZ@0+#X>&Pl5SEtqh)3z}co{Q0+tS9_zmntvI#sa?28ZpD|gIyu|k3*>t7fUbul zhT-rm_4^x;)1wqb`d{Px1@kG~(gkX+{G>p8u987R-4N((v+sH9%LRpavis#1iMv7T zUW+j=?x(XkYX+Sjfqj0)B8iANLz%TB=f2{Hvo^227Y};em@?bVfiO$Ng7^h?VmClBJ;Qb^gm*}eu!*l&Xqhqx4tNQKYaOhKOgQ& zMB>NkKJ+RW$xREllg0qGoAKE1$P-f$F_0_$M{hn__eh@em}udVH7@3<Hrg`JIbjPqRJFG?TfJbs{R1_ zR6UOgw5;>^u>bRaUVM1BCHcVM8Yzd49;ph)GSX`C?*NiIoU)ccD2iLzEr{r);DeS44RTT)hj-CEB%TjZ@x+HQ2qB8tyyJ4i2jk0-2xoJcO&9%igw+wz-V z%H)z8TXE*;6JvNNKFrmJYMBMk9@ud%sVv7_l`=`0~4T+usVe$jf! zG%RR6t7%71d#oHD?63WP?g7sq&E2oO``MeiL2|!}Gs^@2?82qV_RILXdFeVtUn_7M zJyHQt@Ha9(W_|?8$UeTheu5VIXrbaB4+PnXnph*;8r9a*r9N9s;>vP3 z-HSAwqIP7h5~kO-EUz)_DmthsWPix~dvCs^TbMI^0ozH_Ii9l%H;RF_cZFcgnxbP@ z()Mi^pYI;3f9KIrj+gnJ`$jXU=7c%9o1 zU-t?|Nb1QY_CKE7^in%tR$JY?50!*V*CxAxrwA;yZy& zU~Wd1yElt|&g?WxGSLI}FQRar$0|rq-Bm?5u3PNBsk3 zks^Tu`<|0ZJAr4gY{f#HcQm^H{pT&grymdb8!3FtQK=j_WN<&3S28a&dT1wigR7Lb z$Fq@I$j~RGM?}CB!icn4-T{eut%>K#z97qMAwdKD(Jz#kkiVR~?^06kt0siM7Cq|h z5SU_j?21s9Q`n-iLg)|mwYM*cM^h7i&Atk#);#;Xdo`)RfbZn{P{S@wCk>Ty-By&6 zBE3+XK#OV&EB8s~B0C%^KXvZt8P)cR6ESsF(4dv3O^3P_#9d15p-hptU{^$fg}r;h zFqcnu^Q{50<)jg{T+qRBy#Aeuq0slL2I38j{=Qp>01R4^E9EAvzfqPS)2Sw2J+OMB zrpCK*)7IH%nORN(|1Rqa3NSzVxE-nT(swY}c4d>TN->$Bp=WKEBv|lJoh@t5(`Hva z@+a3)_Fc%^@J`fo_UV^z%i%VwLb0**rOnaTPTdMwYGs*()Wz%iGM2c{j!r~JXGe;* z*M82SU9%`jzZ^ujScuT*CoOkoxTvnaL!#2yTA7}fJVrQUfVe%OFa4Z>5x*t(qx#9K zm&1NR3swo5okVy>8L7&Q^>{0K0}}#Yg1iL%vkK{eALkMfr<%jcoEIr#x~2?6YDLVd z$ah=ipYZZX#A?>OZ7y4<;MVo)zdNX1Z|~q;t19oS6N5h;vo-Z~&$0*eu9|E0dcJ$0 zDR-sN?Bq8C)kS}qwBd_Lg>i9jlXO(|NK;Wo)QZXTZtKt0M+e{^^c%d$>m%w&cP54U zbwvuqXw5Eij*NaK53Y2Kl;pftg&&$&NPUlLsve1S{LF0X+%6V&YsaZ4xPPW)e%2hZ zHGAG8enDFgAMH+^RWJ~ETMs|m>t$TpIZflZc6|7GCEX!NYhGq6JJom_+U|hC4toS~ zif+6&TD;_1qQp)qi4J$*hD<;avy`oX7+|gTOd@4;J~UX1KFO9F{Wx-rcCaoR^kFsS zaO%Aj4STT^aE*cczqjh;Pg@$y03;NDX6g}Krf&v+mWgnsh2`LSfP${ZC}8N+6cWIM zDHL=jEHUVzJgkVz2}WH;_QJX%4Wc&NPO06R@x zra`7!rBq6zoXPLZd+Dj%5=KdFJ)ECDxJaRtl1Bk7ae{uD@>`Jk&t)|_v2@G6$qI@J zo$lDio^Cy3Bw;*S*WGnb-*ZZ5S+M|m!22_^uH$aw>yoCiMe&5?;iU7rN2FJ8U$6C| zu9=^ZlX!SdNZ!@&L?oeD$idF80VU7AUY97JUOq7sU3@feh_*Nu%*5D6tkD+gLOi7b zlaJno=;Hu{2`x8P#|*QTrVN-`tB)LOr%a*H(!*To(4Sh0{eyO88%csBDEGow@7v?J zH#Sy+TL63|t*36AT<0^)EIX z3WjdFGTw*Rp7v8Vj&B(=A`)6|*Ft56Gcc_t;z+aaiYBRM$nlrc##iN z*FHc5Ze36F6IGCPNb@@_(~`fX2CMJL6ZFxzhmo(Et#KDFk&|0*s5{kqw5DWsQ}$A4 zQG-NXBI-_yk`LOpx6zD^ZUYYDQ{Z;`t5FvPPWi?LmJ#)WncvZf>7w&M^*8zjoEVfh zwR$2}gWRjkn}@2gj2vPxS}OMo4&9?RF0vgyQ+)Ks@!?bYbiesQQfw&EaOMvMnZ&l8=L1YtqrJ!N+(*T%8!qvZ&%MjAJt}!M!?=zOw}hT zn+6qhNaTwhLw4lJ_=X5F4qdD`8U~UR|8x}s7Z?1JWm>xKh;wNLdP>G*_$7)6UCg(< z$}TnCE{$N}f~x8g^c=l5=?d{uj}sv>J?SwnW78gi>oV{whF8x-*2+kpBjwE_`+Ro{ zJRJqB)V~jBh@URUz04^*V${>G&+t7Wt z%7<5HZv5YG)(0ZLt=Yz3!s&%SIH7{XY+p`b2jk??m~sU=5zxohFsADfyAM*BVgO56Y5e!N7;4e zMZIW89j?yyxc<=e_-cXQiL%#s%?4Y>6E1X0s{8+-OM)U_r|eWKyz7L9c?}$~3BmuD zNbrILo`V1x{md&qN4sA=$8NgTDQ8|fBO93A$5I_E%{ZBG;}muDvQR;_iT%R{sBA-B z;KmwMYcBMToKkp;(DpFYVR`4T;Z~}|YrnQBr1DT2aBvSsg@x}dHdbTTml+0K@Dqr( z_UlfvsXrR!64Z3wgj9yuslsD-6KZGPyCm@4@EOyUSA7}(KwvBLjqj#1__MHyC>iX~ zZmNezU^6p4D;jClW`OHIh(h$+l85X>E^m*R*wQ92<=NHn1p%f~{0YPpZm&8`BYByz z-Hm}m1^2bUb#19zMnyKqLf%*XxB-xziY1Zckk#&8P_!D1AK~}=+fD!AkWGBL$OWo@?{409qS=Ra~8rdAr?vTo(eAg0_!vmY2Cab6f z*~vlRJ8*$ZGfOqBZ5Spqq_7rlAE0q~%zeo(l|sKRii2mO3Gs=+nsWF#+qh%(lG`gS z%|HLwFINx6jMa?alN`Kh8o|0{`Y=ZipkvVI1~9}Ds`i6 zJqMot{H9d`&#-O50O!j6^ytBLl5I%j99p<}XpaXUySU9hIlTpyKE>7ZLW%_Cg5+_0 zk>@I_^Ez-=Td*V{Sg>tIqjP!F&m=)yAxUpEKk)RMgMGqui7ugh5XjweqPTox#1Tb@ zmp9r+aqqIs#J*jrvaD-eoWta7R@3t-`L=LtRuju8bZDyAw5hr_=Q;j|!;q?C>#b`c z=Pmmd_~hPGo&MQpmF@<~_6$OdedU9LMgz=InRy9+=mFc&5+94FzTh_r-g+D?Lnykj z#bthWvmhiquQ((m;IyCa`d3ZMijKe-!@j<20&-^#`I{L@Cwh!{UoMPdH;uHQqjOaq zgAA8;+=YG;OjR)uL=&R7h}A-uXYt0W?tGeP*nhZvNfdnTTzCJEKcFWSS{G8nneW3h zQ*B$=^iimz?fUw{Cakp(WJ7ce3+sW-7b1&@6C7UZTlcu0Gx=J9$$~iE-b|=PBL9+` zmKN`U6C*@_8zurhr)?AAC@&Fa)}gEdhc-ME{qaKPwC<^+fPHv;iuwN#2B+cyA}^g) zh@X{i`Ll$(L{PJ*0}1&f<*uX4{t^#MemH*gd3l*{#Ykq=E_dVqY5!cLx0HDHvb%2b z*Z5CIZGG&tH?EA&YxWF;>5i)978~t!Gk~2N+(1{>H( z^M7PEuyvdp1XAS-fVqJ!fk9_*@BL-bN~`6t)%3tSuG>i+0z155PDD4*cZx6$;QS$( z%ujnfC;^-t7ii$xagXiEX#w`1`DXV$o(Iwg5j4y_^iUOIN63&3FgeF#*9n4qJU_^2 z<{r=1LTpzp;RO+}3!S*P!$vR)Y5N8_bYRgim0wa$dJ~T3Xx-b9G{6laXx7JjA&r!I zX6c4g(^L`@vE#bF$ranp=ex&RWM&Sxv;dpw_K%6#{DB=> z{(jxBPr27Q2N7*`(rfSd(5!RPCxJjG-9z7c4xTA31S0kK=J|bO0C$0CIkq&rvTz!= zBM%Wo0L2p&w}`BO-pcL(?_7ZH@er~QyB6#lo!~X?VlF^wL0ypwDg$(Wwey_6U;PHU zs2qqOq|a|Mn(}vLlm;yz{SmvfBHT3FObC>X-N=d^bZxx^D1+v6DTsxM5{F#7=?CV#y^h#Ty0^)c;~FbebFoUCOWZs*5SNSQQ(%^QgaF4fTo2Ky zuEMp_;RT5MLI}}HM|+OSP&M@Lc%2pxf2@K7MH3-RMEkV2uY!5ieW zTpO?lcIO-xlgY_Oyu@yXhPq(K6-Zn|wh}NtfiT}ieiwtV@}l;5T%}oApIF5#A;3}R zs+u%QNeUPQBg<6a0HoUb0l5~)pltEI-QyY7j@`74L9X5X1>hCHXrS&w$`L)3NMO!X zhcestcuM)&Hn~wsI{-C?bsWh>-3Qxsu&s6g``l>~ZbubC+RyE!e^25#WD3!y5oAqU z?zcaP1uTEy6n5MTk%-t0-ECdxn!%_jPBI{-18#q@JqT!>wo;GY-FXGZcq-?+Ashw98H5o7!|Hwo*<4fw{@1h9PlRzDRQaE2tP21=V%Qm5 z<{KbdHk94uP_tI^F6`t~i!^segzql`a~iynzYVbiDj6jRLI7ZBw#XizqEAhMzhgIM zZ|(BMa<3q$o@r!62~ZCKkS1gH0Hyf@>1cPln5n`NwWoHULz663P8X>CQ!I`(X2M) z+GSuEosB#ny@)_gq2~o^T0M!Ah*&T%SMT*@mLbhKS;qO5KVvy=T=1@tr`2R8@R{J_ zmm*=nPw`l3 zG8@RcZ&9(j5SyDy-1ro%`T$}A27J;wgM&T~;OzOp(m(NH$`Q`w#&Vma zIrZr707%?lg)R7TFGvLV>rfJu0oZm^|8pZg@}2FG7Tng6TP0Yc9?4*jCrJX1;`Yjh z$7cTrf$Uh7-u(djiukjT$>`l>87fLogWt{5fX8nIgw8JSFQ9uJXs8O=T|n+CSEAWs z0K#%@AnYt>%PPhU9xYEGb+Z+2o D9V+?_ literal 53584 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 diff --git a/src/MyApplication/app/src/main/res/values/strings.xml b/src/MyApplication/app/src/main/res/values/strings.xml index ef71314..214ee4b 100644 --- a/src/MyApplication/app/src/main/res/values/strings.xml +++ b/src/MyApplication/app/src/main/res/values/strings.xml @@ -10,10 +10,10 @@ 更换皮肤 分享应用 关于应用 - 作者:@:Curry + 作者:@:天下勇密一家人 设置 主页 - 嗖藏 @Curry All rights reserved + 嗖藏 @天下勇密一家人 All rights reserved 应用加密 嗖嗖嗖,世界都是你的 退出 diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.gitignore b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.gitignore new file mode 100644 index 0000000..c6cbe56 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.gitignore @@ -0,0 +1,8 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/compiler.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/compiler.xml new file mode 100644 index 0000000..96cc43e --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/copyright/profiles_settings.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/encodings.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/gradle.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/gradle.xml new file mode 100644 index 0000000..7ac24c7 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/markdown-navigator/profiles_settings.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/markdown-navigator/profiles_settings.xml new file mode 100644 index 0000000..57927c5 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/markdown-navigator/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/misc.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/misc.xml new file mode 100644 index 0000000..4a4e661 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/misc.xml @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Android Lint + + + General + + + Maven + + + + + AndroidLintUseCompoundDrawables + + + + + + + + + + + + + + + + + + + + + + + + + 1.8 + + + + + + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/modules.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/modules.xml new file mode 100644 index 0000000..5465b25 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/runConfigurations.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/runConfigurations.xml new file mode 100644 index 0000000..7f68460 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/.gitignore b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/build.gradle b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/build.gradle new file mode 100644 index 0000000..3d23052 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/build.gradle @@ -0,0 +1,38 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 24 + buildToolsVersion "23.0.3" + + defaultConfig { + applicationId "cn.bmob.sdkdemo" + minSdkVersion 14 + targetSdkVersion 24 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + //删除META-INF信息 + packagingOptions { + exclude 'META-INF/rxjava.properties' + exclude 'META-INF/maven/com.squareup.okhttp3/okhttp/pom.xml' + exclude 'META-INF/maven/com.squareup.okhttp3/okhttp/pom.properties' + exclude 'META-INF/maven/com.squareup.okio/okio/pom.xml' + exclude 'META-INF/maven/com.squareup.okio/okio/pom.properties' + exclude 'META-INF/maven/com.google.code.gson/gson/pom.xml' + exclude 'META-INF/maven/com.google.code.gson/gson/pom.properties' + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + testCompile 'junit:junit:4.12' + compile 'com.android.support:appcompat-v7:24.0.0' + //bmob-sdk + compile 'cn.bmob.android:bmob-sdk:3.6.0' +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/hs_err_pid14476.log b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/hs_err_pid14476.log new file mode 100644 index 0000000..41551e2 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/hs_err_pid14476.log @@ -0,0 +1,151 @@ +# +# There is insufficient memory for the Java Runtime Environment to continue. +# Native memory allocation (malloc) failed to allocate 1048576 bytes for AllocateHeap +# Possible reasons: +# The system is out of physical RAM or swap space +# In 32 bit mode, the process size limit was hit +# Possible solutions: +# Reduce memory load on the system +# Increase physical memory or swap space +# Check if swap backing store is full +# Use 64 bit Java on a 64 bit OS +# Decrease Java heap size (-Xmx/-Xms) +# Decrease number of Java threads +# Decrease Java thread stack sizes (-Xss) +# Set larger code cache with -XX:ReservedCodeCacheSize= +# This output file may be truncated or incomplete. +# +# Out of Memory Error (memory/allocation.inline.hpp:61), pid=14476, tid=0x0000000000000b14 +# +# JRE version: (8.0_76-b03) (build ) +# Java VM: OpenJDK 64-Bit Server VM (25.76-b03 mixed mode windows-amd64 compressed oops) +# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows +# + +--------------- T H R E A D --------------- + +Current thread (0x000000000051e000): JavaThread "Unknown thread" [_thread_in_vm, id=2836, stack(0x0000000002220000,0x0000000002320000)] + +Stack: [0x0000000002220000,0x0000000002320000] +[error occurred during error reporting (printing stack bounds), id 0xc0000005] + +Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) + + +--------------- P R O C E S S --------------- + +Java Threads: ( => current thread ) + +Other Threads: + +=>0x000000000051e000 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=2836, stack(0x0000000002220000,0x0000000002320000)] + +VM state:not at safepoint (normal execution) + +VM Mutex/Monitor currently owned by a thread: None + +Heap: + PSYoungGen total 56320K, used 972K [0x00000000eab00000, 0x00000000ee980000, 0x0000000100000000) + eden space 48640K, 2% used [0x00000000eab00000,0x00000000eabf3340,0x00000000eda80000) + from space 7680K, 0% used [0x00000000ee200000,0x00000000ee200000,0x00000000ee980000) + to space 7680K, 0% used [0x00000000eda80000,0x00000000eda80000,0x00000000ee200000) + ParOldGen total 128512K, used 0K [0x00000000c0000000, 0x00000000c7d80000, 0x00000000eab00000) + object space 128512K, 0% used [0x00000000c0000000,0x00000000c0000000,0x00000000c7d80000) + Metaspace used 771K, capacity 4480K, committed 4480K, reserved 1056768K + class space used 73K, capacity 384K, committed 384K, reserved 1048576K + +Card table byte_map: [0x00000000116e0000,0x00000000118f0000] byte_map_base: 0x00000000110e0000 + +Marking Bits: (ParMarkBitMap*) 0x0000000060069d00 + Begin Bits: [0x0000000012100000, 0x0000000013100000) + End Bits: [0x0000000013100000, 0x0000000014100000) + +Polling page: 0x0000000000230000 + +CodeCache: size=245760Kb used=328Kb max_used=328Kb free=245431Kb + bounds [0x0000000002320000, 0x0000000002590000, 0x0000000011320000] + total_blobs=57 nmethods=0 adapters=38 + compilation: enabled + +Compilation events (0 events): +No events + +GC Heap History (0 events): +No events + +Deoptimization events (0 events): +No events + +Internal exceptions (0 events): +No events + +Events (10 events): +Event: 0.031 loading class java/lang/Short +Event: 0.031 loading class java/lang/Short done +Event: 0.031 loading class java/lang/Integer +Event: 0.031 loading class java/lang/Integer done +Event: 0.031 loading class java/lang/Long +Event: 0.031 loading class java/lang/Long done +Event: 0.032 loading class java/lang/NullPointerException +Event: 0.032 loading class java/lang/NullPointerException done +Event: 0.032 loading class java/lang/ArithmeticException +Event: 0.032 loading class java/lang/ArithmeticException done + + +Dynamic libraries: +0x000000013f1c0000 - 0x000000013f1f1000 C:\Program Files\Android\Android Studio\jre\bin\java.exe +0x0000000077a80000 - 0x0000000077c2a000 C:\Windows\SYSTEM32\ntdll.dll +0x00000000774a0000 - 0x00000000775bf000 C:\Windows\system32\kernel32.dll +0x000007fefde60000 - 0x000007fefdecb000 C:\Windows\system32\KERNELBASE.dll +0x000007feffbb0000 - 0x000007feffc8b000 C:\Windows\system32\ADVAPI32.dll +0x000007fefe540000 - 0x000007fefe5df000 C:\Windows\system32\msvcrt.dll +0x000007fefe520000 - 0x000007fefe53f000 C:\Windows\SYSTEM32\sechost.dll +0x000007fefe120000 - 0x000007fefe24d000 C:\Windows\system32\RPCRT4.dll +0x00000000773a0000 - 0x000000007749a000 C:\Windows\system32\USER32.dll +0x000007fefe820000 - 0x000007fefe887000 C:\Windows\system32\GDI32.dll +0x000007fefe2b0000 - 0x000007fefe2be000 C:\Windows\system32\LPK.dll +0x000007fefe750000 - 0x000007fefe81a000 C:\Windows\system32\USP10.dll +0x000007fefc760000 - 0x000007fefc954000 C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7601.18837_none_fa3b1e3d17594757\COMCTL32.dll +0x000007fefe890000 - 0x000007fefe901000 C:\Windows\system32\SHLWAPI.dll +0x000007feffb80000 - 0x000007feffbae000 C:\Windows\system32\IMM32.DLL +0x000007fefe410000 - 0x000007fefe519000 C:\Windows\system32\MSCTF.dll +0x0000000073b70000 - 0x0000000073c42000 C:\Program Files\Android\Android Studio\jre\jre\bin\msvcr100.dll +0x000000005f8b0000 - 0x00000000600e4000 C:\Program Files\Android\Android Studio\jre\jre\bin\server\jvm.dll +0x000007fef9a80000 - 0x000007fef9a89000 C:\Windows\system32\WSOCK32.dll +0x000007fefe700000 - 0x000007fefe74d000 C:\Windows\system32\WS2_32.dll +0x000007fefeb20000 - 0x000007fefeb28000 C:\Windows\system32\NSI.dll +0x000007fefdee0000 - 0x000007fefdf1b000 C:\Windows\system32\WINMM.dll +0x000007fefcdf0000 - 0x000007fefcdfc000 C:\Windows\system32\VERSION.dll +0x0000000077c50000 - 0x0000000077c57000 C:\Windows\system32\PSAPI.DLL +0x000007fef9050000 - 0x000007fef905f000 C:\Program Files\Android\Android Studio\jre\jre\bin\verify.dll +0x000007fef7140000 - 0x000007fef7169000 C:\Program Files\Android\Android Studio\jre\jre\bin\java.dll +0x000007fef9030000 - 0x000007fef9046000 C:\Program Files\Android\Android Studio\jre\jre\bin\zip.dll + +VM Arguments: +jvm_args: -Djava.awt.headless=true -Xmx1024M -Dfile.encoding=GBK -Duser.country=CN -Duser.language=zh -Duser.variant +java_command: com.android.dx.command.Main --dex --num-threads=4 --output C:\Users\Administrator\Desktop\v5\BmobDemo\app\build\intermediates\pre-dexed\debug\filechoose_0a559a1ffc7b1556dde8cbfa0e40a71676d9d3fd.jar C:\Users\Administrator\Desktop\v5\BmobDemo\app\libs\filechoose.jar +java_class_path (initial): D:\AS_SDK\build-tools\23.0.3\lib\dx.jar +Launcher Type: SUN_STANDARD + +Environment Variables: +JAVA_HOME=D:\Program Files\Java +PATH=C:\ProgramData\Oracle\Java\javapath;D:\Program Files (x86)\python\Scripts;E:\nexus\nexus-3.3.0-01\bin;%CATALINA_HOME%\bin;D:\Program Files\Java\bin;D:\Program Files (x86)\Io\IoLanguage\bin;D:\Program Files (x86)\Ruby23-x64\bin;D:\Program Files (x86)\python;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;D:\AS_SDK\build-tools\22.0.0;D:\AS_SDK\build-tools\23.0.2;D:\gradle\gradle-2.13\bin;C:\Users\Administrator\Desktop\CURL;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\AS_SDK\platform-tools;D:\SDK\adt-bundle-windows-x86_64-20140702\sdk\build-tools\android-4.4W;D:\groovy-2.4.6\bin;D:\Tomcat\apache-tomcat-8.0.33\bin;D:\apache-maven-3.3.9\bin;D:\Program Files\nodejs\;D:\Program Files (x86)\scala\bin;D:\Go\bin;D:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Users\Administrator\AppData\Local\atom\bin;C:\Users\Administrator\AppData\Roaming\npm +USERNAME=Administrator +OS=Windows_NT +PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 60 Stepping 3, GenuineIntel + + + +--------------- S Y S T E M --------------- + +OS: Windows 7 , 64 bit Build 7601 (6.1.7601.19160) + +CPU:total 4 (4 cores per cpu, 1 threads per core) family 6 model 60 stepping 3, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, avx2, aes, clmul, erms, lzcnt, tsc, tscinvbit, bmi1, bmi2 + +Memory: 4k page, physical 12272852k(732712k free), swap 16286656k(5328k free) + +vm_info: OpenJDK 64-Bit Server VM (25.76-b03) for windows-amd64 JRE (1.8.0_76-release-b03), built on Jun 29 2016 19:09:20 by "ralucas" with MS VC++ 10.0 (VS2010) + +time: Thu Apr 20 14:58:09 2017 +elapsed time: 0 seconds (0d 0h 0m 0s) + diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/libs/BmobPush_v1.0.0_0627.jar b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/libs/BmobPush_v1.0.0_0627.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6894b24b8d51e3ba9f4d56d3c953ca727c365ac GIT binary patch literal 57783 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 !h6(42Ho80g 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 zATesting Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/AndroidManifest.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..04c8175 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/AndroidManifest.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/BaseActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/BaseActivity.java new file mode 100644 index 0000000..324f6ec --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/BaseActivity.java @@ -0,0 +1,88 @@ +package cn.bmob.sdkdemo; + +import android.app.Activity; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; +import android.widget.BaseAdapter; +import android.widget.ListView; +import android.widget.Toast; + +import cn.bmob.v3.exception.BmobException; +import rx.Subscription; +import rx.subscriptions.CompositeSubscription; + +public class BaseActivity extends Activity { + + public static String TAG = "bmob"; + protected ListView mListview; + protected BaseAdapter mAdapter; + + private CompositeSubscription mCompositeSubscription; + + /** + * 解决Subscription内存泄露问题 + * @param s + */ + protected void addSubscription(Subscription s) { + if (this.mCompositeSubscription == null) { + this.mCompositeSubscription = new CompositeSubscription(); + } + this.mCompositeSubscription.add(s); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + public void toast(String msg){ + Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); + } + + Toast mToast; + + public void showToast(String text) { + if (!TextUtils.isEmpty(text)) { + if (mToast == null) { + mToast = Toast.makeText(getApplicationContext(), text, + Toast.LENGTH_SHORT); + } else { + mToast.setText(text); + } + mToast.show(); + } + } + + public void showToast(int resId) { + if (mToast == null) { + mToast = Toast.makeText(getApplicationContext(), resId, + Toast.LENGTH_SHORT); + } else { + mToast.setText(resId); + } + mToast.show(); + } + + public static void log(String msg) { + Log.i(TAG,"==============================================================================="); + Log.i(TAG, msg); + } + + public static void loge(Throwable e) { + Log.i(TAG,"==============================================================================="); + if(e instanceof BmobException){ + Log.e(TAG, "错误码:"+((BmobException)e).getErrorCode()+",错误描述:"+((BmobException)e).getMessage()); + }else{ + Log.e(TAG, "错误描述:"+e.getMessage()); + } + } + + @Override + protected void onDestroy() { + super.onDestroy(); + if (this.mCompositeSubscription != null) { + this.mCompositeSubscription.unsubscribe(); + } + } +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/BatchActionActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/BatchActionActivity.java new file mode 100644 index 0000000..59dd2d8 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/BatchActionActivity.java @@ -0,0 +1,271 @@ +package cn.bmob.sdkdemo; + +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.BaseAdapter; +import android.widget.ListView; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import cn.bmob.sdkdemo.bean.BankCard; +import cn.bmob.sdkdemo.bean.MyUser; +import cn.bmob.sdkdemo.bean.Person; +import cn.bmob.v3.BmobBatch; +import cn.bmob.v3.BmobObject; +import cn.bmob.v3.BmobUser; +import cn.bmob.v3.datatype.BatchResult; +import cn.bmob.v3.datatype.BmobDate; +import cn.bmob.v3.datatype.BmobGeoPoint; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.QueryListListener; + +public class BatchActionActivity extends BaseActivity { + + ListView mListview; + BaseAdapter mAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, + R.id.tv_item, getResources().getStringArray( + R.array.batch_action_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + testBatch(position + 1); + } + }); + } + + private void testBatch(int pos){ + switch (pos) { + case 1: + // 批量添加 + batchInsert(); + break; + case 2: + // 批量更新 + batchUpdate(); + break; + case 3: + // 批量删除 + batchDelete(); + break; + case 4: + //批量添加、删除、更新的同步提交batch(); + batch(); + break; + default: + break; + } + } + + /** + * 批量添加 + */ + private void batchInsert(){ + List persons = new ArrayList(); + for (int i = 0; i < 10; i++) { + Person person = new Person(); + person.setName("张三 "+i); + person.setAddress("上海朝阳路"+i+"号"); + person.setGpsAdd(new BmobGeoPoint(112.934755, 24.52065)); + person.setUploadTime(new BmobDate(new Date())); + List hobbys = new ArrayList(); + hobbys.add("阅读"); + hobbys.add("篮球"); + hobbys.add("唱歌"); + person.setHobby(hobbys); + person.setBankCard(new BankCard("中国银行", "176672673687545097"+i)); + //可批量添加带Poniter类型的数据,例如 + person.setAuthor(BmobUser.getCurrentUser(MyUser.class)); + persons.add(person); + } + new BmobBatch().insertBatch(persons).doBatch(new QueryListListener() { + + @Override + public void done(List o, BmobException e) { + if(e==null){ + for(int i=0;i persons = new ArrayList(); + Person p1 = new Person(); + p1.setObjectId("0197d1cf66"); + p1.setAge(105); + Person p2 = new Person(); + p2.setObjectId("32440c8b15"); + p2.setAge(106); + p2.setGender(false); + Person p3 = new Person(); + p3.setObjectId("967292cbef"); + p3.setAge(107); + + persons.add(p1); + persons.add(p2); + persons.add(p3); + + new BmobBatch().updateBatch(persons).doBatch(new QueryListListener() { + + @Override + public void done(List o, BmobException e) { + if(e==null){ + for(int i=0;i persons = new ArrayList(); + Person p1 = new Person(); + p1.setObjectId("d542eaa667"); + Person p2 = new Person(); + p2.setObjectId("8c88c5d849"); + Person p3 = new Person(); + p3.setObjectId("e003224592"); + + persons.add(p1); + persons.add(p2); + persons.add(p3); + + new BmobBatch().deleteBatch(persons).doBatch(new QueryListListener() { + + @Override + public void done(List o, BmobException e) { + if(e==null){ + for(int i=0;i persons = new ArrayList(); + Person person = new Person(); + person.setName("张三 "); + person.setAddress("上海朝阳路0号"); + person.setGpsAdd(new BmobGeoPoint(112.934755, 24.52065)); + person.setUploadTime(new BmobDate(new Date())); + List hobbys = new ArrayList(); + hobbys.add("阅读"); + hobbys.add("篮球"); + hobbys.add("唱歌"); + person.setHobby(hobbys); + person.setBankCard(new BankCard("中国银行", "176672673687545097")); + //可批量添加带Poniter类型的数据,例如 + person.setAuthor(BmobUser.getCurrentUser(MyUser.class)); + persons.add(person); + batch.insertBatch(persons); + + //批量更新 + List persons1=new ArrayList(); + Person p1 = new Person(); + p1.setObjectId("3388eb6caf"); + p1.setAge(35); + persons1.add(p1); + batch.updateBatch(persons1); + + //批量删除 + List persons2 = new ArrayList(); + Person p2 = new Person(); + p2.setObjectId("9af452ebd"); + persons2.add(p2); + batch.deleteBatch(persons2); + //执行批量操作 + batch.doBatch(new QueryListListener(){ + + @Override + public void done(List results, BmobException ex) { + if(ex==null){ + //返回结果的results和上面提交的顺序是一样的,请一一对应 +// {//批量添加 +// "success": { +// "createdAt": "2016-06-07 10:27:45", +// "objectId": "a2b30a0b64" +// } +// }, +// {//批量更新 +// "success": { +// "updatedAt": "2016-06-07 10:27:45" +// } +// }, +// {//批量删除 +// "error": { +// "code": 101, +// "error": "object not found for 9af452eb4." +// } +// } + for(int i=0;i(this, R.layout.list_item, R.id.tv_item, getResources().getStringArray(R.array.bmob_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + testBmob(position + 1); + } + }); + } + + private void testBmob(int pos) { + switch (pos) { + case 1: + startActivity(new Intent(this, UserActivity.class)); + break; + case 2: + startActivity(new Intent(this, CRUDActivity.class)); + break; + case 3: + // 关联数据 + startActivity(new Intent(this, WeiboListActivity.class)); + break; + case 4: + // 批量操作 + startActivity(new Intent(this, BatchActionActivity.class)); + break; + case 5: + startActivity(new Intent(this, ACLActivity.class)); + break; + case 6: + startActivity(new Intent(this, BmobFileActivity.class)); + break; + case 7: + cloudCode(); + break; + case 8: + realTime(); + break; + case 9: + // 客户端之间的推送服务 + startActivity(new Intent(this, ActBmobPush.class)); + break; + case 10: + // 应用自动更新 + startActivity(new Intent(this, ActAutoUpdate.class)); + break; + case 11: + // 地理位置 + startActivity(new Intent(this, LocationActivity.class)); + break; + case 12: + getServerTime(); + break; + case 13: + //统计查询 + startActivity(new Intent(this, QueryStatisticActivity.class)); + break; + case 14: + //SQL查询 + startActivity(new Intent(this, QuerySQLActivity.class)); + break; + case 15: + startActivity(new Intent(this, SMSCodeActivity.class)); + break; + case 16: + //表结构 +// getAllTableSchema(); + getTableSchema(); + break; + } + } + + /** + * 获取服务器时间 + */ + private void getServerTime() { + Bmob.getServerTime(new QueryListener() { + + @Override + public void done(Long time, BmobException e) { + if(e==null){ + SimpleDateFormat formatter = new SimpleDateFormat( + "yyyy-MM-dd HH:mm"); + String times = formatter.format(new Date(time * 1000L)); + toast("当前服务器时间为:" + times); + }else{ + toast("获取服务器时间失败:" + e.getMessage()); + + } + } + + }); + } + + /** + * 云端代码 + */ + private void cloudCode() { +// 后台的云端代码: +// function onRequest(request, response, modules) { +// //获取SDK客户端上传的name参数 +// var name = request.body.inputData; +// var json = JSON.parse(name); +// response.end(json.Type); +// } + //测试json请求参数 + AsyncCustomEndpoints ace = new AsyncCustomEndpoints(); + JSONObject obj = new JSONObject(); + try { + JSONObject o= new JSONObject(); + o.put("Type", "SignUp"); + o.put("Phone", "111"); + obj.put("inputData", o); + } catch (JSONException e1) { + e1.printStackTrace(); + } + ace.callEndpoint("t", obj, new CloudCodeListener() { + + @Override + public void done(Object object, BmobException e) { + if(e==null){ + String result = object.toString(); + log("云端usertest方法返回:"+result); + toast("云端usertest方法返回:" + result); + }else{ + toast("访问云端usertest方法失败:" + e.getMessage()); + } + } + }); +// //不带请求的云端代码 +// ace.callEndpoint("testJSONObject", new CloudCodeListener() { +// +// @Override +// public void done(Object object, BmobException e) { +// if(e==null){ +// toast("云端usertest方法返回:" + object.toString()); +// String json = object.toString(); +// try { +// JSONObject obj = new JSONObject(json); +// String ud = obj.getString("ud"); +// toast("云端usertest方法返回ud:" + ud); +// } catch (Exception e1) { +// toast("云端usertest方法返回错误:" + e1.getMessage()); +// } +// }else{ +// toast("访问云端usertest方法失败:" + e.getMessage()); +// } +// } +// }); + } + + private void realTime(){ + final BmobRealTimeData rtd = new BmobRealTimeData(); + rtd.start(new ValueEventListener() { + + @Override + public void onDataChange(JSONObject data) { + log("onDataChange:data = "+data); + } + + @Override + public void onConnectCompleted(Exception ex) { + log("连接成功:"+rtd.isConnected()); + if(rtd.isConnected()){ + // 监听表更新 + rtd.subTableUpdate("Person"); + } + } + }); + } + + + + /**获取指定账户下的所有表的表结构信息 + * @method getAllTableSchema + * @return void + * @exception + */ + private void getAllTableSchema(){ + Bmob.getAllTableSchema(new QueryListListener() { + + @Override + public void done(List schemas, BmobException ex) { + if(ex==null && schemas!=null && schemas.size()>0){ + log(""+schemas.get(0).getClassName()+"---"+schemas.get(0).getFields().toString()); + }else{ + toast("获取所有表的表结构信息失败:" + ex.getLocalizedMessage()+"("+ex.getErrorCode()+")"); + } + } + }); + } + + /** 获取指定表的表结构信息 + * @method getTableSchema + * @return void + * @exception + */ + public void getTableSchema(){ + Bmob.getTableSchema("_User", new QueryListener() { + + @Override + public void done(BmobTableSchema schema, BmobException ex) { + if(ex==null){ + log(""+schema.getClassName()+"---"+schema.getFields().toString()); + }else{ + toast("获取用户表的表结构信息失败:" + ex.getLocalizedMessage()+"("+ex.getErrorCode()+")"); + } + } + }); + } + + public void onBackPressed() { + finish(); + }; +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/acl/ACLActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/acl/ACLActivity.java new file mode 100644 index 0000000..cf8ebeb --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/acl/ACLActivity.java @@ -0,0 +1,163 @@ +package cn.bmob.sdkdemo.acl; + +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.sdkdemo.bean.Person; +import cn.bmob.v3.BmobACL; +import cn.bmob.v3.BmobRole; +import cn.bmob.v3.BmobUser; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.SaveListener; +import cn.bmob.v3.listener.UpdateListener; + +public class ACLActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, + R.id.tv_item, getResources().getStringArray( + R.array.bmob_acl_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + testBmob(position + 1); + } + }); + + } + + private void testBmob(int pos) { + switch (pos) { + case 1: + // 创建数据时添加ACL + createACLData(); + break; + case 2: + // 创建角色 + createRole(); + break; + case 3: + // 更新角色 + updateRole(); + break; + case 4: + // 更新角色(删除角色中的用户) + removeRole(); + break; + default: + break; + } + } + + /** + * 创建数据时添加ACL + */ + private void createACLData(){ + Person person = new Person(); + person.setName("职员"); + person.setAddress("广州市"); + //添加ACL权限控制 + BmobACL aCL = new BmobACL(); + aCL.setPublicReadAccess(true);//设置所有人可读的权限 + aCL.setPublicWriteAccess(true);//设置所有人可写的权限 + aCL.setWriteAccess(BmobUser.getCurrentUser(), true);//设置当前用户可写的权限 +// aCL.setReadAccess("用户的objectId", false);//指定特定用户不可读 +// aCL.setWriteAccess("用户的objectId", true);//指定特定用户可写 + BmobRole hr = new BmobRole("hr"); + aCL.setRoleReadAccess(hr, true);//指定hr类的人可读 + aCL.setRoleWriteAccess("hr", true);//指定hr类的人可写 + person.setACL(aCL); + person.save(new SaveListener() { + + @Override + public void done(String o, BmobException e) { + if(e==null){ + log("创建成功"); + }else{ + loge(e); + } + } + + }); + } + + /**创建角色 + * @method createRole + * @params + * @return void + * @exception + */ + private void createRole(){ + BmobRole hr_role = new BmobRole("hr");//为当前用户分配角色 + hr_role.getUsers().add(BmobUser.getCurrentUser()); + hr_role.save(new SaveListener() { + @Override + public void done(String o, BmobException e) { + if(e==null){ + log("创建成功"); + }else{ + loge(e); + } + } + }); + } + + /** + * 更新角色 + */ + private void updateRole() { + BmobRole role = new BmobRole("hr"); + role.setObjectId("6f35f87f3a"); + role.getUsers().add(BmobUser.getCurrentUser()); + role.update(new UpdateListener() { + + @Override + public void done(BmobException e) { + if(e==null){ + log("更新成功"); + }else{ + loge(e); + } + } + + }); + + } + + /**删除角色 + * @method removeRole + * @params + * @return void + * @exception + */ + private void removeRole(){ + BmobRole role = new BmobRole("hr"); + role.setObjectId("6f35f87f3a"); + role.getUsers().remove(BmobUser.getCurrentUser()); + role.update(new UpdateListener() { + + @Override + public void done(BmobException e) { + if(e==null){ + log("更新成功"); + }else{ + loge(e); + } + } + }); + } + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/autoupdate/ActAutoUpdate.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/autoupdate/ActAutoUpdate.java new file mode 100644 index 0000000..beefd92 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/autoupdate/ActAutoUpdate.java @@ -0,0 +1,137 @@ +package cn.bmob.sdkdemo.autoupdate; + +import android.os.Bundle; +import android.os.Environment; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ListView; +import android.widget.Toast; + +import java.io.File; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.BmobDialogButtonListener; +import cn.bmob.v3.listener.BmobUpdateListener; +import cn.bmob.v3.update.BmobUpdateAgent; +import cn.bmob.v3.update.UpdateResponse; +import cn.bmob.v3.update.UpdateStatus; + +public class ActAutoUpdate extends BaseActivity { + + String[] arr = {"自动更新","手动更新","静默下载更新","删除文件"}; + UpdateResponse ur; + + @Override + protected void onCreate(Bundle savedInstanceState) { + // TODO Auto-generated method stub + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, R.id.tv_item, arr); + mListview.setAdapter(mAdapter); + + mListview.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + testAutoUpdate(position + 1); + } + }); + +// 在你需要调用自动更新功能之前先进行初始化建表操作 +// 此方法适合开发者调试自动更新功能时使用,一旦AppVersion表在后台创建成功,建议屏蔽或删除此方法,否则会造成生成多行记录。 + BmobUpdateAgent.initAppVersion(); + + //利用如下方式计算apk的target_size大小: + log("应用的target_size的大小 = "+new File("sdcard/BmobExample.apk").length()); + //允许在非wifi环境下检测应用更新 + BmobUpdateAgent.setUpdateOnlyWifi(false); + //更新监听器 + BmobUpdateAgent.setUpdateListener(new BmobUpdateListener() { + + @Override + public void onUpdateReturned(int updateStatus, UpdateResponse updateInfo) { + //V3.4.4版本开始,增加版本更新错误提示,可通过此方法获取到错误信息 + BmobException e = updateInfo.getException(); + if(e!=null){ + Toast.makeText(ActAutoUpdate.this, "检测更新返回:"+e.getMessage()+"("+e.getErrorCode()+")", Toast.LENGTH_SHORT).show(); + }else{ + ur = updateInfo; + } + //以下适用于V3.4.4之前版本 +// if (updateStatus == UpdateStatus.Yes) { +// ur = updateInfo; +// }else if(updateStatus == UpdateStatus.No){ +// Toast.makeText(ActAutoUpdate.this, "版本无更新", Toast.LENGTH_SHORT).show(); +// }else if(updateStatus==UpdateStatus.EmptyField){//此提示只是提醒开发者关注那些必填项,测试成功后,无需对用户提示 +// Toast.makeText(ActAutoUpdate.this, "请检查你AppVersion表的必填项,1、target_size(文件大小)是否填写;2、path或者android_url两者必填其中一项。", Toast.LENGTH_SHORT).show(); +// }else if(updateStatus==UpdateStatus.IGNORED){ +// Toast.makeText(ActAutoUpdate.this, "该版本已被忽略更新", Toast.LENGTH_SHORT).show(); +// }else if(updateStatus==UpdateStatus.ErrorSizeFormat){ +// Toast.makeText(ActAutoUpdate.this, "请检查target_size填写的格式,请使用file.length()方法获取apk大小。", Toast.LENGTH_SHORT).show(); +// }else if(updateStatus==UpdateStatus.TimeOut){ +// Toast.makeText(ActAutoUpdate.this, "查询出错或查询超时", Toast.LENGTH_SHORT).show(); +// } + } + }); +// 设置对对话框按钮的点击事件的监听 + BmobUpdateAgent.setDialogListener(new BmobDialogButtonListener() { + + @Override + public void onClick(int status) { + switch (status) { + case UpdateStatus.Update: + Toast.makeText(ActAutoUpdate.this, "点击了立即更新按钮" , Toast.LENGTH_SHORT).show(); + break; + case UpdateStatus.NotNow: + Toast.makeText(ActAutoUpdate.this, "点击了以后再说按钮" , Toast.LENGTH_SHORT).show(); + break; + case UpdateStatus.Close://只有在强制更新状态下才会在更新对话框的右上方出现close按钮,如果用户不点击”立即更新“按钮,这时候开发者可做些操作,比如直接退出应用等 + Toast.makeText(ActAutoUpdate.this, "点击了对话框关闭按钮" , Toast.LENGTH_SHORT).show(); + break; + } + } + }); + + } + + private void testAutoUpdate(int pos){ + switch (pos) { + case 1://自动更新 + BmobUpdateAgent.update(this); + break; + case 2://手动更新 + BmobUpdateAgent.forceUpdate(this); + break; + case 3://静默下载 + BmobUpdateAgent.silentUpdate(this); + break; + case 4: + if(ur != null){ + File file = new File(Environment.getExternalStorageDirectory(), ur.path_md5 + ".apk"); + if (file != null && file.exists()) { + if (file.delete()) { + Toast.makeText(ActAutoUpdate.this, "删除完成", + Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(ActAutoUpdate.this, "删除失败", + Toast.LENGTH_SHORT).show(); + } + } else { + Toast.makeText(ActAutoUpdate.this, "删除完成", Toast.LENGTH_SHORT).show(); + } + } else { + Toast.makeText(ActAutoUpdate.this, "删除失败", Toast.LENGTH_SHORT).show(); + } + break; + default: + break; + } + } + + + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/BankCard.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/BankCard.java new file mode 100644 index 0000000..606363b --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/BankCard.java @@ -0,0 +1,26 @@ +package cn.bmob.sdkdemo.bean; + +public class BankCard{ + + private String cardNumber; + private String bankName; + + public BankCard(String bankName, String cardNumber){ + this.bankName = bankName; + this.cardNumber = cardNumber; + } + + public String getCardNumber() { + return cardNumber; + } + public void setCardNumber(String cardNumber) { + this.cardNumber = cardNumber; + } + public String getBankName() { + return bankName; + } + public void setBankName(String bankName) { + this.bankName = bankName; + } + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/GameScore.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/GameScore.java new file mode 100644 index 0000000..c0a4578 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/GameScore.java @@ -0,0 +1,97 @@ +package cn.bmob.sdkdemo.bean; + +import cn.bmob.v3.BmobObject; +import cn.bmob.v3.datatype.BmobGeoPoint; + +public class GameScore extends BmobObject { + + /** + * + */ + private static final long serialVersionUID = 1L; + + public GameScore(){ + super(); + } + + public GameScore(String tableName){ + super(tableName); + } + + /** + * 玩家 + */ + private MyUser player; + + /** + * 玩家昵称--对应User表的用户名 + */ + private String name; + /** + * 游戏得分 + */ + private Integer playScore; + + /** + * 签到得分 + */ + private Integer signScore; + + /** + * 游戏(玩家所玩的游戏) + */ + private String game; + + private BmobGeoPoint gps; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public BmobGeoPoint getGps() { + return gps; + } + + public void setGps(BmobGeoPoint gps) { + this.gps = gps; + } + + public MyUser getPlayer() { + return player; + } + + public void setPlayer(MyUser player) { + this.player = player; + } + + public String getGame() { + return game; + } + + public void setGame(String game) { + this.game = game; + } + + public Integer getPlayScore() { + return playScore; + } + + public void setPlayScore(Integer playScore) { + this.playScore = playScore; + } + + public Integer getSignScore() { + return signScore; + } + + public void setSignScore(Integer signScore) { + this.signScore = signScore; + } + + + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/MyUser.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/MyUser.java new file mode 100644 index 0000000..f6c0575 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/MyUser.java @@ -0,0 +1,68 @@ +package cn.bmob.sdkdemo.bean; + +import java.util.List; + +import cn.bmob.v3.BmobUser; + +public class MyUser extends BmobUser { + + private static final long serialVersionUID = 1L; + private Integer age; + private Integer num; + private Boolean sex; + + private List hobby; // 对应服务端Array类型:String类型的集合 + private List cards; // 对应服务端Array类型:Object类型的集合 + + private BankCard mainCard; //主卡 + private Person banker; //银行工作人员 + + public Boolean getSex() { + return sex; + } + public void setSex(Boolean sex) { + this.sex = sex; + } + public List getHobby() { + return hobby; + } + public void setHobby(List hobby) { + this.hobby = hobby; + } + public List getCards() { + return cards; + } + public void setCards(List cards) { + this.cards = cards; + } + public Integer getNum() { + return num; + } + public void setNum(Integer num) { + this.num = num; + } + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + public BankCard getMainCard() { + return mainCard; + } + public void setMainCard(BankCard mainCard) { + this.mainCard = mainCard; + } + public Person getBanker() { + return banker; + } + public void setBanker(Person banker) { + this.banker = banker; + } + + @Override + public String toString() { + return getUsername()+"\n"+getObjectId()+"\n"+age+"\n"+num+"\n"+getSessionToken()+"\n"+getEmailVerified(); + } +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/Person.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/Person.java new file mode 100644 index 0000000..0b967ef --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/bean/Person.java @@ -0,0 +1,107 @@ +package cn.bmob.sdkdemo.bean; + +import java.util.List; + +import cn.bmob.v3.BmobObject; +import cn.bmob.v3.datatype.BmobDate; +import cn.bmob.v3.datatype.BmobFile; +import cn.bmob.v3.datatype.BmobGeoPoint; + +public class Person extends BmobObject { + /** + * + */ + private static final long serialVersionUID = 1L; + private String name; + private Integer age; + private Boolean gender; + private String address; + private String email; + + private BankCard bankCard; // 对应服务端的Object类型 + private List hobby; // 对应服务端Array类型:String类型的集合 + private List cards; // 对应服务端Array类型:Object类型的集合 + + private BmobFile pic; + private BmobGeoPoint gpsAdd; + private BmobDate uploadTime; + private MyUser author; + + public MyUser getAuthor() { + return author; + } + public void setAuthor(MyUser author) { + this.author = author; + } + public Boolean getGender() { + return gender; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public Integer getAge() { + return age; + } + public void setAge(Integer age) { + this.age = age; + } + public Boolean isGender() { + return gender; + } + public void setGender(Boolean gender) { + this.gender = gender; + } + public String getAddress() { + return address; + } + public void setAddress(String address) { + this.address = address; + } + public String getEmail() { + return email; + } + public void setEmail(String email) { + this.email = email; + } + public BmobFile getPic() { + return pic; + } + public void setPic(BmobFile pic) { + this.pic = pic; + } + public BmobGeoPoint getGpsAdd() { + return gpsAdd; + } + public void setGpsAdd(BmobGeoPoint gpsAdd) { + this.gpsAdd = gpsAdd; + } + public BmobDate getUploadTime() { + return uploadTime; + } + public void setUploadTime(BmobDate uploadTime) { + this.uploadTime = uploadTime; + } + public BankCard getBankCard() { + return bankCard; + } + public void setBankCard(BankCard bankCard) { + this.bankCard = bankCard; + } + public List getHobby() { + return hobby; + } + public void setHobby(List hobby) { + this.hobby = hobby; + } + public List getCards() { + return cards; + } + public void setCards(List cards) { + this.cards = cards; + } + + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/CRUDActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/CRUDActivity.java new file mode 100644 index 0000000..841fb59 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/CRUDActivity.java @@ -0,0 +1,170 @@ +package cn.bmob.sdkdemo.crud; + +import android.content.Intent; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.sdkdemo.bean.BankCard; +import cn.bmob.sdkdemo.bean.Person; +import cn.bmob.v3.datatype.BmobDate; +import cn.bmob.v3.datatype.BmobGeoPoint; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.SaveListener; +import cn.bmob.v3.listener.UpdateListener; + +/** + * 增删改查 + */ +public class CRUDActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, + R.id.tv_item, getResources().getStringArray( + R.array.bmob_crud_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + testBmob(position + 1); + } + }); + + } + + private void testBmob(int pos) { + switch (pos) { + case 1: + testinsertObject(); + break; + case 2: + testUpdateObjet(); + break; + case 3: + testDeleteObject(); + break; + case 4: + startActivity(new Intent(this, QueryActivity.class)); + break; + } + } + + public static String objectId=""; + + + /** + * 插入对象 + */ + private void testinsertObject() { + final Person p2 = new Person(); + p2.setName("lucky"); + p2.setAddress("北京市海淀区"); + p2.setAge(25); + //添加Object类型 + p2.setBankCard(new BankCard("哈哈", "111")); + //添加Object类型的数组 + List cards =new ArrayList(); + for(int i=0;i<2;i++){ + cards.add(new BankCard("建行", "111"+i)); + } + p2.addAll("cards", cards); + //添加String类型的数组 + p2.addAll("hobby", Arrays.asList("游泳", "看书")); // 一次添加多个值到hobby字段中 +// p2.add("cards",new BankCard("建行", "111"));//一次添加单个值 + p2.setGpsAdd(new BmobGeoPoint(112.934755, 24.52065)); + p2.setUploadTime(new BmobDate(new Date())); + p2.save(new SaveListener() { + + @Override + public void done(String o, BmobException e) { + if(e==null){ + objectId = p2.getObjectId(); + toast("创建数据成功:" + p2.getObjectId()); + Log.d("bmob", "objectId = " + p2.getObjectId()); + Log.d("bmob", "name =" + p2.getName()); + Log.d("bmob", "age =" + p2.getAge()); + Log.d("bmob", "address =" + p2.getAddress()); + Log.d("bmob", "gender =" + p2.isGender()); + Log.d("bmob", "createAt = " + p2.getCreatedAt()); + }else{ + loge(e); + } + } + }); + } + + /** + * 更新对象 + */ + private void testUpdateObjet() { + final Person p2 = new Person(); + //更新数组中的某个位置的对象值 + p2.setValue("cards.0", new BankCard("cards.0", "cards.0的值")); + //更新对象数组中指定对象的指定字段的值 +// p2.setValue("cards.0.bankName", "银行卡"); +// p2.setValue("cards.0.cardNumber", "卡号"); +// p2.setValue("cards.1.bankName", "银行卡"); + //更新BmobObject的值 +// p2.setValue("author", BmobUser.getCurrentUser(this, MyUser.class)); + //更新Object类型的数组 +// List cards =new ArrayList(); +// for(int i=0;i<2;i++){ +// cards.add(new BankCard("叫姐姐"+i, "111"+i)); +// } +// p2.setValue("cards",cards); + //更新Object对象 + p2.setValue("bankCard",new BankCard("bankCard", "bankCard的值")); + //更新Object对象的值 +// p2.setValue("bankCard.bankName","你妹"); + //更新Integer类型 +// p2.setValue("age",11); +// p2.setValue("gender", true); + p2.update(objectId, new UpdateListener() { + + @Override + public void done(BmobException e) { + if(e==null){ + log("更新成功:" + p2.getUpdatedAt()); + }else{ + loge(e); + } + } + }); + + } + + /** + * 删除对象 + */ + private void testDeleteObject() { + Person p2 = new Person(); + p2.removeAll("cards", Arrays.asList(new BankCard("建行", "111"))); + p2.setObjectId(objectId); + p2.update(new UpdateListener() { + @Override + public void done(BmobException e) { + if(e==null){ + log("删除成功"); + }else{ + loge(e); + } + } + }); + } +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QueryActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QueryActivity.java new file mode 100644 index 0000000..356b22b --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QueryActivity.java @@ -0,0 +1,367 @@ +package cn.bmob.sdkdemo.crud; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.BaseAdapter; +import android.widget.ListView; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.sdkdemo.bean.Person; +import cn.bmob.sdkdemo.file.Movie; +import cn.bmob.v3.BmobQuery; +import cn.bmob.v3.BmobQuery.CachePolicy; +import cn.bmob.v3.datatype.BmobDate; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.CountListener; +import cn.bmob.v3.listener.FindListener; +import cn.bmob.v3.listener.QueryListener; +import rx.Subscriber; + +/** + * 查询数据 + */ +@SuppressLint("SimpleDateFormat") +public class QueryActivity extends BaseActivity { + + protected ListView mListview; + protected BaseAdapter mAdapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_find); + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, R.id.tv_item, getResources().getStringArray( + R.array.bmob_findtest_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + testFind(position + 1); + } + }); + } + + private void testFind(int pos) { + switch (pos) { + case 1: + queryOne(); +// queryOneByTable(); + break; + case 2: + queryObjects(); +// queryObjectsByTable(); + break; + case 3: + countObjects(); + break; + case 4: + compositeAndQuery(); + break; + case 5: + compositeOrQuery(); + break; + case 6: + queryArrays(); + break; + } + } + + /** + * 根据表名查询多条数据 + */ + public void queryObjectsByTable(){ + BmobQuery query =new BmobQuery("Person"); + query.addWhereEqualTo("age", 25); + query.setLimit(2); + query.order("createdAt"); + query.findObjectsByTable(new QueryListener() { + @Override + public void done(JSONArray ary, BmobException e) { + if(e==null){ + log(ary.toString()); + }else{ + loge(e); + } + } + }); + } + + public void queryObjects(){ + final BmobQuery bmobQuery = new BmobQuery(); + bmobQuery.addWhereEqualTo("age", 25); + bmobQuery.setLimit(2); + bmobQuery.order("createdAt"); + //先判断是否有缓存 + boolean isCache = bmobQuery.hasCachedResult(Person.class); + if(isCache){ + bmobQuery.setCachePolicy(CachePolicy.CACHE_ELSE_NETWORK); // 先从缓存取数据,如果没有的话,再从网络取。 + }else{ + bmobQuery.setCachePolicy(CachePolicy.NETWORK_ELSE_CACHE); // 如果没有缓存的话,则先从网络中取 + } +// observable形式 + bmobQuery.findObjectsObservable(Person.class) + .subscribe(new Subscriber>() { + @Override + public void onCompleted() {} + + @Override + public void onError(Throwable e) { + loge(e); + } + + @Override + public void onNext(List persons) { + log("查询成功:共"+persons.size()+"条数据。"); + toast("查询成功:共"+persons.size()+"条数据。"); + } + }); +// bmobQuery.findObjects(new FindListener() { +// +// @Override +// public void done(List object, BmobException e) { +// if(e==null){ +// toast("查询成功:共"+object.size()+"条数据。"); +// for (Person person : object) { +// Log.d(TAG, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ "); +// Log.d(TAG, "ObjectId = "+person.getObjectId()); +// Log.d(TAG, "Name = "+person.getName()); +// Log.d(TAG, "Age = "+person.getAge()); +// Log.d(TAG, "Address = "+person.getAddress()); +// Log.d(TAG, "Gender = "+person.isGender()); +// Log.d(TAG, "CreatedAt = "+person.getCreatedAt()); +// Log.d(TAG, "UpdatedAt = "+person.getUpdatedAt()); +// } +// }else{ +// loge(e); +// } +// } +// }); + } + + /** + * 根据表名查询单条数据 + */ + public void queryOneByTable(){ + BmobQuery query =new BmobQuery("Movie"); + query.getObjectByTable("5f1042e183", new QueryListener() { + @Override + public void done(JSONObject jsonObject, BmobException e) { + if(e==null){ + log(jsonObject.toString()); + }else{ + loge(e); + } + } + }); + } + + public void queryOne(){ + BmobQuery query = new BmobQuery(); + query.getObject("caa86e4ab8", new QueryListener() { + + @Override + public void done(Movie movie, BmobException e) { + if(e==null){ + log(movie.getFile().getFileUrl()+","+movie.getName()); + }else{ + loge(e); + } + } + }); + } + + /**查询2015-05-01当天的Person数据 + * @method queryObject + * @return void + * @exception + */ + public void queryDate(){ + BmobQuery bmobQuery = new BmobQuery(); + //查询2015-05-01当天的Person数据 + List> and = new ArrayList>(); + BmobQuery q1 = new BmobQuery(); + String start = "2016-03-23 00:00:00"; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = null; + try { + date = sdf.parse(start); + } catch (ParseException e) { + e.printStackTrace(); + } + q1.addWhereGreaterThanOrEqualTo("createdAt",new BmobDate(date)); + and.add(q1); + + BmobQuery q2 = new BmobQuery(); + String end = "2016-03-23 15:55:00"; + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date1 = null; + try { + date1 = sdf1.parse(end); + } catch (ParseException e) { + e.printStackTrace(); + } + q2.addWhereLessThanOrEqualTo("createdAt",new BmobDate(date1)); + and.add(q2); + bmobQuery.and(and); + bmobQuery.setLimit(10); + bmobQuery.order("-createdAt"); + boolean cache = bmobQuery.hasCachedResult(Person.class); + toast("是否有缓存:"+cache); + bmobQuery.setCachePolicy(CachePolicy.CACHE_ELSE_NETWORK); // 先从缓存取数据,如果没有的话,再从网络取。 + bmobQuery.findObjects(new FindListener() { + + @Override + public void done(List objects, BmobException e) { + if(e==null){ + if(objects!=null && objects.size()>0){ + toast("查询成功:"+objects.size()+"个"); + } + }else{ + loge(e); + } + } + + }); + } + + public void countObjects(){ + BmobQuery bmobQuery = new BmobQuery(); + bmobQuery.count(Person.class, new CountListener() { + + @Override + public void done(Integer count, BmobException e) { + if(e==null){ + toast("count对象个数为:"+count); + }else{ + loge(e); + } + } + }); + } + + /** + * @Description: 复合与查询:查询年龄6-29岁之间,且姓名以"y"或者"e"结尾的人 + * @param + * @return void + * @throws + */ + private void compositeAndQuery(){ + //查询年龄6-29岁之间的人,每一个查询条件都需要new一个BmobQuery对象 + //--and条件1 + BmobQuery eq1 = new BmobQuery(); + eq1.addWhereLessThanOrEqualTo("age", 29);//年龄<=29 + //--and条件2 + BmobQuery eq2 = new BmobQuery(); + eq2.addWhereGreaterThanOrEqualTo("age", 6);//年龄>=6 + + //查询姓名以"y"或者"e"结尾的人--这个需要使用到or查询 + //--and条件3 + BmobQuery eq3 = new BmobQuery(); + eq3.addWhereEndsWith("name", "y"); + BmobQuery eq4 = new BmobQuery(); + eq4.addWhereEndsWith("name", "e"); + List> queries = new ArrayList>(); + queries.add(eq3); + queries.add(eq4); + BmobQuery mainQuery = new BmobQuery(); + BmobQuery or = mainQuery.or(queries); + + //最后组装完整的and条件 + List> andQuerys = new ArrayList>(); + andQuerys.add(eq1); + andQuerys.add(eq2); + andQuerys.add(or); + //查询符合整个and条件的人 + BmobQuery query = new BmobQuery(); + query.and(andQuerys); + query.findObjects(new FindListener() { + @Override + public void done(List object, BmobException e) { + if(e==null){ + toast("查询年龄6-29岁之间,姓名以'y'或者'e'结尾的人个数:"+object.size()); + }else{ + loge(e); + } + } + + + }); + } + + /** + * @Description: 复合或查询:查询name字段有值且不为"",查询age 等于 29 或者 age 等于 6 的人 + * @param + * @return void + * @throws + */ + private void compositeOrQuery(){ +// BmobQuery and1 = new BmobQuery(); +// and1.addWhereExists("name"); +// BmobQuery and2 = new BmobQuery(); +// and2.addWhereNotEqualTo("name", ""); +// List> ands = new ArrayList>(); +// ands.add(and1); +// ands.add(and2); + BmobQuery or1 = new BmobQuery(); + or1.addWhereMatches("name", "luck"); + BmobQuery or2 = new BmobQuery(); + or2.addWhereMatches("address", "北京"); + List> ors = new ArrayList>(); + ors.add(or1); + ors.add(or2); + BmobQuery mainQuery = new BmobQuery(); +// mainQuery.order("-createdAt"); +// mainQuery.and(ands); + mainQuery.or(ors); + mainQuery.findObjects(new FindListener() { + @Override + public void done(List object, BmobException e) { + if(e==null){ + toast("年龄为29或者6岁人的个数:"+object.size()); + }else{ + loge(e); + } + } + + }); + } + + /** + * 数组查询 + */ + public void queryArrays(){ + BmobQuery query = new BmobQuery(); + //查询喜欢看书的人 + String[] hobby = {"看书"}; + query.addWhereContainsAll("hobby", Arrays.asList(hobby)); + query.findObjects(new FindListener() { + @Override + public void done(List object, BmobException e) { + if(e==null){ + toast("查询成功:共" + object.size() + "条数据。"); + }else{ + loge(e); + } + } + + }); + } + + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QuerySQLActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QuerySQLActivity.java new file mode 100644 index 0000000..2f1f8b8 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QuerySQLActivity.java @@ -0,0 +1,367 @@ +package cn.bmob.sdkdemo.crud; + +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.List; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.sdkdemo.bean.GameScore; +import cn.bmob.sdkdemo.bean.MyUser; +import cn.bmob.v3.BmobQuery; +import cn.bmob.v3.BmobQuery.CachePolicy; +import cn.bmob.v3.BmobUser; +import cn.bmob.v3.datatype.BmobQueryResult; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.QueryListener; +import cn.bmob.v3.listener.SQLQueryListener; + +/** + * + * @class QuerySQLActivity + * @author smile + */ +public class QuerySQLActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, R.id.tv_item, getResources().getStringArray(R.array.bmob_sql_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + testBmob(position + 1); + } + }); + } + + private void testBmob(int pos) { + switch (pos) { + case 1: + querySql(); + break; + case 2: + queryCountSql(); + break; + case 3: + queryStatisticSql(); + break; + case 4: + queryStatmentSql(); + break; + } + } + + private void querySql(){ + //------------查询所有数据------------------------------------------- +// String sql = "select * from GameScore";//查询所有的游戏得分记录 + + //------------比较查询:相等、不等、大于、小于、大于等于、小于等于...------------- +// String sql = "select * from GameScore where playScore<10";//查询玩家得分在10以下的信息 +// String sql = "select * from GameScore where game='地铁跑酷'";//查询所有玩地铁跑酷这个游戏的游戏记录 +// String sql = "select * from GameScore where game!='地铁跑酷'";//查询除地铁跑酷这个游戏以外的游戏记录 + + //------------值是否存在查询------------------------------------------ +// String sql = "select * from GameScore where gps is not exists";//查询GameScore表中没有地理位置的所有信息(值是否存在的界定就是你没有为这个字段设置初始值,空字符串代表有值) + + //------------模糊查询------------------------------------------------ +// String sql = "select * from GameScore where game like 地铁%";//查询GameScore表中游戏名以地铁开头的信息 +// String sql = "select * from GameScore where game not like 地铁%";//查询GameScore表中游戏名不以地铁开头的信息 +// String sql = "select * from GameScore where game regexp 地铁.*";//查询GameScore表中游戏名以地铁开头的信息 + + //------------数组查询------------------------------------------------ + //查询有游泳爱好的人(注意hobby是Person表中表示爱好的一个数组类型的字段) +// String sql = "select * from Person where hobby ='游泳'";// + //查询既爱好游泳也爱好看书的人 +// String sql = "select * from Person where hobby all ('游泳','看书')";// +// new BmobQuery().doSQLQuery(sql, new SQLQueryListener(){ +// +// @Override +// public void done(BmobQueryResult result, BmobException e) { +// if(e ==null){ +// List list = (List) result.getResults(); +// if(list!=null && list.size()>0){ +// for(int i=0;i query = new BmobQuery(); + query.setSQL(sql); + boolean isCache = query.hasCachedResult(GameScore.class); + toast("是否有缓存:"+isCache); + if(isCache){ + query.setCachePolicy(CachePolicy.CACHE_ELSE_NETWORK); // 先从缓存取数据,如果没有的话,再从网络取。 + }else{ + query.setCachePolicy(CachePolicy.NETWORK_ELSE_CACHE); // 如果没有缓存的话,则先从网络中取 + } + //执行SQL查询操作 + query.doSQLQuery(sql, new SQLQueryListener(){ + + @Override + public void done(BmobQueryResult result, BmobException e) { + if(e ==null){ + List list = (List) result.getResults(); + if(list!=null && list.size()>0){ + for(int i=0;i().doSQLQuery(sql, new SQLQueryListener(){ + + @Override + public void done(BmobQueryResult result, BmobException e) { + if(e ==null){ + int count = result.getCount(); + log("个数:"+count); + List list = (List) result.getResults(); + if(list.size()>0){ + for(int i=0;i().doStatisticQuery(bql,new QueryListener(){ + + @Override + public void done(JSONArray ary, BmobException e) { + if(e ==null){ + if(ary!=null){// + try { + JSONObject obj = ary.getJSONObject(0); + int sum = obj.getInt("_sumPlayScore"); + String name = obj.getString("name"); + showToast("游戏总得分:" + sum+",name:"+name); + } catch (JSONException e1) { + e1.printStackTrace(); + } + }else{ + showToast("查询成功,无数据"); + } + }else{ + loge(e); + } + } + }); + } + + /**占位符查询 + * @method queryStatmentSql + * @param + * @return void + * @exception + */ + private void queryStatmentSql(){ + MyUser user = BmobUser.getCurrentUser(MyUser.class); + if(user==null){ + toast("请先登录"); + return; + } + //查询当前用户在2015年5月12日之前,在特定地理位置附近的游戏记录 + String sql = "select * from GameScore where createdAt > date(?) and player = pointer(?,?) and gps near geopoint(?,?)"; + BmobQuery query = new BmobQuery(); + query.setSQL(sql); + query.setPreparedParams(new Object[]{"2015-05-12 00:00:00","_User",user.getObjectId(),112.934755,24.52065}); + boolean isCache = query.hasCachedResult(GameScore.class); + log("isCache = "+isCache); + if(isCache){ + query.setCachePolicy(CachePolicy.CACHE_ELSE_NETWORK); // 先从缓存取数据,如果没有的话,再从网络取。 + }else{ + query.setCachePolicy(CachePolicy.NETWORK_ELSE_CACHE); // 如果没有缓存的话,则先从网络中取 + } + query.doSQLQuery(new SQLQueryListener(){ + + @Override + public void done(BmobQueryResult result, BmobException e) { + if(e ==null){ + List list = (List) result.getResults(); + if(list!=null && list.size()>0){ + for(int i=0;i().doSQLQuery(sql,new SQLQueryListener(){ +// +// @Override +// public void done(BmobQueryResult result, BmobException e) { +// if(e ==null){ +// List list = (List) result.getResults(); +// if(list!=null && list.size()>0){ +// for(int i=0;i().doStatisticQuery(bql,new StatisticQueryListener(){ +// +// @Override +// public void done(Object result, BmobException e) { +// if(e ==null){ +// JSONArray ary = (JSONArray) result; +// if(ary!=null){// +// try { +// JSONObject obj = ary.getJSONObject(0); +// int sum = obj.getInt("_sumPlayScore"); +// showToast("游戏总得分:" + sum); +// } catch (JSONException e1) { +// e1.printStackTrace(); +// } +// }else{ +// showToast("查询成功,无数据"); +// } +// }else{ +// loge(e); +// } +// } +// }); + } +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QueryStatisticActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QueryStatisticActivity.java new file mode 100644 index 0000000..f49dd75 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/crud/QueryStatisticActivity.java @@ -0,0 +1,415 @@ +package cn.bmob.sdkdemo.crud; + +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.sdkdemo.bean.GameScore; +import cn.bmob.sdkdemo.bean.MyUser; +import cn.bmob.v3.BmobBatch; +import cn.bmob.v3.BmobObject; +import cn.bmob.v3.BmobQuery; +import cn.bmob.v3.BmobUser; +import cn.bmob.v3.datatype.BatchResult; +import cn.bmob.v3.datatype.BmobGeoPoint; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.QueryListListener; +import cn.bmob.v3.listener.QueryListener; + + +public class QueryStatisticActivity extends BaseActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, + R.id.tv_item, getResources().getStringArray( + R.array.bmob_statistic_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + testBmob(position + 1); + } + }); + createGameScores(); + } + + public void createGameScores() { + List scores = new ArrayList(); + //添加测试数据 + for (int i = 0; i < 5; i++) { + GameScore score = new GameScore(); + score.setGps(new BmobGeoPoint(112.934755,24.52065)); + MyUser user = BmobUser.getCurrentUser(MyUser.class); + score.setName(user.getUsername()); + score.setPlayer(user); + score.setGame("地铁跑酷"); + score.setPlayScore(5 + i); + score.setSignScore(i); + scores.add(score); + } + // + for (int i = 0; i < 5; i++) { + GameScore score = new GameScore(); + score.setGps(new BmobGeoPoint(111.934755,25.52065)); + MyUser user = BmobUser.getCurrentUser(MyUser.class);//为了测试pointer类型,因此需要用户登陆 + score.setName(user.getUsername()); + score.setPlayer(user); + score.setGame("部落冲突"); + score.setPlayScore(10 + i); + score.setSignScore(5+i); + scores.add(score); + } + BmobBatch batch = new BmobBatch(); + batch.insertBatch(scores); + batch.doBatch(new QueryListListener() { + @Override + public void done(List results, BmobException ex) { + if(ex==null){//这个ex只是代表此次请求正常返回-至于返回的是正确的还是错误的,需要查看BatchResult里面的数据 + for(int i=0;i query = new BmobQuery(); + query.sum(new String[] { "playScore" }); + query.findStatistics(GameScore.class,new QueryListener() { + + @Override + public void done(JSONArray ary, BmobException e) { + if(e==null){ + if(ary!=null){// + try { + JSONObject obj = ary.getJSONObject(0); + int sum = obj.getInt("_sumPlayScore"); + showToast("游戏总得分:" + sum); + } catch (JSONException e1) { + e1.printStackTrace(); + } + }else{ + showToast("查询成功,无数据"); + } + }else{ + loge(e); + } + } + + }); + + } + + /** + * 分组计算总和 + * + * @method queryGroupSum + * @return void + * @exception + */ + private void querySumByGroup() { + BmobQuery query = new BmobQuery(); + query.sum(new String[] { "playScore" });//计算得分总和 + query.groupby(new String[] { "createdAt" });//按照时间进行分组 + query.order("-createdAt");// 降序排列 + query.setLimit(1000); + query.findStatistics(GameScore.class,new QueryListener() { + + @Override + public void done(JSONArray ary, BmobException e) { + if(e==null){ + if(ary!=null){// + int length = ary.length(); + try { + for (int i = 0; i < length; i++) { + JSONObject obj = ary.getJSONObject(i); + int playscore = obj.getInt("_sumPlayScore"); + String createDate = obj.getString("createdAt"); + showToast("游戏总得分:" + playscore + ",时间:" + + createDate); + } + } catch (JSONException e1) { + e1.printStackTrace(); + } + }else{ + showToast("查询成功,无数据"); + } + }else{ + loge(e); + } + } + + }); + } + + /** + * 多个分组并计算多个总和 + * @method queryGroupSum + * @return void + * @exception + */ + private void querySumsByGroups() { + BmobQuery query = new BmobQuery(); + query.sum(new String[] { "playScore", "signScore" });//求多个列的总和 + query.groupby(new String[] { "createdAt", "game" });//按照时间和游戏进行分组 + query.order("-createdAt");//降序排列 + query.setLimit(100); + query.findStatistics(GameScore.class,new QueryListener() { + + @Override + public void done(JSONArray ary, BmobException e) { + if(e==null){ + if(ary!=null){ + int length = ary.length(); + try { + for (int i = 0; i < length; i++) { + JSONObject obj = ary.getJSONObject(i); + int playscore = obj.getInt("_sumPlayScore"); + int signscore = obj.getInt("_sumSignScore"); + String createDate = obj.getString("createdAt"); + String game = obj.getString("game"); + showToast("游戏总得分:" + playscore + ",签到得分:" + + signscore + ",时间:" + createDate+",game:"+game); + } + } catch (JSONException e1) { + e1.printStackTrace(); + } + } else { + showToast("查询成功,无数据"); + } + }else{ + loge(e); + } + } + }); + } + + /** + * 分组计算总和并只返回满足条件的部分值 + * @method queryGroupSum + * @return void + * @exception + */ + private void querySumByHaving() { + BmobQuery query = new BmobQuery(); + query.sum(new String[] {"playScore"});//计算总得分数 + query.groupby(new String[] {"game"});//分组条件:按游戏名进行分组 + query.order("-createdAt");// 降序排列 + HashMap map = new HashMap(); + JSONObject js = new JSONObject(); + try { + js.put("$gt", 150); + } catch (JSONException e1) { + } + map.put("_sumPlayScore", js);//过滤条件:总得分数大于150,只能过滤(sum等的查询条件) + query.having(map); + query.addWhereGreaterThan("playScore", 10);//增加where查询条件,得分数大于10的 + query.setLimit(100); + query.findStatistics(GameScore.class,new QueryListener() { + + @Override + public void done(JSONArray ary, BmobException e) { + if(e==null){ + if(ary!=null){ + int length = ary.length(); + try { + for (int i = 0; i < length; i++) { + JSONObject obj = ary.getJSONObject(i); + int playscore = obj.getInt("_sumPlayScore");//过滤条件的key是什么,返回的数据中就有什么 + String game = obj.getString("game"); + showToast("游戏得分:" + playscore + ",游戏名 = "+ game); + } + } catch (JSONException e1) { + e1.printStackTrace(); + } + } else { + showToast("查询成功,无数据"); + } + }else{ + loge(e); + } + } + + }); + } + + /** + * 分组计算总和并返回每个分组的记录数 + * @method queryGroupSum + * @return void + * @exception + */ + private void querySumByGroupCount() { + // 查询创建时间按天统计所有玩家的得分和每一天有多少条玩家的得分记录,并按时间降序: + BmobQuery query = new BmobQuery(); + query.sum(new String[] { "playScore" });// 统计总得分 + query.groupby(new String[] { "createdAt" });// 按照时间分组 + query.order("-createdAt");// 降序排列 + query.setHasGroupCount(true);// 统计每一天有多少玩家的得分记录,默认不返回分组个数 + query.findStatistics(GameScore.class,new QueryListener() { + + @Override + public void done(JSONArray ary, BmobException e) { + if(e==null){ + if (ary!=null) { + int length = ary.length(); + try { + for (int i = 0; i < length; i++) { + JSONObject obj = ary.getJSONObject(i); + int playscore = obj.getInt("_sumPlayScore"); + String createDate = obj.getString("createdAt"); + int count = obj.getInt("_count"); + showToast("游戏总得分:" + playscore + ",总共统计了" + + count + "条记录,统计时间 = "+ createDate); + } + } catch (JSONException e1) { + e1.printStackTrace(); + } + } else { + showToast("查询成功,无数据"); + } + }else{ + loge(e); + } + } + }); + } + + /**查询所有的得分 + * @method queryScore + * @params + * @return void + * @exception + */ + private void queryScores(){ + BmobQuery query = new BmobQuery(); + query.groupby(new String[]{"playScore"}); + query.order("-createdAt"); + query.findStatistics(GameScore.class, new QueryListener() { + + @Override + public void done(JSONArray ary, BmobException e) { + if(e==null){ + if (ary!=null) { + int length = ary.length(); + try { + for (int i = 0; i < length; i++) { + JSONObject obj = ary.getJSONObject(i); + String score = obj.getString("playScore"); + log("游戏分数:" + score); + } + } catch (JSONException e1) { + e1.printStackTrace(); + } + } else { + showToast("查询成功,无数据"); + } + }else{ + loge(e); + } + } + + }); + } + + /**查询其他 + * @method queryOthers + * @params + * @return void + * @exception + */ + private void queryOthers(){ + BmobQuery query = new BmobQuery(); + query.average(new String[]{"playScore"});//查询某列的平均值 +// query.min(new String[]{"playScore"});//查询最小值 +// query.max(new String[]{"playScore"});//查询最大值 + query.groupby(new String[]{"createdAt"}); + query.findStatistics(GameScore.class, new QueryListener() { + + @Override + public void done(JSONArray ary, BmobException e) { + if(e==null){ + if (ary!=null) { + try { + JSONObject obj = ary.getJSONObject(0); + double playscore = obj.getDouble("_avgPlayScore"); +// int minscore = obj.getInt("_minPlayScore"); +// int maxscore = obj.getInt("_maxPlayScore"); + String createDate = obj.getString("createdAt"); + showToast("avgscore = " + playscore+ ",统计时间 = "+ createDate); + } catch (JSONException e1) { + e1.printStackTrace(); + } + } else { + showToast("查询成功,无数据"); + } + }else{ + loge(e); + } + } + }); + } + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/file/BmobFileActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/file/BmobFileActivity.java new file mode 100644 index 0000000..a015ff5 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/file/BmobFileActivity.java @@ -0,0 +1,511 @@ +package cn.bmob.sdkdemo.file; + +import android.annotation.SuppressLint; +import android.app.ProgressDialog; +import android.content.Intent; +import android.os.Bundle; +import android.os.Environment; +import android.text.TextUtils; +import android.util.Log; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.Button; +import android.widget.TextView; + +import com.smile.filechoose.api.ChooserType; +import com.smile.filechoose.api.ChosenFile; +import com.smile.filechoose.api.FileChooserListener; +import com.smile.filechoose.api.FileChooserManager; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.v3.BmobBatch; +import cn.bmob.v3.BmobObject; +import cn.bmob.v3.datatype.BatchResult; +import cn.bmob.v3.datatype.BmobFile; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.DeleteBatchListener; +import cn.bmob.v3.listener.DownloadFileListener; +import cn.bmob.v3.listener.ProgressCallback; +import cn.bmob.v3.listener.QueryListListener; +import cn.bmob.v3.listener.SaveListener; +import cn.bmob.v3.listener.UpdateListener; +import cn.bmob.v3.listener.UploadBatchListener; +import rx.Observable; +import rx.Subscriber; +import rx.functions.Action1; +import rx.functions.Func1; + +/** 文件上传+批量更新数据 + * @ClassName: BmobFileActivity + * @author smile + * @date 2014-5-22 下午7:58:58 + * + * 文件上传包含以下四种形式:(单一文件上传或文件批量上传) + * 1、插入单条数据(该数据只有一个BmobFile列) + * 2、批量插入多条数据-且每条数据都存在一个BmobFile列 + * 3、插入单条数据(多个BmobFile列) + * 4、批量插入多条数据-且每条数据都存在多个BmobFile列 + */ +@SuppressLint("SdCardPath") +public class BmobFileActivity extends BaseActivity implements OnClickListener, FileChooserListener { + + Button tv_one_one; + Button tv_one_many; + Button tv_many_one; + Button tv_many_many; + Button btn_delete; + Button btn_delete_batch; + + private FileChooserManager fm; + + TextView tv_path; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_file); + initViews(); + initListeners(); + } + + public void initViews() { + tv_one_one = (Button) findViewById(R.id.tv_one_one); + tv_one_many = (Button) findViewById(R.id.tv_one_many); + tv_many_one = (Button) findViewById(R.id.tv_many_one); + tv_many_many = (Button) findViewById(R.id.tv_many_many); + btn_delete = (Button) findViewById(R.id.btn_delete); + btn_delete_batch = (Button) findViewById(R.id.btn_delete_batch); + tv_path = (TextView)findViewById(R.id.tv_path); + } + + public void initListeners() { + tv_one_one.setOnClickListener(this); + tv_one_many.setOnClickListener(this); + tv_many_one.setOnClickListener(this); + tv_many_many.setOnClickListener(this); + btn_delete.setOnClickListener(this); + btn_delete_batch.setOnClickListener(this); + } + + public void pickFile() { + fm = new FileChooserManager(this); + fm.setFileChooserListener(this); + try { + fm.choose(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + + @Override + public void onError(String arg0) { + showToast(arg0); + } + + ChosenFile choosedFile; + + @Override + public void onFileChosen(final ChosenFile file) { + choosedFile = file; + runOnUiThread(new Runnable() { + @Override + public void run() { + Log.i("life", choosedFile.getFilePath()); + showFileDetails(file); + File mp3 = new File(choosedFile.getFilePath()); + uploadMovoieFile(mp3); + } + }); + } + + private void showFileDetails(ChosenFile file) { + StringBuffer text = new StringBuffer(); + text.append("File name: " + file.getFileName() + "\n"); + text.append("File path: " + file.getFilePath() + "\n"); + text.append("File size: " + file.getFileSize() ); + tv_path.setText(text.toString()); + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == ChooserType.REQUEST_PICK_FILE && resultCode == RESULT_OK) { + if (fm == null) { + fm = new FileChooserManager(this); + fm.setFileChooserListener(this); + } + Log.i(TAG, "Probable file size: " + fm.queryProbableFileSize(data.getData(), this)); + fm.submit(requestCode, data); + } + } + + @Override + public void onClick(View v) { + switch (v.getId()) { + case R.id.tv_one_one://插入单条数据(一个BmobFile列) + insertDataWithOne(); + break; + case R.id.tv_one_many://插入单条数据(多个BmobFile列) + insertDataWithMany(); + break; + case R.id.tv_many_one://批量插入多条数据-且每条数据都存在一个BmobFile列 + insertBatchDatasWithOne(); + break; + case R.id.tv_many_many://批量插入多条数据-且每条数据都存在多个BmobFile列 + insertBatchDatasWithMany(); + break; + case R.id.btn_delete:// + deleteFile(); + break; + case R.id.btn_delete_batch://批量删除 + deleteBatchFile(); + break; + } + } + + private void deleteFile(){ + BmobFile file = new BmobFile(); + file.setUrl(url); + file.delete(new UpdateListener() { + @Override + public void done(BmobException e) { + if(e==null){ + showToast("文件删除成功"); + }else{ + showToast("文件删除失败:"+e.getErrorCode()+",msg = "+e.getMessage()); + } + } + + }); + } + + /** + * 批量删除文件 + */ + private void deleteBatchFile(){ + if(TextUtils.isEmpty(url)){ + toast("url为空"); + return; + } + String[] urls =new String[]{url}; + BmobFile.deleteBatch(urls, new DeleteBatchListener() { + + @Override + public void done(String[] failUrls, BmobException e) { + if(e==null){ + toast("全部删除成功"); + }else{ + if(failUrls!=null){ + toast("删除失败个数:"+failUrls.length+","+e.toString()); + }else{ + toast("全部文件删除失败:"+e.getErrorCode()+","+e.toString()); + } + } + } + }); + } + + //======================单个BmobFile列======================================= + + /** 插入单条数据(单个BmobFile列) + * 例如:插入单条电影 + * @return void + * @throws + */ + private void insertDataWithOne(){ + if(choosedFile ==null){ + showToast("请先选择文件"); + pickFile(); + return; + } + } + + private static String url=""; + + ProgressDialog dialog =null; + + /** 上传指定路径下的电影文件 + * @param file + * @return void + */ + private void uploadMovoieFile(File file) { + dialog = new ProgressDialog(this); + dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + dialog.setTitle("上传中..."); + dialog.setIndeterminate(false); + dialog.setCancelable(true); + dialog.setCanceledOnTouchOutside(false); + dialog.show(); + final BmobFile bmobFile = new BmobFile(file); + bmobFile.uploadObservable(new ProgressCallback() {//上传文件操作 + @Override + public void onProgress(Integer value, long total) { + log("uploadMovoieFile-->onProgress:"+value); + dialog.setProgress(value); + } + }).doOnNext(new Action1() { + @Override + public void call(Void aVoid) { + url = bmobFile.getUrl(); + log("上传成功:"+url+","+bmobFile.getFilename()); + } + }).concatMap(new Func1>() {//将bmobFile保存到movie表中 + @Override + public Observable call(Void aVoid) { + return saveObservable(new Movie("冰封:重生之门",bmobFile)); + } + }).concatMap(new Func1>() {//下载文件 + @Override + public Observable call(String s) { + return bmobFile.downloadObservable(new ProgressCallback() { + @Override + public void onProgress(Integer value, long total) { + log("download-->onProgress:"+value+","+total); + } + }); + } + }).subscribe(new Subscriber() { + @Override + public void onCompleted() { + log("--onCompleted--"); + } + + @Override + public void onError(Throwable e) { + log("--onError--:"+e.getMessage()); + dialog.dismiss(); + choosedFile=null; + } + + @Override + public void onNext(String s) { + dialog.dismiss(); + choosedFile=null; + log("download的文件地址:"+s); + } + }); + } + + //============================================ + /** + * 注:以下的测试文件路径仅供测试所用,程序若完整运行,请自行替换成sd卡内部文件路径 + */ + List movies = new ArrayList(); + String filePath_mp3 = "/storage/emulated/0/bimagechooser/IMG_20160301_182149.jpg"; + String filePath_lrc = "/storage/emulated/0/bimagechooser/IMG_20160301_182149.jpg"; + + /** + * 此方法适用于批量更新数据且每条数据只有一个BmobFile字段 + * 例如:批量上传电影Movies + * @Title: insertBatchDatasWithOne + * @throws + */ + public void insertBatchDatasWithOne(){ + String[] filePaths = new String[2]; + filePaths[0] = filePath_mp3; + filePaths[1] = filePath_lrc; + //批量上传是会依次上传文件夹里面的文件 + BmobFile.uploadBatch(filePaths, new UploadBatchListener() { + + @Override + public void onSuccess(List files, List urls) { + Log.i("life","insertBatchDatasWithOne -onSuccess :"+urls.size()+"-----"+files+"----"+urls); + if(urls.size()==1){//如果第一个文件上传完成 + Movie movie =new Movie("哈利波特1",files.get(0)); + movies.add(movie); + }else if(urls.size()==2){//第二个文件上传成功 + Movie movie1 =new Movie("哈利波特2",files.get(1)); + movies.add(movie1); + insertBatch(movies); + } + } + + @Override + public void onError(int statuscode, String errormsg) { + showToast("错误码:"+statuscode +",错误描述:"+errormsg); + } + + @Override + public void onProgress(int curIndex, int curPercent, int total,int totalPercent) { + log("insertBatchDatasWithOne -onProgress :"+curIndex+"---"+curPercent+"---"+total+"----"+totalPercent); + } + }); + } + + /** + * save的Observable + * @param obj + * @return + */ + private Observable saveObservable(BmobObject obj){ + return obj.saveObservable(); + } + + /** 创建操作 + * insertObject + * @return void + * @throws + */ + private void insertObject(final BmobObject obj){ + obj.save(new SaveListener() { + + @Override + public void done(String s, BmobException e) { + if(e==null){ + showToast("-->创建数据成功:" + s); + }else{ + showToast("-->创建数据失败:" + e.getErrorCode()+",msg = "+e.getMessage()); + } + } + }); + } + + //======================多个BmobFile列======================================= + + List songs = new ArrayList(); + + /** + * 插入单条数据(多个BmobFile列--以两个为例) + * 例:上传MP3文件和歌词lrc文件到一条Song数据中 + */ + private void insertDataWithMany() { + String[] filePaths = new String[2]; + filePaths[0] = filePath_mp3; + filePaths[1] = filePath_lrc; + BmobFile.uploadBatch(filePaths, new UploadBatchListener() { + + @Override + public void onSuccess(List files, List urls) { + log("insertDataWithMany -onSuccess :"+urls.size()+"-----"+files+"----"+urls); + if(urls.size()==2){//如果全部上传完,则更新该条记录 + Song song =new Song("汪峰0","北京北京0",files.get(0),files.get(1)); + insertObject(song); + }else{ + //有可能上传不完整,中间可能会存在未上传成功的情况,你可以自行处理 + } + } + @Override + public void onError(int statuscode, String errormsg) { + showToast("错误码"+statuscode +",错误描述:"+errormsg); + } + @Override + public void onProgress(int curIndex, int curPercent, int total,int totalPercent) { + log("insertDataWithMany -onProgress :"+curIndex+"---"+curPercent+"---"+total+"----"+totalPercent); + } + }); + } + + /** + * 此方法适用于批量更新数据且每条数据都有多个BmobFile字段: + * 例如:批量上传歌曲songs + * @Title: insertBatchDatasWithOne + * @throws + */ + private void insertBatchDatasWithMany() { + File ff = new File("/mnt/sdcard/testbmob/"); + File[] fs = ff.listFiles(); + if(fs==null || fs.length==0){ + toast("请选择文件并上传"); + return; + } + String[] filePaths = new String[fs.length]; + if(fs!=null && fs.length>0){ + final int len = fs.length; + for(int i=0;i files, List urls) { + log("insertBatchDatasWithMany -onSuccess :"+urls.size()+"-----"+files+"----"+urls); + if(urls.size()==len){//如果全部上传完,则批量更新 + //因为我的文件夹下面有四种图片每两个插入到一条数据中 + Song song =new Song("汪峰0","太阳的后裔",files.get(0),files.get(1)); + songs.add(song); + Song song1 =new Song("汪峰1","北京北京1",files.get(2),files.get(3)); + songs.add(song1); + //批量插入操作 + insertBatch(songs); + }else{ + //有可能上传不完整,中间可能会存在未上传成功的情况,你可以自行处理 + } + } + + @Override + public void onError(int statuscode, String errormsg) { + showToast("错误码"+statuscode +",错误描述:"+errormsg); + } + + @Override + public void onProgress(int curIndex, int curPercent, int total,int totalPercent) { + log("insertBatchDatasWithMany -onProgress :"+curIndex+"---"+curPercent+"---"+total+"----"+totalPercent); + } + }); + } + } + + /** 批量插入操作 + * insertBatch + * @return void + * @throws + */ + public void insertBatch(List files){ + new BmobBatch().insertBatch(files).doBatch(new QueryListListener() { + @Override + public void done(List o, BmobException e) { + if(e==null){ + for(int i=0;i(this, R.layout.list_item, + R.id.tv_item, getResources().getStringArray( + R.array.bmob_location_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + testBmob(position + 1); + } + }); + + } + + private void testBmob(int pos) { + switch (pos) { + case 1: + queryNear(); + break; + case 2: + queryKiloMeters(); + break; + case 3: + queryBox(); + break; + } + } + + /**查询最接近某个坐标的用户 + * @method queryNear + * @params + * @return void + * @exception + */ + private void queryNear(){ + BmobQuery query =new BmobQuery(); + BmobGeoPoint location = new BmobGeoPoint(112.934755,24.52065); + query.addWhereNear("gpsAdd", location); + query.findObjects(new FindListener() { + + @Override + public void done(List object, BmobException e) { + if(e==null){ + toast("查询成功:共" + object.size() + "条数据。"); + }else{ + loge(e); + } + } + + + }); + } + + /** 查询指定距离范围内的用户 + * @method queryKiloMeters + * @params + * @return void + * @exception + */ + private void queryKiloMeters(){ + BmobQuery query =new BmobQuery(); + BmobGeoPoint southwestOfSF = new BmobGeoPoint(112.934755,24.52065); + //查询指定坐标指定半径内的用户 + query.addWhereWithinRadians("gpsAdd", southwestOfSF, 10.0); + //查询指定坐标指定公里范围内的用户 +// query.addWhereWithinKilometers("gpsAdd", southwestOfSF, 10); + //查询指定坐标指定英里范围内的用户 + query.addWhereWithinMiles("gpsAdd", southwestOfSF, 10.0); + query.findObjects( new FindListener() { + + @Override + public void done(List object, BmobException e) { + if(e==null){ + toast("查询成功:共" + object.size() + "条数据。"); + }else{ + loge(e); + } + } + + + }); + } + + /** 查询矩形范围内的用户 + * @method queryBox + * @params + * @return void + * @exception + */ + private void queryBox(){ + BmobQuery query =new BmobQuery(); + BmobGeoPoint southwestOfSF = new BmobGeoPoint(112.934755,24.52065); + BmobGeoPoint northeastOfSF = new BmobGeoPoint(116.627623, 40.143687); + query.addWhereWithinGeoBox("gpsAdd", southwestOfSF, northeastOfSF); + query.findObjects(new FindListener() { + + @Override + public void done(List object, BmobException e) { + if(e==null){ + toast("查询成功:共" + object.size() + "条数据。"); + }else{ + loge(e); + } + } + }); + } +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/PermissionListener.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/PermissionListener.java new file mode 100644 index 0000000..d47f70e --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/PermissionListener.java @@ -0,0 +1,25 @@ +package cn.bmob.sdkdemo.permission; + +/**权限监听器 + * @class PermissionListener + * @author + * @date 2016-3-28-下午2:42:05 + */ +public interface PermissionListener { + /** + * 用户授权后调用 + */ + public void onGranted(); + + /** + * 用户禁止后调用 + */ + public void onDenied(); + + /**是否显示阐述性说明 + * @param permissions 返回需要显示说明的权限数组 + */ + public void onShowRationale(String[] permissions); +} + + diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/PermissionManager.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/PermissionManager.java new file mode 100644 index 0000000..6c6e8e8 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/permission/PermissionManager.java @@ -0,0 +1,156 @@ +package cn.bmob.sdkdemo.permission; + +import android.app.Activity; +import android.content.pm.PackageManager; +import android.support.v4.app.ActivityCompat; +import android.support.v4.app.Fragment; +import android.support.v4.content.ContextCompat; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 权限管理 + * @author + * @class PermissionManager + * @date 2016-3-25 下午3:54:14 + */ +public class PermissionManager { + + private Object mObject; + private String[] mPermissions; + private int mRequestCode; + private PermissionListener mListener; + // 用户是否确认了解释框的 + private boolean mIsPositive = false; + + public static PermissionManager with(Activity activity) { + return new PermissionManager(activity); + } + + public static PermissionManager with(Fragment fragment) { + return new PermissionManager(fragment); + } + + public PermissionManager permissions(String... permissions) { + this.mPermissions = permissions; + return this; + } + + public PermissionManager addRequestCode(int requestCode) { + this.mRequestCode = requestCode; + return this; + } + + public PermissionManager setPermissionsListener(PermissionListener listener) { + this.mListener = listener; + return this; + } + + public PermissionManager(Object object) { + this.mObject = object; + } + + /**请求权限 + * @return PermissionManager + */ + public PermissionManager request() { + request(mObject, mPermissions, mRequestCode); + return this; + } + + private void request(Object object, String[] permissions, int requestCode) { + // 根据权限集合去查找是否已经授权过 + Map> map = findDeniedPermissions(getActivity(object), permissions); + List deniedPermissions = map.get("deny"); + List rationales = map.get("rationale"); + if (deniedPermissions.size() > 0) { + // 第一次点击deny才调用,mIsPositive是为了防止点确认解释框后调request()递归调onShowRationale + if (rationales.size() > 0 && mIsPositive == false) { + if (mListener != null ) { + mListener.onShowRationale(rationales.toArray(new String[rationales.size()])); + } + return; + } + if (object instanceof Activity) { + ActivityCompat.requestPermissions((Activity) object, deniedPermissions.toArray(new String[deniedPermissions.size()]), requestCode); + } else if (object instanceof Fragment) { + ((Fragment) object).requestPermissions(deniedPermissions.toArray(new String[deniedPermissions.size()]), requestCode); + } else { + throw new IllegalArgumentException(object.getClass().getName() + " is not supported"); + } + } else { + if (mListener != null) { + mListener.onGranted(); + } + } + } + + /**根据requestCode处理响应的权限 + * @param permissions + * @param results + */ + public void onPermissionResult(String[] permissions, int[] results) { + List deniedPermissions = new ArrayList(); + for (int i = 0; i < results.length; i++) { + if (results[i] != PackageManager.PERMISSION_GRANTED) {//未授权 + deniedPermissions.add(permissions[i]); + } + } + if (deniedPermissions.size() > 0) { + if (mListener != null) { + mListener.onDenied(); + } + } else { + if (mListener != null) { + mListener.onGranted(); + } + } + } + + private Map> findDeniedPermissions(Activity activity, String... permissions) { + Map> map = new HashMap>(); + List denyList = new ArrayList();//未授权的权限 + List rationaleList = new ArrayList();//需要显示提示框的权限 + for (String value : permissions) { + if (ContextCompat.checkSelfPermission(activity, value) != PackageManager.PERMISSION_GRANTED) { + denyList.add(value); + if (shouldShowRequestPermissionRationale(value)) { + rationaleList.add(value); + } + } + } + map.put("deny", denyList); + map.put("rationale", rationaleList); + return map; + } + + private Activity getActivity(Object object) { + if (object instanceof Fragment) { + return ((Fragment) object).getActivity(); + } else if (object instanceof Activity) { + return (Activity) object; + } + return null; + } + + /** + * 当用户拒绝某权限时并点击就不再提醒的按钮时,下次应用再请求该权限时,需要给出合适的响应(比如给个展示对话框) + * @param permission + */ + private boolean shouldShowRequestPermissionRationale(String permission) { + if (mObject instanceof Activity) { + return ActivityCompat.shouldShowRequestPermissionRationale((Activity) mObject, permission); + } else if (mObject instanceof Fragment) { + return ((Fragment) mObject).shouldShowRequestPermissionRationale(permission); + } else { + throw new IllegalArgumentException(mObject.getClass().getName() + " is not supported"); + } + } + + public void setIsPositive(boolean isPositive) { + this.mIsPositive = isPositive; + } +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/push/ActBmobPush.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/push/ActBmobPush.java new file mode 100644 index 0000000..4577db6 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/push/ActBmobPush.java @@ -0,0 +1,303 @@ +package cn.bmob.sdkdemo.push; + +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import cn.bmob.push.BmobPush; +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.v3.BmobInstallation; +import cn.bmob.v3.BmobPushManager; +import cn.bmob.v3.BmobQuery; +import cn.bmob.v3.datatype.BmobDate; +import cn.bmob.v3.datatype.BmobGeoPoint; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.FindListener; +import cn.bmob.v3.listener.PushListener; +import cn.bmob.v3.listener.UpdateListener; + +/** + * 由于对推送相关类的修改,请移步推送文档看具体Demo + * @see http://doc.bmob.cn/push/android/index.html + */ +@Deprecated +public class ActBmobPush extends BaseActivity { + + BmobPushManager bmobPush; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.act_push); + //开启debug服务后,可知晓push服务是否正常启动和运行 + BmobPush.setDebugMode(true); + //开启推送服务 + BmobPush.startWork(this); + //其他 + bmobPush = new BmobPushManager(); + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, + R.id.tv_item, getResources().getStringArray( + R.array.bmob_push_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + testBmob(position + 1); + } + }); + // BmobInstallation.getCurrentInstallation().save(); + } + + /**更新自定义的BmobInstallation字段 + * @return void + * @exception + */ + public void updateBmobInstallation(){ + BmobQuery query = new BmobQuery(); + //query.addWhereEqualTo("installationId", BmobInstallation.getInstallationId(this)); + query.findObjects(new FindListener() { + + @Override + public void done(List object, BmobException e) { + if(e==null){ + if(object.size() > 0){ + MyBmobInstallation mbi = object.get(0); + mbi.setUid("uid"); + mbi.update(new UpdateListener() { + + @Override + public void done(BmobException e) { + if(e==null){ + Log.i("bmob", "更新成功"); + }else{ + loge(e); + } + } + }); + } + }else{ + loge(e); + } + } + }); + } + + private void testBmob(int pos) { + switch (pos) { + case 1: + //BmobInstallation installation = BmobInstallation.getCurrentInstallation(); + //installation.subscribe("aaa"); + //installation.subscribe("bbb"); + //installation.save(); + break; + case 2: + //BmobInstallation installation2 = BmobInstallation.getCurrentInstallation(); + //installation2.unsubscribe("bbb"); + //installation2.save(); + break; + case 3: + // 给所有终端推送 + pushMessage("这是给所有终端推送的一条消息"); + break; + case 4: + // 给某个Android终端推送 + pushAndroidMessage("这是给指定Android终端推送的一条消息", "E54053E1D3A74C86B61809AA8D1AEF46"); + break; + case 5: + // 给某个IOS终端推送 + pushIOSMessage("这是给指定IOS终端推送的一条消息", "e2d4869619f61e0266561ce956e5d3cda153fef844242c6bf3f2c52d48fe98d4"); + break; + case 6: + // 给某某渠道推送 + pushChannelMessage("这是给指定渠道推送的一条消息", "aaa"); + break; + case 7: + // 给不活跃用户推送消息 + pushToInactive("给不活跃用户推送的消息"); + break; + case 8: + pushToAndroid("给Android平台推送的消息"); + break; + case 9: + pushToIOS("给IOS平台推送的消息"); + break; + case 10: + pushToGeoPoint("根据地理信息位置推送的消息"); + break; + } + } + + /** + * 给所有人推送消息 + */ + private void pushMessage(String message){ +// bmobPush.pushMessage(message); + bmobPush.pushMessageAll(message, new PushListener() { + @Override + public void done(BmobException e) { + if(e==null){ + log("推送成功"); + }else{ + loge(e); + } + } + }); + } + + /** + * 给指定Android用户推送消息 + * @param message + * @param installId + */ + private void pushAndroidMessage(String message, String installId){ +// bmobPush.pushMessage(message, installId); + BmobQuery query = BmobInstallation.getQuery(); + query.addWhereEqualTo("installationId", installId); + bmobPush.setQuery(query); + bmobPush.pushMessage(message, new PushListener() { + @Override + public void done(BmobException e) { + if(e==null){ + log("推送成功"); + }else{ + loge(e); + } + } + }); + } + + /** + * 给指定IOS用户推送 + * @param message + * @param deviceToken + */ + private void pushIOSMessage(String message, String deviceToken){ + BmobQuery query = BmobInstallation.getQuery(); + query.addWhereEqualTo("deviceToken", deviceToken); + bmobPush.setQuery(query); + bmobPush.pushMessage(message, new PushListener() { + @Override + public void done(BmobException e) { + if(e==null){ + log("推送成功"); + }else{ + loge(e); + } + } + }); + } + + /** + * 给指定渠道推送消息 + * @param message + * @param channel + */ + private void pushChannelMessage(String message, String channel){ + BmobQuery query = BmobInstallation.getQuery(); + List channels = new ArrayList(); + channels.add(channel); + query.addWhereContainedIn("channels", channels); + bmobPush.setQuery(query); + bmobPush.pushMessage(message, new PushListener() { + @Override + public void done(BmobException e) { + if(e==null){ + log("推送成功"); + }else{ + loge(e); + } + } + }); + } + + /** + * 给不活跃用户推送消息 + * @param message + */ + private void pushToInactive(String message){ + BmobQuery query = BmobInstallation.getQuery(); + query.addWhereLessThan("updatedAt", new BmobDate(new Date())); + bmobPush.setQuery(query); + bmobPush.pushMessage(message, new PushListener() { + @Override + public void done(BmobException e) { + if(e==null){ + log("推送成功"); + }else{ + loge(e); + } + } + }); + } + + /** + * 给android平台终端推送 + * @param message + */ + private void pushToAndroid(String message){ + BmobQuery query = BmobInstallation.getQuery(); + query.addWhereEqualTo("deviceType", "android"); + bmobPush.setQuery(query); + bmobPush.pushMessage(message, new PushListener() { + @Override + public void done(BmobException e) { + if(e==null){ + log("推送成功"); + }else{ + loge(e); + } + } + }); + } + + /** + * 给ios平台终端推送 + * @param message + */ + private void pushToIOS(String message){ + BmobQuery query = BmobInstallation.getQuery(); + query.addWhereEqualTo("deviceType", "ios"); + bmobPush.setQuery(query); + bmobPush.pushMessage(message, new PushListener() { + @Override + public void done(BmobException e) { + if(e==null){ + log("推送成功"); + }else{ + loge(e); + } + } + }); + } + + /** + * 根据地理信息位置做推送 + * @param message + */ + private void pushToGeoPoint(String message){ + BmobQuery query = BmobInstallation.getQuery(); + query.addWhereWithinRadians("location", new BmobGeoPoint(112.5186,24.5656), 1.0); + bmobPush.setQuery(query); + bmobPush.pushMessage(message, new PushListener() { + @Override + public void done(BmobException e) { + if(e==null){ + log("推送成功"); + }else{ + loge(e); + } + } + }); + } + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/push/MyBmobInstallation.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/push/MyBmobInstallation.java new file mode 100644 index 0000000..ddcf62d --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/push/MyBmobInstallation.java @@ -0,0 +1,28 @@ +package cn.bmob.sdkdemo.push; + +import cn.bmob.v3.BmobInstallation; + +public class MyBmobInstallation extends BmobInstallation { + + /** + * + */ + private static final long serialVersionUID = 1L; + /** + * 用户id-这样可以将设备与用户之间进行绑定 + */ + private String uid; + + public MyBmobInstallation() { + super(); + } + + public String getUid() { + return uid; + } + + public void setUid(String uid) { + this.uid = uid; + } + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/Comment.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/Comment.java new file mode 100644 index 0000000..9cf09e3 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/Comment.java @@ -0,0 +1,55 @@ +package cn.bmob.sdkdemo.relation; + + +import cn.bmob.sdkdemo.bean.MyUser; +import cn.bmob.v3.BmobObject; + +/** + * + * @ClassName: Comment + * @Description: 评论实体 + * @author smile + * @date 2014年4月17日 上午11:29:41 + * + */ +public class Comment extends BmobObject { + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * 评论内容 + */ + private String content; + + /** + * 评论的用户 + */ + private MyUser user; + + /** + * 所评论的帖子 + */ + private Post post; //一个评论只能属于一个微博 + + public Post getPost() { + return post; + } + public void setPost(Post post) { + this.post = post; + } + public String getContent() { + return content; + } + public void setContent(String content) { + this.content = content; + } + public MyUser getUser() { + return user; + } + public void setUser(MyUser user) { + this.user = user; + } + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/CommentListActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/CommentListActivity.java new file mode 100644 index 0000000..8faefe4 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/CommentListActivity.java @@ -0,0 +1,189 @@ +package cn.bmob.sdkdemo.relation; + +import android.content.Context; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ListView; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.List; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.sdkdemo.bean.MyUser; +import cn.bmob.v3.BmobQuery; +import cn.bmob.v3.BmobUser; +import cn.bmob.v3.datatype.BmobPointer; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.FindListener; +import cn.bmob.v3.listener.SaveListener; + +public class CommentListActivity extends BaseActivity { + + ListView listView; + EditText et_content; + Button btn_publish; + + static List comments = new ArrayList(); + MyAdapter adapter; + Post weibo = new Post(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_comment); + setTitle("评论列表"); + + weibo.setObjectId(getIntent().getStringExtra("objectId")); + + adapter = new MyAdapter(this); + et_content = (EditText) findViewById(R.id.et_content); + btn_publish = (Button) findViewById(R.id.btn_publish); + listView = (ListView) findViewById(R.id.listview); + listView.setAdapter(adapter); + + btn_publish.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + publishComment(et_content.getText().toString()); + } + }); + findComments(); + } + + private void findComments(){ + BmobQuery query = new BmobQuery(); + query.addWhereEqualTo("post",new BmobPointer(weibo)); + query.include("user,post.author"); + query.findObjects(new FindListener() { + + @Override + public void done(List object, BmobException e) { + if(e==null){ + comments = object; + adapter.notifyDataSetChanged(); + et_content.setText(""); + }else{ + loge(e); + } + } + + }); + +// //Weibo下面有个Relation类型的字段叫comment,存储了这条微博所有的评论信息,你可以查询到这些评论信息,因为他们都关联到了同一条微博 +// String sql="select include user,* from Comment where related comment to pointer('Weibo', "+"'"+weibo.getObjectId()+"')"; +// new BmobQuery().doSQLQuery(sql, new SQLQueryListener(){ +// +// @Override +// public void done(BmobQueryResult result, BmobException e) { +// if(e ==null){ +// List list = (List) result.getResults(); +// if(list!=null && list.size()>0){ +// comments = list; +// adapter.notifyDataSetChanged(); +// et_content.setText(""); +// }else{ +// Log.i("smile", "查询成功,无数据返回"); +// } +// }else{ +// Log.i("smile", "错误码:"+e.getErrorCode()+",错误描述:"+e.getMessage()); +// } +// } +// }); + } + + private void publishComment(String content){ + MyUser user = BmobUser.getCurrentUser(MyUser.class); + if(user == null){ + toast("发表评论前请先登陆"); + return; + }else if(TextUtils.isEmpty(content)){ + toast("发表评论不能为空"); + return; + } + + final Comment comment = new Comment(); + comment.setContent(content); + comment.setPost(weibo); + comment.setUser(user); + comment.save(new SaveListener() { + + @Override + public void done(String s, BmobException e) { + if(e==null){ + findComments(); + et_content.setText(""); + toast("评论成功"); + }else{ + loge(e); + } + } + }); + } + + private static class MyAdapter extends BaseAdapter { + + private LayoutInflater mInflater; + + public MyAdapter(Context context) { + mInflater = LayoutInflater.from(context); + } + + static class ViewHolder { + TextView tv_content; + TextView tv_author; + } + + @Override + public int getCount() { + return comments.size(); + } + + @Override + public Object getItem(int position) { + return position; + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + final ViewHolder holder; + if (convertView == null) { + convertView = mInflater.inflate(R.layout.list_item_weibo, null); + + holder = new ViewHolder(); + holder.tv_content = (TextView) convertView.findViewById(R.id.tv_content); + holder.tv_author = (TextView) convertView.findViewById(R.id.tv_author); + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + final Comment comment = comments.get(position); + + if(comment.getUser() != null){ + holder.tv_author.setText("评论人:"+comment.getUser().getUsername()); + } + + final String str = comment.getContent(); + + holder.tv_content.setText(str); + + return convertView; + } + } + +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/Post.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/Post.java new file mode 100644 index 0000000..828f19c --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/Post.java @@ -0,0 +1,89 @@ +package cn.bmob.sdkdemo.relation; + +import cn.bmob.sdkdemo.bean.MyUser; +import cn.bmob.v3.BmobObject; +import cn.bmob.v3.datatype.BmobFile; +import cn.bmob.v3.datatype.BmobRelation; + +/** +* +* @ClassName: 帖子 +* @Description: 帖子实体 +* @author smile +* @date 2014年4月17日 上午11:10:44 +* +*/ +public class Post extends BmobObject { + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * 帖子标题 + */ + private String title; + + /** + * 帖子内容 + */ + private String content; + + /** + * 微博发布者 + */ + private MyUser author; + /** + * 微博图片 + */ + private BmobFile image; + + /** + * 一对多关系:用于存储喜欢该帖子的所有用户 + */ + private BmobRelation likes; + + + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + public BmobRelation getLikes() { + return likes; + } + public void setLikes(BmobRelation likes) { + this.likes = likes; + } + public BmobFile getImage() { + return image; + } + public void setImage(BmobFile image) { + this.image = image; + } + public String getContent() { + return content; + } + public void setContent(String content) { + this.content = content; + } + public MyUser getAuthor() { + return author; + } + public void setAuthor(MyUser author) { + this.author = author; + } + +// /** +// * 微博的评论,一条微博是对应多条评论的,像这种一对多的情形,请使用BmobRelation类型 +// */ +// private BmobRelation comment; + +// public BmobRelation getComment() { +// return comment; +// } +// public void setComment(BmobRelation comment) { +// this.comment = comment; +// } +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/WeiboListActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/WeiboListActivity.java new file mode 100644 index 0000000..cbc1b3c --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/relation/WeiboListActivity.java @@ -0,0 +1,205 @@ +package cn.bmob.sdkdemo.relation; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.Button; +import android.widget.EditText; +import android.widget.ListView; +import android.widget.TextView; + +import java.util.ArrayList; +import java.util.List; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.sdkdemo.bean.MyUser; +import cn.bmob.v3.BmobQuery; +import cn.bmob.v3.BmobUser; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.FindListener; +import cn.bmob.v3.listener.SaveListener; + + +public class WeiboListActivity extends BaseActivity { + + ListView listView; + EditText et_content; + Button btn_publish; + + static List weibos = new ArrayList(); + MyAdapter adapter; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_weibo); + setTitle("微博列表"); + + adapter = new MyAdapter(this); + et_content = (EditText) findViewById(R.id.et_content); + btn_publish = (Button) findViewById(R.id.btn_publish); + listView = (ListView) findViewById(R.id.listview); + listView.setAdapter(adapter); + + btn_publish.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + publishWeibo(et_content.getText().toString()); + } + }); + + findWeibos(); + } + + /** + * 查询微博 + */ + private void findWeibos(){ + MyUser user = BmobUser.getCurrentUser(MyUser.class); + BmobQuery query = new BmobQuery(); + query.addWhereEqualTo("author", user); // 查询当前用户的所有微博 + query.order("-updatedAt"); + query.include("author");// 希望在查询微博信息的同时也把发布人的信息查询出来,可以使用include方法 + query.findObjects(new FindListener() { + @Override + public void done(List object, BmobException e) { + if(e==null){ + weibos = object; + adapter.notifyDataSetChanged(); + et_content.setText(""); + }else{ + loge(e); + } + } + + }); + + //等价于下面的sql语句查询 +// String sql = "select include author,* from Post where author = pointer('_User', "+"'"+user.getObjectId()+"')"; +// new BmobQuery().doSQLQuery(sql, new SQLQueryListener(){ +// +// @Override +// public void done(BmobQueryResult result, BmobException e) { +// if(e ==null){ +// List list = (List) result.getResults(); +// if(list!=null && list.size()>0){ +// weibos = list; +// adapter.notifyDataSetChanged(); +// et_content.setText(""); +// }else{ +// Log.i("smile", "查询成功,无数据返回"); +// } +// }else{ +// Log.i("smile", "错误码:"+e.getErrorCode()+",错误描述:"+e.getMessage()); +// } +// } +// }); + } + + /** + * 发布微博,发表微博时关联了用户类型,是一对一的体现 + */ + private void publishWeibo(String content){ + MyUser user = BmobUser.getCurrentUser(MyUser.class); + if(user == null){ + toast("发布微博前请先登陆"); + return; + }else if(TextUtils.isEmpty(content)){ + toast("发布内容不能为空"); + return; + } + // 创建微博信息 + Post weibo = new Post(); + weibo.setContent(content); + weibo.setAuthor(user); + weibo.save(new SaveListener() { + + @Override + public void done(String s, BmobException e) { + if(e==null){ + toast("发布成功"); + findWeibos(); + }else{ + loge(e); + } + } + }); + } + + private static class MyAdapter extends BaseAdapter { + + private LayoutInflater mInflater; + + private Context mContext; + + public MyAdapter(Context context) { + mContext = context; + mInflater = LayoutInflater.from(context); + } + + static class ViewHolder { + TextView tv_content; + TextView tv_author; + } + + @Override + public int getCount() { + return weibos.size(); + } + + @Override + public Object getItem(int position) { + return position; + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + final ViewHolder holder; + if (convertView == null) { + convertView = mInflater.inflate(R.layout.list_item_weibo, null); + + holder = new ViewHolder(); + holder.tv_content = (TextView) convertView.findViewById(R.id.tv_content); + holder.tv_author = (TextView) convertView.findViewById(R.id.tv_author); + + convertView.setTag(holder); + } else { + holder = (ViewHolder) convertView.getTag(); + } + + // Bind the data efficiently with the holder. + final Post weibo = weibos.get(position); + MyUser user = weibo.getAuthor(); + holder.tv_author.setText("发布人:"+(user==null?"":user.getUsername())); + + final String str = weibo.getContent(); + + holder.tv_content.setText(str); + + convertView.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + Intent intent = new Intent(mContext, CommentListActivity.class); + intent.putExtra("objectId", weibo.getObjectId()); + mContext.startActivity(intent); + } + }); + + return convertView; + } + } +} + diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/sms/SMSCodeActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/sms/SMSCodeActivity.java new file mode 100644 index 0000000..e3e4059 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/sms/SMSCodeActivity.java @@ -0,0 +1,167 @@ +package cn.bmob.sdkdemo.sms; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.text.TextUtils; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.ListView; + +import java.text.SimpleDateFormat; +import java.util.Date; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.v3.BmobSMS; +import cn.bmob.v3.datatype.BmobSmsState; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.QueryListener; +import cn.bmob.v3.listener.UpdateListener; + +/** + * 短信验证码 + * @class SMSCodeActivity + * @author smile + * @date 2015-6-4 上午9:48:50 + */ +@SuppressLint("SimpleDateFormat") +public class SMSCodeActivity extends BaseActivity { + + EditText et_number,et_code; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_code); + et_number = (EditText) findViewById(R.id.et_number); + et_code = (EditText) findViewById(R.id.et_code); + + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, R.id.tv_item, getResources().getStringArray(R.array.bmob_code_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + testBmob(position + 1); + } + }); + + } + + private void testBmob(int pos) { + switch (pos) { + case 1: + requestSmsCode(); + break; + case 2: + verifySmsCode(); + break; + case 3: + querySmsState(); + break; + case 4: + requestSms(); + break; + } + } + + + /** 自定义发送短信内容 + * @method requestSmsCode + * @return void + * @exception + */ + private void requestSms(){ + String number = et_number.getText().toString(); + if(!TextUtils.isEmpty(number)){ + SimpleDateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String sendTime = format.format(new Date()); + BmobSMS.requestSMS(number, "您的验证码为123456,请及时验证!",sendTime,new QueryListener() { + + @Override + public void done(Integer smsId, BmobException ex) { + if(ex==null){//验证码发送成功 + toast("验证码发送成功,短信id:"+smsId);//用于查询本次短信发送详情 + }else{ + toast("errorCode = "+ex.getErrorCode()+",errorMsg = "+ex.getLocalizedMessage()); + } + } + }); + }else{ + toast("请输入手机号码"); + } + } + + /** 请求短信验证码 + * @method requestSmsCode + * @return void + * @exception + */ + private void requestSmsCode(){ + String number = et_number.getText().toString(); + if(!TextUtils.isEmpty(number)){ + BmobSMS.requestSMSCode(number, "注册模板",new QueryListener() { + + @Override + public void done(Integer smsId, BmobException ex) { + if(ex==null){//验证码发送成功 + toast("验证码发送成功,短信id:"+smsId);//用于查询本次短信发送详情 + }else{ + toast("errorCode = "+ex.getErrorCode()+",errorMsg = "+ex.getLocalizedMessage()); + } + } + }); + }else{ + toast("请输入手机号码"); + } + } + + /** 验证短信验证码 + * @method requestSmsCode + * @return void + * @exception + */ + private void verifySmsCode(){ + String number = et_number.getText().toString(); + String code = et_code.getText().toString(); + if(!TextUtils.isEmpty(number)&&!TextUtils.isEmpty(code)){ + BmobSMS.verifySmsCode(number,code, new UpdateListener() { + + @Override + public void done(BmobException ex) { + if(ex==null){//短信验证码已验证成功 + toast("验证通过"); + }else{ + toast("验证失败:code ="+ex.getErrorCode()+",msg = "+ex.getLocalizedMessage()); + } + } + }); + }else{ + toast("请输入手机号和验证码"); + } + } + + + /** 查询短信状态 + * @method querySmsState + * @return void + * @exception + */ + private void querySmsState(){ + BmobSMS.querySmsState(39086233, new QueryListener() { + + @Override + public void done(BmobSmsState state, BmobException ex) { + if(ex==null){ + toast("短信状态:"+state.getSmsState()+",验证状态:"+state.getVerifyState()); + }else{ + toast("errorCode = "+ex.getErrorCode()+",errorMsg = "+ex.getLocalizedMessage()); + } + } + }); + } +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/user/UserActivity.java b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/user/UserActivity.java new file mode 100644 index 0000000..b2bdbdd --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/java/cn/bmob/sdkdemo/user/UserActivity.java @@ -0,0 +1,523 @@ +package cn.bmob.sdkdemo.user; + +import android.annotation.SuppressLint; +import android.os.Bundle; +import android.view.View; +import android.widget.AdapterView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.ArrayAdapter; +import android.widget.EditText; +import android.widget.ListView; + +import org.json.JSONArray; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import cn.bmob.sdkdemo.BaseActivity; +import cn.bmob.sdkdemo.R; +import cn.bmob.sdkdemo.bean.BankCard; +import cn.bmob.sdkdemo.bean.MyUser; +import cn.bmob.sdkdemo.bean.Person; +import cn.bmob.v3.BmobQuery; +import cn.bmob.v3.BmobUser; +import cn.bmob.v3.exception.BmobException; +import cn.bmob.v3.listener.FetchUserInfoListener; +import cn.bmob.v3.listener.FindListener; +import cn.bmob.v3.listener.LogInListener; +import cn.bmob.v3.listener.SaveListener; +import cn.bmob.v3.listener.UpdateListener; +import rx.Subscriber; + +public class UserActivity extends BaseActivity { + + EditText et_number, et_code; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_code); + et_number = (EditText) findViewById(R.id.et_number); + et_code = (EditText) findViewById(R.id.et_code); + + mListview = (ListView) findViewById(R.id.listview); + mAdapter = new ArrayAdapter(this, R.layout.list_item, + R.id.tv_item, getResources().getStringArray(R.array.bmob_user_list)); + mListview.setAdapter(mAdapter); + mListview.setOnItemClickListener(new OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + testBmob(position + 1); + } + }); + + } + + private void testBmob(int pos) { + switch (pos) { + case 1: + testSignUp(); + break; + case 2: + testLogin(); + break; + case 3: + testGetCurrentUser(); + break; + case 4: + fetchUserInfo(); + break; + case 5: + testLogOut(); + break; + case 6: + updateUser(); + break; + case 7: + checkPassword(); + break; + case 8: + testResetPasswrod(); + break; + case 9: + emailVerify(); + break; + case 10: + testFindBmobUser(); + break; + case 11: + loginByEmailPwd(); + break; + case 12: + loginByPhonePwd(); + break; + case 13: + loginByPhoneCode(); + break; + case 14: + signOrLogin(); + break; + case 15: + resetPasswordBySMS(); + break; + case 16: + updateCurrentUserPwd(); + break; + } + } + + @SuppressLint("UseValueOf") + private void testSignUp() { + final MyUser myUser = new MyUser(); + myUser.setUsername("0704"); + myUser.setPassword("123456"); + myUser.setAge(18); + addSubscription(myUser.signUp(new SaveListener() { + @Override + public void done(MyUser s, BmobException e) { + if (e == null) { + toast("注册成功:" + s.toString()); + } else { + loge(e); + } + } + })); + } + + /** + * 注意下如果返回206错误 一般是多设备登录导致 + */ + private void testLogin() { + final BmobUser user = new BmobUser(); + user.setUsername("0704"); + user.setPassword("123456"); + //login回调 + /*user.login(new SaveListener() { + + @Override + public void done(BmobUser bmobUser, BmobException e) { + if(e==null){ + toast(user.getUsername() + "登陆成功"); + testGetCurrentUser(); + }else{ + loge(e); + } + } + });*/ + //v3.5.0开始新增加的rx风格的Api + user.loginObservable(BmobUser.class).subscribe(new Subscriber() { + @Override + public void onCompleted() { + log("----onCompleted----"); + } + + @Override + public void onError(Throwable e) { + loge(new BmobException(e)); + } + + @Override + public void onNext(BmobUser bmobUser) { + toast(bmobUser.getUsername() + "登陆成功"); + testGetCurrentUser(); + } + }); + } + + /** + * 获取本地用户 + */ + private void testGetCurrentUser() { +// MyUser myUser = BmobUser.getCurrentUser(this, MyUser.class); +// if (myUser != null) { +// log("本地用户信息:objectId = " + myUser.getObjectId() + ",name = " + myUser.getUsername() +// + ",age = "+ myUser.getAge()); +// } else { +// toast("本地用户为null,请登录。"); +// } + //V3.4.5版本新增加getObjectByKey方法获取本地用户对象中某一列的值 + String username = (String) BmobUser.getObjectByKey("username"); + Integer age = (Integer) BmobUser.getObjectByKey("age"); + Boolean sex = (Boolean) BmobUser.getObjectByKey("sex"); + JSONArray hobby = (JSONArray) BmobUser.getObjectByKey("hobby"); + JSONArray cards = (JSONArray) BmobUser.getObjectByKey("cards"); + JSONObject banker = (JSONObject) BmobUser.getObjectByKey("banker"); + JSONObject mainCard = (JSONObject) BmobUser.getObjectByKey("mainCard"); + log("username:" + username + ",\nage:" + age + ",\nsex:" + sex); + log("hobby:" + (hobby != null ? hobby.toString() : "为null") + "\ncards:" + (cards != null ? cards.toString() : "为null")); + log("banker:" + (banker != null ? banker.toString() : "为null") + "\nmainCard:" + (mainCard != null ? mainCard.toString() : "为null")); + } + + /** + * 清除本地用户 + */ + private void testLogOut() { + BmobUser.logOut(); + } + + /** + * 更新用户操作并同步更新本地的用户信息 + */ + private void updateUser() { + final MyUser bmobUser = BmobUser.getCurrentUser(MyUser.class); + if (bmobUser != null) { + final MyUser newUser = new MyUser(); + //-----------------------普通setter操作------------------------------- + //number类型 + newUser.setAge(25); + newUser.setSex(false); + //object类型 +// newUser.setMainCard(new BankCard("工行", "10086")); + //BmobObject类型 + Person person = new Person(); + person.setObjectId("721fe0cdf2"); + newUser.setBanker(person); + //---------------------数组操作(add、addAll、addUnique、addAllUnique)--------------------------------------- + //添加Object类型的数组,Object数组调用addAllUnique、addUnique方法后本地用户信息未支持去重 + List cards = new ArrayList(); + cards.add(new BankCard("建行", "111")); + newUser.addAll("cards", cards); +// 添加String类型的数组--String数组支持去重 + newUser.addAllUnique("hobby", Arrays.asList("游泳")); + //----------------------自增操作--------------------------------------- +// newUser.increment("num",-2); +// //----------------------setValue方式更新用户信息(必须先保证更新的列存在,否则会报internal error)---------------------------- +// //更新number +// newUser.setValue("age",25); +// //更新整个Object +// newUser.setValue("banker",person); +// //更新String数组 +// newUser.setValue("hobby",Arrays.asList("看书","游泳")); +//// //更新某个Object的值 +// newUser.setValue("mainCard.cardNumber","10011"); +// //更新数组中某个Object +// newUser.setValue("cards.0", new BankCard("工行", "10086")); + //更新数组中某个Object的某个字段的值 +// newUser.setValue("cards.0.bankName", "中行"); + addSubscription(newUser.update(bmobUser.getObjectId(), new UpdateListener() { + + @Override + public void done(BmobException e) { + if (e == null) { + testGetCurrentUser(); + } else { + loge(e); + } + } + })); + } else { + toast("本地用户为null,请登录。"); + } + } + + /** + * 验证旧密码是否正确 + * + * @param + * @return void + */ + private void checkPassword() { + BmobQuery query = new BmobQuery(); + final MyUser bmobUser = BmobUser.getCurrentUser(MyUser.class); + // 如果你传的密码是正确的,那么arg0.size()的大小是1,这个就代表你输入的旧密码是正确的,否则是失败的 + query.addWhereEqualTo("password", "123456"); + query.addWhereEqualTo("username", bmobUser.getUsername()); + addSubscription(query.findObjects(new FindListener() { + + @Override + public void done(List object, BmobException e) { + if (e == null) { + toast("查询密码成功:" + object.size()); + } else { + loge(e); + } + } + + })); + } + + /** + * 重置密码 + */ + private void testResetPasswrod() { + final String email = "123456789@qq.com"; + addSubscription(BmobUser.resetPasswordByEmail(email, new UpdateListener() { + + @Override + public void done(BmobException e) { + if (e == null) { + toast("重置密码请求成功,请到" + email + "邮箱进行密码重置操作"); + } else { + loge(e); + } + } + })); + } + + /** + * 查询用户 + */ + private void testFindBmobUser() { + BmobQuery query = new BmobQuery(); + query.addWhereEqualTo("username", "lucky"); + addSubscription(query.findObjects(new FindListener() { + + @Override + public void done(List object, BmobException e) { + if (e == null) { + toast("查询用户成功:" + object.size()); + } else { + loge(e); + } + } + + })); + } + + /** + * 验证邮件 + */ + private void emailVerify() { + final String email = "75727433@qq.com"; + addSubscription(BmobUser.requestEmailVerify(email, new UpdateListener() { + + @Override + public void done(BmobException e) { + if (e == null) { + toast("请求验证邮件成功,请到" + email + "邮箱中进行激活账户。"); + } else { + loge(e); + } + } + + })); + } + + private void loginByEmailPwd() { + addSubscription(BmobUser.loginByAccount("123456@163.com", "123456", new LogInListener() { + + @Override + public void done(MyUser user, BmobException e) { + if (user != null) { + log(user.getUsername() + "-" + user.getAge() + "-" + user.getObjectId() + "-" + user.getEmail()); + } + } + })); + } + + private void loginByPhonePwd() { + String number = et_number.getText().toString(); + addSubscription(BmobUser.loginByAccount(number, "123456", new LogInListener() { + + @Override + public void done(MyUser user, BmobException e) { + if (user != null) { + toast("登录成功"); + log(user.getUsername() + "-" + user.getAge() + "-" + user.getObjectId() + "-" + user.getEmail()); + } else { + toast("错误码:" + e.getErrorCode() + ",错误原因:" + e.getLocalizedMessage()); + } + } + })); + } + + private void loginByPhoneCode() { + //1、调用请求验证码接口 +// BmobSMS.requestSMSCode("手机号码", "模板名称",new QueryListener() { +// +// @Override +// public void done(Integer smsId,BmobException ex) { +// if(ex==null){//验证码发送成功 +// log("短信id:"+smsId); +// } +// } +// }); + String number = et_number.getText().toString(); + String code = et_code.getText().toString(); + //2、使用验证码进行登陆 + addSubscription(BmobUser.loginBySMSCode(number, code, new LogInListener() { + + @Override + public void done(MyUser user, BmobException e) { + if (user != null) { + toast("登录成功"); + log("" + user.getUsername() + "-" + user.getAge() + "-" + user.getObjectId() + "-" + user.getEmail()); + } else { + toast("错误码:" + e.getErrorCode() + ",错误原因:" + e.getLocalizedMessage()); + } + } + })); + } + + /** + * 一键注册登录 + * + * @return void + * @throws + * @method signOrLogin + */ + private void signOrLogin() { + //1、调用请求验证码接口 +// BmobSMS.requestSMSCode("18312662735", "模板名称",new QueryListener() { +// +// @Override +// public void done(Integer smsId,BmobException ex) { +// if(ex==null){//验证码发送成功 +// log("smile", "短信id:"+smsId); +// } +// } +// +// }); + String number = et_number.getText().toString(); + String code = et_code.getText().toString(); + //2、使用手机号和短信验证码进行一键注册登录,这步有两种方式可以选择 +// //第一种: +// BmobUser.signOrLoginByMobilePhone(number, code,new LogInListener() { +// +// @Override +// public void done(MyUser user, BmobException e) { +// if(user!=null){ +// toast("登录成功"); +// log(""+user.getUsername()+"-"+user.getAge()+"-"+user.getObjectId()+"-"+user.getEmail()); +// }else{ +// toast("错误码:"+e.getErrorCode()+",错误原因:"+e.getLocalizedMessage()); +// } +// } +// }); + //第二种:这种方式比较灵活,可以在注册或登录的同时设置保存多个字段值 + final MyUser user = new MyUser(); + user.setPassword("123456"); + user.setMobilePhoneNumber("15018879340"); + addSubscription(user.signOrLogin(code, new SaveListener() { + + @Override + public void done(MyUser myUser, BmobException e) { + if (e == null) { + toast("登录成功"); + log("" + myUser.getAge() + "-" + myUser.getObjectId() + "-" + myUser.getEmail()); + } else { + loge(e); + } + } + + })); + } + + /** + * 通过短信验证码来重置用户密码 + * + * @return void + * 注:整体流程是先调用请求验证码的接口获取短信验证码,随后调用短信验证码重置密码接口来重置该手机号对应的用户的密码 + * @method requestSmsCode + */ + private void resetPasswordBySMS() { + //1、请求短信验证码 +// BmobSMS.requestSMSCode("手机号码", "模板名称",new QueryListener() { +// +// @Override +// public void done(Integer smsId,BmobException ex) { +// if(ex==null){//验证码发送成功 +// log("短信id:"+smsId); +// } +// } +// }); + String code = et_code.getText().toString(); + //2、重置的是绑定了该手机号的账户的密码 + addSubscription(BmobUser.resetPasswordBySMSCode(code, "1234567", new UpdateListener() { + + @Override + public void done(BmobException e) { + if (e == null) { + toast("密码重置成功"); + } else { + toast("错误码:" + e.getErrorCode() + ",错误原因:" + e.getLocalizedMessage()); + } + } + })); + } + + /** + * 修改当前用户密码 + * + * @return void + * @throws + */ + private void updateCurrentUserPwd() { + addSubscription(BmobUser.updateCurrentUserPassword("旧密码", "新密码", new UpdateListener() { + + @Override + public void done(BmobException e) { + if (e == null) { + toast("密码修改成功,可以用新密码进行登录"); + } else { + loge(e); + } + } + })); + } + + /** + * 更新本地用户信息 + * 适用场景:登录后若web端的用户信息有更新 可以通过该方法拉取最新的用户信息并写到本地缓存(SharedPreferences)中

+ */ + private void fetchUserInfo() { + BmobUser.fetchUserInfo(new FetchUserInfoListener() { + @Override + public void done(MyUser user, BmobException e) { + if (e == null) { + log(user.toString()); + } else { + loge(e); + } + } + }); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + } +} diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/selector_button.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/selector_button.xml new file mode 100644 index 0000000..cfa74bf --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/selector_button.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/selector_list_item.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/selector_list_item.xml new file mode 100644 index 0000000..3e3a4fc --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/drawable/selector_list_item.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/act_push.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/act_push.xml new file mode 100644 index 0000000..fd25bc3 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/act_push.xml @@ -0,0 +1,16 @@ + + + + + + + diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_code.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_code.xml new file mode 100644 index 0000000..3a92fc9 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_code.xml @@ -0,0 +1,35 @@ + + + + + + + + + + diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_comment.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_comment.xml new file mode 100644 index 0000000..ce6fb83 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_comment.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_find.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_find.xml new file mode 100644 index 0000000..74a1f1d --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_find.xml @@ -0,0 +1,19 @@ + + + + + + + diff --git a/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_local_thumbnail.xml b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_local_thumbnail.xml new file mode 100644 index 0000000..d0a5be5 --- /dev/null +++ b/src/MyApplication/libs/BmobSDKDemo_v3.6.0/BmobDemo/app/src/main/res/layout/activity_local_thumbnail.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +