GoldenChaos-BTT Support and Feedback Thread

Huh, it's not doing anything substantially more complex or energy-hungry than other buttons. @Andreas_Hegenberg could you take a look... or maybe it would just be easier to provide a play/pause widget with some of the same logic as the now playing widget? :slight_smile: or at least a way to use your "no media player is running" detection so it's consistent?

Also, I think I have a solution for some of the jankiness of the how presets work. Recently discovered BTT persistent variables, so now I can use those instead of manually turning the visibility of buttons on and off. :smile:

this is 'AirPods battery' bug ? just only show Right AirPods battery. and I have a another question. "L :", "R: " can change another language ?

Whoops, typo. Will have it fixed in the next version. Also sent a PM to @Andreas_Hegenberg asking for a BTT variable to detect if media players are running or not @kdhyde which should fix the media control energy issues.

Maybe not as close to the next stable version as I thought :stuck_out_tongue: though still definitely getting there.

EDIT: Hooooly crap the "BTTCurrentlyPlaying" variable has a third state when no media player is running. brb

EDIT2: What the heck, the button is returning the correct value but not being displayed...

Script:

set playerState to get_number_variable "BTTCurrentlyPlaying"
if playerState is 1.0 then
	return "Pause"
else if playerState is 0.0 then
	return "Play"
else if playerState is missing value then
	return ""
else
	return ""
end if

Am I doing something wrong here @Andreas_Hegenberg?

Any chance for IINA support?
https://lhc70000.github.io/iina/

https://lhc70000.github.io/iina/features/#screenshots

Goodbye VLC.
Seriously, everyone should switch from whatever media player they're using to IINA.
I've replaced VLC with this for about two years and haven't had a single problem.

--

p.s. @GoldenChaos :
I've integrated some of your widgets into Aqua-Touch and they work very well! [Now Playing, Calendar, Reminders] I've neatened them up too so I can't wait to get home and film it in action!

3 Likes

Hi guys,

Unfortunately my AirPod widget is failing to connect to my AirPods on 2.627-2. The icon still turns blue once it's connected.

I found this online which seems to do a better job of connecting my AirPods:

activate  application "SystemUIServer"

 tell  application "System Events"

 tell  process "SystemUIServer"

-- Working CONNECT Script. Goes through the following:

-- Clicks on Bluetooth Menu (OSX Top Menu Bar)

-- => Clicks on SX-991 Item

-- => Clicks on Connect Item

 set  btMenu  to  ( *menu bar item* 1  of  *menu bar* 1  whose  description  contains  "bluetooth")

 tell  btMenu

 click 

 tell  ( menu item "AIRPOD NAME"  of  menu 1)

 click 

 if   exists  menu item "Connect"  of  menu 1  then 

 click  menu item "Connecting..."  of  menu 1

 return  "Disconnecting..."

 else 

-- click btMenu -- Close main BT drop down if Connect wasn't present

-- return "Connect menu was not found, are you already connected?"

 click  menu item "Disconnect"  of  menu 1

 return  "Connect"

 end   if 

 end   tell 

 end   tell 

 end   tell 

 end tell 

I don't have the necessary skills to incorporate with the widget you've all built, as the following only helps me connect but does not show its connection status or battery level. Could someone help me out?

Best.


Thanks to GoldenChaos for his hard work on widgets, AND allowing me to use them in my own preset!

https://puu.sh/Bpuk9/30d158b76a.mov

Check out the preset linked below. The things you see in the video above is still unreleased, but after a few more days of implementing the new changes and debugging, it'll be released out to you all soon!

1 Like

That script is almost identical to the one in GC-BTT :wink: the GC-BTT one just looks for more generalized names.

The script totally works, you just have to wait a sec! It takes a moment for them to pair. But I promise that if you're patient, it works perfectly :slight_smile:

@yuuiko can't wait to take it for a spin, oh boy!

2 Likes

@GoldenChaos Thanks!

Is this the most complete contextually-aware BTT preset? :wink::thinking:

Some changes I've made to your widgets, if you're curious:

  • Layout

    • Hold / Tap Functions
    • Button Icons (including ‘No Artwork’ icon)
    • Button Colours and Padding
  • Algorithm Changes

    • Calendar view does not show ‘Today at’ anymore, just the time if it’s today
    • iTunes Now Playing widget properly renders a song with an unknown artist. Does not show: [SongName — ]
      and instead just shows the title.
  • BTT Changes

    • All hold events are placed in an ‘avaliable in all’ activation group so that the widgets aren't loaded every time the active app switches, and keeps the preset clean without duplicate items within each application.

@Andreas_Hegenberg
I think there's a bug regarding the Conditional Activation Groups, as they add to the open group rather than replace what's in it and fill it with it's own buttons.

This bug turned out to be very helpful for me though, I can simply place anything I want to show anywhere within a 'Show In All' activation group set to always activate, saving me from inserting say, the escape key 50 times (the preset uses custom escape keys)

Feature Request (yes, again. I hope you're not rolling you're eyes):
I like this 'add to current open touchbar' bug, so:

Fix the conditional activation groups and add either:

  • A dropdown on the conditional activation group that sets it to add or replace (preferred) or:
  • A new tab like global except it adds to anything that's open.

I might use this bug to add some notifications that will work throughout the preset but only has one copy within!

1 Like

Oooo, interesting. I've only minimally played with conditional activation groups. Also, good call on the calendar widget, I think I'll update the display to get rid of the "Today at" bit on my end, too.

EDIT: How did you hide the separator on the Now Playing widget?! afaik is was not possible.

Cool! To save you some time, here's the applescript with my modificaitons:

View Code
    set upcomingEvents to do shell script "/usr/local/bin/icalBuddy -n -nc -ps \"|• |\" -iep \"title,datetime\" -po \"datetime,title\" -tf \"%1I:%M %p\" -df \"%b %d\" -ea -eed eventsToday+7 | awk -F \"• \" '{print toupper(substr($2,1,1)) tolower(substr($2,2))\" - \"$3}'"

