diff --git a/Changelog.md b/Changelog.md
index 80f4c1a..3e85f77 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,20 @@
+# 2.0.0.0
+
+- Added
+ - **Instagram**
+ - Filter by site
+ - Group for regular channels in the main window
+ - Ability to change user/collection path
+ - Imgur albums downloading
+ - NSFW Imgur content bypass (requires 'CilentID')
+ - Special user folder
+ - Remove user while keeping data
+ - Disabled overriding user preferences when creating a new user if it already exists in the destination (in case of deleting a user with saving data).
+ - **Saved Reddit posts downloading**
+- Fixed
+ - Suspended profiles do not change status if the profile is no longer suspended
+ - Limited download for Twitter not implemented
+
# 1.0.1.0
- Added
diff --git a/README.md b/README.md
index 37373a9..a60a1f7 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
# Social networks crawler
-Program for downloading photo and video from Reddit and Twitter
+Program for downloading photo and video from Reddit, Twitter and Instagram
-Enjoying the tool? Considering adding to my coffee fund :)
+Do you like this program? Consider adding to my coffee fund by making a donation to show your support. :)
[](https://ko-fi.com/andyprogram)
@@ -12,9 +12,10 @@ Enjoying the tool? Considering adding to my coffee fund :)
- Reddit galleries of images;
- Redgifs hosted videos (https://www.redgifs.com/);
- Reddit hosted videos (downloading Reddit hosted video is going through ffmpeg);
- - Twitter images;
- - Twitter videos.
-- Parse channel and view data.
+ - Twitter images and videos;
+ - Instagram images and videos.
+- Parse [channel and view data](https://github.com/AAndyProgram/SCrawler/wiki/Channels).
+- Download [saved Reddit posts](https://github.com/AAndyProgram/SCrawler/wiki/Home#saved-posts).
- Add users from parsed channel.
- Labeling users.
- Filter exists users by label or group.
@@ -24,41 +25,49 @@ Enjoying the tool? Considering adding to my coffee fund :)
## Reddit
-The program parsing all user's posts, gathering pictures' MD5 hash and compare with existing for remove duplicates. Then media will be downloaded.
+The program parses all user posts, obtain MD5 images hash and compares them with existing ones to remove duplicates. Then the media will be downloaded.
-## Twitter
+## Twitter and Instagram
-The program parsing all user's posts and compare file names with existing for remove duplicates. Then media will be downloaded.
+The program parses all user posts and compares file names with existing ones to remove duplicates. Then the media will be downloaded.
+
+You can read about Instagram restrictions [here](https://github.com/AAndyProgram/SCrawler/wiki/Settings#instagram-limits)
# Requirements:
- Windows 7, 8, 9, 10, 11 with NET Framework 4.6.1 or higher
- Authorization cookies and tokens for Twitter (if you want to download data from Twitter)
-- ffmpeg library for download Reddit hosted videos (you can download it from the [official repo](https://github.com/GyanD/codexffmpeg/releases/tag/2021-01-12-git-ca21cb1e36) or [from my first release](https://github.com/AAndyProgram/SCrawler/releases/download/1.0.0.0/ffmpeg.zip))
+- Authorization cookies Instagram (if you want to download data from Instagram)
+- ffmpeg library for downloading videos hosted on Reddit (you can download it from the [official repo](https://github.com/GyanD/codexffmpeg/releases/tag/2021-01-12-git-ca21cb1e36) or [from my first release](https://github.com/AAndyProgram/SCrawler/releases/download/1.0.0.0/ffmpeg.zip))
- Don't put program in the ```Program Files``` system folder (this is portable program and program settings are stored in the program folder)
-- Just unpack program archive in any folder you want, copy ```ffmpeg.exe``` into and enjoy. :-)
+- Just unzip the program archive to any folder, copy the file ```ffmpeg.exe``` into it and enjoy. :)
+
+# Updating
+
+Just download [latest](https://github.com/AAndyProgram/SCrawler/releases/latest) version and unpack it into the program folder. Before starting a new version, I recommend making a backup copy of the program settings folder.
# Settings and usage
The program has an intuitive interface.
-Just add user profile and press ```Start downloading``` button.
+Just add a user profile and click the ```Start downloading``` button.
-Users can be added by patterns:
+You can add users by patterns:
+- https://www.instagram.com/SomeUserName
- https://twitter.com/SomeUserName
- https://reddit.com/user/SomeUserName
- https://reddit.com/r/SomeSubredditName
- u/SomeUserName
- r/SomeSubredditName
-- SomeUserName (in this case you must to choose user site)
+- SomeUserName (in this case, you need to select the user's site)
- SomeSubredditName
-More about users and subreddits adding [here](https://github.com/AAndyProgram/SCrawler/wiki/Users)
+Read more about adding users and subreddits [here](https://github.com/AAndyProgram/SCrawler/wiki/Users)
**Full guide you can find [here](https://github.com/AAndyProgram/SCrawler/wiki)**
## Using program as just video downloader
-Create a shortcut for the program. Open shortcut properties. On the ```Shortcut``` tab in ```Target``` field just add ```v``` at the end through the space.
+Create a shortcut for the program. Open shortcut properties. In the ```Shortcut``` tab, in the ```Target``` field, just add the letter ```v``` at the end across the space.
Example: ```D:\Programs\SCrawler\SCrawler.exe v```
diff --git a/SCrawler.sln b/SCrawler.sln
index 0741768..a51dee8 100644
--- a/SCrawler.sln
+++ b/SCrawler.sln
@@ -11,6 +11,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
ProjectSection(SolutionItems) = preProject
.gitignore = .gitignore
Changelog.md = Changelog.md
+ Info\InstaAlgo.txt = Info\InstaAlgo.txt
+ Info\InstagramInfo.txt = Info\InstagramInfo.txt
README.md = README.md
Info\RedditUrlsInfo.txt = Info\RedditUrlsInfo.txt
ToDo.txt = ToDo.txt
diff --git a/SCrawler/API/Base/Declarations.vb b/SCrawler/API/Base/Declarations.vb
new file mode 100644
index 0000000..3c69e8b
--- /dev/null
+++ b/SCrawler/API/Base/Declarations.vb
@@ -0,0 +1,13 @@
+' Copyright (C) 2022 Andy
+' This program is free software: you can redistribute it and/or modify
+' it under the terms of the GNU General Public License as published by
+' the Free Software Foundation, either version 3 of the License, or
+' (at your option) any later version.
+'
+' This program is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY
+Namespace API.Base
+ Friend Module Declarations
+ Friend ReadOnly LNC As New ListAddParams(LAP.NotContainsOnly)
+ End Module
+End Namespace
\ No newline at end of file
diff --git a/SCrawler/API/Base/SiteSettings.vb b/SCrawler/API/Base/SiteSettings.vb
index 0907f00..32db4b1 100644
--- a/SCrawler/API/Base/SiteSettings.vb
+++ b/SCrawler/API/Base/SiteSettings.vb
@@ -25,8 +25,47 @@ Namespace API.Base
_Path.Value = NewFile
End Set
End Property
+ Friend ReadOnly Property InstaHash As XMLValue(Of String)
+ Friend ReadOnly Property InstaHashUpdateRequired As XMLValue(Of Boolean)
+ Friend ReadOnly Property InstagramDownloadingErrorDate As XMLValue(Of Date)
+ Friend Property InstagramLastApplyingValue As Integer? = Nothing
+ Friend ReadOnly Property InstagramReadyForDownload As Boolean
+ Get
+ With InstagramDownloadingErrorDate
+ If .ValueF.Exists Then
+ Return .ValueF.Value.AddMinutes(If(InstagramLastApplyingValue, 10)) < Now
+ Else
+ Return True
+ End If
+ End With
+ End Get
+ End Property
+ Friend Property InstagramTooManyRequestsReadyForCatch As Boolean = True
+ Friend Sub InstagramTooManyRequests(ByVal Catched As Boolean)
+ With InstagramDownloadingErrorDate
+ If Catched Then
+ If Not .ValueF.Exists Then
+ .Value = Now
+ If InstagramTooManyRequestsReadyForCatch Then
+ InstagramLastApplyingValue = If(InstagramLastApplyingValue, 0) + 10
+ InstagramTooManyRequestsReadyForCatch = False
+ MyMainLOG = $"Instagram downloading error: too many requests. Try again after {If(InstagramLastApplyingValue, 10)} minutes..."
+ End If
+ End If
+ Else
+ .ValueF = Nothing
+ InstagramLastApplyingValue = Nothing
+ End If
+ End With
+ End Sub
+ Friend ReadOnly Property Temporary As XMLValue(Of Boolean)
+ Friend ReadOnly Property DownloadImages As XMLValue(Of Boolean)
+ Friend ReadOnly Property DownloadVideos As XMLValue(Of Boolean)
+ Friend ReadOnly Property GetUserMediaOnly As XMLValue(Of Boolean)
+ Friend ReadOnly Property SavedPostsUserName As XMLValue(Of String)
Private ReadOnly SettingsFile As SFile
- Friend Sub New(ByVal s As Sites, ByRef _XML As XmlFile, ByVal GlobalPath As SFile)
+ Friend Sub New(ByVal s As Sites, ByRef _XML As XmlFile, ByVal GlobalPath As SFile,
+ ByRef _Temp As XMLValue(Of Boolean), ByRef _Imgs As XMLValue(Of Boolean), ByRef _Vids As XMLValue(Of Boolean))
Site = s
SettingsFile = $"{SettingsFolderName}\Responser_{s}.xml"
Responser = New WEB.Response(SettingsFile)
@@ -34,40 +73,112 @@ Namespace API.Base
If SettingsFile.Exists Then
Responser.LoadSettings()
Else
- If Site = Sites.Twitter Then
- With Responser
- .ContentType = "application/json"
- .Accept = "*/*"
- .CookiesDomain = "twitter.com"
- .Decoders.Add(SymbolsConverter.Converters.Unicode)
- With .Headers
- .Add("sec-ch-ua", " Not;A Brand" & Chr(34) & ";v=" & Chr(34) & "99" & Chr(34) & ", " & Chr(34) &
- "Google Chrome" & Chr(34) & ";v=" & Chr(34) & "91" & Chr(34) & ", " & Chr(34) & "Chromium" &
- Chr(34) & ";v=" & Chr(34) & "91" & Chr(34))
- .Add("sec-ch-ua-mobile", "?0")
- .Add("sec-fetch-dest", "empty")
- .Add("sec-fetch-mode", "cors")
- .Add("sec-fetch-site", "same-origin")
- .Add(Header_Twitter_Token, String.Empty)
- .Add("x-twitter-active-user", "yes")
- .Add("x-twitter-auth-type", "OAuth2Session")
- .Add(Header_Twitter_Authorization, String.Empty)
+ Select Case Site
+ Case Sites.Twitter
+ With Responser
+ .ContentType = "application/json"
+ .Accept = "*/*"
+ .CookiesDomain = "twitter.com"
+ .Decoders.Add(SymbolsConverter.Converters.Unicode)
+ With .Headers
+ .Add("sec-ch-ua", " Not;A Brand" & Chr(34) & ";v=" & Chr(34) & "99" & Chr(34) & ", " & Chr(34) &
+ "Google Chrome" & Chr(34) & ";v=" & Chr(34) & "91" & Chr(34) & ", " & Chr(34) & "Chromium" &
+ Chr(34) & ";v=" & Chr(34) & "91" & Chr(34))
+ .Add("sec-ch-ua-mobile", "?0")
+ .Add("sec-fetch-dest", "empty")
+ .Add("sec-fetch-mode", "cors")
+ .Add("sec-fetch-site", "same-origin")
+ .Add(Header_Twitter_Token, String.Empty)
+ .Add("x-twitter-active-user", "yes")
+ .Add("x-twitter-auth-type", "OAuth2Session")
+ .Add(Header_Twitter_Authorization, String.Empty)
+ End With
End With
- End With
- ElseIf Site = Sites.Reddit Then
- Responser.CookiesDomain = "reddit.com"
- Responser.Decoders.Add(SymbolsConverter.Converters.Unicode)
- End If
+ Case Sites.Reddit
+ Responser.CookiesDomain = "reddit.com"
+ Responser.Decoders.Add(SymbolsConverter.Converters.Unicode)
+ Case Sites.Instagram : Responser.CookiesDomain = "instagram.com"
+ End Select
Responser.SaveSettings()
End If
- _Path = New XMLValue(Of SFile)("Path", SFile.GetPath($"{GlobalPath.PathWithSeparator}{Site}"),
- _XML, {SettingsCLS.Name_Node_Sites, Site.ToString}, XMLValue(Of SFile).ToFilePath)
+
+ Dim n() As String = {SettingsCLS.Name_Node_Sites, Site.ToString}
+ _Path = New XMLValue(Of SFile)("Path", SFile.GetPath($"{GlobalPath.PathWithSeparator}{Site}"), _XML, n, XMLValue(Of SFile).ToFilePath)
_Path.ReplaceByValue("Path", {Site.ToString})
_XML.Remove(Site.ToString)
+
+ Temporary = New XMLValue(Of Boolean)
+ Temporary.SetExtended("Temporary", False, _XML, n)
+ Temporary.SetDefault(_Temp)
+
+ DownloadImages = New XMLValue(Of Boolean)
+ DownloadImages.SetExtended("DownloadImages", True, _XML, n)
+ DownloadImages.SetDefault(_Imgs)
+
+ DownloadVideos = New XMLValue(Of Boolean)
+ DownloadVideos.SetExtended("DownloadVideos", True, _XML, n)
+ DownloadVideos.SetDefault(_Vids)
+
+ If Site = Sites.Twitter Then
+ GetUserMediaOnly = New XMLValue(Of Boolean)("GetUserMediaOnly", True, _XML, n)
+ GetUserMediaOnly.ReplaceByValue("TwitterDefaultGetUserMedia", n)
+ Else
+ GetUserMediaOnly = New XMLValue(Of Boolean)
+ End If
+
+ If Site = Sites.Instagram Then
+ InstaHash = New XMLValue(Of String)("InstaHash", String.Empty, _XML, n)
+ InstaHashUpdateRequired = New XMLValue(Of Boolean)("InstaHashUpdateRequired", True, _XML, n)
+ If (InstaHash.IsEmptyString Or InstaHashUpdateRequired) And Responser.Cookies.ListExists Then GatherInstaHash()
+ InstagramDownloadingErrorDate = New XMLValue(Of Date) With {.ToStringFunction = Function(ss, vv) AConvert(Of String)(vv, Nothing)}
+ InstagramDownloadingErrorDate.SetExtended("InstagramDownloadingErrorDate", Now.AddYears(-10), _XML, n)
+ Else
+ InstaHash = New XMLValue(Of String)
+ InstaHashUpdateRequired = New XMLValue(Of Boolean)
+ End If
+ If Site = Sites.Reddit Then
+ SavedPostsUserName = New XMLValue(Of String)("SavedPostsUserName", String.Empty, _XML, n)
+ Else
+ SavedPostsUserName = New XMLValue(Of String)
+ End If
End Sub
Friend Sub Update()
Responser.SaveSettings()
End Sub
+ Friend Function GatherInstaHash() As Boolean
+ Try
+ Dim rs As New RegexStructure("=" & Chr(34) & "([^" & Chr(34) & "]+?ConsumerLibCommons[^" & Chr(34) & "]+?.js)" & Chr(34), 1) With {
+ .UseTimeOut = True,
+ .MatchTimeOutSeconds = 10
+ }
+ Dim r$ = Responser.GetResponse("https://instagram.com",, EDP.ThrowException)
+ If Not r.IsEmptyString Then
+ Dim hStr$ = RegexReplace(r, rs)
+ If Not hStr.IsEmptyString Then
+ Do While Left(hStr, 1) = "/" : hStr = Right(hStr, hStr.Length - 1) : Loop
+ hStr = $"https://instagram.com/{hStr}"
+ r = Responser.GetResponse(hStr,, EDP.ThrowException)
+ If Not r.IsEmptyString Then
+ rs = New RegexStructure("generatePaginationActionCreators.+?.profilePosts.byUserId.get.+?queryId:.([\d\w\S]+?)" & Chr(34), 1) With {
+ .UseTimeOut = True,
+ .MatchTimeOutSeconds = 10
+ }
+ Dim h$ = RegexReplace(r, rs)
+ If Not h.IsEmptyString Then
+ InstaHash.Value = h
+ InstaHashUpdateRequired.Value = False
+ Return True
+ End If
+ End If
+ End If
+ End If
+ Return False
+ Catch ex As Exception
+ InstaHashUpdateRequired.Value = True
+ InstaHash.Value = String.Empty
+ Return ErrorsDescriber.Execute(EDP.SendInLog + EDP.ReturnValue, ex, "[SiteSettings.GaterInstaHash]", False)
+ End Try
+ End Function
#Region "IDisposable Support"
Private disposedValue As Boolean = False
Protected Overridable Overloads Sub Dispose(ByVal disposing As Boolean)
diff --git a/SCrawler/API/Base/UserDataBase.vb b/SCrawler/API/Base/UserDataBase.vb
index 533f730..4c12542 100644
--- a/SCrawler/API/Base/UserDataBase.vb
+++ b/SCrawler/API/Base/UserDataBase.vb
@@ -78,6 +78,7 @@ Namespace API.Base
#Region "Declarations"
Friend MustOverride Property Site As Sites Implements IContentProvider.Site
Friend User As UserInfo
+ Friend Property IsSavedPosts As Boolean
Protected Const NonExistendUserHelp As String = "404"
Protected Const SuspendedUserHelp As String = "403"
Friend Overridable Property UserExists As Boolean = True Implements IUserData.Exists
@@ -329,17 +330,16 @@ BlockNullPicture:
Dim luv$ = String.Empty
If LastUpdated.HasValue Then luv = $"{LastUpdated.Value.ToStringDate(ADateTime.Formats.BaseDateTime)}: "
Return $"{luv}{Name} [{Site}]{IIf(HasError, " (with errors)", String.Empty)}: P - {_DownloadedPicturesTotal}; V - {_DownloadedVideosTotal}" &
- $" (P - {_CountPictures}; V - {_CountVideo})"
+ $" (P - {_CountPictures}; V - {_CountVideo})"
End Get
End Property
#End Region
- Protected ReadOnly LNC As New ListAddParams(LAP.NotContainsOnly)
#End Region
#Region "LVI"
Friend ReadOnly Property LVIKey As String Implements IUserData.LVIKey
Get
If Not _IsCollection Then
- Return $"{IIf(Site = Sites.Reddit, "R", "T")}_{Name}"
+ Return $"{Interaction.Switch(Site = Sites.Reddit, "R", Site = Sites.Twitter, "T", Site = Sites.Instagram, "I")}_{Name}"
Else
Return $"CCCC_{CollectionName}"
End If
@@ -361,14 +361,18 @@ BlockNullPicture:
End Function
Friend Overridable ReadOnly Property FitToAddParams As Boolean Implements IUserData.FitToAddParams
Get
- Select Case Settings.ShowingMode.Value
- Case ShowingModes.Regular : Return Not Temporary And Not Favorite
- Case ShowingModes.Temporary : Return Temporary
- Case ShowingModes.Favorite : Return Favorite
- Case ShowingModes.Labels : Return Settings.Labels.CurrentSelection.ListContains(Labels)
- Case ShowingModes.NoLabels : Return Labels.Count = 0
- Case Else : Return True
- End Select
+ If Settings.SelectedSites.Count = 0 OrElse Settings.SelectedSites.Contains(Site) Then
+ Select Case Settings.ShowingMode.Value
+ Case ShowingModes.Regular : Return Not Temporary And Not Favorite
+ Case ShowingModes.Temporary : Return Temporary
+ Case ShowingModes.Favorite : Return Favorite
+ Case ShowingModes.Labels : Return Settings.Labels.CurrentSelection.ListContains(Labels)
+ Case ShowingModes.NoLabels : Return Labels.Count = 0
+ Case Else : Return True
+ End Select
+ Else
+ Return False
+ End If
End Get
End Property
Friend Function GetLVIGroup(ByVal Destination As ListView) As ListViewGroup Implements IUserData.GetLVIGroup
@@ -383,7 +387,7 @@ BlockNullPicture:
Return Destination.Groups.Item(LabelsKeeper.NoLabeledName)
End If
Else
- Return Destination.Groups.Item(GetLviGroupName(Site, Temporary, Favorite, IsCollection))
+ Return Destination.Groups.Item(GetLviGroupName(Site, Temporary, Favorite, IsCollection, IsChannel))
End If
Catch ex As Exception
Return Destination.Groups.Item(LabelsKeeper.NoLabeledName)
@@ -431,6 +435,7 @@ BlockNullPicture:
Return New Reddit.UserData(u, _LoadUserInformation)
End If
Case Sites.Twitter : Return New Twitter.UserData(u, _LoadUserInformation)
+ Case Sites.Instagram : Return New Instagram.UserData(u, _LoadUserInformation)
Case Else : Throw New ArgumentOutOfRangeException("Site", $"Site [{u.Site}] information does not recognized by loader")
End Select
End Function
@@ -503,7 +508,7 @@ BlockNullPicture:
x.Save(MyFile)
End Using
- Settings.UpdateUsersList(User)
+ If Not IsSavedPosts Then Settings.UpdateUsersList(User)
Catch ex As Exception
LogError(ex, "user information saving error")
End Try
@@ -584,7 +589,8 @@ BlockNullPicture:
Select Case Site
Case Sites.Reddit : URL = $"https://www.reddit.com/{IIf(IsChannel, "r", "user")}/{Name}/"
Case Sites.Twitter : URL = $"https://twitter.com/{Name}"
- Case Else : MsgBoxE($"Site [{Site}] opening does not implemented", MsgBoxStyle.Exclamation)
+ Case Sites.Instagram : URL = $"https://www.instagram.com/{Name}/"
+ Case Else : MsgBoxE($"Site [{Site}] opening not implemented", MsgBoxStyle.Exclamation)
End Select
If Not URL.IsEmptyString Then Process.Start(URL)
Catch ex As Exception
@@ -604,10 +610,12 @@ BlockNullPicture:
UpdateDataFiles()
If Not Responser Is Nothing Then Responser.Dispose()
Responser = New PersonalUtilities.Tools.WEB.Response
- Responser.Copy(Settings.Site(Site).Responser)
+ Responser.Copy(Settings(Site).Responser)
Dim UpPic As Boolean = Settings.ViewModeIsPicture AndAlso GetPicture(False) Is Nothing
Dim sEnvir() As Boolean = {UserExists, UserSuspended}
Dim EnvirChanged As Func(Of Boolean) = Function() Not sEnvir(0) = UserExists Or Not sEnvir(1) = UserSuspended
+ UserExists = True
+ UserSuspended = False
_DownloadedPicturesSession = 0
_DownloadedVideosSession = 0
_TempMediaList.Clear()
@@ -714,7 +722,7 @@ BlockNullPicture:
End Function
Friend Function DeleteF(ByVal Instance As IUserData) As Integer
Dim f As SFile = SFile.GetPath(MyFile.CutPath.Path)
- If f.Exists(SFO.Path, False) AndAlso f.Delete(SFO.Path, False, False) Then
+ If f.Exists(SFO.Path, False) AndAlso (User.Merged OrElse f.Delete(SFO.Path, False, False)) Then
ImageHandler(Me, False)
Settings.UsersList.Remove(User)
Settings.UpdateUsersList()
@@ -919,7 +927,7 @@ BlockNullPicture:
#End Region
#Region "IEquatable Support"
Friend Overridable Overloads Function Equals(ByVal Other As UserDataBase) As Boolean Implements IEquatable(Of UserDataBase).Equals
- Return Site = Other.Site And Name = Other.Name
+ Return Site = Other.Site And Name = Other.Name And IsSavedPosts = Other.IsSavedPosts
End Function
Public Overrides Function Equals(ByVal Obj As Object) As Boolean
If TypeOf Obj Is Reddit.Channel Then
diff --git a/SCrawler/API/Imgur/Envir.vb b/SCrawler/API/Imgur/Envir.vb
new file mode 100644
index 0000000..8c83025
--- /dev/null
+++ b/SCrawler/API/Imgur/Envir.vb
@@ -0,0 +1,69 @@
+' Copyright (C) 2022 Andy
+' This program is free software: you can redistribute it and/or modify
+' it under the terms of the GNU General Public License as published by
+' the Free Software Foundation, either version 3 of the License, or
+' (at your option) any later version.
+'
+' This program is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY
+Imports PersonalUtilities.Functions.XML
+Imports PersonalUtilities.Tools.WebDocuments.JSON
+Imports System.Net
+Imports SCrawler.API.Imgur.Declarations
+Namespace API.Imgur.Declarations
+ Friend Module Imgur_Declarations
+ Friend ReadOnly PostRegex As New RegexStructure("/([\w\d]+?)(|\.[\w]{0,4})\Z", 1)
+ End Module
+End Namespace
+Namespace API.Imgur
+ Friend NotInheritable Class Envir
+ Private Sub New()
+ End Sub
+ Friend Shared Function GetGallery(ByVal URL As String) As List(Of String)
+ Try
+ If Not Settings.ImgurClientID.IsEmptyString And Not URL.IsEmptyString Then
+ Dim __url$ = RegexReplace(URL, PostRegex)
+ If Not __url.IsEmptyString Then
+ __url = $"https://api.imgur.com/post/v1/albums/{__url}?client_id={Settings.ImgurClientID.Value}&include=media"
+ Using w As New WebClient
+ Dim r$ = w.DownloadString(__url)
+ If Not r.IsEmptyString Then
+ Using j As EContainer = JsonDocument.Parse(r).XmlIfNothing
+ If j.Contains("media") Then
+ Dim UrlsList As New List(Of String)
+ Dim tmpUrl$
+ For Each m As EContainer In j("media")
+ tmpUrl = m.Value("url")
+ If Not tmpUrl.IsEmptyString Then UrlsList.ListAddValue(tmpUrl, Base.LNC)
+ Next
+ Return UrlsList
+ End If
+ End Using
+ End If
+ End Using
+ End If
+ End If
+ Return Nothing
+ Catch ex As Exception
+ Return ErrorsDescriber.Execute(EDP.ReturnValue + EDP.SendInLog, ex, $"[API.Imgur.Envir.GetGallery({URL})]", Nothing)
+ End Try
+ End Function
+ Friend Shared Function GetImage(ByVal URL As String) As String
+ Try
+ If Not Settings.ImgurClientID.IsEmptyString And Not URL.IsEmptyString Then
+ Dim __url$ = RegexReplace(URL, PostRegex)
+ If Not __url.IsEmptyString Then
+ __url = $"https://api.imgur.com/3/image/{__url}?client_id={Settings.ImgurClientID.Value}&include=media"
+ Using w As New WebClient
+ Dim r$ = w.DownloadString(__url)
+ If Not r.IsEmptyString Then Return JsonDocument.Parse(r).XmlIfNothing.Value({"data"}, "link")
+ End Using
+ End If
+ End If
+ Return String.Empty
+ Catch ex As Exception
+ Return ErrorsDescriber.Execute(EDP.ReturnValue + EDP.SendInLog, ex, $"[API.Imgur.Envir.GetImage({URL})]", String.Empty)
+ End Try
+ End Function
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/SCrawler/API/Instagram/Declarations.vb b/SCrawler/API/Instagram/Declarations.vb
new file mode 100644
index 0000000..2ec5b3a
--- /dev/null
+++ b/SCrawler/API/Instagram/Declarations.vb
@@ -0,0 +1,23 @@
+' Copyright (C) 2022 Andy
+' This program is free software: you can redistribute it and/or modify
+' it under the terms of the GNU General Public License as published by
+' the Free Software Foundation, either version 3 of the License, or
+' (at your option) any later version.
+'
+' This program is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY
+Namespace API.Instagram
+ Friend Module Declarations
+ Friend ReadOnly FilesPattern As New RegexStructure("[^\./]+?\.\w+", True, False, 2,,,, String.Empty, EDP.ReturnValue)
+ Friend ReadOnly Property DateProvider As New JsonDate
+ Friend Class JsonDate : Implements ICustomProvider
+ Friend Function Convert(ByVal Value As Object, ByVal DestinationType As Type, ByVal Provider As IFormatProvider,
+ Optional ByVal NothingArg As Object = Nothing, Optional ByVal e As ErrorsDescriber = Nothing) As Object Implements ICustomProvider.Convert
+ Return ADateTime.ParseUnicode(Value)
+ End Function
+ Private Function GetFormat(ByVal FormatType As Type) As Object Implements IFormatProvider.GetFormat
+ Throw New NotImplementedException("GetFormat is not available in this context")
+ End Function
+ End Class
+ End Module
+End Namespace
\ No newline at end of file
diff --git a/SCrawler/API/Instagram/UserData.vb b/SCrawler/API/Instagram/UserData.vb
new file mode 100644
index 0000000..207e0aa
--- /dev/null
+++ b/SCrawler/API/Instagram/UserData.vb
@@ -0,0 +1,241 @@
+' Copyright (C) 2022 Andy
+' This program is free software: you can redistribute it and/or modify
+' it under the terms of the GNU General Public License as published by
+' the Free Software Foundation, either version 3 of the License, or
+' (at your option) any later version.
+'
+' This program is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY
+Imports PersonalUtilities.Functions.XML
+Imports PersonalUtilities.Tools.WebDocuments.JSON
+Imports SCrawler.API.Base
+Imports System.Threading
+Imports System.Net
+Imports UStates = SCrawler.API.Base.UserMedia.States
+Imports UTypes = SCrawler.API.Base.UserMedia.Types
+Namespace API.Instagram
+ Friend Class UserData : Inherits UserDataBase
+ Friend Overrides Property Site As Sites = Sites.Instagram
+ ''' Video downloader initializer
+ Private Sub New()
+ End Sub
+ ''' Default initializer
+ Friend Sub New(ByVal u As UserInfo, Optional ByVal _LoadUserInformation As Boolean = True)
+ User = u
+ If _LoadUserInformation Then LoadUserInformation()
+ End Sub
+ Protected Overrides Sub DownloadDataF(ByVal Token As CancellationToken)
+ DownloadData(String.Empty, Token)
+ End Sub
+ Private _InstaHash As String = String.Empty
+ Private Overloads Sub DownloadData(ByVal Cursor As String, ByVal Token As CancellationToken)
+ Dim URL$ = String.Empty
+ Try
+ Dim n As EContainer, nn As EContainer, node As EContainer
+ Dim HasNextPage As Boolean = False
+ Dim EndCursor$ = String.Empty
+ Dim PostID$ = String.Empty, PostDate$ = String.Empty
+
+ 'Check environment
+ If Cursor.IsEmptyString And _InstaHash.IsEmptyString Then _InstaHash = Settings(Sites.Instagram).InstaHash
+ If _InstaHash.IsEmptyString Then Throw New ArgumentNullException("InstHash", "Query hash is null")
+ If ID.IsEmptyString Then GetUserId()
+ If ID.IsEmptyString Then Throw New ArgumentException("User ID is not detected", "ID")
+
+ 'Create query
+ Dim vars$ = "{""id"":" & ID & ",""first"":12,""after"":""" & Cursor & """}"
+ vars = SymbolsConverter.ASCII.EncodeSymbolsOnly(vars)
+ URL = $"https://www.instagram.com/graphql/query/?query_hash={_InstaHash}&variables={vars}"
+
+ 'Get response
+ Dim r$ = Responser.GetResponse(URL,, EDP.ThrowException)
+ Settings(Sites.Instagram).InstagramTooManyRequests(False)
+ ThrowAny(Token)
+
+ 'Data
+ If Not r.IsEmptyString Then
+ Using j As EContainer = JsonDocument.Parse(r).XmlIfNothing
+ n = j.ItemF({"data", "user", 0}).XmlIfNothing
+ If n.Count > 0 Then
+ If n.Contains("page_info") Then
+ With n("page_info")
+ HasNextPage = .Value("has_next_page").FromXML(Of Boolean)(False)
+ EndCursor = .Value("end_cursor")
+ End With
+ End If
+ n = n("edges").XmlIfNothing
+ If n.Count > 0 Then
+ For Each nn In n
+ ThrowAny(Token)
+ node = nn(0).XmlIfNothing
+
+ PostID = node.Value("id")
+ If Not PostID.IsEmptyString And _TempPostsList.Contains(PostID) Then Exit Sub
+ _TempPostsList.Add(PostID)
+ PostDate = node.Value("taken_at_timestamp")
+
+ ObtainMedia(node, PostID, PostDate)
+ Next
+ End If
+ Else
+ If j.Value("status") = "ok" AndAlso j({"data", "user"}).XmlIfNothing.Count = 0 AndAlso _TempMediaList.Count = 0 Then
+ Settings(Sites.Instagram).InstaHashUpdateRequired.Value = True
+ UserExists = False
+ Exit Sub
+ End If
+ End If
+ End Using
+ End If
+ If HasNextPage And Not EndCursor.IsEmptyString Then DownloadData(EndCursor, Token)
+ Catch oex As OperationCanceledException When Token.IsCancellationRequested
+ Catch dex As ObjectDisposedException When Disposed
+ Catch ex As Exception
+ If Responser.StatusCode = HttpStatusCode.NotFound Then
+ UserExists = False
+ ElseIf Responser.StatusCode = HttpStatusCode.BadRequest Then
+ MyMainLOG = "Instagram credentials have expired"
+ Settings(Sites.Instagram).InstaHashUpdateRequired.Value = True
+ ElseIf Responser.StatusCode = 429 Then
+ Settings(Sites.Instagram).InstagramTooManyRequests(True)
+ Else
+ Settings(Sites.Instagram).InstaHashUpdateRequired.Value = True
+ LogError(ex, $"data downloading error [{URL}]")
+ End If
+ HasError = True
+ Finally
+ _InstaHash = String.Empty
+ End Try
+ End Sub
+ Private Sub ObtainMedia(ByVal node As EContainer, ByVal PostID As String, ByVal PostDate As String)
+ Dim CreateMedia As Action(Of EContainer) =
+ Sub(ByVal e As EContainer)
+ Dim t As UTypes = If(e.Value("is_video").FromXML(Of Boolean)(False), UTypes.Video, UTypes.Picture)
+ Dim tmpValue$
+ If t = UTypes.Picture Then
+ tmpValue = e.Value("display_url")
+ Else
+ tmpValue = e.Value("video_url")
+ End If
+ If Not tmpValue.IsEmptyString Then _TempMediaList.ListAddValue(MediaFromData(t, tmpValue, PostID, PostDate), LNC)
+ End Sub
+ If node.Contains({"edge_sidecar_to_children", "edges"}) Then
+ For Each edge As EContainer In node({"edge_sidecar_to_children", "edges"}) : CreateMedia(edge("node").XmlIfNothing) : Next
+ Else
+ CreateMedia(node)
+ End If
+ End Sub
+ Private Sub GetUserId()
+ Try
+ Dim r$ = Responser.GetResponse($"https://www.instagram.com/{Name}/?__a=1",, EDP.ThrowException)
+ If Not r.IsEmptyString Then
+ Using j As EContainer = JsonDocument.Parse(r).XmlIfNothing
+ ID = j({"graphql", "user"}, "id").XmlIfNothingValue
+ End Using
+ End If
+ Catch ex As Exception
+ If Responser.StatusCode = HttpStatusCode.NotFound Or Responser.StatusCode = HttpStatusCode.BadRequest Then
+ Throw ex
+ Else
+ LogError(ex, "get instagram user id")
+ End If
+ End Try
+ End Sub
+ Protected Overrides Sub ReparseVideo(ByVal Token As CancellationToken)
+ End Sub
+ Protected Overrides Sub DownloadContent(ByVal Token As CancellationToken)
+ Try
+ Dim i%
+ Dim dCount% = 0, dTotal% = 0
+ ThrowAny(Token)
+ If _ContentNew.Count > 0 Then
+ _ContentNew.RemoveAll(Function(c) c.URL.IsEmptyString)
+ If _ContentNew.Count > 0 Then
+ MyFile.Exists(SFO.Path)
+ Dim MyDir$ = MyFile.CutPath.PathNoSeparator
+ Dim vsf As Boolean = SeparateVideoFolderF
+ Dim f As SFile
+ Dim v As UserMedia
+ Using w As New WebClient
+ If vsf Then SFileShares.SFileExists($"{MyDir}\Video\", SFO.Path)
+ MainProgress.TotalCount += _ContentNew.Count
+ For i = 0 To _ContentNew.Count - 1
+ ThrowAny(Token)
+ v = _ContentNew(i)
+ v.State = UStates.Tried
+ If v.File.IsEmptyString Then
+ f = v.URL
+ Else
+ f = v.File
+ End If
+ f.Separator = "\"
+ f.Path = MyDir
+
+ If v.URL_BASE.IsEmptyString Then v.URL_BASE = v.URL
+
+ If Not v.File.IsEmptyString AndAlso Not v.URL_BASE.IsEmptyString Then
+ Try
+ If v.Type = UTypes.Video And vsf Then f.Path = $"{f.PathWithSeparator}Video"
+ w.DownloadFile(v.URL_BASE, f.ToString)
+ Select Case v.Type
+ Case UTypes.Video : DownloadedVideos += 1 : _CountVideo += 1
+ Case UTypes.Picture : DownloadedPictures += 1 : _CountPictures += 1
+ End Select
+ v.File = ChangeFileNameByProvider(f, v)
+ v.State = UStates.Downloaded
+ Catch wex As Exception
+ ErrorDownloading(f, v.URL_BASE)
+ End Try
+ Else
+ v.State = UStates.Skipped
+ End If
+ _ContentNew(i) = v
+ If DownloadTopCount.HasValue AndAlso dCount >= DownloadTopCount.Value Then
+ MainProgress.Perform(_ContentNew.Count - dTotal)
+ Exit Sub
+ Else
+ dTotal += 1
+ MainProgress.Perform()
+ End If
+ Next
+ End Using
+ End If
+ End If
+ Catch oex As OperationCanceledException When Token.IsCancellationRequested
+ Catch dex As ObjectDisposedException When Disposed
+ Catch ex As Exception
+ LogError(ex, "content downloading error")
+ HasError = True
+ End Try
+ End Sub
+ Private Shared Function MediaFromData(ByVal t As UTypes, ByVal _URL As String, ByVal PostID As String, ByVal PostDate As String) As UserMedia
+ _URL = LinkFormatterSecure(RegexReplace(_URL.Replace("\", String.Empty), LinkPattern))
+ Dim m As New UserMedia(_URL, t) With {.Post = New UserPost With {.ID = PostID}}
+ If Not m.URL.IsEmptyString Then m.File = CStr(RegexReplace(m.URL, FilesPattern))
+ If Not PostDate.IsEmptyString Then m.Post.Date = AConvert(Of Date)(PostDate, Declarations.DateProvider, Nothing) Else m.Post.Date = Nothing
+ Return m
+ End Function
+ Friend Shared Function GetVideoInfo(ByVal URL As String) As IEnumerable(Of UserMedia)
+ Try
+ If Not URL.IsEmptyString AndAlso URL.Contains("instagram.com") Then
+ Do While Right(URL, 1) = "/" : URL = Left(URL, URL.Length - 1) : Loop
+ URL = $"{URL}/?__a=1"
+ Using t As New UserData
+ t.Responser = New PersonalUtilities.Tools.WEB.Response
+ t.Responser.Copy(Settings(Sites.Instagram).Responser)
+ Dim r$ = t.Responser.GetResponse(URL,, EDP.ThrowException)
+ If Not r.IsEmptyString Then
+ Using j As EContainer = JsonDocument.Parse(r).XmlIfNothing
+ Dim node As EContainer = j({"graphql", "shortcode_media"}).XmlIfNothing
+ If node.Count > 0 Then t.ObtainMedia(node, String.Empty, String.Empty)
+ End Using
+ End If
+ If t._TempMediaList.Count > 0 Then Return ListAddList(Nothing, t._TempMediaList)
+ End Using
+ End If
+ Return Nothing
+ Catch ex As Exception
+ Return ErrorsDescriber.Execute(EDP.ShowMainMsg + EDP.SendInLog, ex, "Instagram standalone downloader: fetch media error")
+ End Try
+ End Function
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/SCrawler/API/Reddit/Declarations.vb b/SCrawler/API/Reddit/Declarations.vb
index 7b20bae..1c83eb5 100644
--- a/SCrawler/API/Reddit/Declarations.vb
+++ b/SCrawler/API/Reddit/Declarations.vb
@@ -24,7 +24,7 @@ Namespace API.Reddit
Return ADateTime.ParseUnicodeJS(Value, NothingArg, e)
End Function
Private Function GetFormat(ByVal FormatType As Type) As Object Implements IFormatProvider.GetFormat
- Throw New NotImplementedException("GetFormat does not available in this context")
+ Throw New NotImplementedException("GetFormat is not available in this context")
End Function
End Class
Friend Class JsonDateChannel : Implements ICustomProvider
@@ -34,7 +34,7 @@ Namespace API.Reddit
Return ADateTime.ParseUnicode(AConvert(Of Integer)(Value, EUR_PROVIDER, Value), NothingArg, e)
End Function
Private Function GetFormat(ByVal FormatType As Type) As Object Implements IFormatProvider.GetFormat
- Throw New NotImplementedException("GetFormat does not available in this context")
+ Throw New NotImplementedException("GetFormat is not available in this context")
End Function
End Class
End Module
diff --git a/SCrawler/API/Reddit/ProfileSaved.vb b/SCrawler/API/Reddit/ProfileSaved.vb
new file mode 100644
index 0000000..f851fc0
--- /dev/null
+++ b/SCrawler/API/Reddit/ProfileSaved.vb
@@ -0,0 +1,39 @@
+' Copyright (C) 2022 Andy
+' This program is free software: you can redistribute it and/or modify
+' it under the terms of the GNU General Public License as published by
+' the Free Software Foundation, either version 3 of the License, or
+' (at your option) any later version.
+'
+' This program is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY
+Imports SCrawler.API.Base
+Namespace API.Reddit
+ Friend NotInheritable Class ProfileSaved
+ Private Sub New()
+ End Sub
+ Friend Shared Sub Download(ByRef Toolbar As StatusStrip, ByRef PR As ToolStripProgressBar)
+ Try
+ Dim Bar = New PersonalUtilities.Forms.Toolbars.MyProgress(Toolbar, PR, Nothing)
+ Dim u As New UserInfo(Settings(Sites.Reddit).SavedPostsUserName.Value, Sites.Reddit) With {
+ .IsChannel = True,
+ .SpecialPath = $"{Settings(Sites.Reddit).Path.PathWithSeparator}\!Saved\"
+ }
+ u.UpdateUserFile()
+ Using user As IUserData = UserDataBase.GetInstance(u)
+ DirectCast(user.Self, UserDataBase).IsSavedPosts = True
+ Bar.Enabled = True
+ DirectCast(user.Self, UserData).Progress = Bar
+ If Not user.FileExists Then user.UpdateUserInformation()
+ user.DownloadData(Nothing)
+ Dim m As New MMessage("Reddit saved posts download complete", "Saved posts downloading", {"OK", "Open folder"})
+ m.Text.StringAppendLine($"Downloaded images: {user.DownloadedPictures}")
+ m.Text.StringAppendLine($"Downloaded videos: {user.DownloadedVideos}")
+ If MsgBoxE(m) = 1 Then u.File.CutPath.Open(SFO.Path)
+ Bar.Enabled = False
+ End Using
+ Catch ex As Exception
+ ErrorsDescriber.Execute(EDP.SendInLog, ex, "[API.Reddit.ProfileSaved.Download]")
+ End Try
+ End Sub
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/SCrawler/API/Reddit/UserData.vb b/SCrawler/API/Reddit/UserData.vb
index 3bcbdcb..b78e7b5 100644
--- a/SCrawler/API/Reddit/UserData.vb
+++ b/SCrawler/API/Reddit/UserData.vb
@@ -79,7 +79,7 @@ Namespace API.Reddit
If IsChannel AndAlso Not ChannelInfo.IsRegularChannel Then
If Not Responser Is Nothing Then Responser.Dispose()
Responser = New PersonalUtilities.Tools.WEB.Response
- Responser.Copy(Settings.Site(Sites.Reddit).Responser)
+ Responser.Copy(Settings(Sites.Reddit).Responser)
ChannelPostsNames.ListAddList(ChannelInfo.PostsAll.Select(Function(p) p.ID), LNC)
If SkipExistsUsers Then _ExistsUsersNames.ListAddList(Settings.UsersList.Select(Function(p) p.Name), LNC)
DownloadDataF(Token)
@@ -227,7 +227,12 @@ Namespace API.Reddit
Dim eCount As Predicate(Of EContainer) = Function(e) e.Count > 0
Dim lDate As Date?
- URL = $"https://reddit.com/r/{Name}/new.json?allow_quarantined=true&allow_over18=1&include=identity&after={POST}&dist=25&sort=new&t=all&layout=classic"
+ If IsSavedPosts Then
+ URL = $"https://www.reddit.com/user/{Name}/saved.json?after={POST}"
+ Else
+ URL = $"https://reddit.com/r/{Name}/new.json?allow_quarantined=true&allow_over18=1&include=identity&after={POST}&dist=25&sort=new&t=all&layout=classic"
+ End If
+
ThrowAny(Token)
Dim r$ = GetSiteResponse(URL)
If Not r.IsEmptyString Then
@@ -396,15 +401,15 @@ Namespace API.Reddit
LogError(ex, "video reparsing error")
End Try
End Sub
- Friend Shared Function GetVideoInfo(ByVal URL As String) As UserMedia
+ Friend Shared Function GetVideoInfo(ByVal URL As String) As IEnumerable(Of UserMedia)
Try
If Not URL.IsEmptyString AndAlso URL.Contains("redgifs") Then
Using r As New UserData
r._TempMediaList.Add(MediaFromData(UTypes.VideoPre, URL, String.Empty, String.Empty,, False))
r.Responser = New PersonalUtilities.Tools.WEB.Response
- r.Responser.Copy(Settings.Site(Sites.Reddit).Responser)
+ r.Responser.Copy(Settings(Sites.Reddit).Responser)
r.ReparseVideo(Nothing)
- If r._TempMediaList.ListExists Then Return r._TempMediaList(0)
+ If r._TempMediaList.ListExists Then Return {r._TempMediaList(0)}
End Using
End If
Return Nothing
@@ -460,13 +465,23 @@ Namespace API.Reddit
Dim v As UserMedia
Dim cached As Boolean = IsChannel And SaveToCache
Dim vsf As Boolean = SeparateVideoFolderF
- Dim ImgFormat As Imaging.ImageFormat
Dim UseMD5 As Boolean = Not IsChannel Or (Not cached And Settings.ChannelsRegularCheckMD5)
Dim bDP As New ErrorsDescriber(EDP.None)
+ Dim ImgurUrls As New List(Of String)
+ Dim TryBytes As Func(Of String, Imaging.ImageFormat, String) =
+ Function(ByVal __URL As String, ByVal ImgFormat As Imaging.ImageFormat) As String
+ Try
+ Return ByteArrayToString(GetMD5(SFile.GetBytesFromNet(__URL, bDP), ImgFormat))
+ Catch hash_ex As Exception
+ Return String.Empty
+ End Try
+ End Function
Dim MD5BS As Func(Of String, UTypes,
SFile, Boolean, String) = Function(ByVal __URL As String, ByVal __MT As UTypes,
ByVal __File As SFile, ByVal __IsBase As Boolean) As String
Try
+ ImgurUrls.Clear()
+ Dim ImgFormat As Imaging.ImageFormat
If __MT = UTypes.GIF Then
ImgFormat = Imaging.ImageFormat.Gif
ElseIf __IsBase Then
@@ -474,7 +489,27 @@ Namespace API.Reddit
Else
ImgFormat = GetImageFormat(__File)
End If
- Return ByteArrayToString(GetMD5(SFile.GetBytesFromNet(__URL, bDP), ImgFormat))
+
+ Dim tmpBytes$ = TryBytes(__URL, ImgFormat)
+ If tmpBytes.IsEmptyString And Not __MT = UTypes.GIF Then
+ ImgFormat = Imaging.ImageFormat.Png
+ tmpBytes = TryBytes(__URL, ImgFormat)
+ If Not tmpBytes.IsEmptyString Then Return tmpBytes
+ Else
+ Return tmpBytes
+ End If
+
+ If tmpBytes.IsEmptyString And Not __MT = UTypes.GIF And __URL.Contains("imgur.com") Then
+ For c% = 0 To 1
+ If c = 0 Then
+ ImgurUrls.ListAddList(Imgur.Envir.GetGallery(__URL))
+ Else
+ ImgurUrls.ListAddValue(Imgur.Envir.GetImage(__URL))
+ End If
+ If ImgurUrls.Count > 0 Then Exit For
+ Next
+ End If
+ Return tmpBytes
Catch hash_ex As Exception
Return String.Empty
End Try
@@ -496,41 +531,57 @@ Namespace API.Reddit
m = String.Empty
If (v.Type = UTypes.Picture Or v.Type = UTypes.GIF) And UseMD5 Then
m = MD5BS(v.URL, v.Type, f, False)
- If m.IsEmptyString AndAlso Not v.URL_BASE.IsEmptyString AndAlso Not v.URL_BASE = v.URL Then
+ If ImgurUrls.Count = 0 AndAlso m.IsEmptyString AndAlso Not v.URL_BASE.IsEmptyString AndAlso Not v.URL_BASE = v.URL Then
m = MD5BS(v.URL_BASE, v.Type, f, True)
If Not m.IsEmptyString Then v.URL = v.URL_BASE
End If
End If
If (Not m.IsEmptyString AndAlso Not HashList.Contains(m)) Or Not (v.Type = UTypes.Picture Or
- v.Type = UTypes.GIF) Or Not UseMD5 Then
- If Not cached Then HashList.Add(m)
- v.MD5 = m
- f.Path = MyDir
- Try
- If (v.Type = UTypes.Video Or v.Type = UTypes.m3u8) And vsf Then f.Path = $"{f.PathWithSeparator}Video"
- If v.Type = UTypes.m3u8 Then
- f = M3U8.Download(v.URL, f)
- Else
- w.DownloadFile(v.URL, f.ToString)
- End If
- If Not v.Type = UTypes.m3u8 Or Not f.IsEmptyString Then
- Select Case v.Type
- Case UTypes.Picture : DownloadedPictures += 1 : _CountPictures += 1
- Case UTypes.Video, UTypes.m3u8 : DownloadedVideos += 1 : _CountVideo += 1
- End Select
- If Not IsChannel Or Not SaveToCache Then
- v.File = ChangeFileNameByProvider(f, v)
- Else
- v.File = f
+ v.Type = UTypes.GIF) Or Not UseMD5 Or ImgurUrls.Count > 0 Then
+ Do
+ If Not cached And Not m.IsEmptyString Then HashList.Add(m)
+ v.MD5 = m
+ If ImgurUrls.Count > 0 Then
+ If ImgurUrls(0).IsEmptyString Then ImgurUrls.RemoveAt(0) : Continue Do
+ f = UrlToFile(ImgurUrls(0))
+ If f.Extension.IsEmptyString Then f.Extension = "gif"
+ If f.Name.IsEmptyString Then
+ f.Path = MyDir
+ f.Name = $"ImgurImg_{v.File.Name}"
+ f = SFile.Indexed_IndexFile(f,,, EDP.ReturnValue)
End If
- v.Post.CachedFile = f
- v.State = UStates.Downloaded
- dCount += 1
End If
- Catch wex As Exception
- If Not IsChannel Then ErrorDownloading(f, v.URL)
- End Try
+ f.Path = MyDir
+ Try
+ If (v.Type = UTypes.Video Or v.Type = UTypes.m3u8 Or (ImgurUrls.Count > 0 AndAlso f.Extension = "mp4")) And
+ vsf Then f.Path = $"{f.PathWithSeparator}Video"
+ If v.Type = UTypes.m3u8 Then
+ f = M3U8.Download(v.URL, f)
+ ElseIf ImgurUrls.Count > 0 Then
+ w.DownloadFile(ImgurUrls(0), f.ToString)
+ Else
+ w.DownloadFile(v.URL, f.ToString)
+ End If
+ If Not v.Type = UTypes.m3u8 Or Not f.IsEmptyString Then
+ Select Case v.Type
+ Case UTypes.Picture : DownloadedPictures += 1 : _CountPictures += 1
+ Case UTypes.Video, UTypes.m3u8 : DownloadedVideos += 1 : _CountVideo += 1
+ End Select
+ If Not IsChannel Or Not SaveToCache Then
+ v.File = ChangeFileNameByProvider(f, v)
+ Else
+ v.File = f
+ End If
+ v.Post.CachedFile = f
+ v.State = UStates.Downloaded
+ dCount += 1
+ End If
+ Catch wex As Exception
+ If Not IsChannel Then ErrorDownloading(f, v.URL)
+ End Try
+ If ImgurUrls.Count > 0 Then ImgurUrls.RemoveAt(0)
+ Loop While ImgurUrls.Count > 0
Else
v.State = UStates.Skipped
End If
diff --git a/SCrawler/API/Twitter/UserData.vb b/SCrawler/API/Twitter/UserData.vb
index 83e81dd..d8ce2de 100644
--- a/SCrawler/API/Twitter/UserData.vb
+++ b/SCrawler/API/Twitter/UserData.vb
@@ -130,18 +130,18 @@ Namespace API.Twitter
End If
End Try
End Sub
- Friend Shared Function GetVideoInfo(ByVal URL As String) As UserMedia
+ Friend Shared Function GetVideoInfo(ByVal URL As String) As IEnumerable(Of UserMedia)
Try
If URL.Contains("twitter") Then
Dim PostID$ = RegexReplace(URL, New RegexStructure("(?<=/)\d+", True, False,,,,, String.Empty))
If Not PostID.IsEmptyString Then
- Dim r$ = DirectCast(Settings.Site(Sites.Twitter).Responser.Copy(), Response).
+ Dim r$ = DirectCast(Settings(Sites.Twitter).Responser.Copy(), Response).
GetResponse($"https://api.twitter.com/1.1/statuses/show.json?id={PostID}",, EDP.ReturnValue)
If Not r.IsEmptyString Then
Using j As EContainer = JsonDocument.Parse(r)
If j.ListExists Then
Dim u$ = GetVideoNodeURL(j)
- If Not u.IsEmptyString Then Return MediaFromData(u, PostID, String.Empty)
+ If Not u.IsEmptyString Then Return {MediaFromData(u, PostID, String.Empty)}
End If
End Using
End If
@@ -224,12 +224,13 @@ Namespace API.Twitter
Protected Overrides Sub DownloadContent(ByVal Token As CancellationToken)
Try
Dim i%
+ Dim dCount% = 0, dTotal% = 0
ThrowAny(Token)
If _ContentNew.Count > 0 Then
_ContentNew.RemoveAll(Function(c) c.URL.IsEmptyString)
If _ContentNew.Count > 0 Then
MyFile.Exists(SFO.Path)
- Dim MyDir$ = MyFile.CutPath.Path
+ Dim MyDir$ = MyFile.CutPath.PathNoSeparator
Dim vsf As Boolean = SeparateVideoFolderF
Dim f As SFile
Dim v As UserMedia
@@ -260,6 +261,7 @@ Namespace API.Twitter
End Select
v.File = ChangeFileNameByProvider(f, v)
v.State = UStates.Downloaded
+ dCount += 1
Catch wex As Exception
ErrorDownloading(f, v.URL_BASE)
End Try
@@ -267,7 +269,13 @@ Namespace API.Twitter
v.State = UStates.Skipped
End If
_ContentNew(i) = v
- MainProgress.Perform()
+ If DownloadTopCount.HasValue AndAlso dCount >= DownloadTopCount.Value Then
+ MainProgress.Perform(_ContentNew.Count - dTotal)
+ Exit Sub
+ Else
+ dTotal += 1
+ MainProgress.Perform()
+ End If
Next
End Using
End If
diff --git a/SCrawler/API/UserDataBind.vb b/SCrawler/API/UserDataBind.vb
index 800a440..c41ff26 100644
--- a/SCrawler/API/UserDataBind.vb
+++ b/SCrawler/API/UserDataBind.vb
@@ -407,7 +407,7 @@ Namespace API
Dim f As SFile
If MsgBoxE({$"Collection may contain data{vbCr}Do you really want to delete collection and all of it files?", "Collection deleting"},
MsgBoxStyle.Exclamation + MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
- f = Collections(0).File.CutPath(2).PathWithSeparator
+ f = Collections(0).File.CutPath(IIf(DataMerging, 1, 2)).PathWithSeparator
Settings.Users.Remove(Me)
Collections.ForEach(Sub(c) c.Delete())
Downloader.UserRemove(Me)
diff --git a/SCrawler/Content/Icons/InstagramIcon.ico b/SCrawler/Content/Icons/InstagramIcon.ico
new file mode 100644
index 0000000..cf77110
Binary files /dev/null and b/SCrawler/Content/Icons/InstagramIcon.ico differ
diff --git a/SCrawler/Content/Icons/SettingsIcon.ico b/SCrawler/Content/Icons/SettingsIcon.ico
new file mode 100644
index 0000000..a9e67d3
Binary files /dev/null and b/SCrawler/Content/Icons/SettingsIcon.ico differ
diff --git a/SCrawler/Content/Pictures/BookmarkBlack_16.png b/SCrawler/Content/Pictures/BookmarkBlack_16.png
new file mode 100644
index 0000000..5d58cb4
Binary files /dev/null and b/SCrawler/Content/Pictures/BookmarkBlack_16.png differ
diff --git a/SCrawler/Content/Pictures/InstagramPic76.png b/SCrawler/Content/Pictures/InstagramPic76.png
new file mode 100644
index 0000000..47ed0f1
Binary files /dev/null and b/SCrawler/Content/Pictures/InstagramPic76.png differ
diff --git a/SCrawler/Content/Pictures/SettingsPic_16.bmp b/SCrawler/Content/Pictures/SettingsPic_16.bmp
new file mode 100644
index 0000000..ab2e01d
Binary files /dev/null and b/SCrawler/Content/Pictures/SettingsPic_16.bmp differ
diff --git a/SCrawler/Content/Pictures/TwitterPic400.png b/SCrawler/Content/Pictures/TwitterPic400.png
new file mode 100644
index 0000000..24efa51
Binary files /dev/null and b/SCrawler/Content/Pictures/TwitterPic400.png differ
diff --git a/SCrawler/Editors/GlobalSettingsForm.Designer.vb b/SCrawler/Editors/GlobalSettingsForm.Designer.vb
index 8158981..dbb9444 100644
--- a/SCrawler/Editors/GlobalSettingsForm.Designer.vb
+++ b/SCrawler/Editors/GlobalSettingsForm.Designer.vb
@@ -23,6 +23,7 @@
Dim ActionButton3 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim ActionButton4 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim ActionButton5 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton6 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim TT_MAIN As System.Windows.Forms.ToolTip
Dim TP_FILE_NAME As System.Windows.Forms.TableLayoutPanel
Dim TP_FILE_PATTERNS As System.Windows.Forms.TableLayoutPanel
@@ -38,6 +39,7 @@
Dim TP_REDDIT As System.Windows.Forms.TableLayoutPanel
Dim TAB_DEFS_TWITTER As System.Windows.Forms.TabPage
Dim TP_TWITTER As System.Windows.Forms.TableLayoutPanel
+ Dim TP_INSTAGRAM As System.Windows.Forms.TableLayoutPanel
Me.TXT_GLOBAL_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_IMAGE_LARGE = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_IMAGE_SMALL = New PersonalUtilities.Forms.Controls.TextBoxExtended()
@@ -45,11 +47,13 @@
Me.TXT_MAX_JOBS_USERS = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_MAX_JOBS_CHANNELS = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.CH_CHECK_VER_START = New System.Windows.Forms.CheckBox()
+ Me.TXT_IMGUR_CLIENT_ID = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.CH_COPY_CHANNEL_USER_IMAGE = New System.Windows.Forms.CheckBox()
Me.CH_DEF_TEMP = New System.Windows.Forms.CheckBox()
Me.CH_DOWN_IMAGES = New System.Windows.Forms.CheckBox()
Me.CH_DOWN_VIDEOS = New System.Windows.Forms.CheckBox()
Me.CH_SEPARATE_VIDEO_FOLDER = New System.Windows.Forms.CheckBox()
+ Me.CH_CHANNELS_USERS_TEMP = New System.Windows.Forms.CheckBox()
Me.OPT_FILE_NAME_REPLACE = New System.Windows.Forms.RadioButton()
Me.OPT_FILE_NAME_ADD_DATE = New System.Windows.Forms.RadioButton()
Me.CH_FILE_NAME_CHANGE = New System.Windows.Forms.CheckBox()
@@ -60,7 +64,6 @@
Me.TXT_CHANNELS_ROWS = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_CHANNELS_COLUMNS = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_CHANNEL_USER_POST_LIMIT = New PersonalUtilities.Forms.Controls.TextBoxExtended()
- Me.CH_CHANNELS_USERS_TEMP = New System.Windows.Forms.CheckBox()
Me.CH_REDDIT_TEMP = New System.Windows.Forms.CheckBox()
Me.CH_REDDIT_DOWN_IMG = New System.Windows.Forms.CheckBox()
Me.CH_REDDIT_DOWN_VID = New System.Windows.Forms.CheckBox()
@@ -68,7 +71,12 @@
Me.CH_TWITTER_DOWN_IMG = New System.Windows.Forms.CheckBox()
Me.CH_TWITTER_DOWN_VID = New System.Windows.Forms.CheckBox()
Me.CH_TWITTER_USER_MEDIA = New System.Windows.Forms.CheckBox()
+ Me.TAB_DEFS_INSTAGRAM = New System.Windows.Forms.TabPage()
+ Me.CH_INSTA_TEMP = New System.Windows.Forms.CheckBox()
+ Me.CH_INSTA_DOWN_IMG = New System.Windows.Forms.CheckBox()
+ Me.CH_INSTA_DOWN_VID = New System.Windows.Forms.CheckBox()
Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
+ Me.TXT_REDDIT_SAVED_POSTS_USER = New PersonalUtilities.Forms.Controls.TextBoxExtended()
TP_BASIS = New System.Windows.Forms.TableLayoutPanel()
TP_IMAGES = New System.Windows.Forms.TableLayoutPanel()
TT_MAIN = New System.Windows.Forms.ToolTip(Me.components)
@@ -86,6 +94,7 @@
TP_REDDIT = New System.Windows.Forms.TableLayoutPanel()
TAB_DEFS_TWITTER = New System.Windows.Forms.TabPage()
TP_TWITTER = New System.Windows.Forms.TableLayoutPanel()
+ TP_INSTAGRAM = New System.Windows.Forms.TableLayoutPanel()
TP_BASIS.SuspendLayout()
CType(Me.TXT_GLOBAL_PATH, System.ComponentModel.ISupportInitialize).BeginInit()
TP_IMAGES.SuspendLayout()
@@ -94,6 +103,7 @@
CType(Me.TXT_COLLECTIONS_PATH, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TXT_MAX_JOBS_USERS, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TXT_MAX_JOBS_CHANNELS, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.TXT_IMGUR_CLIENT_ID, System.ComponentModel.ISupportInitialize).BeginInit()
TP_FILE_NAME.SuspendLayout()
TP_FILE_PATTERNS.SuspendLayout()
TP_CHANNELS_IMGS.SuspendLayout()
@@ -110,8 +120,11 @@
TP_REDDIT.SuspendLayout()
TAB_DEFS_TWITTER.SuspendLayout()
TP_TWITTER.SuspendLayout()
+ Me.TAB_DEFS_INSTAGRAM.SuspendLayout()
+ TP_INSTAGRAM.SuspendLayout()
Me.CONTAINER_MAIN.ContentPanel.SuspendLayout()
Me.CONTAINER_MAIN.SuspendLayout()
+ CType(Me.TXT_REDDIT_SAVED_POSTS_USER, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'TP_BASIS
@@ -125,23 +138,19 @@
TP_BASIS.Controls.Add(Me.TXT_MAX_JOBS_USERS, 0, 3)
TP_BASIS.Controls.Add(Me.TXT_MAX_JOBS_CHANNELS, 0, 4)
TP_BASIS.Controls.Add(Me.CH_CHECK_VER_START, 0, 5)
+ TP_BASIS.Controls.Add(Me.TXT_IMGUR_CLIENT_ID, 0, 6)
TP_BASIS.Dock = System.Windows.Forms.DockStyle.Fill
TP_BASIS.Location = New System.Drawing.Point(3, 3)
TP_BASIS.Name = "TP_BASIS"
- TP_BASIS.RowCount = 7
+ TP_BASIS.RowCount = 8
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
+ TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_BASIS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
TP_BASIS.Size = New System.Drawing.Size(570, 352)
TP_BASIS.TabIndex = 0
'
@@ -279,6 +288,19 @@
Me.CH_CHECK_VER_START.Text = "Check new version at start"
Me.CH_CHECK_VER_START.UseVisualStyleBackColor = True
'
+ 'TXT_IMGUR_CLIENT_ID
+ '
+ ActionButton6.BackgroundImage = CType(resources.GetObject("ActionButton6.BackgroundImage"), System.Drawing.Image)
+ ActionButton6.Index = 0
+ ActionButton6.Name = "BTT_CLEAR"
+ Me.TXT_IMGUR_CLIENT_ID.Buttons.Add(ActionButton6)
+ Me.TXT_IMGUR_CLIENT_ID.CaptionText = "Imgur Client ID"
+ Me.TXT_IMGUR_CLIENT_ID.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.TXT_IMGUR_CLIENT_ID.Location = New System.Drawing.Point(4, 175)
+ Me.TXT_IMGUR_CLIENT_ID.Name = "TXT_IMGUR_CLIENT_ID"
+ Me.TXT_IMGUR_CLIENT_ID.Size = New System.Drawing.Size(562, 22)
+ Me.TXT_IMGUR_CLIENT_ID.TabIndex = 6
+ '
'CH_COPY_CHANNEL_USER_IMAGE
'
Me.CH_COPY_CHANNEL_USER_IMAGE.AutoSize = True
@@ -340,6 +362,18 @@
TT_MAIN.SetToolTip(Me.CH_SEPARATE_VIDEO_FOLDER, resources.GetString("CH_SEPARATE_VIDEO_FOLDER.ToolTip"))
Me.CH_SEPARATE_VIDEO_FOLDER.UseVisualStyleBackColor = True
'
+ 'CH_CHANNELS_USERS_TEMP
+ '
+ Me.CH_CHANNELS_USERS_TEMP.AutoSize = True
+ Me.CH_CHANNELS_USERS_TEMP.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.CH_CHANNELS_USERS_TEMP.Location = New System.Drawing.Point(4, 88)
+ Me.CH_CHANNELS_USERS_TEMP.Name = "CH_CHANNELS_USERS_TEMP"
+ Me.CH_CHANNELS_USERS_TEMP.Size = New System.Drawing.Size(562, 19)
+ Me.CH_CHANNELS_USERS_TEMP.TabIndex = 3
+ Me.CH_CHANNELS_USERS_TEMP.Text = "Create temporary users"
+ TT_MAIN.SetToolTip(Me.CH_CHANNELS_USERS_TEMP, "Users added from channels will be created with this parameter")
+ Me.CH_CHANNELS_USERS_TEMP.UseVisualStyleBackColor = True
+ '
'TP_FILE_NAME
'
TP_FILE_NAME.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single]
@@ -527,6 +561,7 @@
TAB_MAIN.Controls.Add(TAB_DEFS_CHANNELS)
TAB_MAIN.Controls.Add(TAB_DEFS_REDDIT)
TAB_MAIN.Controls.Add(TAB_DEFS_TWITTER)
+ TAB_MAIN.Controls.Add(Me.TAB_DEFS_INSTAGRAM)
TAB_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
TAB_MAIN.Location = New System.Drawing.Point(0, 0)
TAB_MAIN.Name = "TAB_MAIN"
@@ -630,18 +665,6 @@
Me.TXT_CHANNEL_USER_POST_LIMIT.Text = "1"
Me.TXT_CHANNEL_USER_POST_LIMIT.TextBoxTextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
- 'CH_CHANNELS_USERS_TEMP
- '
- Me.CH_CHANNELS_USERS_TEMP.AutoSize = True
- Me.CH_CHANNELS_USERS_TEMP.Dock = System.Windows.Forms.DockStyle.Fill
- Me.CH_CHANNELS_USERS_TEMP.Location = New System.Drawing.Point(4, 88)
- Me.CH_CHANNELS_USERS_TEMP.Name = "CH_CHANNELS_USERS_TEMP"
- Me.CH_CHANNELS_USERS_TEMP.Size = New System.Drawing.Size(562, 19)
- Me.CH_CHANNELS_USERS_TEMP.TabIndex = 3
- Me.CH_CHANNELS_USERS_TEMP.Text = "Create temporary users"
- TT_MAIN.SetToolTip(Me.CH_CHANNELS_USERS_TEMP, "Users added from channels will be created with this parameter")
- Me.CH_CHANNELS_USERS_TEMP.UseVisualStyleBackColor = True
- '
'TAB_DEFS_REDDIT
'
TAB_DEFS_REDDIT.Controls.Add(TP_REDDIT)
@@ -657,18 +680,19 @@
TP_REDDIT.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single]
TP_REDDIT.ColumnCount = 1
TP_REDDIT.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_REDDIT.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
TP_REDDIT.Controls.Add(Me.CH_REDDIT_TEMP, 0, 0)
TP_REDDIT.Controls.Add(Me.CH_REDDIT_DOWN_IMG, 0, 1)
TP_REDDIT.Controls.Add(Me.CH_REDDIT_DOWN_VID, 0, 2)
+ TP_REDDIT.Controls.Add(Me.TXT_REDDIT_SAVED_POSTS_USER, 0, 3)
TP_REDDIT.Dock = System.Windows.Forms.DockStyle.Fill
TP_REDDIT.Location = New System.Drawing.Point(3, 3)
TP_REDDIT.Name = "TP_REDDIT"
- TP_REDDIT.RowCount = 4
+ TP_REDDIT.RowCount = 5
TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
- TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
+ TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
+ TP_REDDIT.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
TP_REDDIT.Size = New System.Drawing.Size(570, 352)
TP_REDDIT.TabIndex = 0
'
@@ -787,6 +811,72 @@
Me.CH_TWITTER_USER_MEDIA.Text = "Get user media only"
Me.CH_TWITTER_USER_MEDIA.UseVisualStyleBackColor = True
'
+ 'TAB_DEFS_INSTAGRAM
+ '
+ Me.TAB_DEFS_INSTAGRAM.BackColor = System.Drawing.SystemColors.Control
+ Me.TAB_DEFS_INSTAGRAM.Controls.Add(TP_INSTAGRAM)
+ Me.TAB_DEFS_INSTAGRAM.Location = New System.Drawing.Point(4, 22)
+ Me.TAB_DEFS_INSTAGRAM.Name = "TAB_DEFS_INSTAGRAM"
+ Me.TAB_DEFS_INSTAGRAM.Size = New System.Drawing.Size(576, 358)
+ Me.TAB_DEFS_INSTAGRAM.TabIndex = 5
+ Me.TAB_DEFS_INSTAGRAM.Text = "Instagram"
+ '
+ 'TP_INSTAGRAM
+ '
+ TP_INSTAGRAM.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single]
+ TP_INSTAGRAM.ColumnCount = 1
+ TP_INSTAGRAM.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
+ TP_INSTAGRAM.Controls.Add(Me.CH_INSTA_TEMP, 0, 0)
+ TP_INSTAGRAM.Controls.Add(Me.CH_INSTA_DOWN_IMG, 0, 1)
+ TP_INSTAGRAM.Controls.Add(Me.CH_INSTA_DOWN_VID, 0, 2)
+ TP_INSTAGRAM.Dock = System.Windows.Forms.DockStyle.Fill
+ TP_INSTAGRAM.Location = New System.Drawing.Point(0, 0)
+ TP_INSTAGRAM.Name = "TP_INSTAGRAM"
+ TP_INSTAGRAM.RowCount = 4
+ TP_INSTAGRAM.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
+ TP_INSTAGRAM.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
+ TP_INSTAGRAM.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25.0!))
+ TP_INSTAGRAM.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
+ TP_INSTAGRAM.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
+ TP_INSTAGRAM.Size = New System.Drawing.Size(576, 358)
+ TP_INSTAGRAM.TabIndex = 0
+ '
+ 'CH_INSTA_TEMP
+ '
+ Me.CH_INSTA_TEMP.AutoSize = True
+ Me.CH_INSTA_TEMP.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.CH_INSTA_TEMP.Location = New System.Drawing.Point(4, 4)
+ Me.CH_INSTA_TEMP.Name = "CH_INSTA_TEMP"
+ Me.CH_INSTA_TEMP.Size = New System.Drawing.Size(568, 19)
+ Me.CH_INSTA_TEMP.TabIndex = 0
+ Me.CH_INSTA_TEMP.Text = "Temporary"
+ Me.CH_INSTA_TEMP.ThreeState = True
+ Me.CH_INSTA_TEMP.UseVisualStyleBackColor = True
+ '
+ 'CH_INSTA_DOWN_IMG
+ '
+ Me.CH_INSTA_DOWN_IMG.AutoSize = True
+ Me.CH_INSTA_DOWN_IMG.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.CH_INSTA_DOWN_IMG.Location = New System.Drawing.Point(4, 30)
+ Me.CH_INSTA_DOWN_IMG.Name = "CH_INSTA_DOWN_IMG"
+ Me.CH_INSTA_DOWN_IMG.Size = New System.Drawing.Size(568, 19)
+ Me.CH_INSTA_DOWN_IMG.TabIndex = 1
+ Me.CH_INSTA_DOWN_IMG.Text = "Download images"
+ Me.CH_INSTA_DOWN_IMG.ThreeState = True
+ Me.CH_INSTA_DOWN_IMG.UseVisualStyleBackColor = True
+ '
+ 'CH_INSTA_DOWN_VID
+ '
+ Me.CH_INSTA_DOWN_VID.AutoSize = True
+ Me.CH_INSTA_DOWN_VID.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.CH_INSTA_DOWN_VID.Location = New System.Drawing.Point(4, 56)
+ Me.CH_INSTA_DOWN_VID.Name = "CH_INSTA_DOWN_VID"
+ Me.CH_INSTA_DOWN_VID.Size = New System.Drawing.Size(568, 19)
+ Me.CH_INSTA_DOWN_VID.TabIndex = 2
+ Me.CH_INSTA_DOWN_VID.Text = "Download videos"
+ Me.CH_INSTA_DOWN_VID.ThreeState = True
+ Me.CH_INSTA_DOWN_VID.UseVisualStyleBackColor = True
+ '
'CONTAINER_MAIN
'
'
@@ -803,6 +893,15 @@
Me.CONTAINER_MAIN.TabIndex = 0
Me.CONTAINER_MAIN.TopToolStripPanelVisible = False
'
+ 'TXT_REDDIT_SAVED_POSTS_USER
+ '
+ Me.TXT_REDDIT_SAVED_POSTS_USER.CaptionText = "Saved posts user"
+ Me.TXT_REDDIT_SAVED_POSTS_USER.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.TXT_REDDIT_SAVED_POSTS_USER.Location = New System.Drawing.Point(4, 82)
+ Me.TXT_REDDIT_SAVED_POSTS_USER.Name = "TXT_REDDIT_SAVED_POSTS_USER"
+ Me.TXT_REDDIT_SAVED_POSTS_USER.Size = New System.Drawing.Size(562, 22)
+ Me.TXT_REDDIT_SAVED_POSTS_USER.TabIndex = 3
+ '
'GlobalSettingsForm
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -810,13 +909,13 @@
Me.ClientSize = New System.Drawing.Size(584, 384)
Me.Controls.Add(Me.CONTAINER_MAIN)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
+ Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.KeyPreview = True
Me.MaximizeBox = False
Me.MaximumSize = New System.Drawing.Size(600, 423)
Me.MinimizeBox = False
Me.MinimumSize = New System.Drawing.Size(600, 423)
Me.Name = "GlobalSettingsForm"
- Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
Me.Text = "Settings"
@@ -829,6 +928,7 @@
CType(Me.TXT_COLLECTIONS_PATH, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TXT_MAX_JOBS_USERS, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TXT_MAX_JOBS_CHANNELS, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.TXT_IMGUR_CLIENT_ID, System.ComponentModel.ISupportInitialize).EndInit()
TP_FILE_NAME.ResumeLayout(False)
TP_FILE_NAME.PerformLayout()
TP_FILE_PATTERNS.ResumeLayout(False)
@@ -851,9 +951,13 @@
TAB_DEFS_TWITTER.ResumeLayout(False)
TP_TWITTER.ResumeLayout(False)
TP_TWITTER.PerformLayout()
+ Me.TAB_DEFS_INSTAGRAM.ResumeLayout(False)
+ TP_INSTAGRAM.ResumeLayout(False)
+ TP_INSTAGRAM.PerformLayout()
Me.CONTAINER_MAIN.ContentPanel.ResumeLayout(False)
Me.CONTAINER_MAIN.ResumeLayout(False)
Me.CONTAINER_MAIN.PerformLayout()
+ CType(Me.TXT_REDDIT_SAVED_POSTS_USER, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
@@ -889,5 +993,11 @@
Private WithEvents CH_REDDIT_DOWN_IMG As CheckBox
Private WithEvents CH_REDDIT_DOWN_VID As CheckBox
Private WithEvents CH_CHANNELS_USERS_TEMP As CheckBox
+ Private WithEvents TAB_DEFS_INSTAGRAM As TabPage
+ Private WithEvents CH_INSTA_TEMP As CheckBox
+ Private WithEvents CH_INSTA_DOWN_IMG As CheckBox
+ Private WithEvents CH_INSTA_DOWN_VID As CheckBox
+ Private WithEvents TXT_IMGUR_CLIENT_ID As PersonalUtilities.Forms.Controls.TextBoxExtended
+ Private WithEvents TXT_REDDIT_SAVED_POSTS_USER As PersonalUtilities.Forms.Controls.TextBoxExtended
End Class
End Namespace
\ No newline at end of file
diff --git a/SCrawler/Editors/GlobalSettingsForm.resx b/SCrawler/Editors/GlobalSettingsForm.resx
index b3dc4bd..d884b96 100644
--- a/SCrawler/Editors/GlobalSettingsForm.resx
+++ b/SCrawler/Editors/GlobalSettingsForm.resx
@@ -181,6 +181,14 @@
HhQDmFjYeHVKFp7WX/Xuv9Kq9/+Vd/z7r7rv/3+l7f//y676DEwDN/9L+BVvYkKLCTgDhNkkVUyVlr74
qbbz73/VOTc/qsy89kWx+9h7qbQpJwS1bbOAscGGrB6EUTggLOqf16C55ft/HlnNAFZOXgVWdi4FRgYG
VnR1MIwhwMTCyqEQ37qEmZVDFF0OE/9nAACtFF4Ey6OP+wAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
+ tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
+ AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
@@ -236,4 +244,2526 @@ If checked, videos will be stored in separate folder; otherwise, videos will be
False
+
+ False
+
+
+
+ AAABAA8AAAAQAAEABAAwOgAA9gAAADAwEAABAAQAaAYAACg7AAAgIBAAAQAEAOgCAACQQQAAGBgQAAEA
+ BADoAQAAeEQAABAQEAABAAQAKAEAAGBGAAAAAAAAAQAIAMJzAACIRwAAMDAAAAEACACoDgAATLsAACAg
+ AAABAAgAqAgAAPTJAAAYGAAAAQAIAMgGAACc0gAAEBAAAAEACABoBQAAZNkAAAAAAAABACAATyoBAMze
+ AAAwMAAAAQAgAKglAAAcCQIAICAAAAEAIACoEAAAxC4CABgYAAABACAAiAkAAGw/AgAQEAAAAQAgAGgE
+ AAD0SAIAiVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAARnQU1B
+ AACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAOa5JREFU
+ eF7tXQ1y47wO69H3aN/N3osdU4ER8Edy0saxOrOzrSPLEkWAIKUkPz/zZ1pgWmBaYFpgWmBaYFpgWmBa
+ YFpgWmBa4NUW+N/2899///1v+fdz+9t+t////fv3dM1rY22X/9V9rx7/7G9aYFpg0AIMfgS1IoLlmoH6
+ ZyMFBnpEIJMQBhdq3jYt8GoLLOBfAB+RAEd59bcBnsHtXUeFsCOcV09w9jctMC3gW6ACbmtjZOH9HfWF
+ iqCph418mCTmek0LTAv8kgUqBFABfqWNV1vgMfzS1OdjpgWmBSoEgG0Q6Jg+ZKpA1QS4uIht5spMC0wL
+ vNkCBuAInL0EodqzOqjsMrx56rP7aYFzWsAD5MhsXgHuI31wLQALiCPzmfdMC3yFBVTEjORy27vvnP0R
+ 8GZpge0sqC1F3gFQOwKdU5nNpwXOZ4EI6CPgXPrrsULvM0bHa/dxxF+e76mAnnnMttMCp7IAFs/wAA0D
+ bFcUo5N63mGdHkP0EoAX9Xv7UacEWQX0zGO2nRY4hQUqh26yAzkLKayRXhzV7UkFKtG80iYiBd4leNrv
+ 3+aAJNgUwSlWdA5yWqBggQrwj0bX3i00BDfem4FevZ7dg3Pz8n9LB3rnUTD/bDIt8HcWsGJYdSsM99Nx
+ m64XeNmMe2X7aHuV1mC1f/kd31swdwKylZuvn8ICJuUzSc/AYtns5fq2l84A20X2wFI9gPYifA8pqUKg
+ qv5PAjiFe89BRhaIQNwLvEpfVhfgAzbRGHvGkaUnUQqgUg297Xd/UxLWCaaXTQucygKc6/fkxgpk2B+C
+ vAe8ngGjPkbHjelL1D8SAMv/qQBO5fJzsGYBlPw9AGWJryS9Vz+oApVXqXoftuv93VMNlvNb0S/aEnyV
+ d3m7I9k6ver5s58vt0BFpmfO1hORVWENC4bN4W8XV1lNP1GkrpJDZT5RX1wIZPmvxt3rRkbKts2oPogE
+ 5zFPJPZaeLZfLbA4kRelK0Dx2nBKgcDuBSouFRNENYdXxBEVIZUKYMmvdgBecRaASTna6vROI850ZAK8
+ ZIEKGI++486iWVaQiwjHyGqUlHqJQj0nex/Az81Qu7SotAL7Rh5xKgLjw0lzW3LA4Fe/pUIAHHWrIOTc
+ W1XVuS+PbCqpipfrq/F68/ZUQTR2HvOoClD2UnNSY1fk1Maxffbh1X19zl9YoIcAqsDvAZz6uC3MqTHy
+ KSWRjSkjhSoRqDGpZzMZVJ0uAj+Tn5ci8A7FMr55VLm6AhdtNwKqDHSe1B95lt0T3ZuBnMerQJ8pDHVP
+ 5dODK2qA7RWNT6UCrNC83QmsWVzU3ee0R7fVekBfAdxTpLx5vSIOBcyqaqkQQ9ZXBfhuCgBz8oigJ/Iv
+ 9vFSFLQdRn0DvSKFiYZpATujk35pxhECQMf9cb5sA9t4wI2cvwJ27xnqegVobBM8J2CvqWtrOnH7UeCP
+ yLNqFywO8pYlFwonBKYFdo54FOiV6F9pk0Xm6jgzYqg8ZyR1Ufv2u605UAeY5vQSYTZ+LgRysXBZ/AmB
+ i1tgxMGrAPRyVi/CZoCNcuDqvZmU5rTD6zeqAWDRkPfqFQFW1E00LjUntU3obWVeHALXnn4WRXrBHrUf
+ kdYRsLOx94KmAkSeX0YEnj2yyM9jZ5Cr171nKRKycwuVQuW1EfLls3+VAojA2BOdRwhnpP+MjFSfEei8
+ MwzR2QZv3NGzK2kC2jBSAks7JIcvd/U5Pc8CWSQdAeXIPdUIXIl+lTQjSwe8qKvus/lyEQ5zfxz3CPg9
+ RVOxB48PwT+PDl+cG15NAFl/PdG3SiQeCLyxVMimogKiudqWnAEMZX8k8SuvjSoBRQR2baYDFyWC3jQg
+ A3il0l8F9kgUjiJ7Bfg4NjXXTKIjyFgBsK29qJ4BvEJOPTbGVOWiMLjutHskZFTU6nE4T0aPkssRBTAi
+ xxVAMzt64I/6qhJB9mwV+fko9lQA1+WAl58HiICcpQAVcGVE4T3DA3tFaWREkUXz7P5eIvCeVyEDPh2I
+ 6cqFYXDdqUfA6I3sR1KADNhqLL1AyCR8ZosMyGo8Fck+2iYjDrQZAt37/boouPDMWZ5WpH6WH1eIIAN8
+ NWJXSara37vAqKJzlZAyovPSBa7476L9djz7599Pe/fghWFw3al7QMwA6uXyvdezqBsV5iqSNyKjKCUZ
+ SVfsWRlge18fTY12Bb4G+H8N8P9+Hr8vz7guCi4+8wrYq5E2q6QzSHqkfXRv7xyyvL0XdJX+Kn2+qk2U
+ 6/+7HQe0N2i1/y+OgctOvwrsEQntRUQvKmcg7kk9+Px7RUko9eIpgUy+vwrII2rB5rojgVu0Z9D/m/L/
+ srhvE48IIAPkkXuzvisR1etDvR22QjrZM3vqA6/I+Ssk4qVBrAAM/HfZf8/7f7YUYMr/L+IBdnTLA9UU
+ q9Hfa1fN3712letRDu/NdbmuSEAdz+WonwHXaz8C1mp07+nbbKKOJlsRsJGB1QW+yP8vNRUEQOVTfNE4
+ Su5WrlUjt9dXBuiK5FaAwH55m2uNcNuHZFaUgNd/phA45ekB7hF1odbkqeK/pgC3yL9F/ZsvzOr/mdgi
+ A14WzfmtoUt/R/r0gJqpBU+yVvJ7794dEW5RbZW48ElEBggGaZbLV0B/JJKPkEQ25vCwD9lnyv8TsIAC
+ R+/bUBUwIwKoADJTDBWCqUT86lhM+mN+i8DHFKBX+ldBHqUQr4jy2L9HiE/5v0X9h+Sf0f8EuP+pylVF
+ Brs94JunYF9e9O8BWg+hZOBR0rkipxUBYeS3340Ylg/DUHWACmizqJvN8d2vY+7f1B5E+5UIQfa3esAZ
+ gHDFMUaR0QNwlgYYYJQzV+6N5GqVrCrEEQGSiYz7e+xrw4EX+5IMqgN4dqgQQlYnOCLtR8nCiA6VEKoh
+ 3gac8v9DmQUdE/NYA76SgRgBIjBXZLmKrNl9nhxVgM2AF4E8ew4qgKdqNxDAiBz/C1BXycBs5m7/2Z7/
+ LP59KOphWF5ujbIYVYAHTkwDmDyqETtLCyJiiMDqKRwvslYibiPBVe7SMdfiLsAIMVRB+q52uJZP8h/z
+ fzgMdFcG8+fjLNAj0xHUEcC9lCGL6h5JRDK+AvooBfGIISMiVkCY//MWoAdEJFgm4eieCmmMqocqaeA3
+ APE2KEv/RhIf5/0XH1Ambz3AshpgwHsEcERqZ2ONwMSvRSlHL7iUFO4hrAxwo0B+9X3KFzj620m/ewFw
+ XxO5ONQ+c/roJPb1PT35uEoLvFQhIpMIMF56EgG1WgeoqIeIPHAMvDNSieDq+Rkh/ObrmXJB8ns6CATn
+ Iqb8/0D8V+R4VQajo2T9Rq9XnudJ9gz0o0RSBVz0fEVWUYR+VfSujr23HaY/bXuPtgBlneADcXDZIanI
+ piKxckZ2AGtTAXAm1atRufqsSpT15uiNpZImvLpNL0gr7SttovXn9Gf5OzoPclmwfdrEe6NwlLsr8Efg
+ 7E0FOHJn0t+Lth7hZdGZAdAD7FGAvfO+qO+e1zhYVN4bshLE/Pl7C1SjfwWs1Ygd5fmerI/AHKUCWX+e
+ o0f5Po+/F6RVldHb7zvb99jJU4/y1OjfQ+C6I4iiv7eIo/lzJep6wKrem0XwKkEpZ/euLddHgfeq/P5V
+ /VTm4bWJ3h/Cfja/D+BDOKcCrGrkjcClSKMamY+MMRp7NQpn0V6lRBUgvQq0o/1UJX51LlHAyBTBh8Dh
+ esMYWbTeeyJ57qkJBapMkmfRn+9XhKX6sAiP/6tawBElUAXZO9uN9K1sGOX/4WvXg9/fzjjL/TNAeRE/
+ A1ZPRM/GUCUFz7m96JmpmYi4RoA0GsWr9x0ZE97r/R7ZIysIznTgj3igN5Jn7TnSV6Vzj0LwInSVCNhR
+ I2LI5pu9zmN9tULIwHhE4qt7q/0tdpkq4I9A3fPYKC+PQJkBNopKnrTP1IQH3Cj/rswvI60I5PwBH9g2
+ es3G5RHCkWidKYIeEFfbVtSSsiOTRPT5kT1+PdsWLJBFr570wAO194weAqlG9qoy6HVWfnvrGt22d/bx
+ a3j8dWlnf9vvkT3+CvRIRkwemcKoEr3NG4+Xe7aYbxQqgPcVTTx5HgFfRcsscldyb36mAnO1TUQElWiP
+ oEbg4qfcokNnvyuSyIiRlUEPObyrrSKKbJwrWd4aVYINf2PwK3x89hFYIHPCKKpHUbQCMowc/HsU8atR
+ 3us/GxvK9qrjRs7tHYNVSsEj5N5c/BUR3Yv8PSlBZOuKbV/1hqFlHJMIhAVYlkbRPVIF3mvVyN8D6hFy
+ qII+c8qsn0qUk2qB0glFBBVAVsHpyfZeoulJDzzbVD5Ytge8vEbLZzDuVFxPZ1do65EAG9L7WymBCCie
+ tO+57rVVjq0cDyV5BvqKSooIrIc07AM1vOIhy20PyHw9IgZP1kckEa2VjRHHqkhP2ZXXYqfGBBhxHPwB
+ JKr2MguMiRHVomRE4MnWSOJHffaogYpj8/iyynxlPlHkqxBGphRUrQHveYUaqNpOkQ6ShgI8j6+HBDkg
+ 4acMRWS+vCbfY3B7uN2HpHCF4F6eo+f0Gfh7I/EIuL2onikSD/g9EV85sufwfD0DRkYC6NCKtEbVQKQO
+ ImJT88sUCJOMUgIZaBXxMaDZPpU1LoPjKg0rkc/aVCO4aq+iQbW/atQaifoR2FnNVMDLc0cAeaTm9RtF
+ wajfqr2YTLwIXulP9YXXojmq1zzfyFSS6ovvuQq2y/PMFiCK4J4ayK57TsWg6434GCWyiBBFPrYJb1Xh
+ c6rEcIQMPDVg9lL2VM+rgFmphUwVZeOo2EgpB6V4UCWxv2Rr/qodhjK4ztBwMTI6WAbeEcKIgN3rlFkk
+ tcM60Tg9x2K5ivnj8pp3VsC77jm+RwZKdXAE47WKiMx7rfd6BHCPMHiOaAuv8BmpEO+1SjrRDhndOlkJ
+ ZP7sLcCRdgSwPfewVFZ/V5UHRuOoku45MUdzdQKQ9+9xvGbJCNRIHkwKERmpdXllbaBCBFl0x3lHZI5z
+ YWKtkIh6TqYsFDlMFeCwHxqzqgIq7diJs4g/QiRRld97HgPfQKq2lo5GDQR5pgqUClDKhNerAuaRNiry
+ emTHIFV/81yie5gYkIw8m3ppAKu0KQKSQ0IecKvR2ls8D+AZMXgLvjL6Ju1UdOUIhtFYHddFAniXk6jI
+ jnaNVMFKRtt8mfj4vhHAZ6DLonV0vwKwmmtGJOxDWe6vTma+a21P3e+RaO2pgUpEj0iFiQFBnkV+RRoM
+ evvm3qV2YOD/rUXMiECBiefvkUCFUBmQFYAqKZ6pBE8JjER/RUBKVXnyHwPAb63zqZ4TRf4KyD3HG438
+ niSubJN5ZKFkfisU/cFqeUTAUtuLfJxTqzVQ6qDSziMJjywqyo/nFY2jogYUAUTX/nKt/8C9+h+pgB5d
+ 84ih957suVn0V4DBFIGBb1F/+b/fSq+/IyICjwjNJkeUgAKkF+lfpQAy1VAlEmzHUR9TJU4DJgkk/otg
+ q0T+aoSPFjZ7zeRbVu1X7H+v/t63PNff4XvrXg/lYz2avXGeHMF5jkoRZSD7SwXQqyyydKGiArgQuNxz
+ bKW++G5FAKPy3stlvf74uo0lKvYhQDDPU3L/L/L9EVdRisCzjUeOijgiYsik/SsVgJeWVP1C2SLbBWDF
+ NLIul7hnZcdthTwAV2Rapgwqr3sy164zUNJCn313/QlW0iOByPmjdKAKYF5blSYosqj4REV5RBFfvaYU
+ QHRICG10Ajf4/SGyQVUa4KUGUdvKa+wgXORC4HuRH0+bqdz/9y167InRejCJKnt5SsAjBA9kHjA95VAF
+ cpYSZMSiiJKV4w70txtMNR1bmS+9W6UAmZSPFilbwEhlKHZnp49k/17y/zvtcVBFAp7jezWBXgXgpQue
+ QhhZZ6UuqsTRkwawkpwqICAvltfK0Fmu1uMMCtAPht7OcG+sraQ/Vnwf+/nI8lvh70Mq/qNxY7E5Fwcj
+ 23npgBexs0gevZ7dG4H6qALwbPD0bkDyobkbMHg0eIQQeuS/gR/lu6dKuLq7i/j0ffWjwPuk+zjqe397
+ ZyUqKsAjby+VOApg7rdHAXAa6CnGJz8BMv2k9f2Isagom0X8COAeeKPFQiBn4FeE8VAC9+i/tPkI475o
+ EGwTLx3AmsCr5HZPNM/APJpOeP64rrMT6TlVxL9ftCzn70aBLYr4KlpEfVRe6wE/S/6n/X7b+z//0jzN
+ oGTLLdKpcwVZRPfAqcCH1470q/rxVIsiFxVUPEKYdQABCo7+FbnPRveikVIWfC+D3xaP+1R5v6r4/7tt
+ +30h9tuUKiSAkQ7lOkv3LFpH4PTSgEqfHqFUVKfyT08FcFq0+Iv50Tf7SNfcModS4I4Ar1KDKCXgiK7a
+ InPbIj6Bf9vvX1//8p8sxVIfwuFFVaXoKtE9Si+yPj0iqhCUIh4OKlwMVdvEX+4i9elxhPCidkYEIypg
+ BSsU7pRjWz6/sjwV+fB+e60+8/O2XGytdgcQeKwCInk/kuN7/VVA7KUMilQiBcPzVe8B4EDxCDjnXf+X
+ jrxXznN7729Pqtl1ZuUsqmFx62lRF9n/xbm/WvDMXiaLs6JgFq0rYK0oBu85GeirfXsqYBJAQBeZXGeG
+ VYvIisFTAnwdF8YjEY7+q1PfmGP3P6iIlzLjCTqrkADL4WqOzsDPUoisvffcTJlECgCfuYv+8EYw9DML
+ Enf/mT8/ntyPgN+jGDwVYPLUAI6LpwgEv/7pOfeHd/1dcE0zEvDqASzVswjdA1RVzFPXVLrgPccjgijy
+ N1X4hedDhlzdjOW9i6oq7yvKIKoZ3At1++904z4tcrH036UOIP2vzOoZCUQqQIHQi/Yjcl1J+KqaiOS/
+ UpQtoBjgrTC8/X85H0EjZaCPGLoi/T3yUCqgIv9NJTARtCIOvtf/ApX/iPEzAqjsClQidKQCVITuVRlR
+ vUH1ZfNmf1LF4aXvoah5tpu8HNxzkkr7DNycSkTSv1L84zPdSjG0RT7R233f6UvZ+qKSyuR+RQF4OX8k
+ 61UdoDIWJhcG/hL5vQNhd9+5wE9UfPOkGwNX/Z0pA6+PKCqxM6IToFxdF+82AFYB/OGeF1je0hSztUBb
+ joAxAmsG/ArQsxQDfYqVYPubCoAlw31DIxWFM/AyaWR/KyXg3eM9uxVmbg2qJNEWdyMDXuxvWL9XzCFL
+ BdCOSrIrUvAivQJrJY2IQO6lGHh9+d0FO50peYVNT9EHgrAKenVPFEGiZ/ACRf2o6G/tsU6B7XgXYCWR
+ rQC43HuKRfqlQTJJq3PxqLI8ue+BUfnXKElEKoT7RNmP1X0jBLu2zG35+SVzf8ZjjhBAhQh40dnJquSA
+ uXwW/VdgC/nPBZ5JAM8+GBGwpU/YBtfXUwEVQqhIeEUWlciPhT7M982nHqrgMzD5q6Pwoj5HZl5oz1FY
+ 1iuwKlJQ9/E1rxjF+Z0xe2N42Da8L/r2ib+/aulzPEylalhYNQXFJNAj4Rm0PQSRpR+u5Kej4xgMLh0I
+ KgDNUgOPLNRCK+LIVABW/72DP1z957MCxvYo984Byd8fZagCAEgRcLOInqkFFXBUn54qWEHdjniLYvD2
+ 2qXBv7hWFI0r6sBLAyr9egSh7o3yf1YAT5X/LR1AKXgnhPmjLMAqQB2VXVSUlwpUIrqK5JmcV+kG92Nj
+ UpV+JoTpA7fV74nevaBW6sK7ltUKlsVjx1QpgjoH0FIBiAiXZ/6E+zIVgIQc1QEqZFBRAxzpEfjsB1jo
+ U0Rg8v/yPoBGVdE4k/6ZdB8lDL4vi/4e6DENmPv/fWqHyXYFy21hGpne/kBSzgAave75nvI/Lw14ivxU
+ 99kVAqf8vztDBODKa17UjoDvKQ6V8+GiYlWf++AUwPI/c1b7f7cL0IeHS7b2VADa0dItLxfvAbEH7mrf
+ rPQe1f3tXaDqMyEuubLbpCsRukIEisGV1PcUh+do9uxMAdj9FvER+LsCIpz0uvK6V+fOKmBXC6DzFIrA
+ K6lBjzJQRPAk/28XjJSw4Mt1IfOp5f6qPb6uXVXie+084EftGeweCdl1jvwc/ZX8R8Jwc8CvW833TEil
+ AhxpcU17fMojCM7vIxXhqcG27kgIlBY8Asd7bPfxvVai+1GVwCShGD9TEEoBMPNzjsqqgGXrxy/OhwyQ
+ CVvtCGAagOBVv1df9/zGI4MntQJgxxTQ/OS+A2AfEPMhxv7tYVRz9YzVIwAroKr23jMq4Jd7/sD8ttiz
+ +jvmYZ4KwGq7pwIqqYGK+BYovPv59Ub4txdwvCj9mQhaqjBmlvPflQE7ez1KATDSew5UURcY2Z9YnkDO
+ C4x/Yz649jl/yhZQdjfbml1ZKUS+E0VxpRD5WkUF8OEx3AV4UgRlS3xZwwzgvQoBCYGdhhfAixjcx277
+ ZmN3T/4z2zeJt50hwLPsX7aUb52OR+B3In18rFqvvK8QASsA72/le+YPBniU/6sa3ALIW433yZ1XAV6R
+ 7J4aaEamT+HBxfGIiAt8yhGV/McF50h1TwfmT68F0PZP7w3YjgezD2TyXxEGXsvkv2qLNYqHxH+cX1Ap
+ wfKcXnt8RXuMpB4II/BXiMGTXot0RKdSi43gleDfFMFT5KfUgD/x5SsW75cn4akALK5W0oBe1RnJfxXA
+ bAz8blAMCuiTl64DvAr0XvTfSS+QihWnaQu5EYVSDNa/YvXdsykF+GXsfMXjmAD4VCAWa4/m8VHkVyoD
+ n8fjRN9gUsC/v2KReidRZWMP4Nn96CTmIHhYB1WA15faBbBcjlnd+xsJZ6YAvV7yaO+pgGUdsRiY+UWW
+ GkT3G9ij4LUjJ1KDq++IoDJulRPfWa0BVFKFSI4xAHeFvW0vVt3PC4lEtIvwQSqwLrjt9zYlcOJF+8Oh
+ qzqA2ZeJ2lMBXtqYgT5LNzP/Q+CzMr3P4aI/mWGPvG6RukV/+tw1lPWeykDFEMk7pQowRUAFctGlPjxt
+ sz8GBLSxRdZq3t6jFMw/WD0o+c+HlWzcLd8HBfDwi8PmOWcHyrC80CMLhWBF8LXft6jtOQ0uWlu4bbXt
+ NVXxVWkAKoCZAoz7KQJ/B7JFZsPnLB4JGkfIg4lJRXqvXnRZFcCyOkoLFBFk+VwDK70Ti6O5cho8zIHt
+ 7Zm8mAr8Jv0sDbnsQo/jfnenpwKsBhAR+qj/VAIQg5/rT+wb6FstwLzIRqfqRi1oxeAMWO8eXohd5XVT
+ AV5fuGhMGHK/F/qzlOCxuPuvEzvVIn3QYHEdeA0wXfMCw4hv9SgKFVj21X7yg0W9XLk2pAwWpQCViK/y
+ sgjMURqCi8dqhceONQX+nXchPghTpxqK5y9Y6I38pwfMo+mAkb/5nCf7+fqpFuJVg40IwANmj5Sztt6p
+ Pl5kBjnm/5EKCB2TdgFmHWDce6I1sE9bHiGAamCpEIgXGHCngv3R/h63zInvVMUTNqKqviqC8CSe9bcY
+ urLYzOI4Hi/fw2fw71wBPvFy/enQGdxo52wrsLLuPSlClnayD3lFY6VO/9TIf/XwihpgBu5ZsCphIMDZ
+ qRTIs3GjPL38e8APOheuDQLKQOTVAbzIHflPj29x28wn7PXnNGD/duKD5jrf7ZkaiIo7lcJPTxRQKiAb
+ n1p4/R0B51ubTxmxtPFWTMPaSw+Ao3Sztx/0G/5d+RSnA2p36VNs/6vjiFi0d1GiXF+RAj47qwNwnUGp
+ hFUFLE46vxXosA95JIxbrZnae5X/ZCmn8mFVLGYfm+cFNjeJIm5lEVWbyn2cW0Y1gIrcs/1pI4LDKLhw
+ B2jvpwNB8JHb1XXu9ZGsX/QdL2VBEuAawNw1cJzbI4MeWV9JEzBfVAUaJesyEuD3A6x9zJ8hC3i2vu+u
+ 6K9uP5rrZ6DvrQHw9rICvdopmOnBzWXYAXoXp9p+BOhedMKFm4XAIdy3myJVaErL1qGH8Kt+Ue2zGkii
+ lKCqBi4XUJQkz5RAzwKjk7VDPLeLvKie3GOSmkc/j4Ee72aSxRrMUmNB8KvIPOIHmW+hXyxt7YfrQdGu
+ UoUI1KnC/ZuPXmfnj+4pIwBVBOotDGUKAM8UVIigRf6bd8zDQOPuFSkALAR6uX0G5h6CYOArImDCMhJQ
+ ZMCpAf6t5D+nqONWPdmdHgG8YvGUg3HRJsv5sQ9+PwIu/MnM/hHDVeqqqQDxUW9efp4RQRXcGO0z0vEU
+ gSoKevKfzz9Yn20n4SNW6RcGUVUBkRrIFtkY1jO6RwRKHeBWz+UW64X+4AFaHfeO8vVISWSg9vwmIxV+
+ JqeGXqCJ3nzGKeoLTf3ZXalCjyfBPGbOyCEDvgJ6RAos+z7bwp85OpbUuOZ8EjBad+zHAx7n80cUZkQO
+ T+9sFHUE5VeoEi4XVH4zDcDoncn/6HX+yvDPhNhnjyqrAdhaVcC/7BpY3QBz83f6VlSL4oCj5sqqwXY+
+ JgHc9tYjhh5lb08FRI6o8lTM/zDifDbcPm90rPzYrrZeLOOf5LeB/3ZDI4Htk4VYEXh9ealClHpkKlUp
+ HCz2oYpEBWBE8Hkr9sYRZTl8j/T3CIKLLLxAPURwacn2Ij9Ae3MKpoCrfKTVdkABLNdYEVTSzCyNzHwQ
+ 7+eUg32N/cfGe9nCMi7QaIQvScVbI4w0o2mARSfcElwdb/6ULeApgNWOt3WKUgBsg1/YwlEViSALMu98
+ XUV+TFVaAXBTMauSudJPD0MfWShciFHwo5JAJp8E0OexVQWgZDivAUv/+1psX9sN7yuIZHsW4SuBKRrr
+ U9Cgz7fk2kWfNU/eWhFAJf+qtMFFj3YDencCkEzmseB+B4wIGNeJgccK7h4t70VAVQDEL3N9RaCJdgGi
+ 9FOljapw+VAD/TY99R1HInuFnTkPO6oAjACwmjtVQN0FVc3FrmENIALcCqAtXWAwqdN3v+FjirDUITJO
+ XbAOcEk/egU7ewtsi6IOmYwSAS9qI4Q6Bi7dMkoBWAFkoFrAtAKIlACrhWoKUAkoWcqAz1LBQtUAjMQm
+ AWxbgT0Sv9qWAa+k/8iOwCW3bw5QGAME//YUgLpnBQvIf/tdgb9XAYzIfdsB4NTT5qTGyuplEkByFsCM
+ W2Fq5TReLaCnDrAuElSr0WkP4OIyt7Iq478zRWj2b0CnWoARMhO+AmivH/UQgz2fawCeAmhEcRlP2CaK
+ UTdakCOLpeQ+Ale9nqkBVd292tr1ztezKdcAIqB5a8kKANt54M8AXfE5rw0HChufpwQuSwCLE6nIXjF+
+ z30cOUZAz/cgu7eI1IuKC7VXOX2vAsD23r2YBrwq8mdkwb748IfHtwlF+f/lCeBInubdqxzOIwIvDfCi
+ FhYDdxXpCwG6d6poyyjtqpI/R3mVPlSBO5peRv0b4O+5/f2QU9vuE8XLXnt+RXtctOrCj7aLzgN4zqRy
+ Sbw2VUDdDRWZetc4ciug8dogqdj9yleOXONg4/mi3AIUh4B2KUHdlN/R0qLxaI7WkwJkOb1KCbJrvL04
+ Dwb5fumpMZTrKoJHgPPWtCr7ewJJT1ubh51XWP6Oin+X+7h5ZvMe4/a0ValBTy0AHSwiEFtoVAPfQdGv
+ m4Un/9X1KoC9ANB7/yvTT/YTPpqMW38Y/dfrV/hhyX8E0NG93msY1TklWO4Z2RI0hkemv+d988csEMn/
+ 6AhwBmaVGmQSf8Rveu6xIMNRfwW8OL7cdgi+3V2QsTFH8xaxurhRAUdJTwZ+VhuInBflHi/8t69nz/zY
+ hghsVX85EhheEdF7fQ+fiT6hDgLtCoHwpqUee56qrZL8GbNnizjiIJGMz/J9tcCsJnYpwO1hUwXc3fRJ
+ Fm+Lr2zu+cUoIEf8xPO9bAw4dtwZqiiBr/UVJfmPgj8qDEVqgEGsIr+KVBVyYCUwTwg+YpSnoOy6rcOo
+ X2TA9GoFr/Ajj2AsHTQi4HyfVcCpInp1sBXwv0r+96QBnhJAR2SyyCKJOhfQnKBqsC9tV0mhMsX3rtez
+ da28rtLMe0TXh4B2ZPDNXzhrjM7/jy5mZTGqfWd5v+XzXq4aqYLHqa6HA3wpttNp8ZpZkZWjfy+BK1+o
+ KoGqj/S0w/Gz/LdDQA34Bvpvz//RKEgCPYaNQN+74IqpPSLwVILqA9vy2QDcC07R8oUNFIFmKYGXCowE
+ gIrCrPqjF9DYt5vy277oRNYAvh38VvyJgN/D4kfBHt1v0Z6jOjpq5Xe+H981eC+F3bYZL/SjiJFTK04T
+ q2B8dTv2D49sKvUg3Otvv8MnFl/m3H8VtCPMXnWArG+lAKrvC/BIQamAlWSucthjIzkv+jMxeBG/usbv
+ aFcBumrTintiv//x2oWiQJTbvWrhMpBnMjBabJarWQrA7fm9Alc58RVFek9p9azjq30Hx+Qd292d2xdv
+ 7FkJfvt8gna45wpSP+IzlHgVMsjAmkWLUSfyDgdl0t97HdMK63ufEnx3FODoj8W/NRW6/XsViKN+1GtM
+ TraGJteXDxvd1Jr4/2f9MNLleMP679/29/o/vnZ/59/qB1f+iQA5CtbKfZU2XpSq1AKq/Ufq4lv9ojf6
+ 99gyys3Va9W+V3Jegf8M5Dvg4Z9Febp+v//ebhcAvnWhq/PqjfzVyFBZXE9R8JhwwRRoVaTPnh+Cf4uA
+ VRueqR1Gfz7nn6VUI4orS8uUCmWS2kX/IH+39MD8RZ3+3F0708K9a6wZUDLmroI4Sw8yIjJHQafN3qhS
+ IauIXJb+32X3v+i3Ev35LEBErhUJ70l67141xjVnp0q9l/PjKU+P5P/C9h/9TAW+EWKoAG6kX45MkQoY
+ IaxIDXxTnogkjHNW1yM5P7LOHhFkz8Hov9vCa4Twc/8C0k0ZfNN6/RppZAs6Alru01MKPX17B4NU0aqn
+ XwSDt/X4a4vxpgcxiaoz/ijHFekqOZ+Rp4roGaHj60/RH5QAnt5rlf032e+ru1ULn0XSTDX0ApBThOj5
+ WLFnB1T9MPlkUSesD5zQEyLgmr3wfEXVPlF6oJ5ZIZUnotq26njrbs33b5X9uyq4/3+Vbdy3uGAUsXte
+ y9RE7+tVR8Jc3lMbah5MGAZ+TwmcTWKy/SqFPy9C96xFpgwiFWCvsfxvZwCUCpjbesd4wVMBPZG80raq
+ LDyisPsZoOxQnhKw69E4MudtJHHM5G+/O4r8rOBw/ZWqqthErYFaR64/qGebysMvGd2rgFvU3/J+a/N2
+ g377A5Ss9xbQc64qwCOyqBCJF6m9nQFvXEgI3pzOqAY8UDHRs/TP0oWIKCqvqZqARy52eu8h77eP7jbg
+ r7J/yv+X8RIvYAYaJAwGUhXER4hAOY6nBKLxccqA6iGLfO0k4ctW4XhHr4r8FbBGUj6zXaQ0WsV/B3b7
+ 7P7llN+W829bhGdLzY6v8pt6iFRARAiZZK8QwggZrAt/uxGdyUsPFAl4CqBHDeye/aZ1qXbLEZ6VkiK3
+ jDAqQH4lEaxrClt7thPApIAf4lm1z2yXWICBHOXMHoOjk3F0Vf175FElFW8cquDljScjhwoI/poIqrLf
+ U0m9c3xX+8fRX/q2nt2OwH4HYAL7RRbI8rgK078D9CxHVdRS+T86qSf11XVOb5Qc9s4l/AURqMjPp+K8
+ 6F9Z0wjsR+/nvncHftZtvsdHdt/c/OkrvKb8fxH4rRtvsdeFua02nqfm89dMIBXpX1EA1TbVKMgAZ9Xi
+ /e05e1QobDL8xeu0dMcEh+PLtvwUqY1EdT4+PNIHjiU7+osn/8wX32Daa3fZnHYDPIJ+ZVzIu+33thgb
+ ehi0vWSgQK+cliObOtTCY44A7qUDShVUnV3Za9TD1DM94Htj5tROEWcvQaDdq3bZqaXNp+wtv3eg3wPO
+ 46TfIy2w61MBjHpSoR6AoF4MjbKSJWbkmEfA7xEBO6jKbTMn9tICTyEo4lBOXAVAdrwZiZhJDMeIz8N1
+ wfF6W34M3Ozv6txG2rH8x8M/bTtwqwXgPN8EgdmtWsTMKj1EkEV5JblV/q/6QWlaiZAK9AwyVgcROVVq
+ BCMg8Z5pKRpG83fl/Z5iGJ1PI7rgnX+mAjzCzfxyvv6LFohI4JWgVxHey9MVGHCcSqWodCBTB+r5KgVw
+ HVmkVww4lfYo4ONYcC69cp37QWXiKa8KGTAxc5Q30O+iPdiHn/2LLj4flVnAc4CKw3hRXgGWSSC6NwKO
+ ByAl+zl1UKTG97E9qgpBpSkIwKzanxXpPHAzQVm7jDz4dY+Ql/6xbQP/7eLymu3z41wzGy7Pyvxyvv5L
+ FqiqABXd+N6Kk0b3qNcix/QirlIE0TUmBqUyIhWjiMbGlgFfEZpaEwRhRhYeAUf9ZoTBZMZ1p4qSMDJZ
+ /58/n2MB5TAVBcAArDpBRjo8Hpag6EjR2D3QK8ArJeBds/s94Hs7LjieUbLjiJ+tgSIORWYIcEW6TzIe
+ JL63HhnZfw4C5kh+PAfwonolMvcSQuR4EXg8QvFSACYGjxD4OgKfVcLyGm/DquiuiJUJrse2o/dmKcDR
+ XQa736ur2PUJvQ+xQC9Y39leRXwV6TnyeFueERFEoFYKQkVPJYd5d8MjNw/sniRXwFRroe6PiKVa66im
+ Cj3+8SEQmMPIJFvPonptPSfsSTk4snpEUHVqpXJQ/qu5YLRXz8kUS9Y/KrJX2L1qi+qzoh2TXpKYyPsg
+ C2S5YNVBvHaVyKYAiXm1ivSZaqgciOIxo5MrwGfAr0T9VwMzW58IuEyk6u+s/0yNuCnBB2Hg0kMZWeBX
+ 3xPJ1x4iQAfmwhzn6/i3bXVhXu+BQaUJkco5IsOzfPpVgPVA/Op1ZpVzaeB90uSPLnRV5vc+h6N8O4K6
+ HTut9KdA1ApSUNmOIiXXFF4l95XsH1UIWaRHW408o9J/byqwEtj8+QwLVMC0tFFy3SIRE4EqYFXIgp+h
+ iGA9jbZ9EGU0dsy9vdwf5xWBPYrm1odqw4AbAWB1faJULOpjZEzRPbj2Yf3gM9x/jqLqYB7LR0W9SuW7
+ IncVwayqgL6hZiT/RwB7pKFshIRRtWFPOwWySjSupAdZ35U+eubCbZsSm/D7ewv0LmQm9zgCeMqh97nW
+ 3lUF8DbV9Y04t4F4Of6RZ1dIIov8FdJTacJolH8VoMOIDmlV1b5/7/1zBD8s773Fy2R+ZdFH5CY7byY/
+ 8S2s9uYV9T/2q/rkCJ9F/NG5md0q6kW18d6Yk4G+SkJH5uUpDSTmCcE/tgBGmqxy7eW5WY5cjVxViVsh
+ m54IyuoiAnsPIDIlULWLJ6HxOpNDhVB67Oi15edE6YUq5v6x+1/78Sr6s8SPcnx0isjZe0DT65S9feP8
+ KoVJNZ7oDTI4Hg+E0f1eRK/k7RVCqdpLzWOUoBn49ve10fcBs18A4OX0nqNUHSgC8kgfPc5X7f/oHBnI
+ UdTNUhe2V9SXei2yj6cOemwarWc0Hgb/7tuFPgADlx5CJdoeBUn2jCORrSLzVSSrgEtF6Sqx8LisL48w
+ RhRBRZJXxuuNbel/radQcS/72+7bAV98e9ClgfcJk8dqdlYwykAcFeqqUeZdRFABezR/Bohqq2T7kRxc
+ 2cx7hgdyFfUr6UlvpFckjOD/aZ8ZuH2D0I0MVhvOn7+1gMn/SoEpirRVB7Q+vBw3ksAeidj1TBJHBGUR
+ q2qHaPzVnF9FfEU0FeLF8VfXIorinhqJagIGeIz+D+Dvv0tgVRXz5+8tUHGuioSs9FNto56HoFIA4xzT
+ a4NjiACYOXqFyCJJr2zB8/bmjJJcEYZ6btS3R354vaKgFrA/fXNwk/33bw7+2b44dEb/v8f+4hPrDzpj
+ D9h7C1pexFEyNVIbu/HeOjXw7z67Ht4vkDm/AmMm3b0+K6SCkVKpl0zpeETKfSkC4TZMdFF6EKVxa6QX
+ JzJXwG8ksEsJPsD/Lz+EDGSVQk8mPXty+izyezmxRR50QoxEHsEhGDzHz6JtVDfgyJqpEo7mUXRnoqlE
+ aI841L2RPXheJvNvgGpfFnKX+PSFIdtXiF0eeJ9igKokr+bFSl6zVM6cLSIlBRBPdnJE4jl4qiOKgAx2
+ BdAKqWRR35PekbpAOy/9V5WIInC0jRorr/MKdiX/27HsGzFsZDCl/6eg/zaOCNjV6K8iYPVeJVEj2fo0
+ 3k3mPyLQ81dUmeMtbSoAjoDDgFdkkRFLBC71bHtG9KwIpBlpRITHc1HEYpEe06+WCrSIv6zL9s3BH+T/
+ lx8KAkJFM47emdzPJC4D0KshRKkAOvvd+eh76uArqiwyZaD0iCGar0cGeF3ZVKkYVj29a8Egb39vpKdI
+ 1UtPvL68tbXIb8U9tPl9feCbgy+PuA8zQJYCqEX3JH0l6nuOraKUksEKPMu15nRUhLI+jCi8sXug9Ipq
+ lcjfG7EzkC5Eh0Sh2jP57GwjiqI8P09JKFLY2RwP+FjeDxX/dv+H+f/lh+NFOK/a60VsL7/2gO09VxFE
+ pBIQ2EskModvjr+Bxl5T6Qo/0wN9NDacJ47BnucRjLIP98WRGm2tAIvPX+ZthTkuyHEerxRBlh5g/w+y
+ 2aQ+VP9n3v+hVINbgF50Vo7SSxAqgmTRWEUnTwHcHWyfCmCERALAPg6BHSJyZDtv7k/zE/0hYbVawNZO
+ ERdG/DUnX6ry7f/tdwYmbAOreawky1vFW8HP+m9qALcCQY19qPvPYS0W8PLPKC+O5Lm9lslkT35GdQcV
+ wbEwhQCI0pss6uPYPJLgcT7VJqASnymALOpX1Mce/A+wYxG0kYFV52GbTq23Swjenn/rb+b9p2IXzJW9
+ 4hA6CEZXr72St56c5f4ycrCIr1IJy5WVSmlRdItoHjAjgjPCscgY9aFsxoSlnsXRnuepnnmX4/bvse2G
+ KcE6ZlQGW2Ue23DawuNrz7ndi+TyUAFw/VQouPhgUQl4zB+lAwrwUaRFIO0cPJDWCtyZYvCUQBvvVilX
+ YMXxRzL/CSQbwdh4vXurZKDGgaR934JbgLf9g8LoAlgDONoqIgJPFa59bdJ+V1Owgh8oiovD6ZzTVxHV
+ i2IczTlPtIjA4OBoz87GgI6AtzgkA1z1v/v8QIdgGiHA6wqgeA0JqaIE+BlImhnZcEpl9n1EfhH1N0De
+ FdPjx9aE70WyYDu25211BSMVvmdtN3/Oa4EoHYjkPjoMfhDnQxreI9Eucm15MkYoA3WUh/OWmEciSA47
+ 4MJzIwmOAI2IiduxLbxnMGmoMd7B+9gCZOBx1Ed7Gzg9b5REAOoBn3Uniz3JrP1DsY+J5rwouPjIvXRA
+ 5dUcKZrTQZ7NuaIXLfm6J609IoqIQEU0Uzcq+qJ8bwDfgBjZIVIFCHDPxhnRPECNVf6HzG+2dqI/u/ZT
+ KoFphIF7VzeAcxcbWUzgfyFhZGBU6QJGKowuyzFQy1NZEXhFNc73cTxKhnukwP14/Sq5r9IfJgOLkqhi
+ 2DbYBiN6RDJKVewiMuX7bFd8ZsU9tRrY7yYY+ewUW6Xz2eacFmhOIba01PYYRtnVIa0oRNtNGOVU9PXA
+ VAUZA04pjr0T7yU2glQBfAGCkvVPSgFqFJ7qUUqAdwH2wIfIDwW+p/fhL/bfnt/jfW3NaUeBwd/T52x7
+ Ygt4js4OzUWqJlV3Tro3BNcDdtGRKulPW4ObHN8BWWzvPYGSyIwJKKrMq52LbFtwnZMBEWoPu/tgLmiT
+ nerZCNWq940UgFzXayD9H3Pvc8DduohdhL7eZuvTW0ApgZ3Mxcq5FZGKOehiHHQ4BgBHYKU8+J4IlDtQ
+ GcmIoiD2oVSAuqbspAp4ilT53gbebWwroULBbVVYSK5mdySZ2yRGSQDXpamU03vynMCwBby8dlcQo2jR
+ 8zClBljKc5sWBZOqfgMBSHeO/G7kdVSF3CIU1XpPgeDYUfkwOaxA34C8AL4pK7jGdmJ1du9//kwLHLSA
+ ck6Vzx95DKsBVfBjB2cwr6ARcjuK0Kq9Uh/q2UotMEFkhOMRhUdMHugXgmAJPwngiEfOe3cWaCDCLaCB
+ YlNmVnNwBVoV+Rn0SmYrOa4Azdc4999t9d1kuTdGrmlgv0waikTwflMC6zVSPAh6lU5NAsi8bb7ebQGL
+ /O/MD5Uze0U6FWENGHwkV+3VYz7N0ZiVgIq+SFitf5FyqK2/3b10DxIb2pzH0OYqCo6P+XQv87xhWuDv
+ LNDIRZ0YhMo5y/dd5AVAZVHWSwO8tESpDpbgqrjnpRaRQkCSQBWglI4io7uCmD/TAieygFdz4GjH0Z/T
+ hxUwBSJQ/US1gV2uTduLapsvGoNHWkgWWHBlleIRz54MTrT4c6jTAqwAGMgGGk+yY3tPlrcovm1bcioQ
+ yX9u24gJ1AmSCo/fk/6KWFgBeLm+UiUzBZhYOq0FOCqrSOlF6SjfjoBtrzWAw/67fA88H8bB/XnYx8/G
+ rgirjYUOC+F5CEWAKvU4rRPMgV/XAo8i4/24LlfAFZC5HUZFLgAayJf/138b2B8frmHvtd+O4N5z6f3H
+ bW33sVzHvzFi85jbmDaQKxWCxU+zSQO+OAfh2uW6rjRnfkYLNCe3HJ6iLUZ5lOCevN6B1A7TNEDDh2o8
+ XSPgNyKA6xD5OSq3wzz4pR2UKuzGTIVP/HottRsQ1SN2/Z7RCeaYr2sBjHac36p810iAgW7y+in6ctTH
+ 03biqC3fb/3eVcFdLazjIjJAEPLraneiSX9LIeh/3gngeav53lOQ+TMtcCILYC6LuwIR0Bk8T+BbwGR5
+ /fI/5/Dr348Pv1jBvACcQG1mbM+jD8zwUgKuTTyBHVIBTh3QBrxL4hUZkXBOtPRzqNMCjzcKYcVfSf2n
+ k3WbvFeSvwHO8n7cItxA3sB+Q2sDkO0UOAuztiMSeCINeBYqmHCXAs79YyGx1Ueoz92cHdKavjUtcAoL
+ LJ/ntzi02vZSKgBBpSrhCH4DLPZv0R5feyiE+PvtjChWEngC3r2I+VALj681R8Di+KKIzqmR6oOvnWLB
+ 5yCnBdgCBlCL8lZQYzDfQbvtFlgkByWw2y5cZf1d/jei2K6hZL4/YwP01jZaIVYBSAT2+5Na2QiOVQDO
+ c71nS1ss/3+qj6B6sRRnuzbz/4mr01pAbaFV3kxjBMEFMXx7LauLHWBN/lONIDNkIwGnENiIiyr9rBoa
+ 8QUFxaiA+FAb2Yjn69MCH2yBluvy1tgW8TnnRcC3qIvvHWjqYP9JxXep/yj+cb8bsFNL3dvd6wGsJph8
+ WLF4ZKXUzhMxUtRPBzobTAucwQJc7eYUwMurF/A/AQrAb+SgtszW7Twr+m1be1UCWGwapQJRvr6T/VxH
+ 2IjFSGVXU4C2U+6fwavnGMsWMAWwi+zO5+tZHYBBplXBQwGsZCAUwOP69nHYxVHb87yCICqDCPS7yL9G
+ +O28gdUjJvCLKzKbndoCKh9WSoDfhWdAeyocQkFNSX2L4LvXOi24VwHPOwPec/fkYEeU4fixqAl0Dm02
+ nxY4lwX4AAwXzKKdgT2IN0BhdXyL/p4K6JH+agdjVQEtnXj+Yo2nubQ05U4adr+9T8HIsJHiuZZyjnZa
+ YMwCfBbAtsP2AN/vryO4dr9vgNzn/89Fu6P5dJgKWCQHcniA3aT+RgIk9Y+Q0pj1513TAh9iAZnfb5/e
+ m2353YGz3/9vxb4NiK+OrJgKWHHRyKhFeIz0lueT1G+7IR+yDnMY0wJ/agF1PqCBFz7OuxXSbgWCO+Du
+ acDuABCA7R2TYhKwbUIrErbIj+kIpClHlcg75jT7nBb4CAtEx2I5TVgJgPN//PtNM2pkY+8atP9pa88I
+ bEb7Ny3E7Pb7LeApAyyeYRrxW9HV27e3sUzQf79vzhn+sgWUOtidK/jl8SyP4x2N3yKgP5jqfOS0wLTA
+ tMC0wLTAtMC0wLTAtMC0wLTAtMC0wLTAtMC0wLTAtMC0wLTAtMC0wLTAtMC0wLTAtMC0wLTAtMC0wFdY
+ 4P8kqD44hP1vDQAAAABJRU5ErkJgggAAKAAAADAAAABgAAAAAQAEAAAAAACABAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A
+ //8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAId3gACHdwAAAAAAAAAAAAAAAAAA
+ AAAACGdnZwBnZngAAAAAAAAAAAAAAAAAAAAAB3d3d3d3d4dwAAAAAAAAAAAAAAAAAAAAB3yGR2V2jIeA
+ AAAAAAAAAAAAAAAACIAAh+d4d36HeHeAAAAAAAAAAAAAAAAAh3eHeHjnjnh4fnYAh4AAAAAAAAAAAAAI
+ d+d+h4iIyId3h3yHZ2cAAAAAAAAAAAAIaIiIeGd4iIeOh4dniHdwAAAAAAAAAAAIh4eIiIyOiOiIiIiI
+ iIZ4AAAAAAAAAAAI6IjojoiIiIiHjojojoiHAAAAAAAAAAAIiIiIiI6IiIiIiIiIiIiIAAAAAAAAAAAH
+ iIiIiIiIiIiIiIiIiIiAAAAAAAAAAICIiIiI6IiIiIiIjoiOiGgAAAAAAAAAB4iI//iIj4iAAACI/4j4
+ +GcAAAAAAAAAj4iPiP5/+IAAAAAPiPiPiHYAAAAAAAAAiPj4+IiIiAAAAAAAiPj4j4eIgAAAAAAA+I+P
+ iOiIgAAAAAAA+I+P+IjoyAAAAAAAj/j4+HiOAAAAAAAACIj4+Pj/hoAAAAAACI+PjoiAAAAAAAAAD+/4
+ j/+Ph3AAAAAACI+Ph4iAAAAAAAAACPiOiPj4hoAAAAAACI+P6IiAAAAAAAAACI+HiP//h4AAAAAACI+P
+ eI4AAAAAAAAACI74j4/oiIAAAAAIiPj46IcAAAAAAAAACI+P/4iHgAAAAACIj46IeIcAAAAAAAAACO/4
+ +PiIAAAAAACI+PeId4cAAAAAAAAACIj/j45wAAAAAACI+IiI534AAAAAAAAAiO+P/4iAAAAAAACPj4iP
+ iIUAAAAAAAAAh4//j4dwAAAAAACI+I+Ih+cAAAAAAAAIiP+P/454AAAAAAAPiIj4iHeAAAAAAAAIiP//
+ j/+H8AAAAAAACIiIiIdwAAAAAACIj4/////4cAAAAAAACP+Pjod3AAAAAAiIj/j4+Pj4gAAAAAAACIj4
+ +IiHAAAAD4iI//////+OgAAAAAAA+I+I+IiIh4AIiIiP+Pj4+PiIAAAAAAAAiIj4+PiIiIiIiIj4+P/4
+ iPiIAAAAAAAIiI+Ij4+IiIiIiI+Pj4+I4AAAAAAAAAAAiIiIj4j4iIiI+Pj/j/iI8AAAAAAAAAAAiIiP
+ iI+Pj4+I+P+I+PjoAAAAAAAAAAAACIiIiIiIj4joj4j4+Ph3AAAAAAAAAAAAAA+IiI+IiIh4iPj4+PiG
+ gAAAAAAAAAAAAAAAiIiPj4iI+PiPiPiHgAAAAAAAAAAAAAAPiIiIiI+IiIiIj4iIgAAAAAAAAAAAAAAP
+ iIiIiIiPj46IiIjoAAAAAAAAAAAAAAAIiIjojo+IjngAiOiAAAAAAAAAAAAAAAAPh4iI8IiIiIgACAAA
+ AAAAAAAAAAAAAAAACIiIAHiIiHgAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiIAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAIhoeAAAAAAAAAAAAAAAAAD///////8AAP//Bw///wAA//4DA///AAD//gAB//8AAP/+AAH//wAA
+ /5wAAf//AAD/AAADH/8AAP4AAAAP/wAA/gAAAAf/AAD+AAAAA/8AAP4AAAAD/wAA/gAAAAP/AAD+AAAA
+ B/8AAPQAAAAP/wAA4AAfAA//AADAAH+AD/8AAMAA/8AB/wAAwAH/wAD/AADAA//gAH8AAOAH/+AAfwAA
+ 4Af/4AB/AADgB//gAH8AAOAP/+AAfwAAgA//4AH/AAAAD//gA/8AAAAP/+AH/wAAAA//wAf/AAAAD//A
+ B/8AAAAP/4AD/wAAgAf/gAH/AADgB/8AAf8AAOAD/gAB/wAA4AP4AAH/AADAAGAAA/8AAMAAAAAD/wAA
+ gAAAAH//AADAAAAAf/8AAMAAAAD//wAA4AAAAP//AAD4AAAAf/8AAP8AAAB//wAA/gAAAH//AAD+AAAA
+ //8AAP4AAMH//wAA/gEA7///AAD/gwD///8AAP//Af///wAA//8D////AAAoAAAAIAAAAEAAAAABAAQA
+ AAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAA
+ AAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAIAAAAAAAAAA
+ AAAAAAB4dwh4cAAAAAAAAAAAAAAAeOd4iIgAAAAAAAAAAACICHeIeOh4AAAAAAAAAAAIeHjlaIh4d4eA
+ AAAAAAAACIfniIh4iIiIeAAAAAAAAAjoiIeI6IiOiIgAAAAAAAAIeIeIiIiHiIiIAAAAAAAIh4h4+IiI
+ iIiIYAAAAAAAh4iIj4gAAIiIiHAAAAAAAIjoiIgAAAAIiIiIgAAAAACIiIjgAAAACOh4iHcAAAAACIiI
+ gAAAAAiHaIiHAAAAAIiOiIAAAAAIiIiPhgAAAACIiIcAAAAACIiPiIAAAAAIiIiHAAAAAAiIiI4AAAAA
+ CI53jgAAAAAIiIh4AAAAAAiIiIcAAAAACIiIhwAAAAAAiIiIgAAAAHiIiIiAAAAAAAiI+GAAAAiIiIiI
+ 4AAAAACIj4iHAAh4iI+IiIAAAAAAiIiPiIeHiIiPjogAAAAAAIj4iIiIiIj4joAAAAAAAACI6IiPjoiI
+ iIeAAAAAAAAAD4iIiIeIiIiHcAAAAAAAAAAAiIiIiPiIiHAAAAAAAAAACI+IiIiO+OgAAAAAAAAAAACI
+ 74iIcACAAAAAAAAAAAAAAIAIjoAAAAAAAAAAAAAAAAAAAPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ///////nf///wh///8AP//yAD//4AAH/+AAA//gAAP/4AAD/4AAB/8APAf/AP4B/wH+AP+B/gD/Af4A/
+ wP+Af4D/gP+A/4D/gP+A/8B/AH/gfgB/wDgAf8AAAP/AAAf/wAAH/+AAB//8AAf/+AAP//wB3///Yf//
+ //P///////8oAAAAGAAAADAAAAABAAQAAAAAACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAA
+ AICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAIAAgA
+ AAAAAAAAAACHcIh4AAAAAAAAAAB4h4iHAAAAAAAACHeGaI54hwAAAAAAh4joh4iIiHAAAAAAiOh4iIiI
+ iIgAAAAAiHj4iIiIiIAAAACHiI+IAAiIhoAAAACI6IgAAAiIiIgAAACIiIgAAACIaIiAAACIiIAAAACI
+ iPhwAACIiOAAAACIiI7wAAiI6IAAAACIj3AAAAiGiIAAAACIiHAAAAiIiHAAAAiIiIgAAACI+IAAAIiI
+ iI4AAACIj4eAB4iPiIgAAACI+IiIiIiPiIAAAACIiI+IiIiOgAAAAAAIiIiGiIj3cAAAAAAACIiIiIiI
+ cAAAAAAA+IiIiICIAAAAAAAAD4AIjgAAAAAAAAAAAAAPiAAAAAAAAP+7/wD/EP8A/wD/APgAPwDwAB8A
+ 8AAPAPAAHwDAOB8AwPgPAMD8BwDB/AcAwfwHAIH8HwCB/B8AgfgPAMHwDwDAYA8AwAAfAMAAfwDgAH8A
+ +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
+ QBoRVYBFdfZbCIAcP8Cnwu9CgoyZcykQstcgoMfKI/lRJNwXJAboUThYen7TJf3i1h+3PoEL8QQADqPi
+ 0GUXQpAUCLo51wDE8Mo3DBZ2OO/xSp9BAnTQaT0Oh9l1CT5yb2QhkPdY+hX0F6JFrNc82CdAb0KsqYSA
+ y0AQ7c4HPnbRwAbQGaSTiTgB/IVUHgf74tcfvj6B9QmsT2B9AusTWJ/A+gTWJ7A+gfUJrE9gfQLrE1if
+ wPoE1iewPoH1CaxPYH0C6xNYn8D6BNYnsD6B9QmsT2B9AusTWJ/A+gRO8An8/7AWyvzTtcwRAAAAAElF
+ TkSuQmCCAAAoAAAAMAAAAGAAAAABAAgAAAAAAAAJAAAAAAAAAAAAAAABAAAAAQAAAAAAAGxQMgBvVDYA
+ cVY5AHhdPwBgWU0Ae19AAGFbVAB9YkUAYmBVAGtkWABvaF8Ac2pZAHRoWgBxcWcAfnNhAHNwaACHbE4A
+ iG1PAIVtUwCKblAAinBSAIxwUgCJclYAhnFYAI93WgCRc1UAkHRWAJJ2WACUd1gAlXhZAJd7XACZfV4A
+ gnViAIV9ZwCRfGMAmX5gAJR9awCbfmkAnIFjAJ6DZACUgWsAmYdvAI+IdgCCgH0AiIJ5AJGDcACZhnEA
+ n4RwAJeKdQCci3QAnox5AJ+VegChg2QAoYVmAKGGaAClh2oApYhpAKaKbACnjG4AqYxuAKyObwCgi3EA
+ pYxyAKeLdQCijHUAq49xAKyPcACrkHIArpFyAK+SdACglXoAoJB8AKaXfgCpknoAr5R+ALGUdgC0l3gA
+ tZh6ALOYfgC2mn0Aupx+AJ2ThACYkokAm5iVAJ+blgCllYYAq5SBAKSZggCsnoEApZuOAKScjgCsnIwA
+ tZuDALqegQCxn44Aop2VAKuckQCtoY0AvKCCALOiigC4oogAuaCNALumjQC/p44AvayMAKahkQCnopcA
+ raGSAKWkmwCzpZQAuaWSALmqkgC+qZEAvq+TALiplQC6rZYAtKWZALKpngC7rJsAvLGaAKempACtqqEA
+ t6uhALetogC3raQAva+iALWvqQC8sqUAtrGqALOxrwC8tKoAvLawALy4sgC5ubgAwKKEAMOmiADFqIoA
+ yauMANa1jgDCq5MAzK6QAMKxlQDOsJIAxLOcAM20mgDLup0A0bOVANa5mgDZu50Aw7OjAMO2oQDEtaIA
+ wranAMW1pQDJtaIAx7igAM24oADLvaQAzL2kAMK2qgDDuawAyruqAM2+qgDKu60A07qhANu+oADQvqgA
+ w7u0AMm+tADFvrkAy8CuANLAoQDewaIA1cKsANrDqgDcyKkAy8G0AMfBuwDLw7sA08OzANnHtQDVyrcA
+ 2cm1ANDHuQDUyrsA2sy7AOHDpQDlx6gA5smqAOjKrADk0K4A482yAOzOsADizbgA59GyAO3RsgDk07wA
+ 69S6AOvYuwDy07UA9de4APbZugD63L0AzcfAAM3IwwDTy8MA283BANTOyADb0cIA3dDBANrQxgDc0cUA
+ 3tbHANXQygDa08wA39nNAN3W0ADe2NIA4tPDAO3bxADi1ckA49nLAOrbzQDw3ccA/N7AAPXeyQDi29QA
+ 6t7SAObf2AD+4cQA/+TMAOfg0gDs4dMA5uDaAOvj2wDx49QA/ufRAP/p1QDz5tkA8ujdAP7s2wDu6+YA
+ 8+riAP7u4QD37+kA8/DnAP7w4wD+9ewA9vbzAP/28AD/+PEAAAAAAAAAAAAAAAAA////AAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZSiQy
+ ggAAAHwXKloAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGcbFxQZB1QAAAgRCAJBeQAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4bHx8XDQtUMhQ3NydxImAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAEM2OT0dAgMDCEM5QTmjR2oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ ANSdAAAAkD1GRkZGRkZGRk5GTUZiNIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzxs2QXVeQ05eY4dj
+ Y2NjXmNeYzkTDwAAYiN2AAAAAAAAAAAAAAAAAAAAAAAAAADUHT09Rk5OiomPrbuJiYmJiYeJiYknBEdB
+ FCcXLQAAAAAAAAAAAAAAAAAAAAAAAABOPYeJjY+Uj5ROKWOPj4+Pj4+Pj4+UTgY9lKY2GCwAAAAAAAAA
+ AAAAAAAAAAAAAACLh4+Ura27rbuHG4q7lJSUlJSmlJSUlK2mlJSmNgqGAAAAAAAAAAAAAAAAAAAAAADD
+ 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
+ AAAAAAAAAAAAAAAAAAAAAP///////wAA//8HD///AAD//gMD//8AAP/+AAH//wAA//4AAf//AAD/nAAB
+ //8AAP8AAAMf/wAA/gAAAA//AAD+AAAAB/8AAP4AAAAD/wAA/gAAAAP/AAD+AAAAA/8AAP4AAAAH/wAA
+ 9AAAAA//AADgAB8AD/8AAMAAf4AP/wAAwAD/wAH/AADAAf/AAP8AAMAD/+AAfwAA4Af/4AB/AADgB//g
+ AH8AAOAH/+AAfwAA4A//4AB/AACAD//gAf8AAAAP/+AD/wAAAA//4Af/AAAAD//AB/8AAAAP/8AH/wAA
+ AA//gAP/AACAB/+AAf8AAOAH/wAB/wAA4AP+AAH/AADgA/gAAf8AAMAAYAAD/wAAwAAAAAP/AACAAAAA
+ f/8AAMAAAAB//wAAwAAAAP//AADgAAAA//8AAPgAAAB//wAA/wAAAH//AAD+AAAAf/8AAP4AAAD//wAA
+ /gAAwf//AAD+AQDv//8AAP+DAP///wAA//8B////AAD//wP///8AACgAAAAgAAAAQAAAAAEACAAAAAAA
+ AAQAAAAAAAAAAAAAAAEAAAABAAAAAAAAfWRJAINpTACQeF0AgnhmAIJ6bQCYgmoAlYdzAJCEdgCdjHIA
+ l4l4AJeLfACUjH4An5B9AKGTfACkkX4AqJJ+AKmVfgCzlX0AsZp/ALaZfwCelIUAoJSCAKaWggCrlIAA
+ rpSAAKKYggCnmYQAq5uDAKuahwCtnYYAo5iLAKqciAConI4As5qBALeYgAC1nYIAtp2EALmcggCyn4sA
+ tp+IAKadkQCuoY0Au6GHAL6hhQCyoIkAsqCNALakjQC6oYoAv6KJAL2mjQCuoJAAr6SUALGkkQC2ppIA
+ sqaVALWmlQC7p5AAvqmSAL+tkQC8qpYAu66XAL2slgCwp5kAsqiZALSomQC2rZkAuaqZALqtmgC+rZoA
+ vrGeAL6xoAC+tKEAu7OoAMWoiwDCqI0AwaeRAMCpkgDFq5EAxayRAMKrlADEq5UAwayUAMWtlgDIq5AA
+ yKyTAMGtmQDHr5kAx6+eAMmumQDGsZoAwbGeAMK0nwDKsZgAzbKbAMq0nQDMtZ0A0bifANW4nwDXv54A
+ 2bueAMGzoQDFs6AAwbShAMW1oQDBtaUAxralAMm3ogDMt6EAx7ijAMS4pgDIuaMAyLmmAMy4pgDPvKYA
+ xreoAMW5qgDGvKkAwbisAMW6rADFvKwAybqpAM+4qADKu6wAyb6uANK6oADVuqAA1b2iANK7pgDZvaIA
+ 2L6lANy/pgDRv6wAyL6yAMvBrgDPwq4A0cOtANLErwDYwq4A3MOvAN3ErgDKwLEAzcGzAM7FsgDKwrQA
+ zcO2AMzEtwDLxbgAzca5AM7IugDPybwA0MCyANHFsQDVx7EA0ca1ANbHtADYwLMA2cWyAN3EsADZx7YA
+ 18q3AN3NtQDRx7gA1sa4ANTJuQDQyb0A1su/ANPNvgDVzL0A2sy8AN3SvwDhw60A4MStAODGsQDgyLIA
+ 4sq1AOXNtgDqzrYA4su4AObLuwDizbsA5c66AOLOvgDn0LkA4tC8AOXRvgDRy8AA1MvAANLMwQDVzcEA
+ 1s7EANjNwADcz8EA1tHCANbRxQDY0MEA3dHBANjRxQDd0cUA3dbHANfQyQDZ08gA2dTJAN3WygDa1c0A
+ 3dbMANzYywDf3M8A3NfQAN3Z0QDgzsAA4dHBAObSwwDi08QA59bGAOnSwQDp1MIA7dXDAOvTxQDq18YA
+ 6NrFAOHXyQDt18gA4tnLAOfaywDg2s8A6NnKAOvcywDu28wA6NzOAO7ezgDw1sQA8NrJAOHc0gDi3dUA
+ 5dzVAO7d0QDk39sA6ODSAO7h0wDr5NIA6+TWAO/l1wDm4dgA7OXdAPHg0ADy5NUA9endAPDo4QDw7OUA
+ 9fHpAPj29AAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAHtzAAAAcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtJB4KAGotLTgAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAABMsMAoXNjuZQkIAAAAAAAAAAAAAAAAAAAAAAABqOAA4JCQoOzY7RWoWQgAAAAAAAAAA
+ AAAAAAAAAAAAezAwGDBMAQNFVmpqRSkzOCopAAAAAAAAAAAAAAAAAAA+SlQ7OztWVkVbW2pzc2mGmRYp
+ AAAAAAAAAAAAAAAAAHBKWVlZO1h7bVtqc5CQkJDp6jMAAAAAAAAAAAAAAAAAPllYWFjV+fGqmXx8kJCQ
+ lc6hbQAAAAAAAAAAAAAAcEVZYWB/+fugampzbY+Qk5WVKQ0AAAAAAAAAAAAAAGo7XWFhYfL6aoUAAAAA
+ bZCQlaA/CAAAAAAAAAAAAAAASmRkg4O48T4AAAAAAAAAPpCTupOFRUIAAAAAAAAAAABqYoODg9xPAAAA
+ AAAAAABGc4U0oLygFhYAAAAAAAAAAABZq564oT4AAAAAAAAAAHNpKgG6us5JBwAAAAAAAAAAv12tr7g7
+ owAAAAAAAAAAk0WQlbzq6kYXAAAAAAAAAAA7g7KysjAAAAAAAAAAAACQRbzC6elGRgAAAAAAAAAAO62y
+ t7KeJgAAAAAAAAAAAEl7ybzzRjgAAAAAAAAAAABisbECNqsTAAAAAAAAAAAALcLFwscXcwAAAAAAAAAA
+ AG2tuDutrSYAAAAAAAAAAABFycK8xUIpAAAAAAAAAAAAAHCv2dnUMFkAAAAAAAAAF7zJwrygyTc0AAAA
+ AAAAAAAAAH/s8feeEgAAAAAAAB6FycW8vJPqhi0AAAAAAAAAAADSnub19uxZGQAAAHMXc+nCvMnQoKA+
+ kAAAAAAAAAAAAFnZ2ebm7OJ6GRgZLZPJxbzJ9IdJkEUAAAAAAAAAAAAAWOf12dnZ4ODgoMXgycW8oMmZ
+ OwAAAAAAAAAAAAAAAACZmXqe1NTUycUZLcnFqbzFdgR2AAAAAAAAAAAAAAAAAADpk6my1LLUoQZqqanF
+ oLyQBQoAAAAAAAAAAAAAAAAAAAAAALKy1MWpqanF6sWZoOo+DQAAAAAAAAAAAAAAAAAAAACysuLmoamp
+ qeB7e8WVQjMAAAAAAAAAAAAAAAAAAAAAAADS2WGq6qnSmQkAAADJAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ oAAAoMVqHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6skAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////53///8If///AD//8gA//+AAB//gAAP/4AAD/
+ +AAA/+AAAf/ADwH/wD+Af8B/gD/gf4A/wH+AP8D/gH+A/4D/gP+A/4D/gP/AfwB/4H4Af8A4AH/AAAD/
+ wAAH/8AAB//gAAf//AAH//gAD//8Ad///2H////z////////KAAAABgAAAAwAAAAAQAIAAAAAABAAgAA
+ AAAAAAAAAAAAAQAAAAEAAAAAAACDaUwAkHhdAIZ+bwCQhncAnY96AJuPfACgkHIApJV/AK+RewCplnsA
+ qJJ+ALWWfQCVjYEAppSCAKCWhwClmIcAr5mDAK2dgwCsnIQAqZyJAKidjACznYQAsp+LAL6fjAC6ooQA
+ vaSHALahjQC0pY4AuaKIAL2iiwC+pIsAvKaOAK+jkwCxpJEAsaOUALSnlAC5pZIAs6iXAL6okQC8rZMA
+ t62aALysmQC7rZwAvrGeAL60pADFqY4AyKmMAMGpkgDEqpIAw66VAMaulQDIrpEAwq2ZAMWumgDCspsA
+ wbGdAMiwmQDOtZwA0bacANS4nwDFs6EAw7ejAMS0oQDDtaQAybKiAMi2oADDuKQAybigAMu5pADNuqUA
+ xrWpAMG4qQDFuqkAxb2pAMW6rADHva0AybusAM2/rADVuqIA0LyiANe/pQDZvaMA3byjANi8pQDQvagA
+ 1b2qANS+rADYv6gAxr2wAMW+tADKvrAAysCtAMzArQDewKMA0sKqANLDrADWxa4A2sCpAN3BqQDcw6wA
+ 2cWtANnIrwDGwbYAy8GyAM7FsgDMwbUAzMS3AM/ItwDLw7kAzca5AM/IuQDPyb4A0sOzANHGsQDVxbEA
+ 0sO0ANDEtgDVx7QA38WwANPIswDXyLMA2smxAN/IsQDfyrQA3c62ANHJuQDXy7gA0cq+ANbOvwDdyroA
+ 2sq9ANnOvQDczrwA3tG+AOHKtgDlzLYA6s62AOLNuwDlzbkA4dK6AOXQvgDo0L0A0svAANbLwADSzcEA
+ 1s7CANXOxADW0cMA1tDGANnQwQDd0cEA3dLFANrVxwDa0sgA2tXJANzVygDb1s4A3NjPAN3a0ADiz8EA
+ 5dHBAOPTxgDl0sQA5dXGAOjTwgDo1MEA6tbFAOjawwDg2s4A5drPAObczgDp2skA7d7MAPHbyADx3c0A
+ 4NrRAOXf0ADl3tQA6d7QAO/c0gD84csA5OHaAOrm3wDw4tUA8efWAPTl1QD54NEA9ObaAPbo2wDw6N4A
+ +OvdAOfn4wDu6ucA9vDlAPr26QD69vMA///+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAABNAAAARwAAAAAAAAAAAAAAAAAAAAAAADIaBgA9KBxb
+ AAAAAAAAAAAAAAAAAAAAABouHA4cQkoUAAAAAAAAAAAAAAAAAB0LER0BAkI4PSEQKyQAAAAAAAAAAAAA
+ OC80MjIWJTg9SkotclwOAAAAAAAAAAAAXC45MjZ/f01NSltqb8N/bgAAAAAAAAAAMjk0c8TCqIx5bG5u
+ cEpyAAAAAAAAACgdPDxlxatKAAAAYHBwbwRuAAAAAAAAADReUlK5YAAAAAAAalxvlW49LAAAAAAAADhT
+ Y4x8fwAAAAAAAGVuAZWrKRUAAAAAAHJSiaUyAAAAAAAAAGBqJJW3bxEAAAAAADKIiXw4AAAAAAAAAEZv
+ n7eVLJkAAAAALol7iFdCAAAAAAAAAEacnJ8RAAAAAAAAT7UBJWI4AAAAAAAAAEqwnGoFAAAAAAAAamWI
+ pXsMAAAAAAAAFJyck5kkWgAAAAAAAFesvb0YAAAAAAAkarCTcJmrCgAAAAAAAFesur2lCUcAAA5KsJOc
+ n25GLAAAAAAAAGK7r6y6pTglK3+wlZW+RpNvAAAAAAAAAFeMiKyksrI9f7KVk5URLAAAAAAAAAAAAABu
+ coiloHMBHJmVf5kDDQAAAAAAAAAAAAAAAIikpZmClbJ/crA9DgAAAAAAAAAAAAAAsomvc3+IpD1sAFkh
+ AAAAAAAAAAAAAAAAAMFyAACViAYAAAAAAAAAAAAAAAAAAAAAAAAAAADAnJMAAAAAAAAAAAAAAAD/u/8A
+ /xD/AP8A/wD4AD8A8AAfAPAADwDwAB8AwDgfAMD4DwDA/AcAwfwHAMH8BwCB/B8AgfwfAIH4DwDB8A8A
+ wGAPAMAAHwDAAH8A4AB/APgAfwDwBP8A+Y//AP+P/wAoAAAAEAAAACAAAAABAAgAAAAAAAABAAAAAAAA
+ AAAAAAABAAAAAQAAAAAAAItyVgCYgWgAnoRpAJiEbACiinAAqY1zAK6SdwCsk3gArZR5AKiVfwCsln0A
+ spqAALWegwCxnocAuJ+DALqhhQC8ooUAvqWHALqiiAC/pooAvqeNAL6ojwC/qpEAu6mWAL6vnQDApooA
+ w6qLAMCojgDDqpAAxKuSAMOulQDFrpQAx6+ZAMawlgDIsJUAx7KaAMaznQDLs5oAy7SaAMy1mgDLtZwA
+ zbeeANC5ngDCtKMAyreiAM25oQDMuaUAzrymAM68qADTvqcA0r+qANTApwDVwaoA08KuANXErQDZw6oA
+ 2cSrANrFrQDcxq8A1cWyANnFsgDayLMA3ciyAN3MtgDayroA3cu4AN7NugDdzrwA4Mu2AOPNtwDizroA
+ 4M+8AOXQvQDk08AA59bDAODUxADn18QA6NbEAOnZxgDs28oA7NzLAO7fzQDy4tEAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ dGha/2dfVfBPST+Ll4Nu9ohtT/+ih2n/oodp/5yBY/++qpH/hX1n/4uFe8wRERE3AAAAKAAAACEAAAAm
+ AAAAKwAAACgAAAAdAAAAEAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAsaSWJKyPcf+ihWb/
+ pIhp/6mNbv+UeFn/bFAy/3FWOf9xVjn/fmJE/6uQcv+njG7/p4xu/6WKbP/Nvqr/oJV6/5yWhOMGBgZH
+ AAAAPwAAADoAAAA4AAAANgAAADEAAAAqAAAAHgAAAA0AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMSxnJTEq5DXr5V/SwAAAAC9p5AK
+ s5uBxaqNbv+vknT/r5Jz/7KVdv+ylnf/spV3/7CTdf+tkXL/s5d4/7GVdv+wlXb/sZZ3/6yQcv+uooz/
+ n5V6/6CckbkAAABIAAAARAcGBUIAAAA7AAAANgAAADIAAAAsAAAAIQAAABAAAAAFAAAAAgAAAAEAAAAB
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAybagrpR3WP+hg2T/
+ pYxy/5+Ofce2m37zrY9w/7eZe/+8n4D/vaCB/72ggf+8n4D/u5+A/72ggv+8n4D/up5//7ufgP+6nn//
+ vaGD/6aKbP+FbVP/f3Ri/3dzbn8gHhxOno562I94XvuZjX2/ICAgPgAAADEAAAArAAAAIwAAABgAAAAO
+ AAAACAAAAAcAAAAFAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTj4gHMuKGo
+ lnhZ/6aIav+wknP/tJZ3/7WXeP+7nn//xaeI/8epiv/OsJL/3MKl/+LDpP/GqIr/xaiJ/8aoiv/FqIr/
+ xaiJ/8OniP/Dp4j/xaiK/8erjf+afmD/eF0//5mIc+2fiW/6iW5P/56DZP+LcVP/eHFn4GJhYUwAAAAq
+ AAAAJQAAAB8AAAAYAAAAFAAAABAAAAAOAAAACQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAANTQyBC8nHz9rI5v/8Cig//Fp4j/y62O/9Cyk//TtZf/1LaX/9S2l/+2mHn/lIFr/76ggf/StJX/
+ 0LKU/8+yk//OsZL/zrGS/86xkv/OsZL/zbCS/86xk//UuJn/t5t8/3tfQP+rj3H/1Lia/9u/of+ihmj/
+ hnFY/21raNokJCQwAAAAJQAAACEAAAAdAAAAGQAAABUAAAATAAAADgAAAAcAAAACAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAOLd1gPVsonzv6GC/9K0lf/Zupz/3L6f/92/oP/ewKH/3b+g/+HDpP/AooP/
+ kXNV/8apiv/ewKH/2Lqb/9a5mv/Xupv/2Lqb/9i6nP/Xupv/17qb/9e6nP/Xupv/2byd/9u/oP/cv6H/
+ 17ud/9i8nv/avqD/oYVm/2tkWP+Ih4WUAAAAJAAAACAAAAAdAAAAGQAAABYAAAATAAAADgAAAAcAAAAC
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXvJK0yquL/+LEpf/mx6j/6Mqr/+nLrP/py6z/
+ 6Mmr/+jKq//qzK3/5ceo/+LEpv/kxqf/8tS1//HTtf/kx6j/38Gi/9/Bov/fwqP/38Kj/9/Co//gwqT/
+ 38Kj/9/Co//ewqP/38Kk/9/CpP/hxab/4820/8O1mv+ZkYD0XVtZOAAAAB4AAAAbAAAAGAAAABUAAAAR
+ AAAADAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDqY3CyquN//LUtf/y07T/
+ 89S2//LUtf/x07T/89W2/+3OsP/Iqov/za+Q/9q8nv/ixKX/+du8///r1///6tb//+TJ/+3PsP/myKr/
+ 58qr/+fKq//oyqv/5smq/+fKq//myar/5smq/+nMrv/lyqz/4tS8/+TQr//PwqzMOTg4JwAAABwAAAAa
+ AAAAFwAAABQAAAAQAAAADAAAAAcAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM22nkG0lXb/
+ 58iq//3fwP/73b7//d6///zdv///4cL/+Nq7/9u8nv/LrpD/3cSp/+bUvv/s28b/7NrE/+rTuP/qzrD/
+ /+LG///r2f/42rv/7tCy/+7Rsv/v0bL/79Gz/+7Rsv/u0bL/79Gy/+nLrf/g1MD/59Kw/9XEqfKYk448
+ AAAAGwAAABoAAAAXAAAAFQAAABMAAAAQAAAADQAAAAsAAAAIAAAABAAAAAAAAAAAAAAAAMyzmX3AoYSk
+ xKaKd7idf/bcvZ7//+nV///n0f//5s7//+bP///lzv/32br/yKuM/9bBqf/t6eb/7+3m/+Day//PxbL4
+ wbWg1r60n8nTybfk6tW7/vXXuP//69f//+HC//TXuP/32br/9ti5//bYuv/12Ln/+92+/8mrjf+XinX/
+ uKuT98nFvFsAAAAWAAAAGQAAABcAAAAVAAAAEwAAABEAAAAPAAAADQAAAAoAAAAIAAAABAAAAAAAAAAA
+ 0b6pQLmafP/avJ7/0bKU/+LDpf//6tX//+/g///u3///79///+bO/+fIqv+3mnz/6d/U//b28//f2Mv/
+ xrun5qSYiYNnX1ZGAAAAKAAAACoAAAAqfnhrVeTSuvX32br//+vZ///jyP/938D//d/A//3fwP/838D/
+ /+PH/9a4mf+Sfmb/bWlh82ppaCYAAAAXAAAAFwAAABUAAAATAAAAEQAAABAAAAAOAAAACwAAAAgAAAAF
+ AAAAAgAAAAAAAAAAy7WZyP/ix///5cz//+PI///q2P//7+D///Dh///w4///6tj/3sCh/6+Rcv/v59v/
+ 8/Dn/9bOvP+/s6GxjYF2KQAAAAwAAAARAAAAGAAAAB8AAAAiAAAAIWFcVDbn1Lr6/d/A///q1f//5c7/
+ /+bN///mzf//5cz//+bM///hwv+ni23/YFlN/6GdmXcdGBMZAAAAFAAAABMAAAARAAAAEAAAAA4AAAAM
+ AAAACQAAAAUAAAACAAAAAAAAAADWwKsY27+e/f/lzP//6dX//+vZ///u3v//7+D///Dh///w4//qy63/
+ r5Fz/+PXxf/t59v/zsGs/72vnZR/dW0DAAAAAQAAAAIAAAAFAAAACwAAABMAAAAYAAAAGQAAABe1qp1e
+ 9Nu+///hwv//7d3//+vZ///r1///69f//+vX///w4//Bo4T/oIVo/7yjh/23nID3s52FwU1LShgAAAAO
+ AAAADQAAAAwAAAALAAAACAAAAAQAAAABAAAAAAAAAADbyLNT/+bP///n0f//69f//+3e///v4P//7+D/
+ //Dj///hw/+/oIL/zLWb/+zk1//MvaT/sZyDrQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAgAAAAM
+ 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
+ /e7h///48f//9/D///bw///28P//9u////fv///37///9u////bu///t3P/UxrL/vq+T/9DKwj4AAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8uPUAci5q/Xj3NX/5t/Y/+nh2v/q49z/
+ 7eTd/+vj2//CuK7/08rB/7qsnv+TgHD/f2pcdgAAAAAAAAAAAAAAAAAAAAAAAAAA6NK9DcSxnqG9q5r+
+ 287C/8O2qP/y5tn///fx///28P//9vD///fw///38P//9/D///fw///27///9u7///bv//Ddx//MvqT/
+ xrypwNnW0gMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2svAl8vDvP/f2NL/
+ 4trU/+Xe1v/n39j/6eHa/+vk3f/j29P/u7Ko/9bNxf+/tKj/qpqK/5mHd+Gql4iAu6eYVsCunXC/rZu9
+ u6qZ/MS2qf/b0Mb/w7ar/+3i2P//9u3///Pp///16///9e3///bv///38f//9/D//e3a///37f//+PH/
+ //Ln/9vNu//Lup3/08zCWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADo2s5L
+ t62k/9jRy//a083/39fR/+HZ0//j3NT/5d7X/+bf2P/q4tv/4trT/8K6sf/Mw7v/08rC/8W6sP++s6j/
+ vrKm/8C0qv/IvrT/1MvB/8rAtv/LwLb/7+bd//zy6f/68Ob//PLn//7z6P//8+n///Tq///28P/w4tD/
+ z8W2/+fg0v3z7OH12c27/Mu9pP/NwKrW6ejnDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAADEtKK7xb63/87HwP/Vzsj/2tPM/93W0P/f2NH/4drU/+Lb1P/k3db/5+Ha/+fg2f/UzMX/
+ xr21/8S7s//Iv7b/ysG5/8e+tP/Cua//ycC2/9/Wzf/17eX/9u3k//bt5P/37uT/+O7l//rv5v/88eb/
+ /vTp//Hl1//WzLv/0sCh/9XNwHYAAAAA0M7IHcW/tUnX08wmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAADh1cNZwbeu/8fBuv/QycT/1tDK/9jSy//b1M7/3dfQ/9/Y0v/h2tP/
+ 4tvV/+Td1//n4dr/59/Y/+DY0f/c1Mz/3NTN/+HZ0v/o4Nj/8Ojh//Hq4v/x6OD/8unh//Pq4f/z6+P/
+ 9ezk//ft5P/47uX/8ujd/9bKvf/cyKn/08ezuuzp6QIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzsCy+Ma/uv/PycP/ysC2/9bNxP/W0Mn/
+ 2dPN/9zVzv/e19H/3tjS/+Da0//i29X/49zW/+bf2P/o4tv/5+DZ/87Cuf/o4Nj/6+Pc/+3l3v/u5t7/
+ 7+ff//Dn3//x6OD/8unh//Pq4f/27eT/29DF/7Gmlf+5rZXx4d3YJgAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA59zQccO6sP/WzsT/
+ 29HC/8rAsP/Ty8T/087I/9fRy//Z083/29XO/93X0P/f2NL/4NnT/+Hb1P/h29T/yb20/5+Oef+7rZ7/
+ 5d7X/+ri2//r5Nz/7eXd/+3l3v/u5t7/7+fe/+/n3//y6uL/1cvB/56Sg/9ramDzzs3LHgAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAN3a1UPa08luzca0oc3HuKHQxLTs0MjC/9LLxv/Vz8n/2NLM/9nTzf/a1c7/3NXQ/97X0f/e19H/
+ wriv/6WWhv+3q6H/4tzV/+fg2f/o4dr/6eHb/+rj2//q49z/6+Pb/+zj3P/t5dz/5NvT/7Wnm/9iYFX/
+ o6OdgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD049cVycG6/87Hwv/Qy8X/087I/9XPyf/X0cv/
+ 2dPN/9nTzv/d1tD/1c7I/8a/t//Y0cv/49zW/+Pd1v/k3tf/59/Z/+ff2P/m39j/59/Y/+ff2P/n39f/
+ 6uLa/8G3rf+PiHb/jIp/xtHRzgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ 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
+ 7tzS/8mumf+niHLlm35oeJd7ZUaVe2VNln9oi5uGcebEuKv/4NrP/9XRxf/SzMH/2dTK/9zX0P/Pybv/
+ 1Mq6/7+tkf+6qZOy6unpAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCmoE4ya2V8OvTwP/t18j/
+ 7tvM/+3dzf/u3tH/6NnK/8+4qP+uk4D8oop07KWNee6yoI3/0ce4/97XzP/Y0cX/1MzA/9fQyf/s5d3/
+ 0cOt/7ankde1qJW2rpuCysm+sEMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGunEbJtJ3+
+ 8NbE//Dayf/t1cP/6tfG/+nXxv/n2sv/6NzO/+HXyf/cz8D/3c/C/+Pay//d1sr/183C/9TNwP/Tzb//
+ 2tXK/9LEr/+6pYnmw7epP724rgG4q5gHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ waGMDcGsmsHWx7T/0b+s/9nFs//p1ML/5tLD/+PTxP/i08X/3tDA/6mVfv+yn4v/3NHE/9nQwP/Wy7//
+ 1czA/9fRwv/Ataf/gnhm/56SgrEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vYB
+ AAAAANGHcAEAAAAAybipMsO9r5KxpZKhzbiku+PLt//m0b//48+//+DPwP/Xyrf/mIJq/8Gwn//ZzL7/
+ 2M3A/9nQwv/UzL//1c2//8rCsf+Cem3/gnho2by0qRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUp4964su4/+HOvP/i0cL/4tPC/97Pvf/czb//
+ 2sy9/9zSwv/l3NX/2NDC/87Fsv/Tzb7/49zT/7uul/+ai3Lss6mcLwAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANqxmajkzbn/69PF/+vcy//Zy7j7
+ 2My8993LvP7czb7/4drP/8i4p/+8q5fMz72srM7Gtvi1qJn/opJ858O3pXLRx7wDAAAAAAAAAAAAAAAA
+ AAAAAPf39wEAAAAAAAAAAAAAAAAAAAAAAAAAAM2BaQEAAAAAAAAAAAAAAADlyLkC49XMW9/Juefn1sb/
+ 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
+
+
\ No newline at end of file
diff --git a/SCrawler/Editors/GlobalSettingsForm.vb b/SCrawler/Editors/GlobalSettingsForm.vb
index c1283f5..ff4ea96 100644
--- a/SCrawler/Editors/GlobalSettingsForm.vb
+++ b/SCrawler/Editors/GlobalSettingsForm.vb
@@ -12,6 +12,19 @@ Imports PersonalUtilities.Forms.Toolbars
Namespace Editors
Friend Class GlobalSettingsForm : Implements IOkCancelToolbar
Private ReadOnly MyDefs As DefaultFormProps(Of FieldsChecker)
+ Private Class SavedPostsChecker : Implements ICustomProvider
+ Private Function Convert(ByVal Value As Object, ByVal DestinationType As Type, ByVal Provider As IFormatProvider,
+ Optional ByVal NothingArg As Object = Nothing, Optional ByVal e As ErrorsDescriber = Nothing) As Object Implements ICustomProvider.Convert
+ If Not ACheck(Value) OrElse CStr(Value).Contains("/") Then
+ Return Nothing
+ Else
+ Return Value
+ End If
+ End Function
+ Private Function GetFormat(ByVal FormatType As Type) As Object Implements IFormatProvider.GetFormat
+ Throw New NotImplementedException()
+ End Function
+ End Class
Friend Sub New()
InitializeComponent()
MyDefs = New DefaultFormProps(Of FieldsChecker)
@@ -31,6 +44,7 @@ Namespace Editors
TXT_MAX_JOBS_USERS.Value = .MaxUsersJobsCount.Value
TXT_MAX_JOBS_CHANNELS.Value = .ChannelsMaxJobsCount.Value
CH_CHECK_VER_START.Checked = .CheckUpdatesAtStart
+ TXT_IMGUR_CLIENT_ID.Text = .ImgurClientID
'Defaults
CH_SEPARATE_VIDEO_FOLDER.Checked = .SeparateVideoFolder.Value
CH_DEF_TEMP.Checked = .DefaultTemporary
@@ -52,19 +66,31 @@ Namespace Editors
OPT_FILE_DATE_START.Checked = Not .FileDateTimePositionEnd
OPT_FILE_DATE_END.Checked = .FileDateTimePositionEnd
'Reddit
- SetChecker(CH_REDDIT_TEMP, .RedditTemporary)
- SetChecker(CH_REDDIT_DOWN_IMG, .RedditDownloadImages)
- SetChecker(CH_REDDIT_DOWN_VID, .RedditDownloadVideos)
+ With .Site(Sites.Reddit)
+ SetChecker(CH_REDDIT_TEMP, .Temporary)
+ SetChecker(CH_REDDIT_DOWN_IMG, .DownloadImages)
+ SetChecker(CH_REDDIT_DOWN_VID, .DownloadVideos)
+ TXT_REDDIT_SAVED_POSTS_USER.Text = .SavedPostsUserName
+ End With
'Twitter
- SetChecker(CH_TWITTER_TEMP, .TwitterTemporary)
- SetChecker(CH_TWITTER_DOWN_IMG, .TwitterDownloadImages)
- SetChecker(CH_TWITTER_DOWN_VID, .TwitterDownloadVideos)
- CH_TWITTER_USER_MEDIA.Checked = .TwitterDefaultGetUserMedia
+ With .Site(Sites.Twitter)
+ SetChecker(CH_TWITTER_TEMP, .Temporary)
+ SetChecker(CH_TWITTER_DOWN_IMG, .DownloadImages)
+ SetChecker(CH_TWITTER_DOWN_VID, .DownloadVideos)
+ CH_TWITTER_USER_MEDIA.Checked = .GetUserMediaOnly
+ End With
+ 'Instagram
+ With .Site(Sites.Instagram)
+ SetChecker(CH_INSTA_TEMP, .Temporary)
+ SetChecker(CH_INSTA_DOWN_IMG, .DownloadImages)
+ SetChecker(CH_INSTA_DOWN_VID, .DownloadVideos)
+ End With
End With
.MyFieldsChecker = New FieldsChecker
With .MyFieldsChecker
.AddControl(Of String)(TXT_GLOBAL_PATH, TXT_GLOBAL_PATH.CaptionText)
.AddControl(Of String)(TXT_COLLECTIONS_PATH, TXT_COLLECTIONS_PATH.CaptionText)
+ .AddControl(Of String)(TXT_REDDIT_SAVED_POSTS_USER, TXT_REDDIT_SAVED_POSTS_USER.CaptionText, True, New SavedPostsChecker)
.EndLoaderOperations()
End With
.AppendDetectors()
@@ -128,6 +154,7 @@ Namespace Editors
.MaxUsersJobsCount.Value = CInt(TXT_MAX_JOBS_USERS.Value)
.ChannelsMaxJobsCount.Value = TXT_MAX_JOBS_CHANNELS.Value
.CheckUpdatesAtStart.Value = CH_CHECK_VER_START.Checked
+ .ImgurClientID.Value = TXT_IMGUR_CLIENT_ID.Text
'Defaults
.SeparateVideoFolder.Value = CH_SEPARATE_VIDEO_FOLDER.Checked
.DefaultTemporary.Value = CH_DEF_TEMP.Checked
@@ -152,14 +179,25 @@ Namespace Editors
.FileReplaceNameByDate.Value = False
End If
'Reddit
- SetPropByChecker(.RedditTemporary, CH_REDDIT_TEMP)
- SetPropByChecker(.RedditDownloadImages, CH_REDDIT_DOWN_IMG)
- SetPropByChecker(.RedditDownloadVideos, CH_REDDIT_DOWN_VID)
+ With .Site(Sites.Reddit)
+ SetPropByChecker(.Temporary, CH_REDDIT_TEMP)
+ SetPropByChecker(.DownloadImages, CH_REDDIT_DOWN_IMG)
+ SetPropByChecker(.DownloadVideos, CH_REDDIT_DOWN_VID)
+ .SavedPostsUserName.Value = TXT_REDDIT_SAVED_POSTS_USER.Text
+ End With
'Twitter
- SetPropByChecker(.TwitterTemporary, CH_TWITTER_TEMP)
- SetPropByChecker(.TwitterDownloadImages, CH_TWITTER_DOWN_IMG)
- SetPropByChecker(.TwitterDownloadVideos, CH_TWITTER_DOWN_VID)
- .TwitterDefaultGetUserMedia.Value = CH_TWITTER_USER_MEDIA.Checked
+ With .Site(Sites.Twitter)
+ SetPropByChecker(.Temporary, CH_TWITTER_TEMP)
+ SetPropByChecker(.DownloadImages, CH_TWITTER_DOWN_IMG)
+ SetPropByChecker(.DownloadVideos, CH_TWITTER_DOWN_VID)
+ .GetUserMediaOnly.Value = CH_TWITTER_USER_MEDIA.Checked
+ End With
+ 'Instagram
+ With .Site(Sites.Instagram)
+ SetPropByChecker(.Temporary, CH_INSTA_TEMP)
+ SetPropByChecker(.DownloadImages, CH_INSTA_DOWN_IMG)
+ SetPropByChecker(.DownloadVideos, CH_INSTA_DOWN_VID)
+ End With
.EndUpdate()
End With
diff --git a/SCrawler/Editors/RedditEditorForm.Designer.vb b/SCrawler/Editors/RedditEditorForm.Designer.vb
deleted file mode 100644
index 8a0db8a..0000000
--- a/SCrawler/Editors/RedditEditorForm.Designer.vb
+++ /dev/null
@@ -1,134 +0,0 @@
-Namespace Editors
-
- Partial Friend Class RedditEditorForm : Inherits System.Windows.Forms.Form
-
- Protected Overrides Sub Dispose(ByVal disposing As Boolean)
- Try
- If disposing AndAlso components IsNot Nothing Then
- components.Dispose()
- End If
- Finally
- MyBase.Dispose(disposing)
- End Try
- End Sub
- Private components As System.ComponentModel.IContainer
-
- Private Sub InitializeComponent()
- Dim TP_MAIN As System.Windows.Forms.TableLayoutPanel
- Dim ActionButton1 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(RedditEditorForm))
- Dim ActionButton2 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton3 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim ActionButton4 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Me.TXT_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended()
- Me.TXT_COOKIES = New PersonalUtilities.Forms.Controls.TextBoxExtended()
- Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
- TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
- TP_MAIN.SuspendLayout()
- CType(Me.TXT_PATH, System.ComponentModel.ISupportInitialize).BeginInit()
- CType(Me.TXT_COOKIES, System.ComponentModel.ISupportInitialize).BeginInit()
- Me.CONTAINER_MAIN.ContentPanel.SuspendLayout()
- Me.CONTAINER_MAIN.SuspendLayout()
- Me.SuspendLayout()
- '
- 'TP_MAIN
- '
- TP_MAIN.ColumnCount = 1
- TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_MAIN.Controls.Add(Me.TXT_PATH, 0, 0)
- TP_MAIN.Controls.Add(Me.TXT_COOKIES, 0, 1)
- TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
- TP_MAIN.Location = New System.Drawing.Point(0, 0)
- TP_MAIN.Name = "TP_MAIN"
- TP_MAIN.RowCount = 2
- TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
- TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
- TP_MAIN.Size = New System.Drawing.Size(524, 80)
- TP_MAIN.TabIndex = 0
- '
- 'TXT_PATH
- '
- ActionButton1.BackgroundImage = CType(resources.GetObject("ActionButton1.BackgroundImage"), System.Drawing.Image)
- ActionButton1.Index = 0
- ActionButton1.Name = "BTT_OPEN"
- ActionButton2.BackgroundImage = CType(resources.GetObject("ActionButton2.BackgroundImage"), System.Drawing.Image)
- ActionButton2.Index = 1
- ActionButton2.Name = "BTT_CLEAR"
- Me.TXT_PATH.Buttons.Add(ActionButton1)
- Me.TXT_PATH.Buttons.Add(ActionButton2)
- Me.TXT_PATH.CaptionText = "Path"
- Me.TXT_PATH.CaptionToolTipEnabled = True
- Me.TXT_PATH.CaptionToolTipText = "Specific path to store Reddit files"
- Me.TXT_PATH.Dock = System.Windows.Forms.DockStyle.Fill
- Me.TXT_PATH.Location = New System.Drawing.Point(3, 3)
- Me.TXT_PATH.Name = "TXT_PATH"
- Me.TXT_PATH.Size = New System.Drawing.Size(518, 22)
- Me.TXT_PATH.TabIndex = 0
- '
- 'TXT_COOKIES
- '
- ActionButton3.BackgroundImage = CType(resources.GetObject("ActionButton3.BackgroundImage"), System.Drawing.Image)
- ActionButton3.Index = 0
- ActionButton3.Name = "BTT_EDIT"
- ActionButton4.BackgroundImage = CType(resources.GetObject("ActionButton4.BackgroundImage"), System.Drawing.Image)
- ActionButton4.Index = 1
- ActionButton4.Name = "BTT_CLEAR"
- Me.TXT_COOKIES.Buttons.Add(ActionButton3)
- Me.TXT_COOKIES.Buttons.Add(ActionButton4)
- Me.TXT_COOKIES.CaptionText = "Cookies"
- Me.TXT_COOKIES.ClearTextByButtonClear = False
- Me.TXT_COOKIES.Dock = System.Windows.Forms.DockStyle.Fill
- Me.TXT_COOKIES.Location = New System.Drawing.Point(3, 43)
- Me.TXT_COOKIES.Name = "TXT_COOKIES"
- Me.TXT_COOKIES.Size = New System.Drawing.Size(518, 22)
- Me.TXT_COOKIES.TabIndex = 1
- Me.TXT_COOKIES.TextBoxReadOnly = True
- '
- 'CONTAINER_MAIN
- '
- '
- 'CONTAINER_MAIN.ContentPanel
- '
- Me.CONTAINER_MAIN.ContentPanel.Controls.Add(TP_MAIN)
- Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(524, 80)
- Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
- Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False
- Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
- Me.CONTAINER_MAIN.Name = "CONTAINER_MAIN"
- Me.CONTAINER_MAIN.RightToolStripPanelVisible = False
- Me.CONTAINER_MAIN.Size = New System.Drawing.Size(524, 80)
- Me.CONTAINER_MAIN.TabIndex = 0
- Me.CONTAINER_MAIN.TopToolStripPanelVisible = False
- '
- 'RedditEditorForm
- '
- Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
- Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.ClientSize = New System.Drawing.Size(524, 80)
- Me.Controls.Add(Me.CONTAINER_MAIN)
- Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
- Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
- Me.KeyPreview = True
- Me.MaximizeBox = False
- Me.MaximumSize = New System.Drawing.Size(540, 119)
- Me.MinimizeBox = False
- Me.MinimumSize = New System.Drawing.Size(540, 119)
- Me.Name = "RedditEditorForm"
- Me.ShowInTaskbar = False
- Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
- Me.Text = "Reddit"
- TP_MAIN.ResumeLayout(False)
- CType(Me.TXT_PATH, System.ComponentModel.ISupportInitialize).EndInit()
- CType(Me.TXT_COOKIES, System.ComponentModel.ISupportInitialize).EndInit()
- Me.CONTAINER_MAIN.ContentPanel.ResumeLayout(False)
- Me.CONTAINER_MAIN.ResumeLayout(False)
- Me.CONTAINER_MAIN.PerformLayout()
- Me.ResumeLayout(False)
-
- End Sub
- Private WithEvents CONTAINER_MAIN As ToolStripContainer
- Private WithEvents TXT_PATH As PersonalUtilities.Forms.Controls.TextBoxExtended
- Private WithEvents TXT_COOKIES As PersonalUtilities.Forms.Controls.TextBoxExtended
- End Class
-End Namespace
\ No newline at end of file
diff --git a/SCrawler/Editors/RedditEditorForm.resx b/SCrawler/Editors/RedditEditorForm.resx
deleted file mode 100644
index 5c7bfe6..0000000
--- a/SCrawler/Editors/RedditEditorForm.resx
+++ /dev/null
@@ -1,1341 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- False
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
- WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP
- aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+
- 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8
- vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB
- cMaRN0UdBBkAAAAASUVORK5CYII=
-
-
-
-
- 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
- AAAASUVORK5CYII=
-
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
- xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
- tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
- AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
-
-
-
- AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAEb/AABG/wMARv8PAEX/IgBF/0AARf9fAEX/fQBF/5wARf+6AEX/zQBF
- /90ARf/rAEX/8wBF//gARf/8AEX//ABF//gARf/zAEX/6wBF/90ARf/NAEX/ugBF/5wARf99AEX/XwBF
- /0AARf8iAEb/DwBG/wMARv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH/wAAR/8DAEb/FABG/zQARf9dAEX/iwBF
- /7MARf/RAEX/5wBF//QARf/6AEX//gBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//gBF//oARf/0AEX/5wBF/9EARf+zAEX/iwBF/10ARv80AEb/FABH
- /wMAR/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASf8AAD//AABG
- /wYARv8iAEX/UwBF/4sARf/AAEX/5QBF//cARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX/9wBF/+UARf/AAEX/iwBF/1MARv8iAEb/BgA//wAASf8AAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAARv8AAEb/AwBF/x4ARv9WAEX/mQBF/9MARf/0AEX//gBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf/+AEX/9ABF/9MARf+ZAEb/VgBF/x4ARv8DAEb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH/wAAJv8AAEb/DABF/zsARf+FAEX/zABF
- //QARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/0AEX/zABF
- /4UARf87AEb/DAAm/wAAR/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH
- /wAASv8AAEb/EwBF/1AARf+nAEX/5gBF//0ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//QBF/+YARf+nAEX/UABG/xMASv8AAEf/AAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH/wAAT/8AAEb/FABF/1oARf+3AEX/8ABF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf/wAEX/twBF/1oARv8UAE//AABH/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI/wAAQ/8AAEX/DgBF
- /1QARf+2AEX/8gBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/8gBF
- /7YARf9UAEX/DgBD/wAASP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAARv8AAEb/BgBG/z4ARf+mAEX/8ABF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//AARf+mAEb/PgBG/wYARv8AAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR/8AAFP/AABG/yAARf+FAEX/4wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf/jAEX/hQBG/yAAU/8AAEf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAEb/AABG/wkARf9SAEX/wwBF//sARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/7AEX/wwBF
- /1IARv8JAEb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEf/AAA8/wAARv8eAEX/igBF/+sARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/6wBF/4oARv8eADz/AABH/wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG
- /wAARv8DAEX/QABF/7sARf/7AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/+wBF/7sARf9AAEf/AwBG/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARv8AAEb/CgBF/2MARf/cAEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF/9wARf9jAEb/CgBG
- /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARf8AAEX/AABF
- /xUARf+HAEX/7wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF/+8ARf+HAEX/FQBF/wAARf8AAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAEf/AABD/wAARf8hAEX/oQBF//gARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //gARf+hAEX/IQBD/wAAR/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH/wAAQv8AAEb/LQBF
- /7UARf/8AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//wARf+1AEX/LQBB/wAAR/8AAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAR/8AAD3/AABG/zMARf/AAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf/AAEb/MwA9/wAAR/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEf/AAA8/wAARf83AEX/xgBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/GAEX/NwA8
- /wAAR/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAABG/wAAQ/8AAEb/MwBF/8YARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/GAEb/MwBD/wAARv8AAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR/8AAET/AABF/ywARf/AAEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf/AAEX/LABE/wAAR/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAEX/AABF/wAARf8hAEX/tQBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf+1AEX/IQBF/wAARf8AAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARf8AAEX/FQBF/6EARf/9AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//0ARf+hAEX/FQBF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAEX/AABG/woARf+HAEX/+QBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//kARf+HAEb/CgBF
- /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG/wAASP8CAEX/YwBF/+4ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF/+4ARf9jAEj/AgBG/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAARv8AAEP/AABF/0AARf/cAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AET//wBE//8AQ///AEP//wBC//8AQv//AEP//wBD//8AQ///AEP//wBC//8AQv//AEP//wBD
- //8ARP//AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- /9wARf9AAEP/AABG/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABF/wAARf8eAEX/uwBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AET//wBD//8AQ///AUT//wZJ//8QUP//HFn//yxk//87b///SHj//1F/
- //9Xhf//W4f//1uH//9Xhf//UX///0h4//87b///K2T//xxZ//8QUP//Bkn//wFE//8AQ///AEP//wBE
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF/7sARf8eAEX/AAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAARv8AAEf/CABF/4oARf/7AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8AQ///AEP//wNG//8RUf//L2f//1WC
- //97n///n7j//7vN///Q3f//4en//+rw///x9f//9ff///b5///3+f//9/n///b5///19///8fX//+rw
- ///g6f//0N3//7rM//+euP//e57//1SB//8uZv//EVH//wNG//8AQ///AEP//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/+wBF/4oAR/8IAEb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEb/AABC/wAARf9TAEX/6wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE
- //8AQ///Bkn//yNe//9Wg///i6r//7vO///h6f//9fj///7+////////////////////////////////
- ///////////////////////////////////////////////////////////////////9/v//9fj//+Hp
- //+6zf//iqn//1WC//8iXf//Bkn//wBD//8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/6wBF/1MAQv8AAEb/AAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAARf8AAEX/IABF/8MARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBD//8CRf//HVn//1eE//+atf//1N////X3////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////9Pf//9Pf//+ZtP//VoP//xxZ
- //8CRf//AEP//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX/wwBF/yAARf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEb/AABH/wUARf+FAEX//ABF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD//8GSP//MGf//3uf
- ///J1///9Pf/////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////09///x9b//3qd//8uZv//Bkj//wBD//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/8AEX/hQBG
- /wUARv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI
- /wAARP8AAEb/PgBF/+IARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBD//8FR///MWj//42s///d5v///P3/////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////+/z//9zl//+Lqv//L2f//wRH//8AQ///AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/iAEX/PgBE/wAASP8AAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEX/AABG/w4ARf+lAEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8BRP//JmD//4Sl///b5f///f7/////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////////////////////39///a5P//gqT//yRf
- //8BRP//AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf+lAEb/DgBF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH
- /wAAQv8AAEX/VABF/+8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8AQ///DU3//1+K///M2v///P3/////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////7/P//ytn//1yI//8MTf//AEP//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF/+8ARf9UAEL/AABH/wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEb/AABG/xQARf+1AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AET//yZf//+ZtP//8fX/////////////////////
- //////////////////////////////////////////////////////////////////////////////39
- ///09///6O7//9vl///O2///xNT//77Q//++0P//w9P//87b///b5f//6O7///T3///9/f//////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////8PT//5ez//8kXv//AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF/7UARv8UAEb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG
- /wAARP8AAEX/WgBF//MARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AET//wJF
- //9Cdf//xNP///39////////////////////////////////////////////////////////////////
- ///////////////////9/v//7fL//8nX//+dt///dZr//1KA//84bP//JV///xtY//8VVP//ElL//xFS
- //8VVP//Glj//yVf//83bP//UoD//3SZ//+dt///yNf//+zx///9/v//////////////////////////
- /////////////////////////////////////////////////////////f3//8HS//9Ac///AkX//wBE
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/8wBF/1oARP8AAEb/AAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEX/AABF/xMARf+3AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBE//8FR///WYb//9zl////////////////////////////////
- ///////////////////////////////////////////////////4+v//y9n//4Sl//9Ddf//GVf//wZJ
- //8ARP//AEP//wBD//8AQ///AEP//wBD//8ARP//AET//wBD//8AQ///AEP//wBD//8AQv//AET//wZJ
- //8ZVv//QnT//4Ok///K2P//9/n/////////////////////////////////////////////////////
- /////////////////////////////9rk//9Wg///BEf//wBE//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX/twBF/xMARf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH
- /wAARP8AAEX/UABF//AARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//Bkj//2SN
- ///m7f//////////////////////////////////////////////////////////////////////////
- ///8/f//zNn//2qS//8fW///A0b//wBD//8ARP//AET//wBD//8AQv//AEP//wFF//8ER///CEr//wlL
- //8JS///CEn//wRH//8BRf//AEP//wBC//8AQ///AET//wBE//8AQ///A0b//x5a//9okf//ytj///v8
- /////////////////////////////////////////////////////////////////////////////+Tr
- //9hi///BUf//wBE//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/wAEX/UABE
- /wAAR/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEX/AABG/wwARf+nAEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wNG//9gi///6O7/////////////////////////////////////
- ////////////////////////////////////////8vX//5Sw//8lX///AUT//wBD//8ARP//AEP//wJF
- //8PT///KGL//0l5//9nkP//gqT//5ay//+kvP//q8H//6vB//+kvP//lrL//4Ok//9nkf//Snr//yli
- //8PT///AkX//wBD//8ARP//AEP//wFE//8kXv//ka7///H1////////////////////////////////
- /////////////////////////////////////////////+bt//9diP//A0b//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf+nAEb/DABF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAABI
- /wAARf8AAEX/OwBF/+YARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//Tn3//+Hp
- //////////////////////////////////////////////////////////////////////////////H1
- //93m///DE3//wBD//8ARP//AEP//w1O//88cP//faD//7bJ///c5f//8fX///r7////////////////
- //////////////////////////////r8///x9f//3Ob//7bK//9+of//PXH//w5O//8AQ///AET//wBD
- //8LTP//dJn///D0////////////////////////////////////////////////////////////////
- /////////////+Do//9Le///AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- /+YARf87AEX/AABG/wAAAAAAAAAAAAAAAAAAAAAAAEb/AABH/wMARf+FAEX//gBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEP//zBn///P3P//////////////////////////////////////////
- ////////////////////////////////////////uMv//xFQ//8AQ///AET//wpL//9MfP//qsH//+fu
- ///9/f//////////////////////////////////////////////////////////////////////////
- //////////////3+///o7v//rML//059//8KS///AET//wBD//8QTv//tMj/////////////////////
- /////////////////////////////////////////////////////////////8za//8tZf//AEP//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//gBF/4UASP8DAEb/AAAAAAAAAAAAAAAAAAAA
- AAAARf8AAEX/HgBF/8wARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8SUf//pr7/////
- ////////////////////////////////////////////////////////////////////////////////
- //++z///F1T//wBB//8ZVv//i6r//+vw////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////7PH//46s
- //8aV///AEL//xVT//+7zf//////////////////////////////////////////////////////////
- /////////////////////////////6O8//8QUP//AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/zABG/x4ARv8AAAAAAAAAAAAAAAAAAEb/AABF/wAARf9WAEX/9ABF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AUX//2eQ///19///////////////////////////////////////////
- //////////////////////////////////////////////X4//+euP//aZH//7DF///5+///////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////+vv//7LH//9pkf//m7b///X3////////////////
- ////////////////////////////////////////////////////////////////////////8/b//2ON
- //8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/0AEX/VgBF/wAARv8AAAAAAAAA
- AAAARv8AAEb/BgBF/5kARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD//8kXv//zdr/////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////7+///7/P///v//////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////v8///+/v//////////////////////////////////////////////////////////
- ////////////////////////////////////////ytj//yFd//8ARP//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf+ZAEb/BgBG/wAAAAAAAAAAAABF/wAARv8iAEX/0wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AUX//3ab///7/P//////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///6/P//cpj//wFF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF/9MARv8iAEX/AAAA
- AAAAR/8AAEX/AABF/1MARf/0AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8bWP//yNf/////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////E1P//GVf//wBE//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX/9ABF/1MARf8AAEf/AABG/wAASP8DAEX/iwBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEP//1SB///z9v//////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////L1//9Qfv//AEP//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/iwBI
- /wMARv8AAEb/AABG/xQARf/AAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ER///k6//////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////46s//8DR///AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/AAEb/FABG/wAARf8AAEb/NABF/+UARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AET//xVU///D0///////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////v9D//xNS//8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- /+UARv80AEX/AABF/wAARf9cAEX/+ABF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8AQ///LmX//+Hp
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////////////////////f5///KmP//wBD
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/+ABF/1wARf8AAEj/AwBF/4sARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBC//9Gd///8PT/////////////////////////////////////
- //////////////////////////////////////////////////////////////X3///Q3f//r8T//6a+
- //+4y///3uf///v8////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////+/z//97n//+3y///pr3//67E
- ///Q3f//9ff/////////////////////////////////////////////////////////////////////
- /////////////////////////////+/z//9DdP//AEL//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/iwBI/wMARv8PAEX/swBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEP//1WD
- ///2+P//////////////////////////////////////////////////////////////////////////
- //////////////3+///H1v//YIv//x9b//8LTP//CEr//w5P//8uZv//gaP//+Lq////////////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////+Lq//+Bo///Lmb//w5P//8ISv//C0z//x9b//9giv//x9b///39////////////////
- ////////////////////////////////////////////////////////////////////////9ff//1GA
- //8AQv//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf+zAEb/DwBF/yIARf/RAEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8AQ///XIj///j6////////////////////////////////
- ///////////////////////////////////////////////////9/v//rcP//ydh//8AQ///AEP//wBE
- //8ARP//AET//wBD//8ER///S3z//9bh////////////////////////////////////////////////
- ///////////////////////////////////////////////////W4f//S3v//wRH//8AQ///AET//wBE
- //8ARP//AEP//wBD//8mYP//rcL///3+////////////////////////////////////////////////
- ///////////////////////////////////3+f//WIX//wBD//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF/9EARf8iAEX/QABF/+cARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD
- //9Yhf//9/n/////////////////////////////////////////////////////////////////////
- /////////////8fW//8nYf//AEP//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8ARP//VoP//+vx
- ////////////////////////////////////////////////////////////////////////////////
- ////////6/H//1aD//8ARP//AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD//8nYP//x9b/////
- //////////////////////////////////////////////////////////////////////////////b4
- //9Ugv//AEL//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/5wBF/0AARf9fAEX/8wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEH//0p5///y9v//////////////////////////
- ///////////////////////////////////////////////////1+P//YIv//wBD//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBE//8LTP//oLn/////////////////////////////////////
- //////////////////////////////////////////////////+guf//C0z//wBE//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBD//9gi///9fj/////////////////////////////////////
- ////////////////////////////////////////8fX//0d2//8AQf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf/zAEX/XwBF/30ARf/6AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD
- //8PT///dZr///X4////////////////////////////////////////////////////////////////
- /////////////9Dd//8fW///AEP//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD
- //9Ugf//9Pf/////////////////////////////////////////////////////////////////////
- ////////9Pf//1SB//8AQ///AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEP//x9b
- ///Q3f//////////////////////////////////////////////////////////////////////////
- ///09///dZr//xFQ//8AQ///AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//oARf99AEX/nABF
- //4ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//K2T//6W9///y9v//////////////////////////
- ////////////////////////////////////////////////////////r8T//wtM//8ARP//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEP//y9m///j6///////////////////////////
- ///////////////////////////////////////////////////j6///L2b//wBD//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//C0z//6/E////////////////////////////////
- ///////////////////////////////////////////////////z9v//qL///y1l//8ARP//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//gBF/5wARf+6AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AET//zBn
- ///C0v//////////////////////////////////////////////////////////////////////////
- //////////////////+mvv//CEr//wBE//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8AQ///JmD//97n////////////////////////////////////////////////////////////////
- /////////////97n//8mYP//AEP//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE
- //8ISv//pr7/////////////////////////////////////////////////////////////////////
- ////////////////////////xNT//zNp//8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/ugBF
- /84ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBE//8aV///s8f/////////////////////////////////////
- /////////////////////////////////////////////////////////////7jL//8PT///AET//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD//84bf//6O7/////////////////////
- ////////////////////////////////////////////////////////6O7//zht//8AQ///AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AET//w9P//+4y///////////////////////////
- ////////////////////////////////////////////////////////////////////////tsr//xxY
- //8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/OAEX/3QBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//Akb//3Wa
- ///6+///////////////////////////////////////////////////////////////////////////
- ////////////////////////3uf//y9m//8AQ///AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEP//2mR///5+///////////////////////////////////////////////////////////
- ///////////////////5+///aZH//wBD//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8AQ///L2b//97n////////////////////////////////////////////////////////////////
- ///////////////////////////////////6/P//eZ3//wJG//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- /90ARf/rAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBE//8fW///zdr/////////////////////////////////////
- ///////////////////////////////////////////////////////////////////8/f//gqP//wRH
- //8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD//8aVv//vc//////////////////////
- //////////////////////////////////////////////////////////////////+9z///Glb//wBD
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AET//wRH//+Co////P3/////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///Q3P//Il3//wBD//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/6wBF//MARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEP//1KA
- ///09///////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////i6v//THz//wBE//8ARP//AEX//wBF//8ARf//AEX//wBF
- //8AQ///Ckv//4Kk///5+v//////////////////////////////////////////////////////////
- //////////////////////////////n6//+CpP//Ckv//wBD//8ARf//AEX//wBF//8ARf//AEX//wBE
- //8ARP//THz//+Lq////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////X4//9Wg///AEP//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf/zAEX/+ABF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//faD/////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///X4f//VoP//wpM//8AQv//AEP//wBD//8AQ///AEP//xlW//+CpP//7/T/////////////////////
- /////////////////////////////////////////////////////////////////////////////+/0
- //+CpP//GVb//wBD//8AQ///AEP//wBD//8AQ///Ckz//1aD///X4f//////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////4Kj//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//gARf/8AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wRH
- //+UsP//////////////////////////////////////////////////////////////////////////
- ///////////////////////////////////////////////////s8f//oLn//1SB//8vZv//JmD//zht
- //9okf//vc////j6////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////j6//+9z///aJH//zht//8mYP//L2b//1SB
- //+guf//6/H/////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////mLP//wVH//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//ABF//wARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//BEf//5ay////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////9Pf//+Pr///e5///6O7///n7////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////5+///6O7//97n///j6///9Pf/////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////////+atf//BUj//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/8AEX/+ABF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARP//f6L/////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////4Ol//8BRf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//gARf/zAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD//9Ugv//9Pf/////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////2+P//WIT//wBD//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/8wBF/+sARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEP//yBc///O2///////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////9Hd//8jXv//AEP//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf/rAEX/3QBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//Akb//3ic///6+///////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ///////////////////7/P//e5///wNG//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF/90ARf/OAEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARP//G1j//7XJ////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////7jL//8dWf//AET//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX/zgBF/7oARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//Mmn//8TU
- /////////////////////////////////////////////////////////////+vw///a5P///P3/////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////+/z//9jj///q7///////////////////////////////////////////
- ///////////////////H1v//NWv//wBE//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf+6AEX/nABF
- //4ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//LmX//6i////z9///////////////////////////
- //////////////z9///Q3P//Wob//y1l//+Usf//7fL/////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////+zx//+Sr///K2T//1eE
- ///O2////P3////////////////////////////////////////09///q8H//zBn//8ARP//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//gBF/5wARf99AEX/+gBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8AQ///ElH//12I//+wxf//4On///P2///3+f//9fj//+rw///H1v//gKL//yli//8BRf//AEP//wtM
- //9Ugv//vc7///f5////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////b4//+7zf//UoH//wpL//8AQ///AUX//yhh//9+of//x9b//+rw///1+P//9/n///P2
- ///h6f//ssb//1+K//8TUv//AEP//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/6AEX/fQBF
- /18ARf/0AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//AET//w5P//8uZv//THz//1mG
- //9Tgf//O2///xlX//8DRv//AEP//wBF//8ARf//AET//wBE//8YVv//aZH//8jX///3+f//////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////f5///H1v//Z5D//xdV//8ARP//AET//wBF
- //8ARf//AEP//wNG//8YVv//O2///1OB//9Zhv//TXz//y9m//8PT///AET//wBE//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//MARf9fAEX/QABF/+cARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AET//wBD//8AQv//AEP//wBC//8AQ///AET//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBE//8BRP//Hlr//2WO//+6zP//8PT/////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////+/0
- //+5zP//ZI3//x1Z//8BRP//AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8AQ///AEL//wBD
- //8AQv//AEP//wBE//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/5wBF
- /0AARf8iAEX/0QBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//AET//xRT
- //9Nff//lbH//9Pf///2+P//////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////
- ////////////////////////9vj//9Le//+TsP//THz//xRT//8ARP//AET//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/RAEX/IgBG/w8ARf+zAEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AET//wBD//8FSP//I17//1qG//+Usf//x9b//+rw
- ///6/P//////////////////////////////////////////////////////////////////////////
- //////////////////////////////////////////////r7///r8P//x9b//5Sw//9Zhf//I13//wVI
- //8AQ///AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- /7MARv8PAEb/AwBF/4sARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8AQ///AEP//wVH//8YVv//PnH//2iR//+Sr///uMv//9fi///p7///9Pf///r7
- ///+/v/////////////////////////////////////////////+/v//+vv///P2///n7v//1uH//7nM
- //+Sr///Z5D//z5x//8YVv//BUf//wBD//8AQ///AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/iwBI/wMARf8AAEX/XABF//gARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE
- //8AQ///AEP//wRH//8PUP//Il3//zlu//9Qf///ZY///3id//+IqP//kq///8fW///+/v///////+7y
- //+guf//iKj//3qd//9mj///Tn3//zZr//8hXP//EFD//wRH//8AQ///AEP//wBE//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //gARf9cAEX/AABF/wAARv80AEX/5QBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8AQ///AEP//wBC
- //8AQ///AET//wFF//8BRf//YIr///j6////////4+v//zNp//8AQ///AET//wBD//8AQv//AEP//wBD
- //8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/5QBG/zQARf8AAEb/AABG/xQARf/AAEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBC//84bf//6O7/////
- ///1+P//VYL//wBC//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf/AAEb/FABG/wAARv8AAEj/AwBF/4sARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AET//xpY///M2f////////////9/of//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF/4sASP8DAEb/AABH/wAARf8AAEX/UwBF
- //QARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//CUv//6e+
- /////////////6rA//8KS///AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf/0AEX/UwBF/wAAR/8AAAAAAABF/wAARv8iAEX/0wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//fJ////7+////////ztv//xxZ//8ARP//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF/9MARv8iAEX/AAAAAAAAAAAAAEb/AABH
- /wYARf+ZAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBD
- //9SgP//9Pf////////p7///Om///wBD//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/mQBH/wYARv8AAAAAAAAAAAAAR/8AAEX/AABG/1YARf/0AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEP//y5m///h6f////////j6//9hi///AEP//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//QARv9WAEX/AABH/wAAAAAAAAAAAAAA
- AAAARf8AAEX/HgBF/8wARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARP//FFP//8LS/////////////4yr//8CRv//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/zABG/x4ARv8AAAAAAAAAAAAAAAAAAAAAAABG/wAAR/8DAEX/hQBF//4ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8GSP//m7b/////////////tcn//w5P
- //8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//4ARf+FAEj/AwBG/wAAAAAAAAAAAAAA
- AAAAAAAAAEj/AABF/wAARf87AEX/5gBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBD//9vlv///P3////////X4v//JF7//wBD//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8AQ///Akb//wZI
- //8ER///AEP//wBD//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/5gBF/zsARf8AAEb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAEX/AABG/wwARf+nAEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEL//0d4///w9P///////+/z
- //9Fdv//AEL//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARP//F1X//1KA//+IqP//nrj//5Sw//9qkv//KmP//wNG//8ARP//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf+nAEb/DABF/wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAR/8AAET/AABF/1EARf/wAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8AQ///JV///9nj////////+/z//22U//8AQ///AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//A0b//0V3//+6zP//8/b/////
- //////////////r8///V4P//b5X//w5O//8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/8ABF/1EARP8AAEf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARf8AAEb/EwBF
- /7cARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8PT///t8r/////
- ////////mbT//wVI//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//9Nff//3eb////////////////////////////////////////09///haX//wtM
- //8ARP//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf+3AEb/EwBF/wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH/wAAQv8AAEX/WgBF//MARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wNG//+Prf/////////////A0f//E1L//wBE//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8AQ///JWD//8rZ////////////////
- ///////////////////////////////////v8///Wob//wBE//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/8wBF/1oAQv8AAEf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG
- /wAARv8UAEX/tQBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEP//2ON
- ///5+////////+Do//8sZf//AEP//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//92m////P3/////////////////////////////////////////////////////
- //+7zf//FFP//wBE//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf+1AEb/FABG/wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEf/AABC/wAARf9UAEX/7wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8AQ///PHD//+vw////////9Pf//1B///8AQ///AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8AQv//Dk3//7XJ////////////////
- /////////////////////////////////////////////+rw//88cP//AEP//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/7wBF/1QAQv8AAEf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAEX/AABG/w4ARf+lAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE
- //8dWv//0N3////////+/v//ep3//wBE//8ARf//AEX//wBF//8ARf//AEX//wBE//8ARP//AEP//wBD
- //8DRv//Dk///yNe//9Xg///3+f/////////////////////////////////////////////////////
- ////////9vj//1aD//8AQ///AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf+lAEb/DgBF/wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASP8AAET/AABF/z4ARf/iAEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AET//wpM//+swv////////////+lvf//CEr//wBE
- //8ARP//AEP//wBC//8BRf//Ckz//xxZ//87b///Yoz//42s//+2yv//2OP///D0///+/v//////////
- ///////////////////////////////////////////////////2+P//VoP//wBD//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/4gBF/z4ARP8AAEj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAARv8AAEb/BQBF/4UARf/8AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AUX//4Kj/////////////8rY//8ZVv//BUj//xZV//8xaP//VoP//4Ci//+rwf//z9z//+rv
- ///5+v//////////////////////////////////////////////////////////////////////////
- /////////////+rw//88cP//AEP//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//wARf+FAEb/BQBG/wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARf8AAEb/IABF
- /8MARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8AQv//V4T///b4////////7fL//5Cu
- //+dt///xdX//+Tr///1+P///v7///////////////////////////////////v8///u8///5+3///z9
- ////////////////////////////////////////////////////////u83//xRT//8ARP//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX/wwBG/yAARf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABH/wAAP/8AAEX/UwBF/+sARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBD//8yaf//5Ov//////////////v7///////////////////////////////////3+
- ///09///4On//8HR//+atf//bpX//0R2//9Bc///y9n/////////////////////////////////////
- /////////////+/z//9ahv//AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF/+sARf9TAD//AABH/wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG
- /wAAR/8IAEX/igBF//sARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AET//xZV///F1f//////////
- ///////////////////3+f//5+7//8vZ//+mvv//e57//1F///8tZf//FFP//wVI//8AQ///AEL//wBD
- //9Nff//3eb////////////////////////////////////////09///haX//wtM//8ARP//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf/7AEX/igBH/wgARv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABF/wAARf8eAEX/uwBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//BEf//3ic///t8v//7fL//9Xg//+xxv//iKj//12I//83bP//Glf//wlK
- //8BRP//AEP//wBD//8ARP//AEX//wBF//8ARf//AEX//wNG//9Gd///us3///P3////////////////
- ///6/P//1eD//2+V//8OTv//AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF/7sARf8eAEX/AAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAEb/AABD/wAARf9AAEX/3ABF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//Dk7//0J0
- //9Bc///IVz//wxN//8CRv//AEP//wBD//8ARP//AET//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBE//8YVf//VIL//4io//+dt///lLD//2qS//8qY///A0b//wBE//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf/cAEX/QABD/wAARv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEb/AABI/wIARf9jAEX/7gBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARP//AEP//wBD//8AQ///AET//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBE//8AQ///AkX//wZI
- //8ER///AEP//wBD//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/7gBF/2MASP8CAEb/AAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAEX/AABG/woARf+HAEX/+QBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //kARf+HAEb/CgBF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEX/AABF
- /xUARf+hAEX//QBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/9AEX/oQBF/xUARf8AAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARf8AAEX/AABF/yEARf+1AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- /7UARf8hAEX/AABF/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAR/8AAET/AABG/ywARf/AAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/AAEX/LABE/wAAR/8AAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARv8AAEP/AABG/zMARf/GAEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/xgBG
- /zMAQ/8AAEb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAR/8AADz/AABF/zcARf/GAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF/8YARf83ADz/AABH/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR/8AAD3/AABG
- /zMARf/AAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/AAEb/MwA9
- /wAAR/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR/8AAEH/AABF/y0ARf+1AEX//ABF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf/8AEX/tQBF/y0AQf8AAEf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAR/8AAEP/AABF/yEARf+hAEX/+ABF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/+ABF/6EARf8hAEP/AABH
- /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARf8AAEX/AABF/xUARf+HAEX/7wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF/+8ARf+HAEX/FQBF/wAARf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAEb/AABG/woARf9jAEX/3ABF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf/cAEX/YwBG/woARv8AAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEb/AABH
- /wMARf9AAEX/uwBF//sARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf/7AEX/uwBF/0AAR/8DAEb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEf/AAA8/wAARv8eAEX/igBF/+sARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/6wBF/4oARv8eAD//AABH/wAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAABG/wAARv8JAEX/UgBF/8MARf/7AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/+wBF
- /8MARf9SAEb/CQBG/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG/wAASP8AAEX/IABF
- /4UARf/jAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF/+MARf+FAEX/IABI/wAARv8AAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARv8AAEb/BgBG/z4ARf+mAEX/8ABF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//AARf+mAEb/PgBG
- /wYARv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAASP8AAEP/AABF/w4ARf9UAEX/tQBF//IARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//IARf+1AEX/VABF/w4AQ/8AAEj/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEf/AABP/wAARv8UAEX/WgBF
- /7cARf/wAEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//AARf+3AEX/WgBG/xQAT/8AAEf/AAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABF/wAARP8AAEX/EwBF/1AARf+nAEX/5gBF//0ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//QBF
- /+YARf+nAEX/UABF/xMARP8AAEX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAR/8AACf/AABG/wwARf87AEX/hQBF/8wARf/0AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX/9ABF/8wARf+FAEX/OwBG/wwAJ/8AAEf/AAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG/wAAR/8DAEb/HgBF
- /1YARf+YAEX/0wBF//QARf/+AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//4ARf/0AEX/0wBF/5gARf9WAEb/HgBH
- /wMARv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASf8AAD//AABG/wYARv8iAEX/UwBF/4sARf/AAEX/5QBF
- //cARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX/9wBF
- /+UARf/AAEX/iwBF/1MARv8iAEb/BgA//wAASf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAR/8AAEf/AwBG/xQARv80AEX/XQBF/4sARf+zAEX/0QBF/+cARf/0AEX/+gBF
- //4ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF//8ARf//AEX//wBF
- //4ARf/6AEX/9ABF/+cARf/RAEX/swBF/4sARf9dAEb/NABG/xQAR/8DAEf/AAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAR/8AAEf/AwBG/w8ARf8iAEX/QABF/18ARf99AEX/nABF/7oARf/NAEX/3QBF/+sARf/zAEX/+ABF
- //wARf/8AEX/+ABF//MARf/rAEX/3QBF/80ARf+6AEX/nABF/30ARf9fAEX/QABF/yIARv8PAEf/AwBH
- /wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAA////////wAAAA////////////////AAAAAA//////////////+AAAAAA
- B/////////////8AAAAAAAD////////////8AAAAAAAAP///////////8AAAAAAAAA///////////8AA
- AAAAAAAD//////////8AAAAAAAAAAP/////////8AAAAAAAAAAA/////////+AAAAAAAAAAAH///////
- /+AAAAAAAAAAAAf////////AAAAAAAAAAAAD////////AAAAAAAAAAAAAP///////gAAAAAAAAAAAAB/
- //////wAAAAAAAAAAAAAP//////4AAAAAAAAAAAAAB//////8AAAAAAAAAAAAAAP/////+AAAAAAAAAA
- AAAAB//////AAAAAAAAAAAAAAAP/////gAAAAAAAAAAAAAAB/////wAAAAAAAAAAAAAAAP////4AAAAA
- AAAAAAAAAAB////8AAAAAAAAAAAAAAAAP///+AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAP///w
- AAAAAAAAAAAAAAAAD///4AAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA
- A///gAAAAAAAAAAAAAAAAAH//wAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA
- AAAAAAB//gAAAAAAAAAAAAAAAAAAf/wAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAA/+AAAAAAA
- AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/wAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD+AA
- AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAA
- AAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
- AAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAA
- AAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA+AA
- AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAB/AAAAAAAAAAAAAAAAAA
- AA/wAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAB/8AAAAAAAAAAAA
- AAAAAAA//AAAAAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAAAAAAAAB//wAAAAAA
- AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP//gAAAAAAAAAAAAAAAAAH//8AAAAAAAAAAAAAAAAAD///A
- AAAAAAAAAAAAAAAAA///4AAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAA
- D///+AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAA////+AAAAAAAAAAAAAAAAf////wAAAAAAAAAA
- AAAAAP////+AAAAAAAAAAAAAAAH/////wAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAAAB//////wAAAA
- AAAAAAAAAA//////+AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP//////+AAAAAAAAAAAAAH//////
- /wAAAAAAAAAAAAD////////AAAAAAAAAAAAD////////4AAAAAAAAAAAB/////////gAAAAAAAAAAB//
- ///////8AAAAAAAAAAA//////////wAAAAAAAAAA///////////AAAAAAAAAA///////////8AAAAAAA
- AA////////////wAAAAAAAA/////////////AAAAAAAA/////////////+AAAAAAB//////////////8
- AAAAAD///////////////8AAAAP///////8=
-
-
-
\ No newline at end of file
diff --git a/SCrawler/Editors/RedditEditorForm.vb b/SCrawler/Editors/RedditEditorForm.vb
deleted file mode 100644
index 92605a3..0000000
--- a/SCrawler/Editors/RedditEditorForm.vb
+++ /dev/null
@@ -1,76 +0,0 @@
-' Copyright (C) 2022 Andy
-' This program is free software: you can redistribute it and/or modify
-' it under the terms of the GNU General Public License as published by
-' the Free Software Foundation, either version 3 of the License, or
-' (at your option) any later version.
-'
-' This program is distributed in the hope that it will be useful,
-' but WITHOUT ANY WARRANTY
-Imports PersonalUtilities.Forms
-Imports PersonalUtilities.Forms.Controls
-Imports PersonalUtilities.Forms.Controls.Base
-Imports PersonalUtilities.Forms.Toolbars
-Imports PersonalUtilities.Tools.WEB
-Namespace Editors
- Friend Class RedditEditorForm : Implements IOkCancelToolbar
- Private ReadOnly MyDefs As DefaultFormProps
- Friend Sub New()
- InitializeComponent()
- MyDefs = New DefaultFormProps
- End Sub
- Private Sub RedditEditorForm_Load(sender As Object, e As EventArgs) Handles Me.Load
- Try
- With MyDefs
- .MyViewInitialize(Me, Settings.Design, True)
- .AddOkCancelToolbar()
- .DelegateClosingChecker()
- With Settings.Site(Sites.Reddit)
- TXT_PATH.Text = .Path
- If .Responser.Cookies Is Nothing Then .Responser.Cookies = New CookieKeeper(.Responser.CookiesDomain)
- End With
- SetCookieText()
- TextBoxExtended.SetFalseDetector(Me, True, AddressOf .Detector)
- .EndLoaderOperations()
- End With
- Catch ex As Exception
- MyDefs.InvokeLoaderError(ex)
- End Try
- End Sub
- Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK
- With Settings.Site(Sites.Reddit)
- If TXT_PATH.IsEmptyString Then .Path = Nothing Else .Path = TXT_PATH.Text
- .Update()
- End With
- MyDefs.CloseForm()
- End Sub
- Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel
- MyDefs.CloseForm(DialogResult.Cancel)
- End Sub
- Private Sub TXT_PATH_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_PATH.ActionOnButtonClick
- If Sender.DefaultButton = ActionButton.DefaultButtons.Open Then
- Dim f As SFile = SFile.SelectPath(Settings.Site(Sites.Reddit).Path)
- If Not f.IsEmptyString Then TXT_PATH.Text = f
- End If
- End Sub
- Private Sub TXT_COOKIES_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_COOKIES.ActionOnButtonClick
- If Sender.DefaultButton = ActionButton.DefaultButtons.Edit Then
- Using f As New CookieListForm(Settings.Site(Sites.Reddit).Responser.Cookies) : f.ShowDialog() : End Using
- SetCookieText()
- End If
- End Sub
- Private Sub TXT_COOKIES_ActionOnButtonClearClick() Handles TXT_COOKIES.ActionOnButtonClearClick
- With Settings.Site(Sites.Reddit).Responser
- If Not .Cookies Is Nothing Then .Cookies.Dispose()
- .Cookies = New CookieKeeper(.CookiesDomain)
- End With
- SetCookieText()
- End Sub
- Private Sub SetCookieText()
- Dim c% = 0
- With Settings.Site(Sites.Reddit).Responser
- If Not .Cookies Is Nothing Then c = .Cookies.Count
- End With
- TXT_COOKIES.Text = $"{c} cookies"
- End Sub
- End Class
-End Namespace
\ No newline at end of file
diff --git a/SCrawler/Editors/TwitterEditorForm.Designer.vb b/SCrawler/Editors/SiteEditorForm.Designer.vb
similarity index 81%
rename from SCrawler/Editors/TwitterEditorForm.Designer.vb
rename to SCrawler/Editors/SiteEditorForm.Designer.vb
index b4f8f68..3064a4e 100644
--- a/SCrawler/Editors/TwitterEditorForm.Designer.vb
+++ b/SCrawler/Editors/SiteEditorForm.Designer.vb
@@ -1,6 +1,6 @@
Namespace Editors
- Partial Friend Class TwitterEditorForm : Inherits System.Windows.Forms.Form
+ Partial Friend Class SiteEditorForm : Inherits System.Windows.Forms.Form
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
@@ -14,21 +14,20 @@
Private components As System.ComponentModel.IContainer
Private Sub InitializeComponent()
- Dim TP_MAIN As System.Windows.Forms.TableLayoutPanel
Dim ActionButton1 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
- Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(TwitterEditorForm))
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(SiteEditorForm))
Dim ActionButton2 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim ActionButton3 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim ActionButton4 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim ActionButton5 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim ActionButton6 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Me.TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
Me.TXT_PATH = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_COOKIES = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_TOKEN = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.TXT_AUTH = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
- TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
- TP_MAIN.SuspendLayout()
+ Me.TP_MAIN.SuspendLayout()
CType(Me.TXT_PATH, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TXT_COOKIES, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.TXT_TOKEN, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -39,23 +38,23 @@
'
'TP_MAIN
'
- TP_MAIN.ColumnCount = 1
- TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
- TP_MAIN.Controls.Add(Me.TXT_PATH, 0, 0)
- TP_MAIN.Controls.Add(Me.TXT_COOKIES, 0, 1)
- TP_MAIN.Controls.Add(Me.TXT_TOKEN, 0, 2)
- TP_MAIN.Controls.Add(Me.TXT_AUTH, 0, 3)
- TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
- TP_MAIN.Location = New System.Drawing.Point(0, 0)
- TP_MAIN.Name = "TP_MAIN"
- TP_MAIN.RowCount = 4
- TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
- TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
- TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
- TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
- TP_MAIN.Size = New System.Drawing.Size(544, 107)
- TP_MAIN.TabIndex = 0
+ Me.TP_MAIN.ColumnCount = 1
+ Me.TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
+ Me.TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 20.0!))
+ Me.TP_MAIN.Controls.Add(Me.TXT_PATH, 0, 0)
+ Me.TP_MAIN.Controls.Add(Me.TXT_COOKIES, 0, 1)
+ Me.TP_MAIN.Controls.Add(Me.TXT_TOKEN, 0, 2)
+ Me.TP_MAIN.Controls.Add(Me.TXT_AUTH, 0, 3)
+ Me.TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.TP_MAIN.Location = New System.Drawing.Point(0, 0)
+ Me.TP_MAIN.Name = "TP_MAIN"
+ Me.TP_MAIN.RowCount = 4
+ Me.TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
+ Me.TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
+ Me.TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
+ Me.TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
+ Me.TP_MAIN.Size = New System.Drawing.Size(544, 132)
+ Me.TP_MAIN.TabIndex = 0
'
'TXT_PATH
'
@@ -89,7 +88,7 @@
Me.TXT_COOKIES.CaptionText = "Cookies"
Me.TXT_COOKIES.ClearTextByButtonClear = False
Me.TXT_COOKIES.Dock = System.Windows.Forms.DockStyle.Fill
- Me.TXT_COOKIES.Location = New System.Drawing.Point(3, 29)
+ Me.TXT_COOKIES.Location = New System.Drawing.Point(3, 36)
Me.TXT_COOKIES.Name = "TXT_COOKIES"
Me.TXT_COOKIES.Size = New System.Drawing.Size(538, 22)
Me.TXT_COOKIES.TabIndex = 1
@@ -105,7 +104,7 @@
Me.TXT_TOKEN.CaptionToolTipEnabled = True
Me.TXT_TOKEN.CaptionToolTipText = "Set token from [x-csrf-token] response header"
Me.TXT_TOKEN.Dock = System.Windows.Forms.DockStyle.Fill
- Me.TXT_TOKEN.Location = New System.Drawing.Point(3, 55)
+ Me.TXT_TOKEN.Location = New System.Drawing.Point(3, 69)
Me.TXT_TOKEN.Name = "TXT_TOKEN"
Me.TXT_TOKEN.Size = New System.Drawing.Size(538, 22)
Me.TXT_TOKEN.TabIndex = 2
@@ -121,7 +120,7 @@
Me.TXT_AUTH.CaptionToolTipText = "Set authorization from [authorization] response header. This field must start fro" &
"m [Bearer] key word"
Me.TXT_AUTH.Dock = System.Windows.Forms.DockStyle.Fill
- Me.TXT_AUTH.Location = New System.Drawing.Point(3, 81)
+ Me.TXT_AUTH.Location = New System.Drawing.Point(3, 102)
Me.TXT_AUTH.Name = "TXT_AUTH"
Me.TXT_AUTH.Size = New System.Drawing.Size(538, 22)
Me.TXT_AUTH.TabIndex = 3
@@ -131,8 +130,8 @@
'
'CONTAINER_MAIN.ContentPanel
'
- Me.CONTAINER_MAIN.ContentPanel.Controls.Add(TP_MAIN)
- Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(544, 107)
+ Me.CONTAINER_MAIN.ContentPanel.Controls.Add(Me.TP_MAIN)
+ Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(544, 132)
Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False
Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
@@ -142,24 +141,23 @@
Me.CONTAINER_MAIN.TabIndex = 0
Me.CONTAINER_MAIN.TopToolStripPanelVisible = False
'
- 'TwitterEditorForm
+ 'SiteEditorForm
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(544, 132)
Me.Controls.Add(Me.CONTAINER_MAIN)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
- Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.KeyPreview = True
Me.MaximizeBox = False
Me.MaximumSize = New System.Drawing.Size(560, 171)
Me.MinimizeBox = False
Me.MinimumSize = New System.Drawing.Size(560, 171)
- Me.Name = "TwitterEditorForm"
+ Me.Name = "SiteEditorForm"
Me.ShowInTaskbar = False
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
- Me.Text = "Twitter"
- TP_MAIN.ResumeLayout(False)
+ Me.Text = "Site"
+ Me.TP_MAIN.ResumeLayout(False)
CType(Me.TXT_PATH, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TXT_COOKIES, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.TXT_TOKEN, System.ComponentModel.ISupportInitialize).EndInit()
@@ -176,5 +174,6 @@
Private WithEvents TXT_COOKIES As PersonalUtilities.Forms.Controls.TextBoxExtended
Private WithEvents TXT_TOKEN As PersonalUtilities.Forms.Controls.TextBoxExtended
Private WithEvents TXT_AUTH As PersonalUtilities.Forms.Controls.TextBoxExtended
+ Private WithEvents TP_MAIN As TableLayoutPanel
End Class
End Namespace
\ No newline at end of file
diff --git a/SCrawler/Editors/TwitterEditorForm.resx b/SCrawler/Editors/SiteEditorForm.resx
similarity index 92%
rename from SCrawler/Editors/TwitterEditorForm.resx
rename to SCrawler/Editors/SiteEditorForm.resx
index 59ee30e..42ac1a2 100644
--- a/SCrawler/Editors/TwitterEditorForm.resx
+++ b/SCrawler/Editors/SiteEditorForm.resx
@@ -117,9 +117,6 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- False
-
@@ -220,19 +217,6 @@
xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
-
-
-
-
- AAABAAEAICAAAAEAIADLAQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAAgAAAAIAgGAAAAc3p69AAAAZJJ
- REFUeAFiGDZgFMguBPBazwB6BEAUx2PbttHFqmJ2sW1UsbrY6NLFrmL2sW3jbMz9z1rNqvh9wry3QnQ5
- LMRdRCAez7AVDQ1+3w2lc9+UwXwP4W3wFGIiBhPQANNxDScKDhgDwWIX4XXxCWIjDekQ/EKjgkP2QJCO
- DcoCRyAKbzAY07Ewd8hRSAHnUMtBeA0kQxQSIXiM6rmD9kKK+I7pKGlRYAzEhQeoX3DQWIiJJ5iFSgYF
- 5kCUHqFy0UHl8QViIQ6nsAjdUBujIUrXzVbncKRCFFIgSheMwtdiClaqh+odNiqwDxKSFWarX0LS16hA
- SdyHBCwa5c12wk74DwnQMbszW1c8gwRksF2B2uiIdfgL8dETlLQr0CLAw3CM06vblgDCL2kur6VxAuKT
- CDTT3mSUxDx8hHiQipGqcIMi3XEPopSO6V7DR+ApRCkJU9yElkEvrPVwPniLXprQgbiNLx4PwXjsQGW3
- 9/TTcQfpEIVf2KLa023KtMJSHMMj/IEgFf/xEhexGQNQJmMMQxmMAgBkarVAZoTAyQAAAABJRU5ErkJg
- gg==
\ No newline at end of file
diff --git a/SCrawler/Editors/SiteEditorForm.vb b/SCrawler/Editors/SiteEditorForm.vb
new file mode 100644
index 0000000..755bac6
--- /dev/null
+++ b/SCrawler/Editors/SiteEditorForm.vb
@@ -0,0 +1,141 @@
+' Copyright (C) 2022 Andy
+' This program is free software: you can redistribute it and/or modify
+' it under the terms of the GNU General Public License as published by
+' the Free Software Foundation, either version 3 of the License, or
+' (at your option) any later version.
+'
+' This program is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY
+Imports PersonalUtilities.Forms
+Imports PersonalUtilities.Forms.Controls
+Imports PersonalUtilities.Forms.Controls.Base
+Imports PersonalUtilities.Forms.Toolbars
+Imports PersonalUtilities.Tools.WEB
+Namespace Editors
+ Friend Class SiteEditorForm : Implements IOkCancelToolbar
+ Private ReadOnly MyDefs As DefaultFormProps(Of FieldsChecker)
+ Private ReadOnly MySite As Sites
+ Friend Sub New(ByVal s As Sites)
+ InitializeComponent()
+ MySite = s
+ MyDefs = New DefaultFormProps(Of FieldsChecker)
+ End Sub
+ Private Sub SiteEditorForm_Load(sender As Object, e As EventArgs) Handles Me.Load
+ Try
+ With MyDefs
+ .MyViewInitialize(Me, Settings.Design, True)
+ .AddOkCancelToolbar()
+ .DelegateClosingChecker()
+ Select Case MySite
+ Case Sites.Reddit : Icon = My.Resources.RedditIcon
+ Case Sites.Twitter : Icon = My.Resources.TwitterIcon
+ Case Sites.Instagram : Icon = My.Resources.InstagramIcon
+ Case Else : ShowIcon = False
+ End Select
+ Text = MySite.ToString
+
+ With Settings(MySite)
+ TXT_PATH.Text = .Path
+ With .Responser
+ If .Cookies Is Nothing Then .Cookies = New CookieKeeper(.CookiesDomain)
+ SetCookieText()
+ If MySite = Sites.Twitter Then
+ TXT_TOKEN.Text = .Headers(API.Base.SiteSettings.Header_Twitter_Token)
+ TXT_AUTH.Text = .Headers(API.Base.SiteSettings.Header_Twitter_Authorization)
+ End If
+ End With
+ If MySite = Sites.Instagram Then TXT_TOKEN.Text = .InstaHash
+ End With
+
+ If Not MySite = Sites.Twitter Then
+ Dim p As PaddingE = PaddingE.GetOf({TP_MAIN})
+ Dim s As New Size(Size.Width, Size.Height - p.Vertical - TXT_AUTH.NeededHeight)
+ TXT_AUTH.Visible = False
+ If Not MySite = Sites.Instagram Then
+ s.Height -= (p.Vertical + TXT_TOKEN.NeededHeight)
+ TXT_TOKEN.Visible = False
+ Else
+ TXT_TOKEN.CaptionText = "Hash"
+ TXT_TOKEN.CaptionToolTipText = "Instagram session hash"
+ TXT_TOKEN.Buttons.Clear()
+ TXT_TOKEN.Buttons.AddRange({ActionButton.DefaultButtons.Refresh, ActionButton.DefaultButtons.Clear})
+ End If
+ With TP_MAIN
+ If Not MySite = Sites.Instagram Then .RowStyles(2).Height = 0
+ .RowStyles(3).Height = 0
+ End With
+ MinimumSize = s
+ Size = s
+ MaximumSize = s
+ End If
+
+ .MyFieldsChecker = New FieldsChecker
+ With .MyFieldsChecker
+ If MySite = Sites.Twitter Then
+ .AddControl(Of String)(TXT_TOKEN, TXT_TOKEN.CaptionText)
+ .AddControl(Of String)(TXT_AUTH, TXT_AUTH.CaptionText)
+ End If
+ .EndLoaderOperations()
+ End With
+ TextBoxExtended.SetFalseDetector(Me, True, AddressOf .Detector)
+ .EndLoaderOperations()
+ End With
+ Catch ex As Exception
+ MyDefs.InvokeLoaderError(ex)
+ End Try
+ End Sub
+ Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK
+ If MyDefs.MyFieldsChecker.AllParamsOK Then
+ With Settings(MySite)
+ If TXT_PATH.IsEmptyString Then .Path = Nothing Else .Path = TXT_PATH.Text
+ Select Case MySite
+ Case Sites.Twitter
+ With .Responser
+ .Headers(API.Base.SiteSettings.Header_Twitter_Token) = TXT_TOKEN.Text
+ .Headers(API.Base.SiteSettings.Header_Twitter_Authorization) = TXT_AUTH.Text
+ End With
+ Case Sites.Instagram
+ .InstaHash.Value = TXT_TOKEN.Text
+ End Select
+ .Update()
+ End With
+ MyDefs.CloseForm()
+ End If
+ End Sub
+ Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel
+ MyDefs.CloseForm(DialogResult.Cancel)
+ End Sub
+ Private Sub TXT_TOKEN_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_TOKEN.ActionOnButtonClick
+ If Sender.DefaultButton = ActionButton.DefaultButtons.Refresh Then
+ With Settings(Sites.Instagram)
+ If .GatherInstaHash() Then
+ .InstaHashUpdateRequired.Value = Not .InstaHash.IsEmptyString
+ TXT_TOKEN.Text = .InstaHash
+ End If
+ End With
+ End If
+ End Sub
+ Private Sub TXT_PATH_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_PATH.ActionOnButtonClick
+ If Sender.DefaultButton = ActionButton.DefaultButtons.Open Then
+ Dim f As SFile = SFile.SelectPath(Settings(MySite).Path)
+ If Not f.IsEmptyString Then TXT_PATH.Text = f
+ End If
+ End Sub
+ Private Sub TXT_COOKIES_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_COOKIES.ActionOnButtonClick
+ If Sender.DefaultButton = ActionButton.DefaultButtons.Edit Then
+ Using f As New CookieListForm(Settings(MySite).Responser.Cookies) With {.MyDesignXML = Settings.Design} : f.ShowDialog() : End Using
+ SetCookieText()
+ End If
+ End Sub
+ Private Sub TXT_COOKIES_ActionOnButtonClearClick() Handles TXT_COOKIES.ActionOnButtonClearClick
+ With Settings(MySite).Responser
+ If Not .Cookies Is Nothing Then .Cookies.Dispose()
+ .Cookies = New CookieKeeper(.CookiesDomain)
+ End With
+ SetCookieText()
+ End Sub
+ Private Sub SetCookieText()
+ TXT_COOKIES.Text = $"{If(Settings(MySite).Responser.Cookies?.Count, 0)} cookies"
+ End Sub
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/SCrawler/Editors/SiteSelectionForm.Designer.vb b/SCrawler/Editors/SiteSelectionForm.Designer.vb
new file mode 100644
index 0000000..8ffb952
--- /dev/null
+++ b/SCrawler/Editors/SiteSelectionForm.Designer.vb
@@ -0,0 +1,107 @@
+' Copyright (C) 2022 Andy
+' This program is free software: you can redistribute it and/or modify
+' it under the terms of the GNU General Public License as published by
+' the Free Software Foundation, either version 3 of the License, or
+' (at your option) any later version.
+'
+' This program is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY
+Namespace Editors
+
+ Partial Friend Class SiteSelectionForm : Inherits System.Windows.Forms.Form
+
+ Protected Overrides Sub Dispose(ByVal disposing As Boolean)
+ Try
+ If disposing AndAlso components IsNot Nothing Then
+ components.Dispose()
+ End If
+ Finally
+ MyBase.Dispose(disposing)
+ End Try
+ End Sub
+ Private components As System.ComponentModel.IContainer
+
+ Private Sub InitializeComponent()
+ Dim CONTAINER_MAIN As System.Windows.Forms.ToolStripContainer
+ Dim ActionButton1 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(SiteSelectionForm))
+ Dim ListColumn1 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
+ Dim ListColumn2 As PersonalUtilities.Forms.Controls.Base.ListColumn = New PersonalUtilities.Forms.Controls.Base.ListColumn()
+ Me.CMB_SITES = New PersonalUtilities.Forms.Controls.ComboBoxExtended()
+ CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
+ CONTAINER_MAIN.ContentPanel.SuspendLayout()
+ CONTAINER_MAIN.SuspendLayout()
+ CType(Me.CMB_SITES, System.ComponentModel.ISupportInitialize).BeginInit()
+ Me.SuspendLayout()
+ '
+ 'CONTAINER_MAIN
+ '
+ '
+ 'CONTAINER_MAIN.ContentPanel
+ '
+ CONTAINER_MAIN.ContentPanel.Controls.Add(Me.CMB_SITES)
+ CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(284, 276)
+ CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
+ CONTAINER_MAIN.LeftToolStripPanelVisible = False
+ CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
+ CONTAINER_MAIN.Name = "CONTAINER_MAIN"
+ CONTAINER_MAIN.RightToolStripPanelVisible = False
+ CONTAINER_MAIN.Size = New System.Drawing.Size(284, 276)
+ CONTAINER_MAIN.TabIndex = 0
+ CONTAINER_MAIN.TopToolStripPanelVisible = False
+ '
+ 'CMB_SITES
+ '
+ ActionButton1.BackgroundImage = CType(resources.GetObject("ActionButton1.BackgroundImage"), System.Drawing.Image)
+ ActionButton1.Index = 0
+ ActionButton1.Name = "BTT_COMBOBOX_ARROW"
+ ActionButton1.Visible = False
+ Me.CMB_SITES.Buttons.Add(ActionButton1)
+ ListColumn1.DisplayMember = True
+ ListColumn1.Name = "COL_DISPLAY"
+ ListColumn1.Text = "Site"
+ ListColumn1.Width = -1
+ ListColumn2.Name = "COL_VALUE"
+ ListColumn2.Text = "Value"
+ ListColumn2.ValueMember = True
+ ListColumn2.Visible = False
+ Me.CMB_SITES.Columns.Add(ListColumn1)
+ Me.CMB_SITES.Columns.Add(ListColumn2)
+ Me.CMB_SITES.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.CMB_SITES.ListCheckBoxes = True
+ Me.CMB_SITES.ListDropDownStyle = PersonalUtilities.Forms.Controls.ComboBoxExtended.ListMode.Simple
+ Me.CMB_SITES.ListGridVisible = True
+ Me.CMB_SITES.ListMultiSelect = True
+ Me.CMB_SITES.Location = New System.Drawing.Point(0, 0)
+ Me.CMB_SITES.Name = "CMB_SITES"
+ Me.CMB_SITES.Size = New System.Drawing.Size(286, 277)
+ Me.CMB_SITES.TabIndex = 0
+ '
+ 'SiteSelectionForm
+ '
+ Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
+ Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
+ Me.ClientSize = New System.Drawing.Size(284, 276)
+ Me.Controls.Add(CONTAINER_MAIN)
+ Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
+ Me.KeyPreview = True
+ Me.MaximizeBox = False
+ Me.MaximumSize = New System.Drawing.Size(300, 315)
+ Me.MinimizeBox = False
+ Me.MinimumSize = New System.Drawing.Size(300, 315)
+ Me.Name = "SiteSelectionForm"
+ Me.ShowIcon = False
+ Me.ShowInTaskbar = False
+ Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
+ Me.Text = "Select Site"
+ CONTAINER_MAIN.ContentPanel.ResumeLayout(False)
+ CONTAINER_MAIN.ResumeLayout(False)
+ CONTAINER_MAIN.PerformLayout()
+ CType(Me.CMB_SITES, System.ComponentModel.ISupportInitialize).EndInit()
+ Me.ResumeLayout(False)
+
+ End Sub
+
+ Private WithEvents CMB_SITES As PersonalUtilities.Forms.Controls.ComboBoxExtended
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/SCrawler/Editors/SiteSelectionForm.resx b/SCrawler/Editors/SiteSelectionForm.resx
new file mode 100644
index 0000000..b335496
--- /dev/null
+++ b/SCrawler/Editors/SiteSelectionForm.resx
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ False
+
+
+
+
+ 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
+ AAAASUVORK5CYII=
+
+
+
\ No newline at end of file
diff --git a/SCrawler/Editors/SiteSelectionForm.vb b/SCrawler/Editors/SiteSelectionForm.vb
new file mode 100644
index 0000000..fd14c78
--- /dev/null
+++ b/SCrawler/Editors/SiteSelectionForm.vb
@@ -0,0 +1,68 @@
+' Copyright (C) 2022 Andy
+' This program is free software: you can redistribute it and/or modify
+' it under the terms of the GNU General Public License as published by
+' the Free Software Foundation, either version 3 of the License, or
+' (at your option) any later version.
+'
+' This program is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY
+Imports PersonalUtilities.Forms
+Imports PersonalUtilities.Forms.Toolbars
+Imports PersonalUtilities.Forms.Controls.Base
+Namespace Editors
+ Friend Class SiteSelectionForm : Implements IOkCancelToolbar
+ Private ReadOnly MyDefs As DefaultFormProps
+ Friend ReadOnly Property SelectedSites As List(Of Sites)
+ Friend Sub New(ByVal s As List(Of Sites))
+ InitializeComponent()
+ SelectedSites.ListAddList(s)
+ If SelectedSites Is Nothing Then SelectedSites = New List(Of Sites)
+ MyDefs = New DefaultFormProps
+ End Sub
+ Private Sub SiteSelectionForm_Load(sender As Object, e As EventArgs) Handles Me.Load
+ With MyDefs
+ .MyViewInitialize(Me, Settings.Design, True)
+ .DelegateClosingChecker()
+ .AddOkCancelToolbar()
+ CMB_SITES.BeginUpdate()
+ CMB_SITES.Items.AddRange({New ListItem({Sites.Reddit.ToString, CInt(Sites.Reddit)}),
+ New ListItem({Sites.Twitter.ToString, CInt(Sites.Twitter)}),
+ New ListItem({Sites.Instagram.ToString, CInt(Sites.Instagram)})})
+ Dim l As New List(Of Integer)
+ If SelectedSites.Count > 0 Then
+ If SelectedSites.Contains(Sites.Reddit) Then l.Add(0)
+ If SelectedSites.Contains(Sites.Twitter) Then l.Add(1)
+ If SelectedSites.Contains(Sites.Instagram) Then l.Add(2)
+ End If
+ CMB_SITES.EndUpdate()
+ If l.Count > 0 Then CMB_SITES.ListCheckedIndexes = l : l.Clear()
+ .EndLoaderOperations()
+ .MyOkCancel.EnableOK = True
+ End With
+ End Sub
+ Private Sub SiteSelectionForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
+ SelectedSites.Clear()
+ End Sub
+ Public Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK
+ Try
+ SelectedSites.Clear()
+ Dim l As List(Of Integer) = CMB_SITES.ListCheckedIndexes
+ If l.ListExists Then
+ For Each i% In l
+ Select Case i
+ Case 0 : SelectedSites.Add(Sites.Reddit)
+ Case 1 : SelectedSites.Add(Sites.Twitter)
+ Case 2 : SelectedSites.Add(Sites.Instagram)
+ End Select
+ Next
+ End If
+ MyDefs.CloseForm()
+ Catch ex As Exception
+ ErrorsDescriber.Execute(EDP.LogMessageValue, ex)
+ End Try
+ End Sub
+ Public Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel
+ MyDefs.CloseForm(DialogResult.Cancel)
+ End Sub
+ End Class
+End Namespace
\ No newline at end of file
diff --git a/SCrawler/Editors/TwitterEditorForm.vb b/SCrawler/Editors/TwitterEditorForm.vb
deleted file mode 100644
index 93ccafc..0000000
--- a/SCrawler/Editors/TwitterEditorForm.vb
+++ /dev/null
@@ -1,92 +0,0 @@
-' Copyright (C) 2022 Andy
-' This program is free software: you can redistribute it and/or modify
-' it under the terms of the GNU General Public License as published by
-' the Free Software Foundation, either version 3 of the License, or
-' (at your option) any later version.
-'
-' This program is distributed in the hope that it will be useful,
-' but WITHOUT ANY WARRANTY
-Imports PersonalUtilities.Forms
-Imports PersonalUtilities.Forms.Controls
-Imports PersonalUtilities.Forms.Controls.Base
-Imports PersonalUtilities.Forms.Toolbars
-Imports PersonalUtilities.Tools.WEB
-Namespace Editors
- Friend Class TwitterEditorForm : Implements IOkCancelToolbar
- Private ReadOnly MyDefs As DefaultFormProps(Of FieldsChecker)
- Friend Sub New()
- InitializeComponent()
- MyDefs = New DefaultFormProps(Of FieldsChecker)
- End Sub
- Private Sub TwitterEditorForm_Load(sender As Object, e As EventArgs) Handles Me.Load
- Try
- With MyDefs
- .MyViewInitialize(Me, Settings.Design, True)
- .AddOkCancelToolbar()
- .DelegateClosingChecker()
- With Settings.Site(Sites.Twitter)
- TXT_PATH.Text = .Path
- With .Responser
- If .Cookies Is Nothing Then .Cookies = New CookieKeeper(.CookiesDomain)
- SetCookieText()
- TXT_TOKEN.Text = .Headers(API.Base.SiteSettings.Header_Twitter_Token)
- TXT_AUTH.Text = .Headers(API.Base.SiteSettings.Header_Twitter_Authorization)
- End With
- End With
- .MyFieldsChecker = New FieldsChecker
- With .MyFieldsChecker
- .AddControl(Of String)(TXT_TOKEN, TXT_TOKEN.CaptionText)
- .AddControl(Of String)(TXT_AUTH, TXT_AUTH.CaptionText)
- .EndLoaderOperations()
- End With
- TextBoxExtended.SetFalseDetector(Me, True, AddressOf .Detector)
- .EndLoaderOperations()
- End With
- Catch ex As Exception
- MyDefs.InvokeLoaderError(ex)
- End Try
- End Sub
- Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK
- If MyDefs.MyFieldsChecker.AllParamsOK Then
- With Settings.Site(Sites.Twitter)
- If TXT_PATH.IsEmptyString Then .Path = Nothing Else .Path = TXT_PATH.Text
- With .Responser
- .Headers(API.Base.SiteSettings.Header_Twitter_Token) = TXT_TOKEN.Text
- .Headers(API.Base.SiteSettings.Header_Twitter_Authorization) = TXT_AUTH.Text
- End With
- .Update()
- End With
- MyDefs.CloseForm()
- End If
- End Sub
- Private Sub ToolbarBttCancel() Implements IOkCancelToolbar.ToolbarBttCancel
- MyDefs.CloseForm(DialogResult.Cancel)
- End Sub
- Private Sub TXT_PATH_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_PATH.ActionOnButtonClick
- If Sender.DefaultButton = ActionButton.DefaultButtons.Open Then
- Dim f As SFile = SFile.SelectPath(Settings.Site(Sites.Twitter).Path)
- If Not f.IsEmptyString Then TXT_PATH.Text = f
- End If
- End Sub
- Private Sub TXT_COOKIES_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_COOKIES.ActionOnButtonClick
- If Sender.DefaultButton = ActionButton.DefaultButtons.Edit Then
- Using f As New CookieListForm(Settings.Site(Sites.Twitter).Responser.Cookies) : f.ShowDialog() : End Using
- SetCookieText()
- End If
- End Sub
- Private Sub TXT_COOKIES_ActionOnButtonClearClick() Handles TXT_COOKIES.ActionOnButtonClearClick
- With Settings.Site(Sites.Twitter).Responser
- If Not .Cookies Is Nothing Then .Cookies.Dispose()
- .Cookies = New CookieKeeper(.CookiesDomain)
- End With
- SetCookieText()
- End Sub
- Private Sub SetCookieText()
- Dim c% = 0
- With Settings.Site(Sites.Twitter).Responser
- If Not .Cookies Is Nothing Then c = .Cookies.Count
- End With
- TXT_COOKIES.Text = $"{c} cookies"
- End Sub
- End Class
-End Namespace
\ No newline at end of file
diff --git a/SCrawler/Editors/UserCreatorForm.Designer.vb b/SCrawler/Editors/UserCreatorForm.Designer.vb
index a59dac7..f4df2b7 100644
--- a/SCrawler/Editors/UserCreatorForm.Designer.vb
+++ b/SCrawler/Editors/UserCreatorForm.Designer.vb
@@ -24,11 +24,14 @@
Dim ActionButton2 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim ActionButton3 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim TP_DOWN_OPTIONS As System.Windows.Forms.TableLayoutPanel
+ Dim ActionButton4 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
+ Dim ActionButton5 As PersonalUtilities.Forms.Controls.Base.ActionButton = New PersonalUtilities.Forms.Controls.Base.ActionButton()
Dim TT_MAIN As System.Windows.Forms.ToolTip
Me.TXT_USER = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.OPT_REDDIT = New System.Windows.Forms.RadioButton()
Me.OPT_TWITTER = New System.Windows.Forms.RadioButton()
Me.CH_IS_CHANNEL = New System.Windows.Forms.CheckBox()
+ Me.OPT_INSTAGRAM = New System.Windows.Forms.RadioButton()
Me.CH_TEMP = New System.Windows.Forms.CheckBox()
Me.CH_FAV = New System.Windows.Forms.CheckBox()
Me.CH_PARSE_USER_MEDIA = New System.Windows.Forms.CheckBox()
@@ -41,6 +44,7 @@
Me.TXT_LABELS = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.CH_DOWN_IMAGES = New System.Windows.Forms.CheckBox()
Me.CH_DOWN_VIDEOS = New System.Windows.Forms.CheckBox()
+ Me.TXT_SPEC_FOLDER = New PersonalUtilities.Forms.Controls.TextBoxExtended()
Me.CONTAINER_MAIN = New System.Windows.Forms.ToolStripContainer()
TP_MAIN = New System.Windows.Forms.TableLayoutPanel()
TP_SITE = New System.Windows.Forms.TableLayoutPanel()
@@ -58,6 +62,7 @@
Me.TP_ADD_BY_LIST.SuspendLayout()
CType(Me.TXT_LABELS, System.ComponentModel.ISupportInitialize).BeginInit()
TP_DOWN_OPTIONS.SuspendLayout()
+ CType(Me.TXT_SPEC_FOLDER, System.ComponentModel.ISupportInitialize).BeginInit()
Me.CONTAINER_MAIN.ContentPanel.SuspendLayout()
Me.CONTAINER_MAIN.SuspendLayout()
Me.SuspendLayout()
@@ -68,18 +73,20 @@
TP_MAIN.ColumnCount = 1
TP_MAIN.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
TP_MAIN.Controls.Add(Me.TXT_USER, 0, 0)
- TP_MAIN.Controls.Add(TP_SITE, 0, 2)
- TP_MAIN.Controls.Add(TP_PARAMS, 0, 3)
- TP_MAIN.Controls.Add(TP_OTHER, 0, 5)
- TP_MAIN.Controls.Add(Me.TXT_DESCR, 0, 8)
+ TP_MAIN.Controls.Add(TP_SITE, 0, 3)
+ TP_MAIN.Controls.Add(TP_PARAMS, 0, 4)
+ TP_MAIN.Controls.Add(TP_OTHER, 0, 6)
+ TP_MAIN.Controls.Add(Me.TXT_DESCR, 0, 9)
TP_MAIN.Controls.Add(Me.TXT_USER_FRIENDLY, 0, 1)
- TP_MAIN.Controls.Add(Me.TP_ADD_BY_LIST, 0, 6)
- TP_MAIN.Controls.Add(Me.TXT_LABELS, 0, 7)
- TP_MAIN.Controls.Add(TP_DOWN_OPTIONS, 0, 4)
+ TP_MAIN.Controls.Add(Me.TP_ADD_BY_LIST, 0, 7)
+ TP_MAIN.Controls.Add(Me.TXT_LABELS, 0, 8)
+ TP_MAIN.Controls.Add(TP_DOWN_OPTIONS, 0, 5)
+ TP_MAIN.Controls.Add(Me.TXT_SPEC_FOLDER, 0, 2)
TP_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
TP_MAIN.Location = New System.Drawing.Point(0, 0)
TP_MAIN.Name = "TP_MAIN"
- TP_MAIN.RowCount = 9
+ TP_MAIN.RowCount = 10
+ TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 28.0!))
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66708!))
@@ -89,7 +96,7 @@
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66542!))
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 16.66667!))
TP_MAIN.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 150.0!))
- TP_MAIN.Size = New System.Drawing.Size(454, 403)
+ TP_MAIN.Size = New System.Drawing.Size(454, 431)
TP_MAIN.TabIndex = 0
'
'TXT_USER
@@ -106,21 +113,23 @@
'TP_SITE
'
TP_SITE.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single]
- TP_SITE.ColumnCount = 3
- TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333!))
- TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333!))
- TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333!))
+ TP_SITE.ColumnCount = 4
+ TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
+ TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
+ TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
+ TP_SITE.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.0!))
TP_SITE.Controls.Add(Me.OPT_REDDIT, 0, 0)
TP_SITE.Controls.Add(Me.OPT_TWITTER, 2, 0)
TP_SITE.Controls.Add(Me.CH_IS_CHANNEL, 1, 0)
+ TP_SITE.Controls.Add(Me.OPT_INSTAGRAM, 3, 0)
TP_SITE.Dock = System.Windows.Forms.DockStyle.Fill
- TP_SITE.Location = New System.Drawing.Point(1, 59)
+ TP_SITE.Location = New System.Drawing.Point(1, 88)
TP_SITE.Margin = New System.Windows.Forms.Padding(0)
TP_SITE.Name = "TP_SITE"
TP_SITE.RowCount = 1
TP_SITE.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
TP_SITE.Size = New System.Drawing.Size(452, 31)
- TP_SITE.TabIndex = 2
+ TP_SITE.TabIndex = 3
'
'OPT_REDDIT
'
@@ -128,7 +137,7 @@
Me.OPT_REDDIT.Dock = System.Windows.Forms.DockStyle.Fill
Me.OPT_REDDIT.Location = New System.Drawing.Point(4, 4)
Me.OPT_REDDIT.Name = "OPT_REDDIT"
- Me.OPT_REDDIT.Size = New System.Drawing.Size(143, 23)
+ Me.OPT_REDDIT.Size = New System.Drawing.Size(105, 23)
Me.OPT_REDDIT.TabIndex = 0
Me.OPT_REDDIT.TabStop = True
Me.OPT_REDDIT.Text = "Reddit"
@@ -138,9 +147,9 @@
'
Me.OPT_TWITTER.AutoSize = True
Me.OPT_TWITTER.Dock = System.Windows.Forms.DockStyle.Fill
- Me.OPT_TWITTER.Location = New System.Drawing.Point(304, 4)
+ Me.OPT_TWITTER.Location = New System.Drawing.Point(228, 4)
Me.OPT_TWITTER.Name = "OPT_TWITTER"
- Me.OPT_TWITTER.Size = New System.Drawing.Size(144, 23)
+ Me.OPT_TWITTER.Size = New System.Drawing.Size(105, 23)
Me.OPT_TWITTER.TabIndex = 1
Me.OPT_TWITTER.TabStop = True
Me.OPT_TWITTER.Text = "Twitter"
@@ -150,13 +159,25 @@
'
Me.CH_IS_CHANNEL.AutoSize = True
Me.CH_IS_CHANNEL.Dock = System.Windows.Forms.DockStyle.Fill
- Me.CH_IS_CHANNEL.Location = New System.Drawing.Point(154, 4)
+ Me.CH_IS_CHANNEL.Location = New System.Drawing.Point(116, 4)
Me.CH_IS_CHANNEL.Name = "CH_IS_CHANNEL"
- Me.CH_IS_CHANNEL.Size = New System.Drawing.Size(143, 23)
+ Me.CH_IS_CHANNEL.Size = New System.Drawing.Size(105, 23)
Me.CH_IS_CHANNEL.TabIndex = 2
Me.CH_IS_CHANNEL.Text = "Channel"
Me.CH_IS_CHANNEL.UseVisualStyleBackColor = True
'
+ 'OPT_INSTAGRAM
+ '
+ Me.OPT_INSTAGRAM.AutoSize = True
+ Me.OPT_INSTAGRAM.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.OPT_INSTAGRAM.Location = New System.Drawing.Point(340, 4)
+ Me.OPT_INSTAGRAM.Name = "OPT_INSTAGRAM"
+ Me.OPT_INSTAGRAM.Size = New System.Drawing.Size(108, 23)
+ Me.OPT_INSTAGRAM.TabIndex = 3
+ Me.OPT_INSTAGRAM.TabStop = True
+ Me.OPT_INSTAGRAM.Text = "Instagram"
+ Me.OPT_INSTAGRAM.UseVisualStyleBackColor = True
+ '
'TP_PARAMS
'
TP_PARAMS.CellBorderStyle = System.Windows.Forms.TableLayoutPanelCellBorderStyle.[Single]
@@ -166,14 +187,14 @@
TP_PARAMS.Controls.Add(Me.CH_TEMP, 0, 0)
TP_PARAMS.Controls.Add(Me.CH_FAV, 1, 0)
TP_PARAMS.Dock = System.Windows.Forms.DockStyle.Fill
- TP_PARAMS.Location = New System.Drawing.Point(1, 91)
+ TP_PARAMS.Location = New System.Drawing.Point(1, 120)
TP_PARAMS.Margin = New System.Windows.Forms.Padding(0)
TP_PARAMS.Name = "TP_PARAMS"
TP_PARAMS.RowCount = 1
TP_PARAMS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
TP_PARAMS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!))
TP_PARAMS.Size = New System.Drawing.Size(452, 31)
- TP_PARAMS.TabIndex = 3
+ TP_PARAMS.TabIndex = 4
'
'CH_TEMP
'
@@ -206,14 +227,14 @@
TP_OTHER.Controls.Add(Me.CH_PARSE_USER_MEDIA, 1, 0)
TP_OTHER.Controls.Add(Me.CH_READY_FOR_DOWN, 0, 0)
TP_OTHER.Dock = System.Windows.Forms.DockStyle.Fill
- TP_OTHER.Location = New System.Drawing.Point(1, 155)
+ TP_OTHER.Location = New System.Drawing.Point(1, 184)
TP_OTHER.Margin = New System.Windows.Forms.Padding(0)
TP_OTHER.Name = "TP_OTHER"
TP_OTHER.RowCount = 1
TP_OTHER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
TP_OTHER.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!))
TP_OTHER.Size = New System.Drawing.Size(452, 31)
- TP_OTHER.TabIndex = 5
+ TP_OTHER.TabIndex = 6
'
'CH_PARSE_USER_MEDIA
'
@@ -253,11 +274,11 @@
Me.TXT_DESCR.Dock = System.Windows.Forms.DockStyle.Fill
Me.TXT_DESCR.GroupBoxed = True
Me.TXT_DESCR.GroupBoxText = "Description"
- Me.TXT_DESCR.Location = New System.Drawing.Point(4, 254)
+ Me.TXT_DESCR.Location = New System.Drawing.Point(4, 282)
Me.TXT_DESCR.Multiline = True
Me.TXT_DESCR.Name = "TXT_DESCR"
Me.TXT_DESCR.Size = New System.Drawing.Size(446, 145)
- Me.TXT_DESCR.TabIndex = 8
+ Me.TXT_DESCR.TabIndex = 9
'
'TXT_USER_FRIENDLY
'
@@ -278,13 +299,13 @@
Me.TP_ADD_BY_LIST.Controls.Add(Me.CH_ADD_BY_LIST, 0, 0)
Me.TP_ADD_BY_LIST.Controls.Add(Me.CH_AUTO_DETECT_SITE, 1, 0)
Me.TP_ADD_BY_LIST.Dock = System.Windows.Forms.DockStyle.Fill
- Me.TP_ADD_BY_LIST.Location = New System.Drawing.Point(1, 187)
+ Me.TP_ADD_BY_LIST.Location = New System.Drawing.Point(1, 216)
Me.TP_ADD_BY_LIST.Margin = New System.Windows.Forms.Padding(0)
Me.TP_ADD_BY_LIST.Name = "TP_ADD_BY_LIST"
Me.TP_ADD_BY_LIST.RowCount = 1
Me.TP_ADD_BY_LIST.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
- Me.TP_ADD_BY_LIST.Size = New System.Drawing.Size(452, 31)
- Me.TP_ADD_BY_LIST.TabIndex = 6
+ Me.TP_ADD_BY_LIST.Size = New System.Drawing.Size(452, 30)
+ Me.TP_ADD_BY_LIST.TabIndex = 7
'
'CH_ADD_BY_LIST
'
@@ -292,7 +313,7 @@
Me.CH_ADD_BY_LIST.Dock = System.Windows.Forms.DockStyle.Fill
Me.CH_ADD_BY_LIST.Location = New System.Drawing.Point(4, 4)
Me.CH_ADD_BY_LIST.Name = "CH_ADD_BY_LIST"
- Me.CH_ADD_BY_LIST.Size = New System.Drawing.Size(218, 23)
+ Me.CH_ADD_BY_LIST.Size = New System.Drawing.Size(218, 22)
Me.CH_ADD_BY_LIST.TabIndex = 0
Me.CH_ADD_BY_LIST.Text = "Add by list"
Me.CH_ADD_BY_LIST.UseVisualStyleBackColor = True
@@ -303,7 +324,7 @@
Me.CH_AUTO_DETECT_SITE.Dock = System.Windows.Forms.DockStyle.Fill
Me.CH_AUTO_DETECT_SITE.Location = New System.Drawing.Point(229, 4)
Me.CH_AUTO_DETECT_SITE.Name = "CH_AUTO_DETECT_SITE"
- Me.CH_AUTO_DETECT_SITE.Size = New System.Drawing.Size(219, 23)
+ Me.CH_AUTO_DETECT_SITE.Size = New System.Drawing.Size(219, 22)
Me.CH_AUTO_DETECT_SITE.TabIndex = 1
Me.CH_AUTO_DETECT_SITE.Text = "Auto detect site"
Me.CH_AUTO_DETECT_SITE.UseVisualStyleBackColor = True
@@ -321,10 +342,10 @@
Me.TXT_LABELS.CaptionText = "Labels"
Me.TXT_LABELS.CaptionWidth = 50.0R
Me.TXT_LABELS.Dock = System.Windows.Forms.DockStyle.Fill
- Me.TXT_LABELS.Location = New System.Drawing.Point(4, 222)
+ Me.TXT_LABELS.Location = New System.Drawing.Point(4, 250)
Me.TXT_LABELS.Name = "TXT_LABELS"
Me.TXT_LABELS.Size = New System.Drawing.Size(446, 22)
- Me.TXT_LABELS.TabIndex = 7
+ Me.TXT_LABELS.TabIndex = 8
Me.TXT_LABELS.TextBoxReadOnly = True
'
'TP_DOWN_OPTIONS
@@ -336,14 +357,14 @@
TP_DOWN_OPTIONS.Controls.Add(Me.CH_DOWN_IMAGES, 0, 0)
TP_DOWN_OPTIONS.Controls.Add(Me.CH_DOWN_VIDEOS, 1, 0)
TP_DOWN_OPTIONS.Dock = System.Windows.Forms.DockStyle.Fill
- TP_DOWN_OPTIONS.Location = New System.Drawing.Point(1, 123)
+ TP_DOWN_OPTIONS.Location = New System.Drawing.Point(1, 152)
TP_DOWN_OPTIONS.Margin = New System.Windows.Forms.Padding(0)
TP_DOWN_OPTIONS.Name = "TP_DOWN_OPTIONS"
TP_DOWN_OPTIONS.RowCount = 1
TP_DOWN_OPTIONS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
TP_DOWN_OPTIONS.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30.0!))
TP_DOWN_OPTIONS.Size = New System.Drawing.Size(452, 31)
- TP_DOWN_OPTIONS.TabIndex = 4
+ TP_DOWN_OPTIONS.TabIndex = 5
'
'CH_DOWN_IMAGES
'
@@ -367,19 +388,38 @@
Me.CH_DOWN_VIDEOS.Text = "Download videos"
Me.CH_DOWN_VIDEOS.UseVisualStyleBackColor = True
'
+ 'TXT_SPEC_FOLDER
+ '
+ ActionButton4.BackgroundImage = CType(resources.GetObject("ActionButton4.BackgroundImage"), System.Drawing.Image)
+ ActionButton4.Index = 0
+ ActionButton4.Name = "BTT_OPEN"
+ ActionButton4.ToolTipText = "Select a new path in the folder selection dialog"
+ ActionButton5.BackgroundImage = CType(resources.GetObject("ActionButton5.BackgroundImage"), System.Drawing.Image)
+ ActionButton5.Index = 1
+ ActionButton5.Name = "BTT_CLEAR"
+ ActionButton5.ToolTipText = "Clear"
+ Me.TXT_SPEC_FOLDER.Buttons.Add(ActionButton4)
+ Me.TXT_SPEC_FOLDER.Buttons.Add(ActionButton5)
+ Me.TXT_SPEC_FOLDER.CaptionText = "Special path"
+ Me.TXT_SPEC_FOLDER.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.TXT_SPEC_FOLDER.Location = New System.Drawing.Point(4, 62)
+ Me.TXT_SPEC_FOLDER.Name = "TXT_SPEC_FOLDER"
+ Me.TXT_SPEC_FOLDER.Size = New System.Drawing.Size(446, 22)
+ Me.TXT_SPEC_FOLDER.TabIndex = 2
+ '
'CONTAINER_MAIN
'
'
'CONTAINER_MAIN.ContentPanel
'
Me.CONTAINER_MAIN.ContentPanel.Controls.Add(TP_MAIN)
- Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(454, 403)
+ Me.CONTAINER_MAIN.ContentPanel.Size = New System.Drawing.Size(454, 431)
Me.CONTAINER_MAIN.Dock = System.Windows.Forms.DockStyle.Fill
Me.CONTAINER_MAIN.LeftToolStripPanelVisible = False
Me.CONTAINER_MAIN.Location = New System.Drawing.Point(0, 0)
Me.CONTAINER_MAIN.Name = "CONTAINER_MAIN"
Me.CONTAINER_MAIN.RightToolStripPanelVisible = False
- Me.CONTAINER_MAIN.Size = New System.Drawing.Size(454, 403)
+ Me.CONTAINER_MAIN.Size = New System.Drawing.Size(454, 431)
Me.CONTAINER_MAIN.TabIndex = 0
Me.CONTAINER_MAIN.TopToolStripPanelVisible = False
'
@@ -387,15 +427,15 @@
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
- Me.ClientSize = New System.Drawing.Size(454, 403)
+ Me.ClientSize = New System.Drawing.Size(454, 431)
Me.Controls.Add(Me.CONTAINER_MAIN)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.KeyPreview = True
Me.MaximizeBox = False
- Me.MaximumSize = New System.Drawing.Size(470, 442)
+ Me.MaximumSize = New System.Drawing.Size(470, 470)
Me.MinimizeBox = False
- Me.MinimumSize = New System.Drawing.Size(470, 442)
+ Me.MinimumSize = New System.Drawing.Size(470, 470)
Me.Name = "UserCreatorForm"
Me.ShowInTaskbar = False
Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide
@@ -415,6 +455,7 @@
CType(Me.TXT_LABELS, System.ComponentModel.ISupportInitialize).EndInit()
TP_DOWN_OPTIONS.ResumeLayout(False)
TP_DOWN_OPTIONS.PerformLayout()
+ CType(Me.TXT_SPEC_FOLDER, System.ComponentModel.ISupportInitialize).EndInit()
Me.CONTAINER_MAIN.ContentPanel.ResumeLayout(False)
Me.CONTAINER_MAIN.ResumeLayout(False)
Me.CONTAINER_MAIN.PerformLayout()
@@ -439,5 +480,7 @@
Private WithEvents CH_DOWN_IMAGES As CheckBox
Private WithEvents CH_DOWN_VIDEOS As CheckBox
Private WithEvents CH_IS_CHANNEL As CheckBox
+ Private WithEvents OPT_INSTAGRAM As RadioButton
+ Private WithEvents TXT_SPEC_FOLDER As PersonalUtilities.Forms.Controls.TextBoxExtended
End Class
End Namespace
\ No newline at end of file
diff --git a/SCrawler/Editors/UserCreatorForm.resx b/SCrawler/Editors/UserCreatorForm.resx
index bdba578..7f54305 100644
--- a/SCrawler/Editors/UserCreatorForm.resx
+++ b/SCrawler/Editors/UserCreatorForm.resx
@@ -166,6 +166,25 @@
False
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ wwAADsMBx2+oZAAAAR5JREFUOE+VkjFqwzAUhn2D9iShRyi+QhYbGujg3ZATZPKYdC6FQhPwlAMkg3dP
+ WQwhyWIyJIUW5NqyPb7oCVtIlhVTwYf8nv7/t2zJagel9KmqKsIACYL9RjI8UHz5zshougZr/AEvbxEP
+ aZCDBY3VslixaJvX3wzkkDiOwbZtDRGA5vdNAg+TL27qgmt5XkBG/gTdAG7Gt+3PP9oOaEGFCVEC6rp+
+ 5g9MfM/c5e4OsEZMZkQEtGL5H2DdZ5JRArDwPA+iKII0TfkC9vroC9j5vq8JTWw3WzWgLMtZGIaa0MR8
+ vlAD8PYlSaIJTTiOowY0p0Bc19XEJo6HE59FAPuMzyAINKGJ1XLFZxHALtMrnkBXOIQIIIQ8YvF/KrgB
+ cMaRN0UdBBkAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
+ xAAADsQBlSsOGwAAAIZJREFUOE+1j10KwCAMgz2b755xl/IsvnaL2K20UfbDAmEako+ZROSTafjE12Go
+ tbbB43rK5xSAQq1VYFtmeQBoqZTSreVZvgTknM8yyyjA/qodsDF9gspD2Bj6B+DH+NqzhQQAG+POMnSX
+ AFuc5QFgn6ClHh5iOQVAKNixyucB8NY0vG9JOzzyhrdq5IRgAAAAAElFTkSuQmCC
+
+
AAABAAkAMDAQAAAAAABoBgAAlgAAACAgEAAAAAAA6AIAAP4GAAAQEBAAAAAAACgBAADmCQAAMDAAAAEA
diff --git a/SCrawler/Editors/UserCreatorForm.vb b/SCrawler/Editors/UserCreatorForm.vb
index fd218be..478f071 100644
--- a/SCrawler/Editors/UserCreatorForm.vb
+++ b/SCrawler/Editors/UserCreatorForm.vb
@@ -66,16 +66,29 @@ Namespace Editors
Return TXT_USER_FRIENDLY.Text
End Get
End Property
+ Private ReadOnly _SpecPathPattern As New RegexStructure("\w:\\.*", True, False,,,,, String.Empty, EDP.ReturnValue)
+ Private ReadOnly Property SpecialPath(ByVal s As Sites) As SFile
+ Get
+ If TXT_SPEC_FOLDER.IsEmptyString Then
+ Return Nothing
+ Else
+ If Not CStr(RegexReplace(TXT_SPEC_FOLDER.Text, _SpecPathPattern)).IsEmptyString Then
+ Return $"{TXT_SPEC_FOLDER.Text}\"
+ Else
+ Return $"{Settings(s).Path.PathWithSeparator}{TXT_SPEC_FOLDER.Text}\"
+ End If
+
+ End If
+ End Get
+ End Property
Friend ReadOnly Property UserLabels As List(Of String)
+ ''' Create new user
Friend Sub New()
InitializeComponent()
UserLabels = New List(Of String)
MyDef = New DefaultFormProps(Of FieldsChecker)
End Sub
- Friend Sub New(ByVal _User As UserInfo)
- Me.New
- User = _User
- End Sub
+ ''' Edit exist user
Friend Sub New(ByVal _Instance As IUserData)
Me.New
If Not _Instance Is Nothing Then
@@ -92,6 +105,7 @@ Namespace Editors
If User.Name.IsEmptyString Then
OPT_REDDIT.Checked = False
OPT_TWITTER.Checked = False
+ OPT_INSTAGRAM.Checked = False
CH_PARSE_USER_MEDIA.Enabled = False
CH_READY_FOR_DOWN.Checked = True
CH_TEMP.Checked = Settings.DefaultTemporary
@@ -100,16 +114,22 @@ Namespace Editors
Else
TP_ADD_BY_LIST.Enabled = False
TXT_USER.Text = User.Name
+ TXT_SPEC_FOLDER.Text = User.SpecialPath
Select Case User.Site
Case Sites.Reddit : OPT_REDDIT.Checked = True : CH_PARSE_USER_MEDIA.Enabled = False
Case Sites.Twitter : OPT_TWITTER.Checked = True
+ Case Sites.Instagram : OPT_INSTAGRAM.Checked = True
End Select
OPT_REDDIT.Enabled = False
OPT_TWITTER.Enabled = False
+ OPT_INSTAGRAM.Enabled = False
CH_IS_CHANNEL.Checked = User.IsChannel
CH_IS_CHANNEL.Enabled = False
If Not UserInstance Is Nothing Then
TXT_USER.Enabled = False
+ TXT_SPEC_FOLDER.TextBoxReadOnly = True
+ TXT_SPEC_FOLDER.Buttons.Clear()
+ TXT_SPEC_FOLDER.Buttons.UpdateButtonsPositions()
With UserInstance
TXT_USER_FRIENDLY.Text = .FriendlyName
CH_FAV.Checked = .Favorite
@@ -154,14 +174,24 @@ Namespace Editors
Private Sub UserCreatorForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
UserLabels.Clear()
End Sub
+ Private Function GetSiteByCheckers() As Sites
+ Select Case True
+ Case OPT_REDDIT.Checked : Return Sites.Reddit
+ Case OPT_TWITTER.Checked : Return Sites.Twitter
+ Case OPT_INSTAGRAM.Checked : Return Sites.Instagram
+ Case Else : Return Sites.Undefined
+ End Select
+ End Function
Private Sub ToolbarBttOK() Implements IOkCancelToolbar.ToolbarBttOK
If Not CH_ADD_BY_LIST.Checked Then
If MyDef.MyFieldsChecker.AllParamsOK Then
- If OPT_REDDIT.Checked Or OPT_TWITTER.Checked Then
+ Dim s As Sites = GetSiteByCheckers()
+ If Not s = Sites.Undefined Then
Dim tmpUser As UserInfo = User.Clone
With tmpUser
.Name = TXT_USER.Text
- .Site = IIf(OPT_REDDIT.Checked, Sites.Reddit, Sites.Twitter)
+ .SpecialPath = SpecialPath(s)
+ .Site = s
.IsChannel = CH_IS_CHANNEL.Checked
.UpdateUserFile()
End With
@@ -208,6 +238,7 @@ CloseForm:
Private ReadOnly RedditRegEx2 As New RegexStructure(".?u/([^/]+)", 1)
Private ReadOnly RedditChannelRegEx1 As New RegexStructure("[htps:/]{7,8}.*?reddit.com/r/([^/]+)", 1)
Private ReadOnly RedditChannelRegEx2 As New RegexStructure(".?r/([^/]+)", 1)
+ Private ReadOnly InstagramRegEx As New RegexStructure("[htps:/]{7,8}.*?instagram.com/([^/]+)", 1)
Private _TextChangeInvoked As Boolean = False
Private Sub TXT_USER_ActionOnTextChange() Handles TXT_USER.ActionOnTextChange
Try
@@ -218,7 +249,8 @@ CloseForm:
Select Case s(0)
Case Sites.Twitter : OPT_TWITTER.Checked = True
Case Sites.Reddit : OPT_REDDIT.Checked = True
- Case Else : OPT_TWITTER.Checked = False : OPT_REDDIT.Checked = False
+ Case Sites.Instagram : OPT_INSTAGRAM.Checked = True
+ Case Else : OPT_TWITTER.Checked = False : OPT_REDDIT.Checked = False : OPT_INSTAGRAM.Checked = False
End Select
CH_IS_CHANNEL.Checked = CBool(s(1))
End If
@@ -235,6 +267,8 @@ CloseForm:
Return {Sites.Reddit, False}
ElseIf CheckRegex(TXT, RedditChannelRegEx1) OrElse CheckRegex(TXT, RedditChannelRegEx2) Then
Return {Sites.Reddit, True}
+ ElseIf CheckRegex(TXT, InstagramRegEx) Then
+ Return {Sites.Instagram, False}
End If
End If
Return {Sites.Undefined, False}
@@ -249,6 +283,17 @@ CloseForm:
Private Sub OPT_TWITTER_CheckedChanged(sender As Object, e As EventArgs) Handles OPT_TWITTER.CheckedChanged
If OPT_TWITTER.Checked Then CH_IS_CHANNEL.Checked = False : CH_IS_CHANNEL.Enabled = False : SetParamsBySite()
End Sub
+ Private Sub OPT_INSTAGRAM_CheckedChanged(sender As Object, e As EventArgs) Handles OPT_INSTAGRAM.CheckedChanged
+ If OPT_INSTAGRAM.Checked Then CH_IS_CHANNEL.Checked = False : CH_IS_CHANNEL.Enabled = False : SetParamsBySite()
+ End Sub
+ Private Sub TXT_SPEC_FOLDER_ActionOnButtonClick(ByVal Sender As ActionButton) Handles TXT_SPEC_FOLDER.ActionOnButtonClick
+ If Sender.DefaultButton = ActionButton.DefaultButtons.Open Then
+ Dim f As SFile = Nothing
+ If Not TXT_SPEC_FOLDER.Text.IsEmptyString Then f = $"{TXT_SPEC_FOLDER.Text}\"
+ f = SFile.SelectPath(f, True)
+ If Not f.IsEmptyString Then TXT_SPEC_FOLDER.Text = f.PathWithSeparator
+ End If
+ End Sub
Private Sub CH_TEMP_CheckedChanged(sender As Object, e As EventArgs) Handles CH_TEMP.CheckedChanged
If CH_TEMP.Checked Then CH_FAV.Checked = False : CH_READY_FOR_DOWN.Checked = False
End Sub
@@ -256,27 +301,17 @@ CloseForm:
If CH_FAV.Checked Then CH_TEMP.Checked = False
End Sub
Private Sub SetParamsBySite()
- Dim s As Sites = Sites.Undefined
- Select Case True
- Case OPT_REDDIT.Checked : s = Sites.Reddit
- Case OPT_TWITTER.Checked : s = Sites.Twitter
- End Select
- With Settings
- Select Case s
- Case Sites.Reddit
- CH_TEMP.Checked = .RedditTemporary
- CH_DOWN_IMAGES.Checked = .RedditDownloadImages
- CH_DOWN_VIDEOS.Checked = .RedditDownloadVideos
- CH_PARSE_USER_MEDIA.Checked = False
- CH_PARSE_USER_MEDIA.Enabled = False
- Case Sites.Twitter
- CH_TEMP.Checked = .TwitterTemporary
- CH_DOWN_IMAGES.Checked = .TwitterDownloadImages
- CH_DOWN_VIDEOS.Checked = .TwitterDownloadVideos
- CH_PARSE_USER_MEDIA.Enabled = True
- CH_PARSE_USER_MEDIA.Checked = .TwitterDefaultGetUserMedia
- End Select
- End With
+ Dim s As Sites = GetSiteByCheckers()
+ If Not s = Sites.Undefined Then
+ With Settings(s)
+ CH_TEMP.Checked = .Temporary
+ CH_DOWN_IMAGES.Checked = .DownloadImages
+ CH_DOWN_VIDEOS.Checked = .DownloadVideos
+ CH_PARSE_USER_MEDIA.Checked = s = Sites.Twitter AndAlso .GetUserMediaOnly.Value
+ CH_PARSE_USER_MEDIA.Enabled = s = Sites.Twitter
+ CH_READY_FOR_DOWN.Checked = Not CH_TEMP.Checked
+ End With
+ End If
End Sub
Private Sub CH_ADD_BY_LIST_CheckedChanged(sender As Object, e As EventArgs) Handles CH_ADD_BY_LIST.CheckedChanged
If CH_ADD_BY_LIST.Checked Then
@@ -295,6 +330,7 @@ CloseForm:
Private Sub CH_AUTO_DETECT_SITE_CheckedChanged(sender As Object, e As EventArgs) Handles CH_AUTO_DETECT_SITE.CheckedChanged
OPT_REDDIT.Enabled = Not CH_AUTO_DETECT_SITE.Checked
OPT_TWITTER.Enabled = Not CH_AUTO_DETECT_SITE.Checked
+ OPT_INSTAGRAM.Enabled = Not CH_AUTO_DETECT_SITE.Checked
CH_IS_CHANNEL.Enabled = Not CH_AUTO_DETECT_SITE.Checked
End Sub
Private Function CreateUsersByList() As Boolean
@@ -308,18 +344,14 @@ CloseForm:
Dim BannedUsers() As String = Nothing
Dim uu$
Dim tmpUser As UserInfo
- Dim s As Sites
+ Dim s As Sites = GetSiteByCheckers()
Dim sObj() As Object
Dim _IsChannel As Boolean = CH_IS_CHANNEL.Checked
Dim Added% = 0
Dim Skipped% = 0
Dim uid%
-
- Select Case True
- Case OPT_REDDIT.Checked : s = Sites.Reddit
- Case OPT_TWITTER.Checked : s = Sites.Twitter
- Case Else : s = Sites.Undefined
- End Select
+ Dim sf As Func(Of Sites, String) = Function(__s) SpecialPath(__s).PathWithSeparator
+ Dim __sf As Func(Of String, Sites, SFile) = Function(Input, __s) IIf(sf(__s).IsEmptyString, Nothing, New SFile($"{sf(__s)}{Input}\"))
For i% = 0 To u.Count - 1
uu = u(i)
@@ -330,7 +362,7 @@ CloseForm:
End If
If Not s = Sites.Undefined Then
- tmpUser = New UserInfo(uu, s) With {.IsChannel = _IsChannel}
+ tmpUser = New UserInfo(uu, s,,, __sf(uu, s)) With {.IsChannel = _IsChannel}
uid = -1
If Settings.UsersList.Count > 0 Then uid = Settings.UsersList.IndexOf(tmpUser)
If uid < 0 And Not UsersForCreate.Contains(tmpUser) Then
diff --git a/SCrawler/MainFrame.Designer.vb b/SCrawler/MainFrame.Designer.vb
index 9fe1e33..472a809 100644
--- a/SCrawler/MainFrame.Designer.vb
+++ b/SCrawler/MainFrame.Designer.vb
@@ -27,7 +27,6 @@ Partial Class MainFrame
Dim SEP_2 As System.Windows.Forms.ToolStripSeparator
Dim CONTEXT_SEP_1 As System.Windows.Forms.ToolStripSeparator
Dim MENU_SETTINGS As System.Windows.Forms.ToolStripDropDownButton
- Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(MainFrame))
Dim MENU_SETTINGS_SEP_1 As System.Windows.Forms.ToolStripSeparator
Dim SEP_3 As System.Windows.Forms.ToolStripSeparator
Dim CONTEXT_SEP_2 As System.Windows.Forms.ToolStripSeparator
@@ -36,9 +35,12 @@ Partial Class MainFrame
Dim CONTEXT_SEP_5 As System.Windows.Forms.ToolStripSeparator
Dim SEP_4 As System.Windows.Forms.ToolStripSeparator
Dim MENU_VIEW_SEP_1 As System.Windows.Forms.ToolStripSeparator
+ Dim MENU_VIEW_SEP_3 As System.Windows.Forms.ToolStripSeparator
Dim MENU_VIEW_SEP_2 As System.Windows.Forms.ToolStripSeparator
+ Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(MainFrame))
Me.BTT_SETTINGS_REDDIT = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_SETTINGS_TWITTER = New System.Windows.Forms.ToolStripMenuItem()
+ Me.BTT_SETTINGS_INSTAGRAM = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_SETTINGS = New System.Windows.Forms.ToolStripMenuItem()
Me.Toolbar_TOP = New System.Windows.Forms.ToolStrip()
Me.BTT_ADD_USER = New System.Windows.Forms.ToolStripButton()
@@ -47,6 +49,7 @@ Partial Class MainFrame
Me.BTT_REFRESH = New System.Windows.Forms.ToolStripButton()
Me.BTT_SHOW_INFO = New System.Windows.Forms.ToolStripButton()
Me.BTT_CHANNELS = New System.Windows.Forms.ToolStripButton()
+ Me.BTT_DOWN_SAVED = New System.Windows.Forms.ToolStripButton()
Me.BTT_DOWN_SELECTED = New System.Windows.Forms.ToolStripButton()
Me.BTT_DOWN_ALL = New System.Windows.Forms.ToolStripButton()
Me.BTT_DOWN_VIDEO = New System.Windows.Forms.ToolStripButton()
@@ -55,6 +58,8 @@ Partial Class MainFrame
Me.BTT_VIEW_LARGE = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_VIEW_SMALL = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_VIEW_LIST = New System.Windows.Forms.ToolStripMenuItem()
+ Me.BTT_SITE_ALL = New System.Windows.Forms.ToolStripMenuItem()
+ Me.BTT_SITE_SPECIFIC = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_SHOW_ALL = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_SHOW_REGULAR = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_SHOW_TEMP = New System.Windows.Forms.ToolStripMenuItem()
@@ -65,6 +70,7 @@ Partial Class MainFrame
Me.BTT_LOG = New System.Windows.Forms.ToolStripButton()
Me.BTT_VERSION_INFO = New System.Windows.Forms.ToolStripButton()
Me.Toolbar_BOTTOM = New System.Windows.Forms.StatusStrip()
+ Me.PR_SAVED = New System.Windows.Forms.ToolStripProgressBar()
Me.PR_MAIN = New System.Windows.Forms.ToolStripProgressBar()
Me.LBL_JOBS_COUNT = New System.Windows.Forms.ToolStripStatusLabel()
Me.LBL_STATUS = New System.Windows.Forms.ToolStripStatusLabel()
@@ -76,14 +82,15 @@ Partial Class MainFrame
Me.BTT_CONTEXT_DELETE = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_CONTEXT_FAV = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_CONTEXT_TEMP = New System.Windows.Forms.ToolStripMenuItem()
+ Me.BTT_CONTEXT_READY = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_CONTEXT_GROUPS = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_CONTEXT_ADD_TO_COL = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_CONTEXT_COL_MERGE = New System.Windows.Forms.ToolStripMenuItem()
+ Me.BTT_CONTEXT_CHANGE_FOLDER = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_CHANGE_IMAGE = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_CONTEXT_OPEN_PATH = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_CONTEXT_OPEN_SITE = New System.Windows.Forms.ToolStripMenuItem()
Me.BTT_CONTEXT_INFO = New System.Windows.Forms.ToolStripMenuItem()
- Me.BTT_CONTEXT_READY = New System.Windows.Forms.ToolStripMenuItem()
SEP_1 = New System.Windows.Forms.ToolStripSeparator()
SEP_2 = New System.Windows.Forms.ToolStripSeparator()
CONTEXT_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
@@ -96,6 +103,7 @@ Partial Class MainFrame
CONTEXT_SEP_5 = New System.Windows.Forms.ToolStripSeparator()
SEP_4 = New System.Windows.Forms.ToolStripSeparator()
MENU_VIEW_SEP_1 = New System.Windows.Forms.ToolStripSeparator()
+ MENU_VIEW_SEP_3 = New System.Windows.Forms.ToolStripSeparator()
MENU_VIEW_SEP_2 = New System.Windows.Forms.ToolStripSeparator()
Me.Toolbar_TOP.SuspendLayout()
Me.Toolbar_BOTTOM.SuspendLayout()
@@ -120,9 +128,7 @@ Partial Class MainFrame
'MENU_SETTINGS
'
MENU_SETTINGS.AutoToolTip = False
- MENU_SETTINGS.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
- MENU_SETTINGS.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_SETTINGS_REDDIT, Me.BTT_SETTINGS_TWITTER, MENU_SETTINGS_SEP_1, Me.BTT_SETTINGS})
- MENU_SETTINGS.Image = CType(resources.GetObject("MENU_SETTINGS.Image"), System.Drawing.Image)
+ MENU_SETTINGS.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_SETTINGS_REDDIT, Me.BTT_SETTINGS_TWITTER, Me.BTT_SETTINGS_INSTAGRAM, MENU_SETTINGS_SEP_1, Me.BTT_SETTINGS})
MENU_SETTINGS.ImageTransparentColor = System.Drawing.Color.Magenta
MENU_SETTINGS.Name = "MENU_SETTINGS"
MENU_SETTINGS.Size = New System.Drawing.Size(62, 22)
@@ -130,25 +136,35 @@ Partial Class MainFrame
'
'BTT_SETTINGS_REDDIT
'
+ Me.BTT_SETTINGS_REDDIT.Image = Global.SCrawler.My.Resources.Resources.RedditPic512
Me.BTT_SETTINGS_REDDIT.Name = "BTT_SETTINGS_REDDIT"
- Me.BTT_SETTINGS_REDDIT.Size = New System.Drawing.Size(116, 22)
+ Me.BTT_SETTINGS_REDDIT.Size = New System.Drawing.Size(127, 22)
Me.BTT_SETTINGS_REDDIT.Text = "Reddit"
'
'BTT_SETTINGS_TWITTER
'
+ Me.BTT_SETTINGS_TWITTER.Image = Global.SCrawler.My.Resources.Resources.TwitterPic400
Me.BTT_SETTINGS_TWITTER.Name = "BTT_SETTINGS_TWITTER"
- Me.BTT_SETTINGS_TWITTER.Size = New System.Drawing.Size(116, 22)
+ Me.BTT_SETTINGS_TWITTER.Size = New System.Drawing.Size(127, 22)
Me.BTT_SETTINGS_TWITTER.Text = "Twitter"
'
+ 'BTT_SETTINGS_INSTAGRAM
+ '
+ Me.BTT_SETTINGS_INSTAGRAM.Image = Global.SCrawler.My.Resources.Resources.InstagramPic76
+ Me.BTT_SETTINGS_INSTAGRAM.Name = "BTT_SETTINGS_INSTAGRAM"
+ Me.BTT_SETTINGS_INSTAGRAM.Size = New System.Drawing.Size(127, 22)
+ Me.BTT_SETTINGS_INSTAGRAM.Text = "Instagram"
+ '
'MENU_SETTINGS_SEP_1
'
MENU_SETTINGS_SEP_1.Name = "MENU_SETTINGS_SEP_1"
- MENU_SETTINGS_SEP_1.Size = New System.Drawing.Size(113, 6)
+ MENU_SETTINGS_SEP_1.Size = New System.Drawing.Size(124, 6)
'
'BTT_SETTINGS
'
+ Me.BTT_SETTINGS.Image = Global.SCrawler.My.Resources.Resources.SettingsPic_16
Me.BTT_SETTINGS.Name = "BTT_SETTINGS"
- Me.BTT_SETTINGS.Size = New System.Drawing.Size(116, 22)
+ Me.BTT_SETTINGS.Size = New System.Drawing.Size(127, 22)
Me.BTT_SETTINGS.Text = "Settings"
'
'SEP_3
@@ -186,6 +202,11 @@ Partial Class MainFrame
MENU_VIEW_SEP_1.Name = "MENU_VIEW_SEP_1"
MENU_VIEW_SEP_1.Size = New System.Drawing.Size(141, 6)
'
+ 'MENU_VIEW_SEP_3
+ '
+ MENU_VIEW_SEP_3.Name = "MENU_VIEW_SEP_3"
+ MENU_VIEW_SEP_3.Size = New System.Drawing.Size(141, 6)
+ '
'MENU_VIEW_SEP_2
'
MENU_VIEW_SEP_2.Name = "MENU_VIEW_SEP_2"
@@ -194,7 +215,7 @@ Partial Class MainFrame
'Toolbar_TOP
'
Me.Toolbar_TOP.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden
- Me.Toolbar_TOP.Items.AddRange(New System.Windows.Forms.ToolStripItem() {MENU_SETTINGS, SEP_1, Me.BTT_ADD_USER, Me.BTT_EDIT_USER, Me.BTT_DELETE_USER, Me.BTT_REFRESH, Me.BTT_SHOW_INFO, Me.BTT_CHANNELS, SEP_2, Me.BTT_DOWN_SELECTED, Me.BTT_DOWN_ALL, Me.BTT_DOWN_VIDEO, Me.BTT_DOWN_STOP, SEP_3, Me.MENU_VIEW, SEP_4, Me.BTT_LOG, Me.BTT_VERSION_INFO})
+ Me.Toolbar_TOP.Items.AddRange(New System.Windows.Forms.ToolStripItem() {MENU_SETTINGS, SEP_1, Me.BTT_ADD_USER, Me.BTT_EDIT_USER, Me.BTT_DELETE_USER, Me.BTT_REFRESH, Me.BTT_SHOW_INFO, Me.BTT_CHANNELS, Me.BTT_DOWN_SAVED, SEP_2, Me.BTT_DOWN_SELECTED, Me.BTT_DOWN_ALL, Me.BTT_DOWN_VIDEO, Me.BTT_DOWN_STOP, SEP_3, Me.MENU_VIEW, SEP_4, Me.BTT_LOG, Me.BTT_VERSION_INFO})
Me.Toolbar_TOP.Location = New System.Drawing.Point(0, 0)
Me.Toolbar_TOP.Name = "Toolbar_TOP"
Me.Toolbar_TOP.Size = New System.Drawing.Size(934, 25)
@@ -247,12 +268,22 @@ Partial Class MainFrame
'
'BTT_CHANNELS
'
+ Me.BTT_CHANNELS.AutoToolTip = False
Me.BTT_CHANNELS.Image = Global.SCrawler.My.Resources.Resources.RedditPic512
Me.BTT_CHANNELS.ImageTransparentColor = System.Drawing.Color.Magenta
Me.BTT_CHANNELS.Name = "BTT_CHANNELS"
Me.BTT_CHANNELS.Size = New System.Drawing.Size(76, 22)
Me.BTT_CHANNELS.Text = "Channels"
'
+ 'BTT_DOWN_SAVED
+ '
+ Me.BTT_DOWN_SAVED.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
+ Me.BTT_DOWN_SAVED.Image = Global.SCrawler.My.Resources.Resources.BookmarkBlack_16
+ Me.BTT_DOWN_SAVED.ImageTransparentColor = System.Drawing.Color.Magenta
+ Me.BTT_DOWN_SAVED.Name = "BTT_DOWN_SAVED"
+ Me.BTT_DOWN_SAVED.Size = New System.Drawing.Size(23, 22)
+ Me.BTT_DOWN_SAVED.ToolTipText = "Download Reddit saved posts"
+ '
'BTT_DOWN_SELECTED
'
Me.BTT_DOWN_SELECTED.Image = Global.SCrawler.My.Resources.Resources.StartPic_01_Green_16
@@ -295,11 +326,11 @@ Partial Class MainFrame
'
Me.MENU_VIEW.AutoToolTip = False
Me.MENU_VIEW.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text
- Me.MENU_VIEW.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_VIEW_LARGE, Me.BTT_VIEW_SMALL, Me.BTT_VIEW_LIST, MENU_VIEW_SEP_1, Me.BTT_SHOW_ALL, Me.BTT_SHOW_REGULAR, Me.BTT_SHOW_TEMP, Me.BTT_SHOW_FAV, Me.BTT_SHOW_LABELS, Me.BTT_SHOW_NO_LABELS, MENU_VIEW_SEP_2, Me.BTT_SELECT_LABELS})
+ Me.MENU_VIEW.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_VIEW_LARGE, Me.BTT_VIEW_SMALL, Me.BTT_VIEW_LIST, MENU_VIEW_SEP_1, Me.BTT_SITE_ALL, Me.BTT_SITE_SPECIFIC, MENU_VIEW_SEP_2, Me.BTT_SHOW_ALL, Me.BTT_SHOW_REGULAR, Me.BTT_SHOW_TEMP, Me.BTT_SHOW_FAV, Me.BTT_SHOW_LABELS, Me.BTT_SHOW_NO_LABELS, MENU_VIEW_SEP_3, Me.BTT_SELECT_LABELS})
Me.MENU_VIEW.Image = CType(resources.GetObject("MENU_VIEW.Image"), System.Drawing.Image)
Me.MENU_VIEW.ImageTransparentColor = System.Drawing.Color.Magenta
Me.MENU_VIEW.Name = "MENU_VIEW"
- Me.MENU_VIEW.Size = New System.Drawing.Size(45, 22)
+ Me.MENU_VIEW.Size = New System.Drawing.Size(45, 19)
Me.MENU_VIEW.Text = "View"
'
'BTT_VIEW_LARGE
@@ -320,6 +351,18 @@ Partial Class MainFrame
Me.BTT_VIEW_LIST.Size = New System.Drawing.Size(144, 22)
Me.BTT_VIEW_LIST.Text = "List"
'
+ 'BTT_SITE_ALL
+ '
+ Me.BTT_SITE_ALL.Name = "BTT_SITE_ALL"
+ Me.BTT_SITE_ALL.Size = New System.Drawing.Size(144, 22)
+ Me.BTT_SITE_ALL.Text = "All"
+ '
+ 'BTT_SITE_SPECIFIC
+ '
+ Me.BTT_SITE_SPECIFIC.Name = "BTT_SITE_SPECIFIC"
+ Me.BTT_SITE_SPECIFIC.Size = New System.Drawing.Size(144, 22)
+ Me.BTT_SITE_SPECIFIC.Text = "Specific sites"
+ '
'BTT_SHOW_ALL
'
Me.BTT_SHOW_ALL.Name = "BTT_SHOW_ALL"
@@ -385,12 +428,17 @@ Partial Class MainFrame
'
'Toolbar_BOTTOM
'
- Me.Toolbar_BOTTOM.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PR_MAIN, Me.LBL_JOBS_COUNT, Me.LBL_STATUS})
+ Me.Toolbar_BOTTOM.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.PR_SAVED, Me.PR_MAIN, Me.LBL_JOBS_COUNT, Me.LBL_STATUS})
Me.Toolbar_BOTTOM.Location = New System.Drawing.Point(0, 439)
Me.Toolbar_BOTTOM.Name = "Toolbar_BOTTOM"
Me.Toolbar_BOTTOM.Size = New System.Drawing.Size(934, 22)
Me.Toolbar_BOTTOM.TabIndex = 2
- Me.Toolbar_BOTTOM.Text = "StatusStrip1"
+ '
+ 'PR_SAVED
+ '
+ Me.PR_SAVED.Name = "PR_SAVED"
+ Me.PR_SAVED.Size = New System.Drawing.Size(100, 16)
+ Me.PR_SAVED.Visible = False
'
'PR_MAIN
'
@@ -423,7 +471,7 @@ Partial Class MainFrame
'
'USER_CONTEXT
'
- Me.USER_CONTEXT.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_CONTEXT_DOWN, Me.BTT_CONTEXT_DOWN_LIMITED, Me.BTT_CONTEXT_EDIT, Me.BTT_CONTEXT_DELETE, CONTEXT_SEP_1, Me.BTT_CONTEXT_FAV, Me.BTT_CONTEXT_TEMP, Me.BTT_CONTEXT_READY, Me.BTT_CONTEXT_GROUPS, Me.BTT_CONTEXT_ADD_TO_COL, Me.BTT_CONTEXT_COL_MERGE, CONTEXT_SEP_2, Me.BTT_CHANGE_IMAGE, CONTEXT_SEP_3, Me.BTT_CONTEXT_OPEN_PATH, CONTEXT_SEP_4, Me.BTT_CONTEXT_OPEN_SITE, CONTEXT_SEP_5, Me.BTT_CONTEXT_INFO})
+ Me.USER_CONTEXT.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BTT_CONTEXT_DOWN, Me.BTT_CONTEXT_DOWN_LIMITED, Me.BTT_CONTEXT_EDIT, Me.BTT_CONTEXT_DELETE, CONTEXT_SEP_1, Me.BTT_CONTEXT_FAV, Me.BTT_CONTEXT_TEMP, Me.BTT_CONTEXT_READY, Me.BTT_CONTEXT_GROUPS, Me.BTT_CONTEXT_ADD_TO_COL, Me.BTT_CONTEXT_COL_MERGE, Me.BTT_CONTEXT_CHANGE_FOLDER, CONTEXT_SEP_2, Me.BTT_CHANGE_IMAGE, CONTEXT_SEP_3, Me.BTT_CONTEXT_OPEN_PATH, CONTEXT_SEP_4, Me.BTT_CONTEXT_OPEN_SITE, CONTEXT_SEP_5, Me.BTT_CONTEXT_INFO})
Me.USER_CONTEXT.Name = "USER_CONTEXT"
Me.USER_CONTEXT.Size = New System.Drawing.Size(222, 364)
'
@@ -471,6 +519,12 @@ Partial Class MainFrame
Me.BTT_CONTEXT_TEMP.Size = New System.Drawing.Size(221, 22)
Me.BTT_CONTEXT_TEMP.Text = "Change temporary"
'
+ 'BTT_CONTEXT_READY
+ '
+ Me.BTT_CONTEXT_READY.Name = "BTT_CONTEXT_READY"
+ Me.BTT_CONTEXT_READY.Size = New System.Drawing.Size(221, 22)
+ Me.BTT_CONTEXT_READY.Text = "Change ready for download"
+ '
'BTT_CONTEXT_GROUPS
'
Me.BTT_CONTEXT_GROUPS.Name = "BTT_CONTEXT_GROUPS"
@@ -490,6 +544,14 @@ Partial Class MainFrame
Me.BTT_CONTEXT_COL_MERGE.Size = New System.Drawing.Size(221, 22)
Me.BTT_CONTEXT_COL_MERGE.Text = "Merge collection files"
'
+ 'BTT_CONTEXT_CHANGE_FOLDER
+ '
+ Me.BTT_CONTEXT_CHANGE_FOLDER.AutoToolTip = True
+ Me.BTT_CONTEXT_CHANGE_FOLDER.Name = "BTT_CONTEXT_CHANGE_FOLDER"
+ Me.BTT_CONTEXT_CHANGE_FOLDER.Size = New System.Drawing.Size(221, 22)
+ Me.BTT_CONTEXT_CHANGE_FOLDER.Text = "Change folder"
+ Me.BTT_CONTEXT_CHANGE_FOLDER.ToolTipText = "Change user data folder"
+ '
'BTT_CHANGE_IMAGE
'
Me.BTT_CHANGE_IMAGE.Image = Global.SCrawler.My.Resources.Resources.PicturePic_32
@@ -518,12 +580,6 @@ Partial Class MainFrame
Me.BTT_CONTEXT_INFO.Size = New System.Drawing.Size(221, 22)
Me.BTT_CONTEXT_INFO.Text = "Information"
'
- 'BTT_CONTEXT_READY
- '
- Me.BTT_CONTEXT_READY.Name = "BTT_CONTEXT_READY"
- Me.BTT_CONTEXT_READY.Size = New System.Drawing.Size(221, 22)
- Me.BTT_CONTEXT_READY.Text = "Change ready for download"
- '
'MainFrame
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -594,4 +650,10 @@ Partial Class MainFrame
Private WithEvents BTT_VERSION_INFO As ToolStripButton
Private WithEvents BTT_CONTEXT_DOWN_LIMITED As ToolStripMenuItem
Private WithEvents BTT_CONTEXT_READY As ToolStripMenuItem
+ Private WithEvents BTT_SETTINGS_INSTAGRAM As ToolStripMenuItem
+ Private WithEvents BTT_SITE_ALL As ToolStripMenuItem
+ Private WithEvents BTT_SITE_SPECIFIC As ToolStripMenuItem
+ Private WithEvents BTT_CONTEXT_CHANGE_FOLDER As ToolStripMenuItem
+ Private WithEvents PR_SAVED As ToolStripProgressBar
+ Private WithEvents BTT_DOWN_SAVED As ToolStripButton
End Class
diff --git a/SCrawler/MainFrame.resx b/SCrawler/MainFrame.resx
index aa33c66..2d3179e 100644
--- a/SCrawler/MainFrame.resx
+++ b/SCrawler/MainFrame.resx
@@ -132,22 +132,6 @@
False
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
- YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
- 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
- bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
- VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
- c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
- Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
- mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
- kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
- TgDQASA1MVpwzwAAAABJRU5ErkJggg==
-
-
False
@@ -169,12 +153,16 @@
False
+
+ False
+
False
132, 17
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
diff --git a/SCrawler/MainFrame.vb b/SCrawler/MainFrame.vb
index ca87a9a..79332e7 100644
--- a/SCrawler/MainFrame.vb
+++ b/SCrawler/MainFrame.vb
@@ -46,19 +46,30 @@ Public Class MainFrame
MainProgress = New Toolbars.MyProgress(Toolbar_BOTTOM, PR_MAIN, LBL_STATUS) With {.DropCurrentProgressOnTotalChange = False}
Dim gk$
With LIST_PROFILES.Groups
- gk = GetLviGroupName(Sites.Undefined, False, False, True)
+ 'Collections
+ gk = GetLviGroupName(Sites.Undefined, False, True, True, False)
.Add(New ListViewGroup(gk, gk))
- gk = GetLviGroupName(Sites.Undefined, False, True, True)
+ gk = GetLviGroupName(Sites.Undefined, False, False, True, False)
.Add(New ListViewGroup(gk, gk))
- gk = GetLviGroupName(Sites.Undefined, True, False, True)
+ gk = GetLviGroupName(Sites.Undefined, True, False, True, False)
.Add(New ListViewGroup(gk, gk))
- For Each s In {Sites.Reddit, Sites.Twitter}
- gk = GetLviGroupName(s, False, True, False)
- .Add(New ListViewGroup(gk, gk))
- gk = GetLviGroupName(s, False, False, False)
- .Add(New ListViewGroup(gk, gk))
- gk = GetLviGroupName(s, True, False, False)
- .Add(New ListViewGroup(gk, gk))
+ 'Channels
+ gk = GetLviGroupName(Sites.Undefined, False, True, False, True)
+ .Add(New ListViewGroup(gk, gk))
+ gk = GetLviGroupName(Sites.Undefined, False, False, False, True)
+ .Add(New ListViewGroup(gk, gk))
+ gk = GetLviGroupName(Sites.Undefined, True, False, False, True)
+ .Add(New ListViewGroup(gk, gk))
+ 'Sites
+ For Each s As Sites In [Enum].GetValues(GetType(Sites))
+ If Not s = Sites.Undefined Then
+ gk = GetLviGroupName(s, False, True, False, False)
+ .Add(New ListViewGroup(gk, gk))
+ gk = GetLviGroupName(s, False, False, False, False)
+ .Add(New ListViewGroup(gk, gk))
+ gk = GetLviGroupName(s, True, False, False, False)
+ .Add(New ListViewGroup(gk, gk))
+ End If
Next
If Settings.Labels.Count > 0 Then Settings.Labels.ToList.ForEach(Sub(l) .Add(New ListViewGroup(l, l)))
.Add(Settings.Labels.NoLabel)
@@ -72,6 +83,8 @@ Public Class MainFrame
UpdateLabelsGroups()
SetShowButtonsCheckers(Settings.ShowingMode.Value)
CheckVersion(False)
+ BTT_SITE_ALL.Checked = Settings.SelectedSites.Count = 0
+ BTT_SITE_SPECIFIC.Checked = Settings.SelectedSites.Count > 0
_UFinit = False
GoTo EndFunction
FormClosingInvoker:
@@ -89,12 +102,13 @@ EndFunction:
"Downloading in progress"},
MsgBoxStyle.Exclamation,,,
{"Stop downloading and close", "Cancel"}) = 0 Then
- If Downloader.Working Then _CloseInvoked = True : Downloader.Stop()
+ If Downloader.Working Then _CloseInvoked = True : Downloader.Stop() : Downloader.DownloadSavedPostsStop()
+ If Downloader.SavedPostsDownloading Then _CloseInvoked = True : Downloader.DownloadSavedPostsStop()
If ChannelsWorking.Invoke Then _CloseInvoked = True : MyChannels.Stop(False)
If _CloseInvoked Then
e.Cancel = True
Await Task.Run(Sub()
- While Downloader.Working Or ChannelsWorking.Invoke : Thread.Sleep(500) : End While
+ While Downloader.Working Or ChannelsWorking.Invoke Or Downloader.SavedPostsDownloading : Thread.Sleep(500) : End While
End Sub)
End If
Downloader.Dispose()
@@ -240,10 +254,13 @@ CloseResume:
#Region "Toolbar buttons"
#Region "Settings"
Private Sub BTT_SETTINGS_REDDIT_Click(sender As Object, e As EventArgs) Handles BTT_SETTINGS_REDDIT.Click
- Using f As New RedditEditorForm : f.ShowDialog() : End Using
+ Using f As New SiteEditorForm(Sites.Reddit) : f.ShowDialog() : End Using
End Sub
Private Sub BTT_SETTINGS_TWITTER_Click(sender As Object, e As EventArgs) Handles BTT_SETTINGS_TWITTER.Click
- Using f As New TwitterEditorForm : f.ShowDialog() : End Using
+ Using f As New SiteEditorForm(Sites.Twitter) : f.ShowDialog() : End Using
+ End Sub
+ Private Sub BTT_SETTINGS_INSTAGRAM_Click(sender As Object, e As EventArgs) Handles BTT_SETTINGS_INSTAGRAM.Click
+ Using f As New SiteEditorForm(Sites.Instagram) : f.ShowDialog() : End Using
End Sub
Private Sub BTT_SETTINGS_Click(sender As Object, e As EventArgs) Handles BTT_SETTINGS.Click
Dim mhl% = Settings.MaxLargeImageHeigh.Value
@@ -270,19 +287,21 @@ CloseResume:
If Not UserBanned(f.User.Name) Then
Settings.UpdateUsersList(f.User)
Settings.Users.Add(UserDataBase.GetInstance(f.User))
- With Settings.Users(Settings.Users.Count - 1)
- .Favorite = f.UserFavorite
- .Temporary = f.UserTemporary
- .ParseUserMediaOnly = f.UserMediaOnly
- .ReadyForDownload = f.UserReady
- .DownloadImages = f.DownloadImages
- .DownloadVideos = f.DownloadVideos
- .FriendlyName = f.UserFriendly
- .Description = f.UserDescr
- .Self.Labels.ListAddList(f.UserLabels, LAP.ClearBeforeAdd, LAP.NotContainsOnly)
- .UpdateUserInformation()
+ With Settings.Users.Last
+ If Not .FileExists Then
+ .Favorite = f.UserFavorite
+ .Temporary = f.UserTemporary
+ .ParseUserMediaOnly = f.UserMediaOnly
+ .ReadyForDownload = f.UserReady
+ .DownloadImages = f.DownloadImages
+ .DownloadVideos = f.DownloadVideos
+ .FriendlyName = f.UserFriendly
+ .Description = f.UserDescr
+ .Self.Labels.ListAddList(f.UserLabels, LAP.ClearBeforeAdd, LAP.NotContainsOnly)
+ .UpdateUserInformation()
+ End If
End With
- UserListUpdate(Settings.Users(Settings.Users.Count - 1), True)
+ UserListUpdate(Settings.Users.Last, True)
i = LIST_PROFILES.Items.IndexOfKey(Settings.Users(Settings.Users.Count - 1).LVIKey)
If i >= 0 Then
LIST_PROFILES.SelectedIndices.Clear()
@@ -340,6 +359,9 @@ CloseResume:
End If
If MyChannels.Visible Then MyChannels.BringToFront() Else MyChannels.Show()
End Sub
+ Private Sub BTT_DOWN_SAVED_Click(sender As Object, e As EventArgs) Handles BTT_DOWN_SAVED.Click
+ Downloader.DownloadSavedPostsStart(Toolbar_BOTTOM, PR_SAVED)
+ End Sub
#End Region
#Region "Download"
Private Sub BTT_DOWN_SELECTED_Click(sender As Object, e As EventArgs) Handles BTT_DOWN_SELECTED.Click
@@ -388,6 +410,25 @@ CloseResume:
BTT_VIEW_LIST.Checked = List
End Sub
#End Region
+#Region "View Site"
+ Private Sub BTT_SITE_ALL_Click(sender As Object, e As EventArgs) Handles BTT_SITE_ALL.Click
+ Settings.SelectedSites = Nothing
+ If Not BTT_SITE_ALL.Checked Then Settings.SelectedSites = Nothing : RefillList()
+ BTT_SITE_ALL.Checked = True
+ BTT_SITE_SPECIFIC.Checked = False
+ End Sub
+ Private Sub BTT_SITE_SPECIFIC_Click(sender As Object, e As EventArgs) Handles BTT_SITE_SPECIFIC.Click
+ Using f As New SiteSelectionForm(Settings.SelectedSites)
+ f.ShowDialog()
+ If f.DialogResult = DialogResult.OK Then
+ Settings.SelectedSites = f.SelectedSites
+ BTT_SITE_SPECIFIC.Checked = Settings.SelectedSites.Count > 0
+ BTT_SITE_ALL.Checked = Settings.SelectedSites.Count = 0
+ RefillList()
+ End If
+ End Using
+ End Sub
+#End Region
#Region "Labels"
Private Sub BTT_SHOW_ALL_Click(sender As Object, e As EventArgs) Handles BTT_SHOW_ALL.Click
SetShowButtonsCheckers(ShowingModes.All)
@@ -631,6 +672,86 @@ CloseResume:
End If
End If
End Sub
+ Private Sub BTT_CONTEXT_CHANGE_FOLDER_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_CHANGE_FOLDER.Click
+ Try
+ Dim users As List(Of IUserData) = GetSelectedUserArray()
+ If users.ListExists Then
+ If users.Count = 1 Then
+ Dim CutOption% = 1
+ Dim _IsCollection As Boolean = False
+ With users(0)
+ If .IsCollection Then
+ _IsCollection = True
+ With DirectCast(.Self, UserDataBind)
+ If .Count = 0 Then
+ Throw New ArgumentOutOfRangeException("Collection", "Collection is empty")
+ Else
+ With DirectCast(.Collections(0).Self, UserDataBase)
+ If Not .User.Merged Then CutOption = 2
+ End With
+ End If
+ End With
+ End If
+ End With
+
+ Dim CurrDir As SFile = users(0).File.CutPath(CutOption)
+ Dim NewDest As SFile = SFile.GetPath(InputBoxE($"Enter a new destination for user [{users(0)}]", "Change user folder", CurrDir.Path))
+ If Not NewDest.IsEmptyString Then
+ If MsgBoxE({$"You are changing the user's [{users(0)}] destination" & vbCr &
+ $"Current destination: {CurrDir.PathNoSeparator}" & vbCr &
+ $"New destination: {NewDest.Path}",
+ "Changing user destination"}, MsgBoxStyle.Exclamation,,, {"Confirm", "Cancel"}) = 0 Then
+ If Not NewDest.IsEmptyString AndAlso
+ (Not NewDest.Exists(SFO.Path, False) OrElse
+ (
+ SFile.GetFiles(NewDest,, IO.SearchOption.AllDirectories, EDP.ThrowException).ListIfNothing.Count = 0 AndAlso
+ NewDest.Delete(SFO.Path, False, False, EDP.ThrowException) AndAlso
+ Not NewDest.Exists(SFO.Path, False)
+ )
+ ) Then
+ NewDest.CutPath.Exists(SFO.Path)
+ IO.Directory.Move(CurrDir.Path, NewDest.Path)
+ Dim ApplyChanges As Action(Of IUserData) = Sub(ByVal __user As IUserData)
+ With DirectCast(__user.Self, UserDataBase)
+ Dim u As UserInfo = .User.Clone
+ Settings.UsersList.Remove(u)
+ Dim d As SFile = Nothing
+ If _IsCollection Then d = SFile.GetPath($"{NewDest.PathWithSeparator}{u.File.PathFolders(1).LastOrDefault}")
+ If d.IsEmptyString Then d = NewDest
+ u.SpecialPath = d.PathWithSeparator
+ u.UpdateUserFile()
+ Settings.UpdateUsersList(u)
+ .User = u.Clone
+ .UpdateUserInformation()
+ End With
+ End Sub
+ If users(0).IsCollection Then
+ With DirectCast(users(0), UserDataBind)
+ For Each user In .Collections : ApplyChanges(user) : Next
+ End With
+ Else
+ ApplyChanges(users(0))
+ End If
+ MsgBoxE($"User data has been moved")
+ Else
+ MsgBoxE($"Unable to move user data to new destination [{NewDest}]{vbCr}Operation canceled", MsgBoxStyle.Critical)
+ End If
+ Else
+ MsgBoxE("Operation canceled")
+ End If
+ Else
+ MsgBoxE("You have not entered a new destination" & vbCr & "Operation canceled", MsgBoxStyle.Exclamation)
+ End If
+ Else
+ MsgBoxE("You have selected multiple users. You can change the folder only for one user!", MsgBoxStyle.Critical)
+ End If
+ Else
+ MsgBoxE("No one user selected", MsgBoxStyle.Exclamation)
+ End If
+ Catch ex As Exception
+ ErrorsDescriber.Execute(EDP.ShowAllMsg, ex, "Error while moving user")
+ End Try
+ End Sub
Private Sub BTT_CONTEXT_OPEN_PATH_Click(sender As Object, e As EventArgs) Handles BTT_CONTEXT_OPEN_PATH.Click
OpenFolder()
End Sub
@@ -745,26 +866,51 @@ CloseResume:
If USER_CONTEXT.Visible Then USER_CONTEXT.Hide()
Dim ugn As Func(Of IUserData, String) = Function(u) $"{IIf(u.IsCollection, "Collection", "User")}: {u.Name}"
Dim m As New MMessage(users.Select(ugn).ListToString(, vbNewLine), "Users deleting",
- {New Messaging.MsgBoxButton("Delete and ban") With {.ToolTip = "Users will be deleted and added to the blacklist"},
+ {New Messaging.MsgBoxButton("Delete and ban") With {.ToolTip = "Users and their data will be deleted and added to the blacklist"},
+ New Messaging.MsgBoxButton("Delete user only and ban") With {
+ .ToolTip = "Users will be deleted and added to the blacklist (user data will not be deleted)"},
New Messaging.MsgBoxButton("Delete and ban with reason") With {
- .ToolTip = "Users will be deleted and added to the blacklist with set a reason to delete"},
- "Delete", "Cancel"}, MsgBoxStyle.Exclamation) With {.ButtonsPerRow = 2}
+ .ToolTip = "Users and their data will be deleted and added to the blacklist with set a reason to delete"},
+ New Messaging.MsgBoxButton("Delete user only and ban with reason") With {
+ .ToolTip = "Users will be deleted and added to the blacklist with set a reason to delete (user data will not be deleted)"},
+ New Messaging.MsgBoxButton("Delete") With {.ToolTip = "Delete users and their data"},
+ New Messaging.MsgBoxButton("Delete user only") With {.ToolTip = "Delete users but keep data"}, "Cancel"},
+ MsgBoxStyle.Exclamation) With {.ButtonsPerRow = 2, .ButtonsPlacing = MMessage.ButtonsPlacings.StartToEnd}
m.Text = $"The following users ({users.Count}) will be deleted:{vbNewLine}{m.Text}"
Dim result% = MsgBoxE(m)
- If result < 3 Then
+ If result < 6 Then
Dim removedUsers As New List(Of String)
+ Dim keepData As Boolean = Not (result Mod 2) = 0
+ Dim banUser As Boolean = result < 4
+ Dim setReason As Boolean = banUser And result > 1
Dim leftUsers As New List(Of String)
Dim l As New ListAddParams(LAP.NotContainsOnly)
Dim b As Boolean = False
Dim reason$ = String.Empty
- If result = 1 Then reason = InputBoxE("Enter a deletion reason:", "Deletion reason")
+ If setReason Then reason = InputBoxE("Enter a deletion reason:", "Deletion reason")
For Each user In users
- If user.Delete > 0 Then
- If result < 2 Then Settings.BlackList.ListAddValue(New UserBan(user.Name, reason), l) : b = True
+ If keepData Then
+ If banUser Then Settings.BlackList.ListAddValue(New UserBan(user.Name, reason), l) : b = True
+ If user.IsCollection Then
+ With DirectCast(user, UserDataBind)
+ If .Count > 0 Then .Collections.ForEach(Sub(c) Settings.UsersList.Remove(DirectCast(c.Self, UserDataBase).User))
+ End With
+ Else
+ Settings.UsersList.Remove(DirectCast(user.Self, UserDataBase).User)
+ End If
+ Settings.Users.Remove(user)
+ Settings.UpdateUsersList()
RemoveUserFromList(user)
removedUsers.Add(ugn(user))
+ user.Dispose()
Else
- leftUsers.Add(ugn(user))
+ If user.Delete > 0 Then
+ If banUser Then Settings.BlackList.ListAddValue(New UserBan(user.Name, reason), l) : b = True
+ RemoveUserFromList(user)
+ removedUsers.Add(ugn(user))
+ Else
+ leftUsers.Add(ugn(user))
+ End If
End If
Next
m = New MMessage(String.Empty, "Users deleting")
diff --git a/SCrawler/MainMod.vb b/SCrawler/MainMod.vb
index f04c81e..c1cc5e0 100644
--- a/SCrawler/MainMod.vb
+++ b/SCrawler/MainMod.vb
@@ -18,6 +18,7 @@ Friend Module MainMod
Friend Const LVI_FavOption As String = "Favorite"
Friend Const CannelsLabelName As String = "Channels"
Friend Const LVI_CollectionOption As String = "Collection"
+ Friend Const LVI_ChannelOption As String = "Channel"
Friend Enum ViewModes As Integer
IconLarge = 0
IconSmall = 2
@@ -47,7 +48,8 @@ Friend Module MainMod
End Class
#End Region
Friend Property MainProgress As PersonalUtilities.Forms.Toolbars.MyProgress
- Friend Function GetLviGroupName(ByVal Site As Sites, ByVal Temp As Boolean, ByVal Fav As Boolean, ByVal IsCollection As Boolean) As String
+ Friend Function GetLviGroupName(ByVal Site As Sites, ByVal Temp As Boolean, ByVal Fav As Boolean,
+ ByVal IsCollection As Boolean, ByVal IsChannel As Boolean) As String
Dim Opt$ = String.Empty
If Temp Then
Opt = LVI_TempOption
@@ -57,6 +59,8 @@ Friend Module MainMod
If Not Opt.IsEmptyString Then Opt = $" ({Opt})"
If IsCollection Then
Return $"{LVI_CollectionOption}{Opt}"
+ ElseIf IsChannel Then
+ Return $"{LVI_ChannelOption}{Opt}"
Else
Return $"{Site}{Opt}"
End If
@@ -65,32 +69,37 @@ Friend Module MainMod
Undefined = 0
Reddit = 1
Twitter = 2
+ Instagram = 3
End Enum
Friend Structure UserInfo : Implements IComparable(Of UserInfo), IEquatable(Of UserInfo), ICloneable
Friend Const Name_Site As String = "Site"
Friend Const Name_Collection As String = "Collection"
Friend Const Name_Merged As String = "Merged"
Friend Const Name_IsChannel As String = "IsChannel"
+ Friend Const Name_SpecialPath As String = "SpecialPath"
Friend Name As String
Friend Site As Sites
Friend File As SFile
+ Friend SpecialPath As SFile
Friend Merged As Boolean
Friend IncludedInCollection As Boolean
Friend CollectionName As String
Friend IsChannel As Boolean
Friend Sub New(ByVal _Name As String, ByVal s As Sites, Optional ByVal Collection As String = Nothing,
- Optional ByVal _Merged As Boolean = False)
+ Optional ByVal _Merged As Boolean = False, Optional ByVal _SpecialPath As SFile = Nothing)
Name = _Name
Site = s
IncludedInCollection = Not Collection.IsEmptyString
CollectionName = Collection
Merged = _Merged
+ SpecialPath = _SpecialPath
UpdateUserFile()
End Sub
Friend Sub New(ByVal x As EContainer)
Me.New(x.Value,
x.Attribute(Name_Site).Value.FromXML(Of Integer)(CInt(Sites.Undefined)),
- x.Attribute(Name_Collection).Value, x.Attribute(Name_Merged).Value.FromXML(Of Boolean)(False))
+ x.Attribute(Name_Collection).Value, x.Attribute(Name_Merged).Value.FromXML(Of Boolean)(False),
+ SFile.GetPath(x.Attribute(Name_SpecialPath).Value))
IsChannel = x.Attribute(Name_IsChannel).Value.FromXML(Of Boolean)(False)
End Sub
Friend Sub New(ByVal c As Reddit.Channel)
@@ -123,13 +132,15 @@ Friend Module MainMod
}
End Sub
Private Function GetFilePathByParams() As String
- If Merged And IncludedInCollection Then
+ If Not SpecialPath.IsEmptyString Then
+ Return $"{SpecialPath.PathWithSeparator}{SettingsFolderName}"
+ ElseIf Merged And IncludedInCollection Then
Return $"{Settings.CollectionsPathF.PathNoSeparator}\{CollectionName}\{SettingsFolderName}"
Else
If IncludedInCollection Then
Return $"{Settings.CollectionsPathF.PathNoSeparator}\{CollectionName}\{Site}_{Name}\{SettingsFolderName}"
Else
- Return $"{Settings.Site(Site).Path.PathNoSeparator}\{Name}\{SettingsFolderName}"
+ Return $"{Settings(Site).Path.PathNoSeparator}\{Name}\{SettingsFolderName}"
End If
End If
End Function
@@ -137,7 +148,8 @@ Friend Module MainMod
Return New EContainer("User", Name, {New EAttribute(Name_Site, CInt(Site)),
New EAttribute(Name_Collection, CollectionName),
New EAttribute(Name_Merged, Merged.BoolToInteger),
- New EAttribute(Name_IsChannel, IsChannel.BoolToInteger)})
+ New EAttribute(Name_IsChannel, IsChannel.BoolToInteger),
+ New EAttribute(Name_SpecialPath, SpecialPath.PathWithSeparator)})
End Function
Friend Function CompareTo(ByVal Other As UserInfo) As Integer Implements IComparable(Of UserInfo).CompareTo
If Site = Other.Site Then
@@ -157,9 +169,11 @@ Friend Module MainMod
.Name = Name,
.Site = Site,
.File = File,
+ .SpecialPath = SpecialPath,
.Merged = Merged,
.IncludedInCollection = IncludedInCollection,
- .CollectionName = CollectionName
+ .CollectionName = CollectionName,
+ .IsChannel = IsChannel
}
End Function
End Structure
@@ -207,62 +221,88 @@ Friend Module MainMod
Friend Function DownloadVideoByURL(ByVal URL As String, ByVal AskForPath As Boolean, ByVal Silent As Boolean) As Boolean
Dim e As New ErrorsDescriber(Not Silent, Not Silent, True, False)
Try
+ Dim Result As Boolean = False
If Not URL.IsEmptyString Then
- Dim u As UserMedia = Nothing
+ Dim um As IEnumerable(Of UserMedia) = Nothing
+ Dim site As Sites
If URL.Contains("twitter") Then
- u = Twitter.UserData.GetVideoInfo(URL)
+ um = Twitter.UserData.GetVideoInfo(URL)
+ site = Sites.Twitter
ElseIf URL.Contains("redgifs") Then
- u = Reddit.UserData.GetVideoInfo(URL)
+ um = Reddit.UserData.GetVideoInfo(URL)
+ site = Sites.Reddit
+ ElseIf URL.Contains("instagram.com") Then
+ um = Instagram.UserData.GetVideoInfo(URL)
+ site = Sites.Instagram
Else
MsgBoxE("Site of video URL does not recognized" & vbCr & "Operation canceled", MsgBoxStyle.Exclamation, e)
Return False
End If
- If Not u.URL.IsEmptyString Or Not u.URL_BASE.IsEmptyString Then
- Dim f As SFile = u.File
- If f.Name.IsEmptyString Then f.Name = $"video_{u.Post.ID}"
- If f.Extension.IsEmptyString Then f.Extension = "mp4"
- If Not Settings.LatestSavingPath.IsEmptyString And
- Settings.LatestSavingPath.Value.Exists(SFO.Path, False) Then f.Path = Settings.LatestSavingPath.Value
- If AskForPath OrElse Not f.Exists(SFO.Path, False) Then
+ If um.ListExists Then
+ Dim f As SFile, ff As SFile
+ For Each u As UserMedia In um
+ If Not u.URL.IsEmptyString Or Not u.URL_BASE.IsEmptyString Then
+ f = u.File
+ If f.Name.IsEmptyString Then f.Name = $"video_{u.Post.ID}"
+ If f.Extension.IsEmptyString Then f.Extension = "mp4"
+ If Not Settings.LatestSavingPath.IsEmptyString And
+ Settings.LatestSavingPath.Value.Exists(SFO.Path, False) Then f.Path = Settings.LatestSavingPath.Value
+ If AskForPath OrElse Not f.Exists(SFO.Path, False) Then
#Disable Warning BC40000
- f = SFile.SaveAs(f, "Video file destination", True, "mp4", "Video|*.mp4|All files|*.*", EDP.ReturnValue)
-#Enable Warning
- End If
- If Not f.IsEmptyString Then
- Settings.LatestSavingPath.Value = f.PathWithSeparator
- Dim dURL$
- Dim FileDownloaded As Boolean = False
- Using w As New Net.WebClient
- For i% = 0 To 1
- If i = 0 Then dURL = u.URL Else dURL = u.URL_BASE
- If Not dURL.IsEmptyString Then
- Try
- w.DownloadFile(dURL, f)
- FileDownloaded = True
- Exit For
- Catch wex As Exception
- ErrorsDescriber.Execute(EDP.SendInLog, wex, "DownloadVideoByURL")
- End Try
+ If site = Sites.Instagram Then
+ ff = SFile.SaveAs(f, "Instagram files destination",,,, EDP.ReturnValue)
+ If Not ff.IsEmptyString Then
+ f.Path = ff.Path
+ Else
+ f = Nothing
+ End If
+ Else
+ f = SFile.SaveAs(f, "Video file destination", True, "mp4", "Video|*.mp4|All files|*.*", EDP.ReturnValue)
End If
- Next
- End Using
- If FileDownloaded Then
- MsgBoxE($"File downloaded to [{f}]",, e)
- Return True
+#Enable Warning
+ AskForPath = False
+ End If
+ If Not f.IsEmptyString Then
+ Settings.LatestSavingPath.Value = f.PathWithSeparator
+ Dim dURL$
+ Dim FileDownloaded As Boolean = False
+ Using w As New Net.WebClient
+ For i% = 0 To 1
+ If i = 0 Then dURL = u.URL Else dURL = u.URL_BASE
+ If Not dURL.IsEmptyString Then
+ Try
+ w.DownloadFile(dURL, f)
+ FileDownloaded = True
+ Exit For
+ Catch wex As Exception
+ ErrorsDescriber.Execute(EDP.SendInLog, wex, "DownloadVideoByURL")
+ End Try
+ End If
+ Next
+ End Using
+ If FileDownloaded Then
+ If um.Count = 1 Then
+ MsgBoxE($"File downloaded to [{f}]",, e)
+ Return True
+ Else
+ Result = True
+ End If
+ Else
+ If um.Count = 1 Then MsgBoxE("File does not downloaded", MsgBoxStyle.Critical, e)
+ End If
+ Else
+ If um.Count = 1 Then MsgBoxE("File destination does not pointed" & vbCr & "Operation canceled",, e)
+ End If
Else
- MsgBoxE("File does not downloaded", MsgBoxStyle.Critical, e)
+ If um.Count = 1 Then MsgBoxE("File URL does not found!", MsgBoxStyle.Critical, e)
End If
- Else
- MsgBoxE("File destination does not pointed" & vbCr & "Operation canceled",, e)
- End If
- Else
- MsgBoxE("File URL does not found!", MsgBoxStyle.Critical, e)
+ Next
End If
Else
MsgBoxE("URL is empty", MsgBoxStyle.Exclamation, e)
End If
- Return False
+ Return Result
Catch ex As Exception
Return ErrorsDescriber.Execute(e, ex, "Downloading video by URL error", False)
End Try
diff --git a/SCrawler/My Project/AssemblyInfo.vb b/SCrawler/My Project/AssemblyInfo.vb
index 4481450..b35a113 100644
--- a/SCrawler/My Project/AssemblyInfo.vb
+++ b/SCrawler/My Project/AssemblyInfo.vb
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
'
-
-
+
+
diff --git a/SCrawler/My Project/Resources.Designer.vb b/SCrawler/My Project/Resources.Designer.vb
index 6478cdd..ca8e314 100644
--- a/SCrawler/My Project/Resources.Designer.vb
+++ b/SCrawler/My Project/Resources.Designer.vb
@@ -60,6 +60,16 @@ Namespace My.Resources
End Set
End Property
+ '''
+ ''' Looks up a localized resource of type System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property BookmarkBlack_16() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("BookmarkBlack_16", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
+
'''
''' Looks up a localized resource of type System.Drawing.Bitmap.
'''
@@ -110,6 +120,26 @@ Namespace My.Resources
End Get
End Property
+ '''
+ ''' Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
+ '''
+ Friend ReadOnly Property InstagramIcon() As System.Drawing.Icon
+ Get
+ Dim obj As Object = ResourceManager.GetObject("InstagramIcon", resourceCulture)
+ Return CType(obj,System.Drawing.Icon)
+ End Get
+ End Property
+
+ '''
+ ''' Looks up a localized resource of type System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property InstagramPic76() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("InstagramPic76", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
+
'''
''' Looks up a localized resource of type System.Drawing.Bitmap.
'''
@@ -210,6 +240,16 @@ Namespace My.Resources
End Get
End Property
+ '''
+ ''' Looks up a localized resource of type System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property SettingsPic_16() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("SettingsPic_16", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
+
'''
''' Looks up a localized resource of type System.Drawing.Bitmap.
'''
@@ -239,5 +279,15 @@ Namespace My.Resources
Return CType(obj,System.Drawing.Icon)
End Get
End Property
+
+ '''
+ ''' Looks up a localized resource of type System.Drawing.Bitmap.
+ '''
+ Friend ReadOnly Property TwitterPic400() As System.Drawing.Bitmap
+ Get
+ Dim obj As Object = ResourceManager.GetObject("TwitterPic400", resourceCulture)
+ Return CType(obj,System.Drawing.Bitmap)
+ End Get
+ End Property
End Module
End Namespace
diff --git a/SCrawler/My Project/Resources.resx b/SCrawler/My Project/Resources.resx
index 4a9250b..b3f56db 100644
--- a/SCrawler/My Project/Resources.resx
+++ b/SCrawler/My Project/Resources.resx
@@ -118,17 +118,14 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
- ..\Content\Pictures\GlobeBlue_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Content\Pictures\StarPic_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Content\Pictures\PrevPIC2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Content\Pictures\PicturePic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Content\Pictures\PencilPic_01_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Content\Pictures\NextPIC2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
@@ -136,40 +133,58 @@
..\Content\Pictures\Folder_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Content\Pictures\PencilPic_01_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Content\Pictures\TwitterPic400.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Content\Pictures\PlusPIC.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Content\Icons\TwitterIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Content\Pictures\SettingsPic_16.bmp;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
..\Content\Pictures\Delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Content\Pictures\InfoPic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Content\Icons\InstagramIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Content\Pictures\GlobeBlue_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Content\Pictures\PicturePic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
..\Content\Pictures\Refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Content\Pictures\DBPic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Content\Icons\RedditIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Content\Pictures\InstagramPic76.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
..\Content\Icons\Rainbow.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
..\Content\Pictures\Pin_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Content\Pictures\StartPic_01_Green_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
..\Content\Pictures\RedditPic512.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
-
- ..\Content\Icons\TwitterIcon.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Content\Pictures\DBPic_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Content\Pictures\StartPic_01_Green_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
+ ..\Content\Pictures\BookmarkBlack_16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
\ No newline at end of file
diff --git a/SCrawler/SCrawler.vbproj b/SCrawler/SCrawler.vbproj
index 4767565..00a1aab 100644
--- a/SCrawler/SCrawler.vbproj
+++ b/SCrawler/SCrawler.vbproj
@@ -133,13 +133,18 @@
+
+
+
+
+
@@ -174,16 +179,16 @@
Form
-
- RedditEditorForm.vb
+
+ SiteSelectionForm.vb
-
+
Form
-
- TwitterEditorForm.vb
+
+ SiteEditorForm.vb
-
+
Form
@@ -244,11 +249,11 @@
LabelsForm.vb
-
- RedditEditorForm.vb
+
+ SiteSelectionForm.vb
-
- TwitterEditorForm.vb
+
+ SiteEditorForm.vb
UserCreatorForm.vb
@@ -287,6 +292,11 @@
+
+
+
+
+
PreserveNewest
diff --git a/SCrawler/SettingsCLS.vb b/SCrawler/SettingsCLS.vb
index 249042f..b99f86c 100644
--- a/SCrawler/SettingsCLS.vb
+++ b/SCrawler/SettingsCLS.vb
@@ -13,6 +13,7 @@ Imports SCrawler.API.Base
Friend Class SettingsCLS : Implements IDisposable
Friend Const DefaultMaxDownloadingTasks As Integer = 5
Friend Const Name_Node_Sites As String = "Sites"
+ Private Const SitesValuesSeparator As String = ","
Friend ReadOnly Design As XmlFile
Private ReadOnly MyXML As XmlFile
Friend ReadOnly OS64 As Boolean
@@ -44,11 +45,6 @@ Friend Class SettingsCLS : Implements IDisposable
GlobalPath = New XMLValue(Of SFile)("GlobalPath", New SFile($"{SFile.GetPath(Application.StartupPath).PathWithSeparator}Data\"), MyXML,,
XMLValue(Of SFile).ToFilePath)
- MySites = New Dictionary(Of Sites, SiteSettings) From {
- {Sites.Reddit, New SiteSettings(Sites.Reddit, MyXML, GlobalPath.Value)},
- {Sites.Twitter, New SiteSettings(Sites.Twitter, MyXML, GlobalPath.Value)}
- }
- MySites(Sites.Reddit).Responser.Decoders.Add(SymbolsConverter.Converters.Unicode)
SeparateVideoFolder = New XMLValue(Of Boolean)("SeparateVideoFolder", True, MyXML)
CollectionsPath = New XMLValue(Of String)("CollectionsPath", "Collections", MyXML)
@@ -62,33 +58,12 @@ Friend Class SettingsCLS : Implements IDisposable
DefaultDownloadVideos.ReplaceByValue("DefaultDownloadVideos")
ChangeReadyForDownOnTempChange = New XMLValue(Of Boolean)("ChangeReadyForDownOnTempChange", True, MyXML, n)
- n = {Name_Node_Sites, Sites.Reddit.ToString}
- RedditTemporary = New XMLValue(Of Boolean)
- RedditTemporary.SetExtended("Temporary", False, MyXML, n)
- RedditTemporary.SetDefault(DefaultTemporary)
-
- RedditDownloadImages = New XMLValue(Of Boolean)
- RedditDownloadImages.SetExtended("DownloadImages", True, MyXML, n)
- RedditDownloadImages.SetDefault(DefaultDownloadImages)
-
- RedditDownloadVideos = New XMLValue(Of Boolean)
- RedditDownloadVideos.SetExtended("DownloadVideos", True, MyXML, n)
- RedditDownloadVideos.SetDefault(DefaultDownloadVideos)
-
- n = {Name_Node_Sites, Sites.Twitter.ToString}
- TwitterTemporary = New XMLValue(Of Boolean)
- TwitterTemporary.SetExtended("Temporary", False, MyXML, n)
- TwitterTemporary.SetDefault(DefaultTemporary)
-
- TwitterDownloadImages = New XMLValue(Of Boolean)
- TwitterDownloadImages.SetExtended("DownloadImages", True, MyXML, n)
- TwitterDownloadImages.SetDefault(DefaultDownloadImages)
-
- TwitterDownloadVideos = New XMLValue(Of Boolean)
- TwitterDownloadVideos.SetExtended("DownloadVideos", True, MyXML, n)
- TwitterDownloadVideos.SetDefault(DefaultDownloadVideos)
-
- TwitterDefaultGetUserMedia = New XMLValue(Of Boolean)("TwitterDefaultGetUserMedia", True, MyXML, n)
+ MySites = New Dictionary(Of Sites, SiteSettings) From {
+ {Sites.Reddit, New SiteSettings(Sites.Reddit, MyXML, GlobalPath.Value, DefaultTemporary, DefaultDownloadImages, DefaultDownloadVideos)},
+ {Sites.Twitter, New SiteSettings(Sites.Twitter, MyXML, GlobalPath.Value, DefaultTemporary, DefaultDownloadImages, DefaultDownloadVideos)},
+ {Sites.Instagram, New SiteSettings(Sites.Instagram, MyXML, GlobalPath.Value, DefaultTemporary, DefaultDownloadImages, DefaultDownloadVideos)}
+ }
+ MySites(Sites.Reddit).Responser.Decoders.Add(SymbolsConverter.Converters.Unicode)
MaxLargeImageHeigh = New XMLValue(Of Integer)("MaxLargeImageHeigh", 150, MyXML)
MaxSmallImageHeigh = New XMLValue(Of Integer)("MaxSmallImageHeigh", 15, MyXML)
@@ -100,6 +75,14 @@ Friend Class SettingsCLS : Implements IDisposable
LatestSelectedLabels = New XMLValue(Of String)("LatestSelectedLabels",, MyXML)
LatestSelectedChannel = New XMLValue(Of String)("LatestSelectedChannel",, MyXML)
+ XMLSelectedSites = New XMLValue(Of String)("SelectedSites", String.Empty, MyXML, {Name_Node_Sites})
+ If Not XMLSelectedSites.IsEmptyString Then
+ _SelectedSites = XMLSelectedSites.Value.StringToList(Of Sites)(SitesValuesSeparator)
+ End If
+ If _SelectedSites Is Nothing Then _SelectedSites = New List(Of Sites)
+
+ ImgurClientID = New XMLValue(Of String)("ImgurClientID", String.Empty, MyXML, {Name_Node_Sites})
+
n = {Name_Node_Sites, "Channels"}
ChannelsDefaultReadyForDownload = New XMLValue(Of Boolean)("ChannelsDefaultReadyForDownload", False, MyXML, n)
ChannelsDefaultTemporary = New XMLValue(Of Boolean)("ChannelsDefaultTemporary", True, MyXML, n)
@@ -300,7 +283,7 @@ Friend Class SettingsCLS : Implements IDisposable
_UpdatesSuspended = False
ChangeDateProvider(Nothing, Nothing, Nothing)
End Sub
- Friend ReadOnly Property Site(ByVal s As Sites) As SiteSettings
+ Default Friend ReadOnly Property Site(ByVal s As Sites) As SiteSettings
Get
Return MySites(s)
End Get
@@ -318,22 +301,12 @@ Friend Class SettingsCLS : Implements IDisposable
End Get
End Property
Friend ReadOnly Property MaxUsersJobsCount As XMLValue(Of Integer)
+ Friend ReadOnly Property ImgurClientID As XMLValue(Of String)
#Region "Defaults"
Friend ReadOnly Property DefaultTemporary As XMLValue(Of Boolean)
Friend ReadOnly Property DefaultDownloadImages As XMLValue(Of Boolean)
Friend ReadOnly Property DefaultDownloadVideos As XMLValue(Of Boolean)
Friend ReadOnly Property ChangeReadyForDownOnTempChange As XMLValue(Of Boolean)
-#Region "Reddit"
- Friend ReadOnly Property RedditTemporary As XMLValue(Of Boolean)
- Friend ReadOnly Property RedditDownloadImages As XMLValue(Of Boolean)
- Friend ReadOnly Property RedditDownloadVideos As XMLValue(Of Boolean)
-#End Region
-#Region "Twitter"
- Friend ReadOnly Property TwitterTemporary As XMLValue(Of Boolean)
- Friend ReadOnly Property TwitterDownloadImages As XMLValue(Of Boolean)
- Friend ReadOnly Property TwitterDownloadVideos As XMLValue(Of Boolean)
- Friend ReadOnly Property TwitterDefaultGetUserMedia As XMLValue(Of Boolean)
-#End Region
#End Region
#Region "User data"
Friend ReadOnly Property FromChannelDownloadTop As XMLValue(Of Integer)
@@ -360,6 +333,22 @@ Friend Class SettingsCLS : Implements IDisposable
End Get
End Property
Friend ReadOnly Property ShowingMode As XMLValue(Of Integer)
+ Private ReadOnly Property XMLSelectedSites As XMLValue(Of String)
+ Private ReadOnly _SelectedSites As List(Of Sites)
+ Friend Property SelectedSites As List(Of Sites)
+ Get
+ Return _SelectedSites
+ End Get
+ Set(ByVal s As List(Of Sites))
+ _SelectedSites.Clear()
+ If s.ListExists Then
+ _SelectedSites.ListAddList(s)
+ XMLSelectedSites.Value = ListAddList(Of Integer, Sites)(Nothing, s).ListToString(, SitesValuesSeparator)
+ Else
+ XMLSelectedSites.Value = String.Empty
+ End If
+ End Set
+ End Property
#End Region
#Region "Latest values"
Friend ReadOnly Property LatestSavingPath As XMLValue(Of SFile)
diff --git a/SCrawler/TDownloader.vb b/SCrawler/TDownloader.vb
index fdea68a..b0fffa8 100644
--- a/SCrawler/TDownloader.vb
+++ b/SCrawler/TDownloader.vb
@@ -73,6 +73,7 @@ Friend Class TDownloader : Implements IDisposable
_Working = False
TokenSource = Nothing
UpdateJobsLabel()
+ If Settings(Sites.Instagram).InstaHashUpdateRequired Then MyMainLOG = "Check your Instagram credentials"
RaiseEvent OnDownloading(False)
End Try
End Sub
@@ -91,23 +92,33 @@ Friend Class TDownloader : Implements IDisposable
Dim i% = -1
Dim j% = Settings.MaxUsersJobsCount - 1
Dim Keys As New List(Of String)
+ Dim h As Boolean = False
+ Dim InstaReady As Boolean = Settings(Sites.Instagram).InstagramReadyForDownload
For Each _Item As IUserData In Items
If Not _Item.Disposed Then
Keys.Add(_Item.LVIKey)
- Token.ThrowIfCancellationRequested()
- t.Add(Task.Run(Sub() _Item.DownloadData(Token)))
- i += 1
- If i >= j Then Exit For
+ If Not _Item.Site = Sites.Instagram Or InstaReady Then
+ If _Item.Site = Sites.Instagram Then h = True : Settings(Sites.Instagram).InstagramTooManyRequestsReadyForCatch = True
+ Token.ThrowIfCancellationRequested()
+ t.Add(Task.Run(Sub() _Item.DownloadData(Token)))
+ i += 1
+ If i >= j Then Exit For
+ End If
End If
Next
- If t.Count > 0 Then
+ If t.Count > 0 Or Keys.Count > 0 Then
+ If h Then
+ With Settings(Sites.Instagram)
+ If .InstaHash.IsEmptyString Or .InstaHashUpdateRequired Then .GatherInstaHash()
+ End With
+ End If
_CurrentDownloadingTasks = t.Count
With MainProgress
.Enabled(EOptions.All) = True
.Information = $"Downloading {_CurrentDownloadingTasks.NumToString(nf, NProv)}/{Items.Count.NumToString(nf, NProv)} profiles' data"
.InformationTemporary = .Information
End With
- Task.WaitAll(t.ToArray)
+ If t.Count > 0 Then Task.WaitAll(t.ToArray)
Dim dcc As Boolean = False
If Keys.Count > 0 Then
For Each k$ In Keys
@@ -167,6 +178,33 @@ Friend Class TDownloader : Implements IDisposable
End If
Return Nothing
End Function
+#Region "Saved posts downloading"
+ Friend ReadOnly Property SavedPostsDownloading As Boolean
+ Get
+ Return If(_SavedPostsThread?.IsAlive, False)
+ End Get
+ End Property
+ Private _SavedPostsThread As Thread
+ Friend Sub DownloadSavedPostsStart(ByVal Toolbar As StatusStrip, ByVal PR As ToolStripProgressBar)
+ If Not SavedPostsDownloading Then
+ If Settings(Sites.Reddit).SavedPostsUserName.IsEmptyString Then
+ MsgBoxE($"Username of saved posts not set{vbNewLine}Operation canceled", MsgBoxStyle.Critical)
+ Else
+ _SavedPostsThread = New Thread(New ThreadStart(Sub() Reddit.ProfileSaved.Download(Toolbar, PR)))
+ _SavedPostsThread.SetApartmentState(ApartmentState.MTA)
+ _SavedPostsThread.Start()
+ End If
+ Else
+ MsgBoxE("Saved posts are already downloading", MsgBoxStyle.Exclamation)
+ End If
+ End Sub
+ Friend Sub DownloadSavedPostsStop()
+ Try
+ If SavedPostsDownloading Then _SavedPostsThread.Abort()
+ Catch ex As Exception
+ End Try
+ End Sub
+#End Region
Friend Sub Add(ByVal Item As IUserData)
If Not Items.Contains(Item) Then
If Item.IsCollection Then Item.DownloadData(Nothing) Else Items.Add(Item)
diff --git a/SCrawler/VideosDownloaderForm.vb b/SCrawler/VideosDownloaderForm.vb
index 33fbfe6..eb2a585 100644
--- a/SCrawler/VideosDownloaderForm.vb
+++ b/SCrawler/VideosDownloaderForm.vb
@@ -26,7 +26,7 @@ Friend Class VideosDownloaderForm
MyView = New FormsView(Me)
MyView.ImportFromXML(Settings.Design)
MyView.SetMeSize()
- RefillList()
+ RefillList(False)
Catch ex As Exception
End Try
End Sub
@@ -36,9 +36,7 @@ Friend Class VideosDownloaderForm
End Sub
Private Sub VideosDownloaderForm_Disposed(sender As Object, e As EventArgs) Handles Me.Disposed
If Not MyView Is Nothing Then MyView.Dispose(Settings.Design)
- If UrlList.Count > 0 Then
- TextSaver.SaveTextToFile(UrlList.ListToString(, Environment.NewLine), DownloadingUrlsFile, True,, EDP.SendInLog)
- End If
+ If UrlList.Count > 0 Then UpdateUrlsFile()
UrlList.Clear()
End Sub
Private Sub VideosDownloaderForm_KeyDown(sender As Object, e As KeyEventArgs) Handles Me.KeyDown
@@ -51,17 +49,25 @@ Friend Class VideosDownloaderForm
End Select
If b Then e.Handled = True
End Sub
- Private Sub RefillList()
+ Private Sub RefillList(Optional ByVal Update As Boolean = True)
Try
With LIST_VIDEOS
.Items.Clear()
If UrlList.Count > 0 Then UrlList.ForEach(Sub(u) .Items.Add(u))
If .Items.Count > 0 And _LatestSelected >= 0 And _LatestSelected <= .Items.Count - 1 Then .SelectedIndex = _LatestSelected
+ If Update Then UpdateUrlsFile()
End With
Catch ex As Exception
ErrorsDescriber.Execute(EDP.LogMessageValue, ex, "Error on list refill")
End Try
End Sub
+ Private Sub UpdateUrlsFile()
+ If UrlList.Count > 0 Then
+ TextSaver.SaveTextToFile(UrlList.ListToString(, Environment.NewLine), DownloadingUrlsFile, True,, EDP.SendInLog)
+ Else
+ If DownloadingUrlsFile.Exists Then DownloadingUrlsFile.Delete(,,, EDP.SendInLog)
+ End If
+ End Sub
Private Sub BTT_ADD_Click(sender As Object, e As EventArgs) Handles BTT_ADD.Click
AddVideo()
End Sub