set eventsList to theSplit(upcomingEvents, "
")

    if the first item of eventsList is not "" then
    	--@yyuuiko: remove 'Today at ' if available
    	set findReplace to the first item of eventsList
    	
    	--Delete 'Today at'
    	set output to replaceText("Today at ", "", findReplace)
    	
    	return output
    	
    else
    	--@yyuuiko: when no more events, apply right button corner radius (attempted but not working)
    	--return "{\"text\":\"No more events! Enjoy your day 🙌\",\"button_corner_radius\": 6,     \"apply_corner_radius_To\": 2}"
    	return "No more events! Enjoy your day 🙌"
    end if
    
    on theSplit(theString, theDelimiter)
    	-- save delimiters to restore old settings
    	set oldDelimiters to AppleScript's text item delimiters
    	-- set delimiters to delimiter to be used
    	set AppleScript's text item delimiters to theDelimiter
    	-- create the array
    	set theArray to every text item of theString
    	-- restore the old setting
    	set AppleScript's text item delimiters to oldDelimiters
    	-- return the result
    	return theArray
    	
    end theSplit
    
    --@yyuuiko: Find Replace function
    on replaceText(find, replace, subject)
    	--set subject to "a"
    	set prevTIDs to text item delimiters of AppleScript
    	set text item delimiters of AppleScript to find
    	set subject to text items of subject
    	
    	set text item delimiters of AppleScript to replace
    	set subject to subject as text
    	set text item delimiters of AppleScript to prevTIDs
    	
    	return subject
    end replaceText

Learning quite a bit of applescript and UX design from this, Fun!

1 Like

I've just read your Edit!

Yes, this is what it displays when there is no artist or album art now:

Might as well send the code for this over too:

Show Code
--This Apple Script displays the artwork and text (artist and songname/paused/stopped) into the button
--
if application "iTunes" is running then
	tell application "iTunes"
		tell current track
			try
				if exists (every artwork) then
					tell artwork 1
						set srcBytes to raw data
						-- figure out the proper file extension
						if format is «class PNG » then
							set ext to ".png"
						else
							set ext to ".jpg"
						end if
					end tell
					set fileName to (("Users:" & (system attribute "USER") & ":Library:Application Support:BetterTouchTool:" as text) & "itunes_cover" & ext)
					-- write to file
					set outFile to open for access file fileName with write permission
					-- truncate the file
					set eof outFile to 0
					-- write the image bytes to the file
					write srcBytes to outFile
					close access outFile
				end if
			on error
				return ""
			end try
		end tell
		try
			set playState to (player state as text)
			if playState is equal to "playing" then
				set maxSize to 25
				set trackName to name of current track
				set artistName to artist of current track
				if length of trackName is greater than maxSize then
					set trackName to text 1 thru (maxSize - 3) of trackName & "..."
				end if
				if length of artistName is greater than maxSize then
					set artistName to text 1 thru (maxSize - 3) of artistName & "..."
				end if
				
				--@yyuuiko: If there is no artist, then don't display the dash
				if artistName is "" then
					--display title only
					set trackInfo to trackName as text
				else
					--display title and artist
					set trackInfo to trackName & "  —  " & artistName as text
				end if
				
				-- Escape nasty JSON-breaking double quotes
				set aString to trackInfo
				set astid to AppleScript's text item delimiters
				set AppleScript's text item delimiters to quote
				set aString to text items of aString
				set AppleScript's text item delimiters to "\\" & quote
				set aString to aString as text
				set AppleScript's text item delimiters to astid
				-- Quotes have been vanquished
				
				set trackInfo to aString
			else if playState is equal to "Paused" then
				set trackInfo to "Paused"
			else
				set trackInfo to "Stopped"
			end if
			tell current track
				try
					if exists (every artwork) then
						return "{\"text\":\"" & trackInfo & "\", \"icon_path\":\"" & (POSIX path of fileName as text) & "\"}"
					else
						--(iTunes App Icon)
						set nowPlayingIcon to "iVBORw0KGgoAAAANSUhEUgAAAJgAAACYCAYAAAAYwiAhAAABYWlDQ1BrQ0dDb2xvclNwYWNlRGlzcGxheVAzAAAokWNgYFJJLCjIYWFgYMjNKykKcndSiIiMUmB_yMAOhLwMYgwKicnFBY4BAT5AJQwwGhV8u8bACKIv64LMOiU1tUm1XsDXYqbw1YuvRJsw1aMArpTU4mQg_QeIU5MLikoYGBhTgGzl8pICELsDyBYpAjoKyJ4DYqdD2BtA7CQI+whYTUiQM5B9A8hWSM5IBJrB+API1klCEk9HYkPtBQFul8zigpzESoUAYwKuJQOUpFaUgGjn_ILKosz0jBIFR2AopSp45iXr6SgYGRiaMzCAwhyi+nMgOCwZxc4gxJrvMzDY7v____9uhJjXfgaGjUCdXDsRYhoWDAyC3AwMJ3YWJBYlgoWYgZgpLY2B4dNyBgbeSAYG4QtAPdHFacZGYHlGHicGBtZ7__9_VmNgYJ_MwPB3wv__vxf9__93MVDzHQaGA3kAFSFl7jXH0fsAAAAJcEhZcwAAFiUAABYlAUlSJPAAAEAASURBVHgB7X0JmF3FdWa9fem9pda+gUAgAQKMwSwCs8cMS8xixwaT2I7Hk8waJ06Mk8wkM_MlNvNlY8ZxJngcO3ZsbIfYAYwNNpgdDJhdIAkJ7bvUi3rvt87_n6pzX73b73W_bi2WbFX3vbWdOnXq1H9P1a1b9z5jjrvjGjiugeMaOK6B4xo4roHjGjiugeMaOK6B4xo4roHjGjiugeMaOK6B4xo4roHjGjiugYPSQOSgSv8CFb7zolNazuuaO6OpKd2ViWRnZRLlmbFypCMajbZFyqa5HIumYmUTY5MLkUjRFMtj5Uh0sFQqHyiUor25UmF_f764t39seN_r+wa6P_PMMwO_QOqZdlN+GQEW+ZdfuXjOCbPal7UnkqenY5HTI5HIKVETWRg1psuYSHMkFotFIogF2mFAI34YyWWbXi4bky+WimUTGSyVI_sKpdI2pK3LmdLqoXxh9aa9PW_f_PDDu1li2r11DBZUrR2Dojcu8jeveM_sM+fOPrslk7wkGY1dAOgsj0YjswEkywRdXi7x5PpePAecAFggJYnEkRepAEvAJ_EIcvEHcNqDNBEzWoTBK5X3FEtmTcmUn+sbKz65blfPK7c+ev+exltxbFJaLR2bsoelZlscQox59KbLF5_Y3npZKpG8NhGJXIihbp6JAloAURWYyMVZoQpDBx6CSUGHcAAuIWScjrSVPKapEGUTlTIKung0ZmAaAbiSKRTLO4um_OxIofjg5r1Dj137g29uITfnyFTZaNox6bMhx7oLOuM7v3JB57vnz74ynUh+IB6NXoaRboY0rgS7QQtV5VCsKmm8KgJsoVw5ACHp7CHFARjJcxaMZRSI9CVMGqnb0SI9CiuXiMUlfTRf6C6ayGNDhcJ3Xli38dFPPPdwjxOVFVVJ6dKPGW+8Vo8Z0aWXRfmvfvj60zqbM7elopEPxuOxpTJ8jQNVqKlBtyFA8IFefGk_gEBrhyE0AhCYKIDAeCRmexukpC+XYIMK1mdZAaTM3WC5YK1wE4AytGJwDogKPibRwtFFwDuJOjCB43D6Tr5U+k738Mg3Vt3zpTeFACTwhY2LHzNeSOvHhNyBstf9+vWrWtLZ345HzQ2xeKLZdvoE_cAsogBzIgEUOjaSShvT0maiHTNMpGuWic7oQnimibS2mmi22UTSGRNJJkwkTqBZQEg9hYIp5_KmNDpqysNDpnig3xR7+0yxe78p7us2pZ4eUxwYMOXRMamTAC0TrASdWjbBjbNyDAOEMQCNQ+lwIT+IYfT+vvzo353_tS8+7XomaPsx0VPS0mNFUu8qfv326987M539VDIWuRYdHy9jTmPNR43GEFSwNJj0wCIBUM0A09z5JrrkJBNfcqKJz19oou2dAFNWOrgGh6knAcSl4WEBXH7nLpPbvMXkNm42hV27TGlgCJYP8sYTDrB2nlYZSu01z5uEZCxhRgulQqFUfnDf4NDfXPytLzzuhDlmgGZbM3UVHskSgTJf_dANZ89sTt+RisVuisZjFWD5rVADVkYn5gGqRNxEZ80x0ZNXmORpK038hKUmBmslw6i2QiZOKEg_qA2ZVWEX4VyMQY5YElbfJtk8liWdEJIYtJjY9_SZsc1bzeiba8zYundMYe8+U84XMPImYN14RwtrhiJ2vmeHVszWTCphgZYrFL67f3j48+_91v95RXhaSSDA0es8DRyVQlK+8kO_cvHcU+fP+XQ2Ef9kLB5r5ryntoOuMXTRRbvmmNjpZ5vEu841ySWYlmUytoiAiRbPRo_YmS3h8OhAVx4ZNaObtprhl183I6vXmsKe_SSQC0LvPhnXGwWs1Zk0rN5woTSYK+Tvfm1H91_c_vDdu2yhI96ahtV2tAJMgIVWRNd_9KbbWpPpP8VIeGKZc6dAl0oCX6xV3hjMp2LLlpvkBZeY5Olnmmhzi1UEhyQC62hyBBrngJCpMDhkhlevM4PP_syMvr3RlMdyABqsmn1wAB_WTIBp19jSsHiYo23syeX+9KKvfu4bYMErThVyNLVShDqqBFJFPXHzVScvbe_8XDqevNmqjuAK6ZCYyedMpKnVxGCpUpdcaZInLgUZ6GThtJ6lO8qaDHl5J1nGRTC6aZs58MQLZvilN0xxcMQCTW4u2PbKDQFvBuiG87l_2dC357O3_MvfrxeCyhUo+T_vE6U+WlyAnnW3fuD2jmzq89F4fJ4p2SGvWm9AVj4PYLWY+HkXmfQVv2Li8+bbdoiVO1qaNA053NOFsZ17Td+jz5nB518zxSELNE78dZlDbwpS8aQZy+d2dueG77j4q5_7uqsx0OU0JDikRY4WgIlCvrFqVceqpYs+35RKfFKMFYc2cd7wxjkWJu7xd59v0tfcYBILFlqSELBYopHGhen8uB+2lUx+nlKZELFGxXdAG92+x_T88Ckz9LPVpiQ3Lbj7hLNAs4CLg5YzgAO5_Jcee3vNZz779Dd7QXJUgKyRPpAGHcaTKOKpG687c2lHx93JROI8LitwuKCTqQcDXGooFnA3uNykb7zFpJafxlRTRloVlPy5lhaWHpOTiSBfFuWFPapWDdhs4YndE5ZGKnDskUZ2Pntmi_AM0Hm8hNam2rPHH+iwzqOvYqTpoNLnpYNrNpnu+x4zw29vQRpuFrj4K1w4bNqbh0w8ZQZyYy9s6t_7yZu+_VevsTgOrU2oj_TJa8qRrrrSHa9_+IPvn53N_F0sHp9jAUNZVH0Icp7V2m4S1_2qyV52hYlwAuzuFg+f1NPtm0bL+XR+mC3y4wwjJQ4rhWlBz+Mvmf0PPm2K_UMyPwPSoCnQANH0UzEMmaX87j0DA__+6m_8j+85ZmTxcwGalZ7VH1mn9ZbX3vbh3+nIZj6Ph8CpEqyUZog4jGPoi648y2Q_dKtJYJ4ld5JhM3JkZf_51QYQ0aKN7dpvdn_nETP4+gZ5nMW7UfvYKYLbyQieccawe8OM7R8duuOKr_7x30BgVesRB5lWfCSVxjrZ0PiG2277s7Zs5g84bJUIGhmbrCiRol12SN1wo8lefbU8qjn8VutIqmH6dYk1w1rg_kdeNHu__wweV2GaAAtnYcRHUQjicRNvCvqGh__XJV+544+QpHOJIwoyLh8fSSfgunTJkvQj1__q_2nPZv8z51o637IaAgme8UVhrZp_6z+YzAUXAI7QSTDhP5LiHqV1cQkG1qxp2SKTPWmhGd640+T7Bu1FKCLDkoGEQ2ZTKnvRh1a+d87mnvWPbO7rU5AdsYYdSYAJuD6wYEHmrvdefndHtunjRbnzYzIPnDn7xqOT+FnvMs3_8T+YxMIFE8+1eC3aolJe7KIft6njzyxHNxltmL8tNfm5Vrnp1umXC_PFRZfq6jBtZ59sRvcdMKM7ujEloyWzQybJuUOjJdV0zvkLz1o8mB546K3t2zE0TNryydvYIMWRAph0JS3XXe+9EuDK3l7Ew2erL9fLXJHAnCt55dWm9eMfxcNnPNqZcCLPcuRA54dtiqR5Q66mVmi9MkEwCHg8NY2+Jmu9NukI9pdWWPEBsmgmZdrPWWYKYwUztHEX7oDdIylYOVoxbN82LemmM1e0n7RoS++6H8KS6ap1hc9hCh0JgLmeMfGHr73pC53Z7McKtFzSR3z0gSCi8qzt5ltM8y032v6CUsLdWE8HPgS0jKZNViacP1E55qnTejRe20f7XCt8+mo+4Ro1lyVseblLFD6M+5cVphdM4RQiGjFtZ5xgDLYWDa7dbmvl_jUqGAf2mJnWTPbMcxecOftrr_zoIbDRx0u1RT9EqYcbYNQHD_PWbZ_4XFe26T8VsG5FpUgiz5ws4K4nc_tHTNPVV_zy3iUCBLxDxC4RWedimOtdsg7GZ62TOYIMR+uyhSbe3mT639yKR7QAIJ93CsgwXAJkzemmc96_4uLMN1798Y_B0nbDZLwPIv9wV8BbmtKrH_qNT81rbvsrNtBeOE5iLkNgI1_2o7eb7EXvkXWeg2jLsVOUYILF4Z2edWWTH8buCmxYHNm9zwzhMdHwjj2mODxiWk5ZahZefoGJ4umFWKoGWhnFOuG+59earf_0GJ60YeECQLVbgNDdAFwMlm3vYO_vXvuVT_812EkfNcB2WiSHE2Ai+NO33H7T0raOb6KilL1bpOmHw0JNJB6x4FrlwMUsSqQ+6ej8uIbVtxTVZ80L+0rFdHVaH+N+2M_X8ES+8vR5MAymAiZYJHX5kREzBjARRINbt5uhrTtNbtdebFDsN5Ex3EGXo1h1iMPyRM0w4p3XXGJO_sj1snespoy2GsveyRFNxgGydWbLPz2OUYGWzNbP7CjC8Me29O299UNf_8PvMglHA2bSVjGVs6hgKgUapBU133fNzWefM3vBQ4lYdBZeGYTCuCQBDvZksr_+YdN82UWy9djyddppsJLpkfkIqMdBaWr5LKNy+vlIRpS7Ingnx1GJLo99X2O9vWZk5x4AabsZxjG2aw+2VANMuZyJl7Awin1eMTy0xsN9lOcuCW7jsY+ASrD6w+mEOeW__pZJtjbZKYVwnvxEkO15eo3Zcs9TkBj8YDWtw9ZsbPnJF4t7X9m6_n3_+f7PcwOjNmZyxlOgsHs+plCgAVJpxZ+ec+nMM2YuuBub5GaNyfNCKF7AhQsFSsvc8qsOXNj7dESdgmOiSpWmno+yMq_hHMnNcdC4wsiYGevbDzDtFiARTDmES7BWkdGcwZviAFPctBJQeKQTacL7AJyIC5jsHZ+_Ii+1Iz+eK9kdFW3NqFhlmkh+m1fKFczsVcsx_I6Z7d97QeZjQLDwyOOCTyVSs1bMP_FLn7z0+vfd_fgDWOM49CA7XACL3LxsxZ2t6cy7Rwt4jihys9GwYFjnSl19mWm+FhN6PFurpy691jRfL69wOrlOlMd8Op9GeWo6fU1T_kyjY7qdJKMVnHgDWEzjyx6jvd1mZNduM7J1mxnZstXkES5iW3QUeTFcR7RM2M9mrVNzGuXYuQokLIZKZ9vHOzbd5vNxj9IpkFU+ldTGrZ0TGVEinEYeBNn8K1ea3IERs+vR1XiBBXW4ZYxRXPgtTS3n3HDq++4EwD7pWFSqQsLBurA+D5YfNVR65qZ_+9ET29r_oQgVVjHEkJA46zTT8Z8+hlEAWTJUVlFUR1Rz1amHOYZO4wSccyY3zhUBmFzfAUzAASYAaXTrVpPbsdOU8eZQBG8NJQAmzpniCYCJcyfOd8aBpwIsAo1rVWyetV4WWAIIAlDqJT1psMQA2hP+4CMmO28m5lOobCIIqMaVhnHywx3l2n94zPS+vg0g404MykCA4iY+Eitv6dv98du++ntfRVT6EP4hcYfSglHW0lcuvfnUeU3tn0cPRezdNVTEHFiu6Lx5pu1jH0RvoA2yr74BBAkIyWCqrgHeZIvOk2GOcyfUVRzDMNeDVfE9e2CZtphRAIpgMj3dJorJeRwdlQSIsrBOcRzc9EgeFFMBoaCxfRwClgDIAod0BBWPMOhsmisL_uLI0DK18VrncL6UQU0Yypf+2oVm9f4fm5G9B4AqW5irjVzJmN3a9fk_v_73fvqHD_zlWuRQqDCnWrVNmnaoAKaaSpw3f_GdzanU7JGCfSIhkvKTINgv3_LRW0yss81N6plD10g7GqGx3KrPNcoB7byNpyvCouZ7e8yIgImWaYvJ78AiZTfAhCWCOOaKBFOzzJniJkYwBYCwQ5sMZ5hbVUCFMOqwNdOvgMmCSGmtyoJ8VybgI3GC3vKazNhLgyY40fKl2rNm6YfON6v_nssXvOmi9mEhYQky6czs0xYtvxMsPoCDzyzpaijQZjR61l5ulL4eHS+x0uM3_vbHlnXM+IcCJpAV2dAEzLWyH7zWtN5wmX2hoR6Xw52OYa8EWXpfeskMvPEGwLTDlPbvN7GRYYAJj6kwtCXFMnGJgPMtZzkEVFa4AABI46NTri8pSPDQBvizgKiyQAIyOyRhgBN6zRefFhDpAlYJW56SB_75WMQs_b0PmSYdIg9CT7yz3ProW2bjfS_hQsMNhsiLhuA_Hk2YLT07fvM3vvypf0AV0qcHUZUUdYbyoNgISP_0nCsXrZp_wtewF6mtGEy9MMbjeWJi5QrT_pHr3LBooSeF_Gqp4XGJSKuX7pd14YA0CHhEGAfy_QNmyxe+YEZ_+AOT3rnDNOPl2FZ0aFMyZbKpDJ6ypOwcSsBFYfSgGAwTCFHMLBHGfwnrVQoumXNVgUvzeJfIMpTF8lA+Mg9zHWzDtozNJ8hwIJ_1dV54ukk0Z7E6DxiSDdsoThhrRKqQ5jsd0PIFFAhwTax18QzTvwPrcHvwCTNMV2zb0FfQBe4s8e5py3ef3_gaxtFK0UoFUwvpJTq1UtXUwuP6E1f+fkuyaRFuWtzcHcm8XFtaTcuHr5FbZFloZcNxyJzF95nsxzXs0muWAY2fHoRr8OJEY++93zXZt9aYruZ205xtMclkGktWmEcBUFaX7Ao2h752i1oTBxhaGFotgKsKKKD3QSigcmAkQCwQHQ+k6zDKO0k5mCYTI+a5NNbFsPBGdWwgz9SNi+G+vOpPlSipJJRce7Zbo8ANNzFLrz_bxFszXO8OQJzDUNmUbll0wbJVv8964KRvbXB654NlwF4o3nPZ7ed1ZFo+jtfc0RyneF7duFqy111qkgtmw3rZYdOqSIWtjmmqrz4NU2Ea9v166RUaFINC81yLWvOWadJ5lIxvED_MlkIwTwDGTrcHO5lAwcflyBCdbi2TTPAVXMyXPOYTHBVgKRgtoOxwWAKwxUqBVvIFWLYeKeuARpA16mprtDq1BFQ1zW0zi65YIdvsbF1oF_Q0Wspj6aL9439+8389D3Wy09jgabvGJR9fhdU0lnuWz1lwB144yPJqUEUSULGTTzTNl5_rJvXaSL9HSe_HNcz0Q+XAEx3ND5EkRnHjUWWt2AQ9bCfD1Aq9tsMCDEBBJ9NqMa5zLQGclHfpLl9oq8DlgEdAMZ28CB6CkEBFurViAJ5Lp2_BR8AdTDfV1mMpVzTzz19q2pbO4rfKnDzY2gPydDKdPWnByXcgyLshVj5tkB2M5Ky0+M_XfPKy1nj2ulGxUICLswxlLDC23nip4aRSzDaIw04sOBLDvk8nwwFxB6d09cI+bZiG60DRQFds9viDFASjBZXrYAVEFXgIDjQfeVX0CiDwERCJlbMAEUCBnKBRENH60YoJmMCrhJsMCyzWzTx7WKBRAVYHqgdt7_R8QDsRNSdetULWxWQYxzSCF8AoVgCaM83X_a_bPncZaj0oKzZdgEFVgurUstY5v5OOp3BHzyTOZSBkHrfE555u0qedICvJ9RQA4gA09ZRGGrpwvqb56ULoaKvSHUBlWTEY_rQJtjMFXJRdDoLMWRrGfXAxnU0XC+PyHAjtMEpQgAZlxHcg8cPCT8EjZa3lskAiAB0IhYbAYzdRXtcQ+No+bfN0_CL6qXNpl5m1ciH2dnJ6Y3XCgSiOPl08a8GnEEzhUGVNuZqDAVjxnqv+3armRPoqa72sUmnBIvgUUsu1F0AJMmZOWajaBSrKrZ3P1DBNdZwd61suCxzVHQFF8BBksCQ8CKwwuNDpAbhIK1ZLrRDLso5KXMCCNLFGZc65OCQyzjocmJAuczcHOmu5bJ6lpVzaOr9NlVTNBdnUHJB6wsX4lFVTikbeXhQA9CheuslkWq_8s9vuXAWG07ZiBwOw+Ckdc38rFU9jcVs7BgrG28ep8083qUWzgom9bbwqY7o+9caydPV4aF61r6UUXAKaKrCx4y0w6Nu5kQVL0NkAAzubPAg8AYQACUBgHtL10DIErEzkXTkLFpRFB6qVkvokzvKkt_nCS8qzXl4EcJWG2HhwVos2Xi_2zhFFkWXDllYtYLGAZYs5bWbuWbBiQJiVmXLAiiWS8RPmLPwtVMMFeSdEUGlDgekAjBWVvrjqN86E9fo33CmhioV0eHTSZFqufBe211vrZRumDbQyhdNqxUk5WXo9mnA5S1cNApXZ9y1oFCik1wNqQseTVsBHEBBQBAAtkhyMEzg8CApHI3RMg5UKAYs0RTfvYjmGmSZAwx2d5WV5sk0TtbdenisFz0enDStPbglafN4SrLPBionslD9icujbVCr7b37vA3ecCQbs0CmDbDoAY5nyWbMX35ZNNOHOEXW6eQ2_25U65xSTXIiHspj0awNAH7haaUGmF6hH56f7Ya_o+CCvXqQKYDAcyZ1iYHHc8CRxKFasMYFFwFjLZjvdAkZASBDgIAAEdC6sVkmBaifw4E9wEYwe8CzYyMcCKQAW4kXwk8NZNtZz6F0FcPy6f8usFjP7tHlyR6myFrB_L5XOZpfPO+02UZ8dAqYkylQlFwR__JSL5rUmmm7OiZVynVACKyxcNl96huwFn5IUh4y4orRqljadYOBFKBYi5AtQON9yoBLroSBzcySdP1nfWS4BlwVPVRnyCeWxXDFItwAVSwhZaB440SGwCD4FNekDgDV8RYFRWBUaVx8kwRABYg6fi85eYGLY3EhZCHzqCpsSTTrbfPMNF90wj0XgpmTFpgOw4k0nXXJVNtG8iGN2MK_BVZA4ZYFJnzg7sF7Uhz38VlFGxjXN+jo_YG4lX+mq5xikJU3Yl5KhvKAeFLEgosVy4NChzfPt0Gfz2TaZr6HTFVwyp2I6jmCSThCAR4nW0QGiCJAIWAgY0gZgi+KnaJCHXuT6E+_eCCyDV8+ieBQk1gP0BJYMn46P1RLawHbIYXVSiWu686mhgBZhjbMuTbdBoeOUpn1em+lc0gnZ8Ka9WFY+CC9ist+06JKV114F8ilP9qeym8JCGnZqTqb9Fn7nnZaAzp7xTO+iU+2zLbyfN94pSPwcNptOfSqlErZ5eq4ur2RhX7g5FponaTiVAQBwCeRW+YUOCq3kWSsnQypaR3a8ouXgECq0vOOCDiTMNIKItDaf4KNm5AYADIpczCQfvIcQSydNvKPFpGZ3mOzcTpOd02HSnfiqdSpuut_aZjb+8BULDqfjsnu_0zWLXIQ3TtNyFT6V4tQBfkDHLFg5z+zc0I3lPdsWUvCr1x1tnbcgeA8OBVktNiSvclMBGAuW__hdNy5NJ9KrODzy6pZE7ESIz2w3mdMXYdVerkdJ909+Z_vpRyTsVGEfTluA2SSAAAELJEgiV4pVrAUIQWQBI_QAl8YFOLA0AiLXGUzjNzY4pxE4cfMhLFOivcU0z2o36XkzTGZOp0l3tZlES9bEACjpSFkf4MBkzJx3LzXbX95ohnb1o8d5EXPYpAwIWCFIhjAiSJc0kdsmH8y5iD6dtWSGaZrRZIb78NE73Giwyjw+AphMZVZ94tp_v_T_PfjFdVOpYyoAYzNK588987JsPNs+xo+TYFjgNcqPECZXLsb7eBlTUutFyQ624YeCh2jDMuKwxlAAKBemnEynwNZKIe461cZdOtJk6CAdD2CC_QwNyFeiLZiaTQKv82cApvTcGSY1i2BqEjBZQAB6XA7gMMQPytmKpXbKgd9QwtJmQkCl27PddWxpSC96DYSu5mGp5CykJPPqICbrOdKlmpJm9kkzzdsvbpOfvWFRXjSpdFP7siVnX47oGhy8sjyuiNVxjQKMYvFIdqVbr5G5CaLWcmM7JB4LNZ1zgjzcrqq2IRHGS8Zi7EJx4lW0IpaBdVcyLZ2cK3S2_Yz7fDhXogN3JFdY29psGsIoFoCQVov0BAQPcsQWlwiGuVgbPuGJYS41d6ZYpxSsVAJv_kQBEO5YQM+gHC29A5PUHT55MlMmHLRYnMPJG0qouxghD5snpUVwy8fqQ3l6vFwSy1UcqANTOJ6Wraas807uMutf2YmbDaXhhRU1Le0z3wdeX8LR8DDZKMBExluXXbkgFUufl+MQwAkt1Y3_+OxWTO677OReKNkqFY4JVa10eeE00lVcdW51TBRRIfVC4+mYyQuBzoLGgovWRKkVTPSZyCtWrAzC+J1IPP1NmUhbE6xRh0nOn2lS87tMEuEE0qIAmr5fwN0jKCi7RW2NjZwpBXVlfQmJpbQAo0z2orC8SBUOaYrlUYnVDikH9aupOLy3z2mRYbK_e1hATkp+ly2VSJ937aqbFzz49L9sqS5VP9YowNju0nWL3nN2Op6eVZTLwg433DWRPHWuicK08g2WiqvdAJs_UV6Fw6EKAS74I7BowdAUtgZOAAWfbz_zsZb8HlEK7yfi9bDY7HZ8WHgmANVlEpg3JdqbBUx41UD6UX9dhFuPJ3VsrqvT4chigWmSh5OjoWplGJbX4ewcryhVOgaOTuknrXuKBLRgyXTcdC1uNz37sdNXqiXIcZ+cSs86+7TL3wWAbXItojQTuqkAzMzOdlyciKaAKf7+DvnCiuE_c9p8xJEwaXWeLKpcL2lKQafvqdTJpQTYBanGLqha4MVPnIfPn8818QUAFMAUwx1eLIv3Fmm9YD5kmONwx8Vj_xoaJ7AKNS6jWjeqpyofZRmHJ7sqKCmGSblxCKwt5YVz5VibXOssNkHVWkRJtNpwnHTCE_6sRR1m7at4DQ8yqOOO3_b2rlWI821wLa7ZNf1GAEZGPDLNiZZzCxjD7ZWPJLQu2pzB8NgJxfuGvGZd1YnayurUxmNTKU9aHLLGxcVURtlpsFrN77_AtF12JuaRWMIAiLgDT4ZHWrWptkk4N6T3UDury1C_7Fj8xqUDGOSy6q4qp+Bioh+uIiJrNpjl_QxEJF5dtaRxmOyc3WSSzfje6yheDnHlCtBXMtN0LqL4YSczikO5O4rxXgWe4_OqUj66_Lq5sWjylAIW3ux6EjoKtjs+F0MJ3lbhBJiOZxuSaBDW9MZ8Xqn2anXXbMC5ksN6JvpTWaw0tl63IApLVuK4M7PDtFy0QgBVxDcgSni1jguOuhansrIllkt1mzRd8yy9kwkR7fQg36UxnWniS5q2g2m4IQD4i7CeuqovyxS2apbyDk1kGp2f59LEw0my6LtDaTXu+bzAsthd0YrlCi66ysWICT_7PpZMnnLVVbfOtfVNfm4EYERpadWclcuSsVRn0VkwueWH0UqeOBObCsEmkNsGqCjKzJN0mNcAl1Fp7Lg8lrNlLV92gCWHJ05BIBlMEQLfR4IIoJloRDkOi+BAhkdbJSwfRBJ4CbWqfvJQ2S0_YePY1QpbGf26K3X69EwNHOX1nNC5xsgcDIubXMlXkGnzvCIIUi+WUcX3VWHzbVlLoXwm9tG7mHzNmN3s7mh5FwnQo8Z4ItV52gnnLkOQQ5YaNwRru0YBVu5q6jwNAIvomzSyFAIFpJd02KFFGmobW6kqHK_kOL14CV6wVjFNo++HWUzjHosg6OjZgbwo5LGNTPYR1omL7V1XRJm5ggGjqQbq6145+z65qxh8FonXlOWZpIAMerZSjQeJlHOiWRoXOUiPsnCYlGei0JPMBcEzlkhF2ju6+CMFrK5+I139k83ByIBHvCnaehpXn2RDISqkAJEU3iOc12rXvxzDo9FTxdN6ReSBttWO3UKtufUkVz2qX4cuyIa6FCkM1iGfKFmsFm8wdA7mEytD9gqcH9WwzTm4M6c8bR0ZE0cf8zGXLMWgNq6HJdLNBBixwyopSd2qJwMYygqDNH4TZ6md4GPuBQXClJloS9okIIRdTLSELBBU6RSs61CS55+YD9HEkKiomh8WuUYzuGYovJmnDuWUlfgujxNnAZi7j7RvB+EW2KMXFiw0ztVMDKikHsYcr0ATWsyXLyhVO0DdcoGzAKsVc5aLQxNZUVfWhoEhI6Jo60kUwcCxTiVRXzPDcaYzTR3ZyzwsgZV9fJKzH78LJW3gMIlNDcnMUpDi00Ay0ddSNf1Ghkhz5oxlrfFIcr6uf3Ftgnvw451YaMziVzeccPTkwEl9BiSseb7PDMaVhr4cNeYOyCC5PWy+5Y1wUM7m80w6OuZphAAr48LDVBVXop2LCV2ovBZp1Jd6gmqqS4mklN0dIlsglKW10golWUFGOzxyqLQ7MtC7wVVoKYRQGmZ5C1+Nw5d5pfOFsyfDuDjz_D_EcasDIOEbHDAiBVQv+9dk6MalmkgsmD9_ZZuVYeLzZAAjbsuXzj1_Br65NwM3WBAcRTjMAGCxmZgkcyWOegqcRlTRzAinhfM0rr4y88spH03TuPpaVvP9ONQHcxdM8iMEmf3CTCCaVlnXpyrglK2NjTtrtvphAsEW2YBADkdAejr6dqtPTLb1yJqYs2Q+DcN6aDnfD4cZn5IDc+6uaG5NQVec5HNWz1EAGdFE59lnX4CfDRYRnGJqc29kiDSLWuZ0RaPxJk7wWY1tGMbiGforsmSOVFbFTHtiAE4SPF8S3UnzEFUxvSQhCnh65WqlaXa9PM4bYbnwwzQWbAjZ9riC4XqVX+CTQIVE0NEHxbysoEgjATBQzjLkI8YbEU7u7W4Gys0_69SfjHXAcxJCX2zl7ac1teAJDXWHuRe_UMnVHSCvacZsLB804CYDGNmVW5Mds+KxVJSfwVQUsclxzL+sc6KphC5VPU32Bde8wFeiIMEFaqXXStNyNfLUUtBqQVOgpDVjxzoDXqOMsqv4VvpapJLmMuxcpVJKQ8zW9k_Eg+LxU5cckjjJJ20AMETEAiojZV7Hr1VPmLQWjaax3iYstlIersVptVgLiza1d+KtHhFPk8OsJT4ZwIQok8jOjGJY4esd_OM1xb6JtaFy9hScCiWROqdGaOoUlcZNp3yl9TTvVJK95bfmHmEwnZCvZobuVDS5lryyYyG4+6hQVkK2FOMqnw0jhgDnXRwm+WzUPnGwMlL3EqJXz5Ghn+9XwDK2iuDmiO230GEhV5hXCTLYjnQalhR3tAQZe54Ov5vO_WGHzoIlYul23pXiY9tBJfzQbQwTfDZGriqpeoKTk30CivFZtj22Dub6PPzw+JJBig47lLGENhBgXCHkQM8nkxXmQZGaAaq_EWd1QaWQurqUxLRNjplPYQFE6wWL4SwYLwSbXqndL1NJrcGQSWFiFxcvCCuRJlifNwopbIpUS+rwBbBBc9EUMCEu1CKX6ryJLJgWjMajcdwx8Mq3JlsQhQlgBE_dG0MXahOZeVK2viB10m07K4R+3A9XKMaHQGc7HZ2GlXy2g0sU3AnPuc5kLqhGA7XEr8FEycdlMaMGj0oy5zm8e4TlgHycXFfmvePxwtxarsKvVm5jadRbHJ8X4EN_DlRWbMAdFi6WICb0CpUsVjnOTQQwEpNnJB5NZlla5yychvIbplFUjmfDkziWVI3S9+XQdLLw6Xwa5tH5tDZlKmdy5DIFNniJWuzLwnaI9PnUqpn5QXoQgEROJC_JZ1UzLLR1Clhri7rAWJ4yyBDJyisXQp2i9euqmdNYIi1YDNaUPxUoP+iAIIfNOOSKxhN84E0NTCjSZACjJDBVsRQHFF7x1mDTRCIsm4XAX_45QlfqY62MieN8hAlwVemaaLMk15EFKcpR5n3jypOfrZUFlHeYBzOoGK5_QWiho_0SwLFcUACBoEIdmjSBNVS7oJwgLWDiiGqVV43UpuWvzTFH7yJlfxqKcGlIhkpWqEWVlTQOET8eNIKiBBlOLmXgouKRxvHWq0YqwudGATDuzpU5mJIRdDH8frNlHq7AZ8zbqkYcfx0AwyOvJIDFisjOAm+Ry6ZojnK0qYgFAZsTiip5TV9p1SeRH2bMxm3rdSI6nhmHRTbXTvJlGAosQ4VjAJqglkreeJ4uBYXGUQU3BX6OpbOS+twsDXOZ58_BJIfDJTPEubp8tqw9HFdy8kRZbZcfDkj8wo4wkJFlCTD4cinDJ9iLWBitlK8faoQIX4tm5_DqIsjATBRqzXZVu+rXcwRyKAnVUtsxlwCjJaYTCybznFDfSC5OKCAca7DUmujXc9STX1RoXcKE5cDQrt4TGNQ5C+GWxBWaqOxEsmie8tF4PZ_1sHY6CzALMtELUWqnRn4ThTZ8agRg6Az+rqUFmGWAq4jmXOdf02l1WJLpxNk8XlriJhDCZbHj+DtAnDjb1WlhEJSuxBxLeDU7BITh2sJxchiXpgmuIon6lSJso7igudBKgDGNuq4nCys6jE7uuCEHrSpl44mAw4IrF0UndQ0BDG9w5+wEn9yt4krcT5VXjVXXw1QRBr4frqaqHwuXCceDkswIdaMdZmyHBHSOqgDrRcvOySvX9DgnI4CEjdDUrclnJQWkTLDWVZ0djilXrSeokIRBYiXMHQtF8laAQWrrlJi+athlVXkT5U+U52oBCY0UKbnhkBcjQUXHNIKtFCk39BtAjQAM29CLw5x_iblmPaiFi_olfMCMjpWGnZ_mh8N09eLhMuF47XKWys1SxpHw1X4OkWwHh0g+_rAO5bSCYO40rrgkKFkl4qW4PvdSAia10pjJdFdMwozzDpKHTK5JBDm1vH2IzUS0AgXFwsL3eTC30iAb88+8_JQfAwEfj4h8OUTz8wY0VbLg6_IZxjcrhpnsFakZbAhguUKpv7LRkHwgIMfNEczMtJE12f_8EoOREyJQ+VzHocXCTbYMOzLP4ZySOvLVpGHXYxqt15Kq_KqIKxHqeV8u5RkuxguAc17+MQ_3cuKPo9ME+BpUnhP5YVoBaY0CFH0M3w_jbgr7jqYlIvgLhTG8ej55tZMBjLJEhvPDB2QshhUT9POKYsXDDQ3DVqrDcA4ralwVIYIiligiYsW4mGkBFy4TFAkCjsIBJZwcLq_xgC4IuJxwnHyZ5viTSpYpeOUyUfKdBQuXJXEdp6RS3NEwrC5UpSaP80fx9rndb1iBO+ewY_kcv6NPp1XZWOg8GcBIHhkojnTzjRK5i3RS8o2cfD8A5klN802zWu0qTamEqnWqEmpJjVfzmVrMvyopl7UKuEDccEOlyUo+_InqC_KCgJODwjLNCR3ObkRaKaMFnU+PFoLyyrCEMC2YdZZIizRcR1XpSqlJ+aBtQ2N85gEZvH4tYvgaHTmgP_9XYVgjNBHAgvp7R3v2jeH3kPFLqVELIqzlw5qN9dqXBCvzAujc79mgwoBVVWdWUi2hxBVl7DnykrgmkoLhcMlaKUHlUoYldJJPa8xJNK9EbzYSFKjmPr4+yZexDiGfWMSUE3hVZ9h6wrx82koetxTJHMw2HpzsUEmO4+WtlAsacDABVhKAqWz6xzBbJeCDNAyPecyZ+rr3edX4jfWS7b7qqoRQRKrb3L91f7FcGMYrHs3yoQ_eNsOCje3Hw++agApxmUrUiWptDgoiXq3UUFu0jyapg2LK55Y4RKIM7TEPcVKHYzCOn6VxlF4t41PGy6o8lVZ9ZePHbZiT6kF0Kr4t7iwYLynPgvlFhE21dhwmtYKK75ergUk_KaJ9CkUdGMXl6AGMv4qSLxSGD+zevB_M_WKVuryQSu4ljQtGXtrzdE++WMaPI_IOjPMBAAzrNKP7gW5vqcJvA7kwPt3DL89wXYcKqA__CNPaLuDE2b4GxgfJtGa+ZQjKOIHF8_gG+aGAIw_aGcq20TCRx1flJmEaz3bf2j5k9vVDMuiXE309lK4Gq+oqaxEwzXfhOPL8JGXBJYo+vHiLz+zIMoVcoPxBsVKxd8Orz_X4LOuFJxoiWUbq2nBgQ_9oObcLHyZaxGufwKUVGOsuYaKPbssCp05CX9B6lTaaTl68RHzXCH92hu905YGgsr9LRGtmJ_o+HcNB0SDgKBAPksJChZl48aCMl8bRJoaT7MhBOjtyGJ+9+tn6QfPDN4bw+xptAixeANY1YgcqFbBOlqxVd4WqOqQ1aSrjI3iz_cAIuNCCcR2MQQAMn47YuXfbat5F0k1YzWQAUwajw7mxjZFM7D3yNg7rQpvzAxgm+_L4_Z9UsPFQqpzsRA1TLvsvDRAT5NLt_QrlRsOElw3btrDsRM6WsBSuHseHL3rIM1Vw5Q5NXiqst9KRWtavwx+CXLqSUTpJUjltreEzSQgm7kzglGIUv8HdM5Azu3vxW9rdY2ZnL8L9Bcx3+BZPm_x6rsgWMGK5ICIys16b5GQKsm2qbZMW8mmY5sdZUNtYSSee+rEMNYjVAtlwKKUQxm+Oj42MbESUnw7QChCs7SYDGBnwKBwYO7A2WAtDiiSiiuGd+NmRRfj89VRWLKq0xRrIreJrc6vkpxkSMkdb0YUtW_NsaXlmFRxu7A8nWOvFOVhAwYDjqanjWQbUQiqxymkcOXciYKeLGQOgduwfNRt3jZhNe8bMLtwc4Se0Ta4E9eMriPFkM_ZdJUymBXGU4Zqd3XJqmxyVC8+2IZjzWlFA6AKqDylLUQICCfsxKsOxJKHnKlS8a9yPZagchKG1pU4IWlIMDvWshcc7PEYrhRAJu8kARnphsK1_65qTO07HI0j8VLLjye9o9W_Om1kXhNlOLc4KVD9acpzU4YRw3BX0FackVj28c+RQgzkkKrOPiuzQo_iuUhUFcgxIH3bKO5zOOGVIYN6y70DOvLSu37y+acTs7cfqt8FH6xJNABR+jrkpLjRCTP6BVi1HPuslH+qagLP1TVBrQIPyE5BZ7iBpgGbnIJ7hoGcswCEM_nOFXLlv11Z+5ZBuUi6NAizy_K6nN1y44Iq+VCLbUeIyPmrjPGZgYx4_TTxpPSKNnmpR10pT+qn44xTHziNz9JZ8IRp3kfYOkvOw+ma3io+UVz61pVH547BAo_hO2sPP95nn1o6awXwa39vqNMkWDH8YJ+3tPmAj4LHC2boQVlldVVZuis8M67Qej1SzDqnPu9kdWOfkblY1KFHeQY4M9W165ScbUFlDIthLuL5obI+06cmd9+8aLo5tiPL2GRMwmYtBYcO7sOjWi45CdUpMhU10BNUJ5yB2WAIih2sE15fsVhhMVCE774r0Ug5kd7TjhGGbmEe_xsFE_tb9vr4x83_v32d+_DrWi5JdprkNH69L4+0rPEXgwi55yFANhVWsE8PVB+sXWiBR8hihc75GbaI9M00Ppmh4qj4tZz8+5rx_FDVTRUjggRduYcHGNrz15P27bI1BFS463psMYCxB+TjnHOof6325oihb6ehAxAxsymMLLSlByqNmvV66T6dh+DK_cD7DepCfnXt4PII6qtMYE3qWCWgwJGI5pcAdINAYQWYfeltJK_JW89J0y6lWnlQmJ863+ocK5isP9eHKbzNNAFYshosRwNGlhgBY7DCXLuARiR2QQkBjvjUWWhfkEFHoW72InmyicCJBpe215A6nkXclDaO72TlQNENcgiLC0DaOABHMF0f6e14GMW51BRMsNKGbCsBKmw5seY5fl7ZKoULQYXio17Nm_M4NK652TWPNpaS1JIYexdHXg_MSnZswW8NWuZZez7FE2ezaUjC5PIZHmHke+rCbNMKfTDz+LlpTHuXrt47auO_ZAbNnqA2_jIGv0hAo6BSCigARKwBfQabpkic0rJ5c7MF8+96AjbNOe5GRrqJPlQVJIv843xGI3oSHI2NbmSflXETCluidA1zBRxiHWrBCMWf2bl__U6TS4PAQFvDrukYAxsJkFnlsx_deGyqM4Cv9_LkRzmVQHGN0z1p03iBIKAwIJ62VHKfolK_6WlwBx7gfRt_iBi1i8LUhs2vTmHn5JwUx8XzswYmrDFcI266qIbdW5BojUZyCjlIB4Mdxyb+9Y8y8vjUJcOFjfMLfgon1adzqRwFTARIVR5rqKl3vMl2GSVuhE8ervTro85AwTpRZXA1faJCpPumGsTSxuR8aguWy4IKEWP8aGx3qfuvRB14VXhYTLljfa3SSz_pLL+748Y6hlYMvNyfbryrwQxV0uA0f3ls2B3A3OWMFhgT7eNJKbCnsmfoiF_qeY9LBOq4x2ZcTqMyyyeEB7RAmqD178mbr+jGz9gWk5zrtp4hQPyfY3E3BzqdM9WRQcYMOUkHDBUDw_Fp8dybWDF6cyNuSCl5pM+vT8r7v0gmvMFsl8x80CxHK0NWjt7nVZytRdVqtGIfHzYNF0wsdclikrticSDJlRnv2vLz5xR9sRzmy06MWmyCtEYCRmMyon5GdA5sf7WpecJV9ZMRkdBZ+k2HvKwUz83R80htJVJW_WCpEltRyqkpw2pIqNEwCFmDrvDCDLp07innwe6ICpl0w31vzOAqme3fJDPRFTW4EzYtkTTpjfwiB94zkyoZQcbQaFWelrsRtSMWuxLSMzWHnD4wUzeZurGdhEkxwsfX8Zx3ii2fbI2nCzMYl6Gg1RSWxWgQL5PMGgkAnjTVJZA7nPBupPgutLSGE5DthAeaC31u9eEIDQbVOqQPpB3ZsehQkXGAVFcKf1E0VYJEnt93_5NLOswaS8UwLH3iLA5e9rxfMidg1lshAElGEbZ5TyQSCKB1JKmEbwjlIsoF4wl7rPTtzZvPqUbP9rbzZvx3IH8RGwhLWmeL4BDk+i5nAinOyCdaEZh6dI+CCaLKDgnHHmlxF8cLe1lGv02yuo3EtigJQvYN4QJ3DV6kxJDOXIGJHBWACDcEsaaRAXnVHs5QkWlkQllqQxHL4BpyRnz63qSwMJxSBF6SQTYUdk51z9FpOkz2fRQcwsd_ghkcrEsrhSh4Z6h9Y98QDT4KEZIccYBSDTEuPbrnnnVtO_dTzs1PtV44WAGZWB80N7Sub_W_mzfwLklgXI_nkTps8OSWHQGuxtq8bNq8_MmJ2YKkvP5LBN6zwaxuJpGnO0qShYyAPQaSHxsUHD41rvjULbITnnGCkFce4hl2SegTNML7qXsT6Gle8rT7Yx2qHlNIq0IKMaWBKnsKXJ40rD1spL4RmzCMzvLCY5LlQ1OZoovoefc2gq5p5tFjrAa6+MdxjU1fkAYHj+JnGgb27n3_joa+9gxTBAekbcVO1YDQEo+8ceOuBGc0LrkSPImoVSXO+_dmimcePXDPVb6Ao0aZP50xw5fG45affGzBrn0CtJdypZTIm08o7QtSFg4Kxs1itaMClM59OAUVaARnSAgAJhT35YgszzdMMx4_J0kak2_kfMhxvkti7RmQyQlTRueFT69VkDqs6zxJraomlHH+NFl8phRXjL9CSh2ROeFJRJyTSTI+YYH6tG3NJlZk+0rB7wuzf_OYDiHF4pBQNWzAipFFHUaQfv7_u7x8byPfvjER5N4mlCrYakO9+u2x6NuPztTAmVY4lGzlYSOkcAy7D5LA_6uG_7zdrHsmYbGoWPrHdjF614BLgsBhEYKvxQijeenFxpDGdE3rNJ71slyadq0OrpF_PBTQIEFh6AbFTWptwt4qlENW6+gQW65Wy8KknAk8c8xi3ERuWLJxI4+gIvOVdlfoss2ophT+S1K_ObSzGl_S3DZXNVqxwBXePKBrBVGNkoH_XC__8d485TsSAFbsB1lDzlJz04dre53bsHdz+g1g0bZUmd0541jYaMVueAIlw1eaO9_UqpV_1h17TP20DP3r29LeHzO438JN4LfjeBsyZ3AGiDgEKFEPQCIDUR5NUC5LnaHkdKCDZajsh1_arnH7cSkGZrBtPw4_l4kuiZmYrHqAzG3XwEGDRJ4jEr+QFwCOtLGI6eqG1oGMZLqfMbC6aZfiWoP3x14ocsrhKffkiabbIayOabfWK+kTDPNuwnlnri7BeGCgE3Lr2ha9Km4H92x7c88ZzmOkG1ovFGnJTAZjKyoWI4k+3PnDvUK4fkOIjEKzjQCMRzBN2vYIlix14KAMrpgXCPiWrdFptOak4LBybzW+MmY3PYzhsbhbLROskVgjF1FJInJ2Ig2mSzrCmOV8tGeVhnjgRDif+y8FOs9LpuULoygQts_EE2rpyEV6O4K+EuLqELbNZj1gkG5Z0qRsn0iLZDqeIoG0sbwFInZbNe5eUTJPc2DjacZqzNdlFWCc7krQtWkoqCsq6Mqwbf9x6uQuPhfBcnnsLrQMJNz2OjvaPrnvs+_cikWptaAeF4yDeVADGApRM+vC+DXe91ju697FYLI3G8Cq1x+hgxGz8CSDnc2apaTj+QObqx_HCfwQr41Q+ePgAEkBBIQocgkbBJR2NMgIyV07LaznytCq2vBkLHIn9I8gYH+Avzpx7An7Ms60IS2MtkAUWaF2HiTxkiXjlUL0hg+2DDu2HRjDnBJ8z5hbNefhNDb5+SlFqORWReTVpwgQa93yC6jm8wjFC+IhFpVwAGyb3g_v2Pf7yN__yNeQEqmddjTpRcaPEoKNYrIiijL6y68dfGy2M4cc_yIaKtV_c2fa8MX3bEWMyS9B5DQrCNqfmmWX79hRN95YUGmrnWzI0kpXrJAEPwuxEhikYw0G+o9U8oXdppOGShwKARcOuSmRErFUY7_MxVQvu9K5fiWeyUb61YPkG5RG1VsxLlzSma54Nsw15mOmTZhbNB0+lmm19gc4oB9Pcwfx6Tmkm8gmuHdib9mavvXOkQAQ6Oy+PHyra8sJD_wj+nNxTGIpHdg27qQKMjBVg5a+__kdP947ueSYexS_dUjBRbMSMwYqte8haMZrgun8ciuoc3HzaswvfVBzD0wGEpWVoN4EhgHFhjYsSXV6QRhonMNP0UMCl8KV36lJduCM0fVIfBfnjtafPK5kbzsSaBeaNnI+xPgsgK4fWL2nIkvqcXHyqwMVNtvOc+Tnz8ZU5k8HMm+ClE1rnV0VcfpjGS2ZWXUcRn9iPXbasWJZ52I+4+FIZM9Cz+5mn_vcfPY0okxRgCDbupgMwVkZx+JvKg7Bid+dK_IlSPpukgmDmkxGz7WcRs3stUvGVzek5LF72srHk6ykYGgkAhvRwHjsxyHdh1q+dK_ToTO4Ja2uTS6IyX6GJEkffDzPRj4fDlp4gu_jEorn1nBHTksF7oxCEQGOdCjQG7HTCyoknpJhYQ1D8L+oomtsB0NtWFGRxtcCLT2r26yMzTXX5cpEy2afzw5UyDGn5BC6Et3HnKHMvDo109MR6jRW3vvDQ3YgN4mBfq6oRbNxhGj0tx8qI6MQ_vfrpJ06bffljc1qXXTlWHEHTrbK4PWb1_cbMOJFDJZSq7Z1CdfyxB+kMlFHgKFDIRib8jp+mC7h42UAMhlktfYmTFnmkxWd2TFcXLSgjnnC+oOgA68I+UzXNkbgU_j7puxaUzJLOUfPM1rhZvTtuenErlMf4Tt3wrphWkzcGTfisX2e2ZBa1Fs2pM4pmSRuehEA+7pKpOI1U+xqryOFSPPkJP2uh2U6ogE315OYd46P7aDkx30K69B3OCVivnq1vP_bkX37mCVdgWtaLtU0XYCzLlQAie+jZzd_+wjUrfndVLJpIl_j4CALjw65mH9bFNjxZNsuvAiFWh9XpoqLG6_mprGhEAKEAIhcJw9dLSm8AlIb8NE9ABjaCI3SefBkG+dmmspkzG1cJCT1XkRKJVRGPCEF2Vq1sptGStaXL5oZTc+bKpTnsbY8KyHIAGV5dNvy0bVuqhHkb5EA4jjT+ih33D7jvyVQqq1NPhaASqimPl+hhD7trjXkcL57tHOaWaEeERvHN99zI4OjbD3_7C+DMfV_sY_b1tByuo4NyRED87e5n9rxr_vsXdDQtXFkoEezc0GetT_fWqJl3egmr7oiHOpNAs7fX7DCyqnZ5PHLa8Aq+JwGTHQCFFghkAhiSsxg7gQfzXFgAFkqTMqiHA_rJJ+XNOWdhQg7GXh+Q4_Qc6vIdO5Og4eMj_FiGmY1Xlue1lMyc5rKZga+b4ieA5HEM51ik07mW8qgpE+tghldXTTplUsfnoupuTBXv2419cWBA1du+QGems2bf+je_9eh__82voDjBxQd_BNh0quKAMW3HClkxBcjdt_bOvz0w0r07GsUvQyBBOhpD48iBiHnpXsyjQBkGkYIL5AI0f8LPjwt34BY9NRPfRkBNwg+KoC_8XR0KvABkSGdaADwXt+U594IS0bnnno0LgXz9yxp503bUhjvIUoI4CYBQaQHWi8Mk52W0mtImEnlOyiAeSq5QuAzhj_B0ReeQ+OD+qMEmEAEXT5yKxLAbZLhn3+6ffvnP_haVSr_Cnza4KPjBAIzl2V80WYXXdzywYd1VHlcmAAAS6ElEQVT+Z+4SHcDMyl0lhJYJ_xtxs+YnbIDTEEtO4uyvfRmz+My8GUItAhCUsfxtXIFEnwfzOC+jY1hBKXHm48hBu2eeMWYWLcQWaqpOMkE9rtekJiWA78dtstThcvywKxQq45V3QVsl5z7K3aMJmNg0S2NplVpIJAMnSxZwsgm2VCWMXRkYDp_EzdPmwahYUIcwQRpBtuO1Z+7a8cwPN4CR9Ct89vG03cEOkX7F8Ze237vh3EW3rmzNdJ3Ar_EIAGBKuEy2952Y6VpaMq18rtagyFRPZ1fJrFuH52GjUAgAQkUqcOiL5QL_II0kSFfwBcMmaPjJh0WLCua69+WsckFLF_SNjY47Q+_iqumcMOOoKwmkd0VrlK_QSchjJ_X4BUOkGq2WR1OtVSJ4Kbf6zOUN_fqRiHlwL_atMcE1jB6Hxr7tGx+775NX_jlyuO6la1_1qiGHSd2hBBgrK42WxtafNPPi6xLxNG7UrWy8MvJ5vMi5OWoWnVnED4vbhteSzm8NlZPBfKWlvWjWrU3IOpGAjIrDIQqkxWKclcPXMG2zAND5eJPMLFlSMDdeP2aawDM856klS8001sHK6IecJtOfitNyLBOUrcG_Kn8qFYCWejsAHdyzO4kt0Ri6qDxxmORjzpAbONDz_Jf+_L90r3tlK5IJLl2asGTTPB9qgMW2976yf0HHuaOzW0++wq6LsaPRGMzHBg_EzIH9EbPkLOy4kKULqJN5RBJd0Ggb5ZmT8K45ZdOCW_hNm2JQDu_EXDEW9Q6hJ6B4IMIRkHd02C5mzj13zFxz9ZjBlnn7C6416mL5qTjW4YtfC3QT8XOtnohE8uRCmZSqPgFUJOPcPbBcezgSOP1AeukH3jlu_emP_ucLX_jjh0BKYOEW4ODmXigv7lADjEzjr26_d90Z829Z3N40azl_xFRAgMbg1UDTuwMvb2L6uPA07DtqcKjkg_Q587FetLRgBvGUoOcAvk3G7zqih9hJtFzBZBo85c4ILWvrKJkVZ+TN1VeNYd6FJU2ggbsfqpwiZIqAC3GpYikR9qojoifVjKcalyK0laLj8qcKYjLgXeO_Ykv32oG4e5jN5QjLOo4honvD6u898Nvv+wukEFiHZGi03AnhQ+fIi4DlL0BkF818z6KPX_Cdr7dmu5bndJcBMmjVirAq77lxzJx9Vd4UeK9Sx4WVjRdbxNjt3hk1GzfEze6deNqP9zKLQFg0XjYZrG21AlQzuopm1mz4M8uwWPbVe9ZZzzkcSHb4Ttcv49NV0lVKm1KbpkItoTpab6RsLRoFS6gWiXJS_3Bv3DzVk7TrXTpaAP18HDS0d+eaH_7uzbfvX_vyVhTgh30PmfWiAHWayqxpORhfWbzlD0mmLjvl0xdcefodX0nEsx35wJJZkFBRl3x4xKy4EDsQALJaiqsnAYGGpTFZmCxgPkFLGMViZRSXKn1cn2LRZI0rUGg1t4brq9IQIyxZ7VteVYQhOtbtl2Gcll3LhKXx07lOF85neXXKl3GEddEU4RTCT_XHzY_2Y44gucqHusKcdmSo98Uv3_mxN772F88hm8DCY2+5e2xwbAH1JI4W51A6tkBbEd3c_ezumc2n7pvdfuqV2CAWo9SSCT0QBlvXxk3zjJLpwl4qvsDbqCNm5K05+Owj2UGLAIFGUHENTYZflcSx1mij9dSkIy8ygj8VfpPSOhm1zknplbCOj8fB5nm8CPPQfnxay4orlFINFFYulfIbHrn3D1+467M_QgbHkUM2sZeK3OlQA0x5s0084m_uvO_tRTMujsxoXXKhPPcjEAQVFgxb1gBknWUzayFAxsnUBG46Sq959bP+abia9U_AqiZ9nXqraMmTCRPwrsNGkjks_nQgYX7YXQ0uMuSEHte62fbio3_96Gdu_QoKcFJPy0W_SgzED9odLoBRMArLI_bqlm+8dvLca9s7WuacxakQJ_1ig2WYi5hNAFkGj1HmLraPbqruKmVonbqmawILdQeOQAdv+4jE+kHedAIeKBrtpUbppgI0WUjtT5iHe7CdHYqmWMG8Em2Op5LYfv7CPz74767mpJ5Wi_MuWrBggEH4kLnDCTAKGejwZxu__OKp829a0N7ctZyPKmzLQUCQQRGbsc4VxUr__BMAQcSDgn5TaXk4PtawQJMCyuNTk7fL186YiMZjJcGatHWuiZq0YYaI+3TabCULN5+0rC7OCX1f0jzWk5HyQieFqTL8iE46afauff179_36BX8Ccm7DoeXi3OuwgAt85a6P_uFwqiP1S69t+OZzJy98_wltzTNO5lICR0RmcqWfuNmMFftRNHfRSfbNJKbVc1IOmQFJnQ71ywe0fmK9cLgXPbqp8fFk9HiEg1PiGSrMRVQi5LuwWi_0peX60wuFpNyGHU8nTM_6N3_wwCfe+9liLteHZAUXBxUZUEh7qN2RsGDUnegP76wUXlv_7WdPWfyri1uaOpfJyoEDmTwVhTQ7NsXN_j1RsxAb9_hZLU7YrSOLOpZNSdR3YDuYTlNWgS88a9WvtbhK7SWDs6YHHKoDDsCWrrpsNSFjtu3V6ZY_d333YU3wn_ZmzduDKa5nU02BI9ASAFf3hrUP3v_xy+7IDfbzBxQUXLgHP3zgohCHG2Csg47aEKjgc3WFV9d9_dmlC6+d29rStZyJzOS8jDrnYux+bCPZtD5uZuKlhw7cZdrPGIGopqM2rbL97HEpE1gkv1y9sAUCuHqdF6YdV2eYwMWr6CbgV6d4kMz51tujcfONvU1mLz4gzI+binNtlWERP+q+b+0b3_v+b178Rx64DuliaiBQjcCRAhirZusdyHL5l96++5ml865tbW2ZcyY7jQDjQUeQDQ5Fzdo3MS+DhPMW4APkGAemNGRaVtXnKYJsQitEXm4+WAWY6hqDWCM0E4E3YISA_UpuxPz4QNr8YH+zGcXbxsGmQeRTNL5yxnXBPW+8+LX7bj__v2NY7EUWLZeCS69tJB0+dyQBxlYoyMR_Zf2Xn5vbdVG+vXnBedgBG+VTHAUaX_ooYm3sHViyPXtiZs68omnBy62yvuXpo6GO8+hVCPr+PMUnmRBYPiHCUv8kwG1URqWbiB2t1q5czHwTVuuNfswhQFyht1doDPuxy8V8YceLT_71Dz55+V9BzAEcvFs8ouBCfUdsiGRd6qhHXj1yBb258RsvtbaevL2zdel58VQiw8k_nVgzTP4JtH17Y2bNGjzqiGGbM4ZNbhjkBsZGr3jtOGFc4+QDbTJwTcZL2VdW6TWlvj8ZTwKIL2jw7vsnmMT_675m05vHc0Xqh2wrJ0zm5UO9ve_8+N7_9tgffPCryKXV0kdAOuearEoUOTTuSFswlVoBRj+yfut9a4uF8sszZ5x+RibdhCeJDmBQHIHGYTKH7T5vr0+Y7dvieBuoZDqxOEvFTzRssrJpaVI6jKWrXSO8qmhUwIqJqWJYRVuVU4lw6QEzBvPWcMJ8e2+zWd3PxVMOiY4GvrDHiZ_OGty7d80b__iXv_viXZ95GBRc3_LBxSobqdYxP3jv5wUwSs6GKtAiO_Y9u2vDjicfnz_7wq6mppmn8lmjbHygInkgTqD19EbNm28lTU9fxHQAZG0tVl8CNAQlpspHsUPhdG44ES8rRYiiBrAatWycZ_EOcdtYzHx3f9Y80Z3FJ9EBLOihalgEDedafFupe_1b9_3kDz_8+5sfvfdNUPngkmsWaTXFDEl9SKOHuCumLBvVRZBzsyUfkONVWNN07RXf_rUTl1zxO6l0tpP7udjB+hSJYR78lBE3I56B7c_nnp0zs7B3nyCTt4SoRrZMfQSn42r2BvmGXE26yWhqgI9FaLGolO0A1hO9KWyxSck+fl5cdGqtrA96aCw3MNiz_YVH7sKQ+C2Q8E0gzrU4NPLxD8HFC_nn4n6eFowNZt_oEVxl6zfd+8bw4L7nZsw4bV46076EECR4FFwEDxXOOcnWnXj3cF3KdOOTmc1N2JKNt3b48y126CRr5+p0qGb7vlfKT7ZhD7gT0nklJ6QDP7Lkw2kGNuJHE7+_L2t+hHWtXSPc2swdIo4ZaYWO7zcgjHb2b9v4xEtf_B9_8NLffpZDIoHFIdEH14TVO86HzaO4R4OjHFQjpxvcW0JrRr_12mu+c8vC+Zf8dqapdQ7fGdRLMdhrj5JMY14S34dYvDBnzj4tb5YuLOCrh7Rq9i0efXvIn9Cj2DjXSG_IjUADgCUvNqwWT6bzfUj6_Rj63sLOhxf7UmbnCL4QiQIEFavgUw4hgkc_iuUafG8GP0LWt3vny4__HawWv3zDXz7jkEhg0T_ik3nUWdOxfUeLoyw8cF3KkMnhkkd88eJrTnrPe_7bv+2cueL9yXQiLXvAQKlvEImPOC2cvLiKTunExsNlS_Jm+dK8WYDbhgzeoqZV43NPa93A2XO1QOBlB8G6d5ke4Orx4sScQyDdEJZgNg3Fzev9SbMBOx8G8Q1_CyB4bAtohCXC4qNN8TTebRgaG+vbsuZ7r3zpT76049ng7R8Ci88UdUhk8XpiIOvIOYh_1DnKxOs2bM1S7373HeeduuIjn2jpWHxpNBmP8vd0ZNgEsbVoAA9L47BWDcMlZsozOgrmhPkFc9ICfEMWYGvF3C2BJQ_2AB9FTfykgD3VQF+FAEYx+IyQC6AM833I3hwe6mMIXDeQxGtjcfxcC7+tVsNasQAOsqQFi8EyF_PF0uCeLY+_8+BX_9_r__j5F0BBQB2VVgtyBY5NORqdU3FgzThc0prxZqD5wlV_cfGJy6+7Pdu64MJYPBbl5kO+wcQ7NAWYDqHsKI4XnOCxs5owT5uFj4wsmIVjRsF0tZdMG4bSDDjLkAV6vfzV0tnvV1SbBKs4u1QC1tbKMADHb4Thl_DwMd0o5lExfJYyjs9Txk33KLZ48xufKDxuCERaMBwyDIMWB7Dyo_nySPeuZ7Y9_a9ff_F_f_opsNePkXC+RYAddVYLMgXO6imIHnUBykdrpsMm9_vLsAm_5bxL7jx_ybLrPtTcumBVMp1ME2hyp8BSOMS6sbQLkxPvRmWCAlo+kkomy6YpUzbtLXjuidf7OwBAAq4Z35bIIi+FLUQEnmzTJl84Wh2+tJtHBWMY6obwsHkA1qkPd349AFVvLmoOYLWdb0DRcrF+gkdAhXHSBxLzJJ8+aDh5j8LqFkbGRgf3bXt66zMPfOuVL37mp8jlajxFJ7D84ZDiNGBiQfVzcGzW0e5cF4wDGsHGYTS74rz_eMayUz98fXPnSVemm1rn8urncoVYIpQOrJmCDb5YOhRm_zPMXpIwfNbEu1TyEWChFoJCgMGyjlZeYEFYyzNdyjnaoIxrAbfNKKB8ULEMvrggc8OxgQO7BnZtfGTTo_c8sO7eu94AS94VElgEVS1gHbXggrzSXPrHgnPdVBdoia6us+evuPB3Vs2ad+7VqZZZ5yT5OWp0Nu_KFBTawQI6tFqABhrSSRi1MM+nkxqZzkmRo9X8wBqF0rVMkO+k510sgcsDH+mWenJDwwOj_Xte7l7z_I_evPdvnu5b_8oO5HDoO2aBBdnFsdnHmnNdJV2IbpJ5GbuKFo0+uzq7ePkHTlx6+q9d0D53xcWp5lmnJzNNnfzJQVoqGUbhEyQEnoJMTAE4iq+Aoa81ckcHy2kafJYNQMR0Oi+fZcWSoSzr51EEbAqjQz1j_XtW447wqXceu+e5HU_980aUpLWiiASXWiudYzFdxIV_zDiq7lh12u3sTh7ougBsvClgnOmZ2YtWzV9yxs2nz1hw7jnp9vlnJDKtS+KpbJtYEFBIz6HrpPfAVS0ZSyv4BGQ6xJErD0dbBTCkBxaKt5H4x3NWHMMHcsP9m0e6t7_Ru_HllzY9_Z3V3W88TUvFJQaKQGulk3a1Xkw_JoEFucWh+ce8Yxv0YLfTqhFcPuCYxjymNc864fLZc0+58oT2ecuXZdsXnZTMdCyKpZtmR+NJgC6RwXaXCG8AZJ2BnFnSHWKxkBYMo0gXYOJULBbLpWJ+pFTIHSjkh_bkh3u2Dvdu39C37c23d7z8yKae1T_ZA068CySYCBwaU4JJAcV0pvmgIvtj1lF9v0hOgaawILB8wCnwmKa0HFYzwFhrx7xzO1rnLO1s6pw_I9E8qyOVbW6NxptaoqlUJsafUotiOo5S2GNbLJXz+WJ+dKScHx7IjQ32jw119470bO3u3_VOT+_mF3tH9m3l6ro+shEMIk7wEET+wbRfKFChPYGjkn8RnbZLQeTZIAGcAs_3SaP01ImGfd_XlYLG95mvcbVQCiDfZ54eSq9l6f_COCrvl8EpSNhWhhVMPvA0HM5XHamv+iIw6OjrkOb7CiD1fTotpzwY_4V0YaX9QjayRqO03fTD4VppykJpfWAwrHENq89y4bDy+qXwVWG_FI2dpJFhXYTjkxQPQKZ0CjqNH_ePa+C4Bo5r4LgGjmvguAaOa+C4Bo5r4LgGjmvg2NfA_wcXN6dAmeCjpQAAAABJRU5ErkJggg=="
						return "{\"text\":\"" & trackInfo & "\", \"icon_data\":\"" & nowPlayingIcon & "\"}"
					end if
				end try
			end tell
		on error
			return ""
		end try
	end tell
else
	return ""
end if

It's basically a simple if/else function. XD
EDIT: Do you know of a way to make the cover art turn into the iTunes default 'blank cover' when there is no art?

Ahhh, you’re not using the native now playing widget. You should switch over, it’s MUCH more energy efficient. It’s worth the fact that it currently can’t hide the separator :stuck_out_tongue:

1 Like

Oh, is that a BTT alpha thingy? I’m not in the BTT apha to keep things stable and compatible, but maybe I’ll take a look. (unsure about what it’ll do to my preset, though)

Also note that unlike yours, mine changes based on the open app.
The Quick Launcher and it’s widgets are usually hidden while you do your stuff, (you don’t see what you don’t need to see, and only see them when you want to see them), meaning they only update when you have that specific group showing. (which is like 5% of all the thigs you use with my preset)

TLDR for less confusion:
The widgets are not always shown and are only shown for about 10 seconds at a time when you use my preset, so they woudn’t be updating as much as yours (every second, all the time). So the energy use may spike while in the Quick Launcher but otherwise these arent loaded (at least I think not)

BTT’s CPU usage while having one of the larger app modes open (OneNote) and activley in use is about 2% with occasional 5% spikes while opening a large group. (‘format’, in onenote)

aanyway that was long and maybe unnessesary..... I’ll explore that Idea tomorrow after a goodnight!

no, it's already in the stable release

OK, I've just installed 2.628 and it's looking really good.

I now have a bit of a problem with the date/time widget. I've written a script to change all (8!) widgets to my preferred display string (E d MMM HH:mm). This works fine, however...

...the expand/collapse menu bar scripts put it the string back to the old format. Which is a tad irritating. Does that reset really have to happen?

Perhaps we need a way of setting a default date/time format in the BTT widget so that scripts don't have to set it. A global setting, maybe?

You can just edit the three expand/collapse scripts with your preferred three date formats! Much easier than editing 8 things and are, in fact, the global settings you're looking for :slight_smile:

But I would have to edit those three scripts every time I install a new version (that's 24 edits!). ATM, I have a script that survives updates, so all I have to do is run it and I have the changes I need.

It's not 24 edits, since all the expand/collapse buttons just use the named triggers. You only have to edit the one line that sets the date format in each of the three named triggers in the "Other" tab :slight_smile:

I'll keep working on making upgrading easier!

What I meant was that I have to change 24 strings; 8 in each script. Even with copy/paste, that's still more of a faff than running a script once.

This isn't a criticism, btw: I think you've done a fantastic job and we're all just hitting the limitations of a system that wasn't designed for the use to which it's being put.

Oh I know! It's just that I'm as frustrated as you are with those limitations, haha. I hate that you can't do something like customize the date easily, it makes my left eye twitch.

But thank you for the kind words! :smile: