<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Samuel Viana</title>
    <description>The latest articles on DEV Community by Samuel Viana (@digfish).</description>
    <link>https://dev.to/digfish</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F895653%2F885d2ff3-d44e-4599-93d9-5118446250cf.jpeg</url>
      <title>DEV Community: Samuel Viana</title>
      <link>https://dev.to/digfish</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/digfish"/>
    <language>en</language>
    <item>
      <title>How to install the most recent Python in your Synology diskstation</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Wed, 10 Jul 2024 20:50:35 +0000</pubDate>
      <link>https://dev.to/digfish/how-to-install-the-most-recent-python-in-your-synology-diskstation-2b0p</link>
      <guid>https://dev.to/digfish/how-to-install-the-most-recent-python-in-your-synology-diskstation-2b0p</guid>
      <description>&lt;p&gt;Synology, the taiwanese manufacturer of the best NASes in the world, deliveres its devices with a &lt;a href="https://gadgetversus.com/processor/realtek-rtd1619b-specs/" rel="noopener noreferrer"&gt;RTD1619B&lt;/a&gt; processor, which is based the in ARM-64 architecture (also known as aarch64). I possess a &lt;a href="https://www.synology.com/en-br/products/DS223j#specs" rel="noopener noreferrer"&gt;NAS DS223j&lt;/a&gt;, after owning a DS212j for 11 years since 2012.&lt;br&gt;
Being a Python-savyy developer, it is unfortunate that Synology does not ship its NASes with Python support built-in, so I have to download its Python distribution using the Package Center for the Diskstation. THe problem is that it is a old version of Python: 3.8, which was shipped more than 4 years ago. I need to use the most recent features of Python, so it is an handicap had to use and old Python.&lt;br&gt;
The alternative to use the most recent Python (at the time of this article is 3.21), you can use the Python shipped by Anaconda, which provides a package manager compiled statically available for download called &lt;strong&gt;micromamba&lt;/strong&gt;, which you can download by following the instructions at &lt;a href="https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html#mamba-org-releases" rel="noopener noreferrer"&gt;mamba.readthedocs.io&lt;/a&gt;.&lt;br&gt;
Here are the steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In a bash shell, execute &lt;code&gt;curl -Ls https://micro.mamba.pm/api/micromamba/linux-aarch64/latest | tar -xvj bin/micromamba&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;This will download the &lt;code&gt;micromamba&lt;/code&gt; binary into the &lt;code&gt;bin&lt;/code&gt; subfolder&lt;/li&gt;
&lt;li&gt;Then, execute &lt;code&gt;./bin/micromamba shell init -s bash&lt;/code&gt;. This will add a initialization snippet into the &lt;code&gt;.bashrc&lt;/code&gt; file.&lt;/li&gt;
&lt;li&gt;Then, do a &lt;code&gt;source ~/.bashrc&lt;/code&gt; and &lt;code&gt;micromamba activate &amp;amp;&amp;amp; micromamba config append channels conda-forge&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;The last command will configure micromamba to download the last releases of a python basic development environment which can started by &lt;code&gt;micromamba install&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Once there, execute the &lt;code&gt;python&lt;/code&gt; executable and voila, you have a very recent compiled python, perhaps no more than 1 month old ! The basic installation also installs &lt;code&gt;pip&lt;/code&gt;, so you have all the power of Python on your hands!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://avivleemann.github.io/blog/blog/posts/2023-12-07-micromamba/micromamba-guide.html" rel="noopener noreferrer"&gt;https://avivleemann.github.io/blog/blog/posts/2023-12-07-micromamba/micromamba-guide.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html#mamba-org-releases" rel="noopener noreferrer"&gt;https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html#mamba-org-releases&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faahienvm6l2beiat2gdv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faahienvm6l2beiat2gdv.jpg" alt="Image description" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>anaconda</category>
      <category>synology</category>
      <category>nas</category>
    </item>
    <item>
      <title>You trust in AI blindly ? Think again...</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Tue, 12 Mar 2024 12:03:58 +0000</pubDate>
      <link>https://dev.to/digfish/you-trust-in-ai-blindly-think-again-20jp</link>
      <guid>https://dev.to/digfish/you-trust-in-ai-blindly-think-again-20jp</guid>
      <description>&lt;p&gt;I\'ve decided to write my own &lt;a href="https://pt.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol"&gt;DHCP&lt;/a&gt; server, for a variety of reasons: every time the DHCP of my router have to be resetted, I have to fill again, bit by bit, the manual static entries of every network component.
In other words, having a server of my own making, I can more easily move the software server to everywhere else and can sit on my nas, or on a Raspberry Pi.
From my knowledge, DHCP is a very simple and efficient protocol, specified in a &lt;a href="https://en.wikipedia.org/wiki/Request_for_Comments"&gt;RFC&lt;/a&gt;. So I thought, you'll have to use sockets with all the communication is made through the connectionless UDP protocol.
In the last years, since the advent of chatGPT, I would go to the AI chatbot for advice on a stub code that could be as a starting point.
So I asked the bot, and he suggested a simple piece of code using the &lt;a href="https://scapy.net/"&gt;scapy&lt;/a&gt; library. Never heard about it, so after I informed better about the subject, I understood that was a packet capture library, not a &lt;a href="https://www.digitalocean.com/community/tutorials/understanding-sockets"&gt;sockets&lt;/a&gt; library.
Scapy makes very easy to analyse each packet through the perspective of the multilayered network architecture of the TCP-IP paradigm. It contains automatically ways to fill and parse the network packets received from and sent to the network. On the background, it uses the &lt;a href="https://github.com/the-tcpdump-group/libpcap"&gt;libpcap&lt;/a&gt; library, available in many platforms, used by network inspection tools like tcpdump and wireshark. It auscults every network packet that travels in the network and reaches the computer that is using it. It &lt;strong&gt;scans every packet&lt;/strong&gt;, putting the network interfaces in &lt;a href="https://www.blumira.com/glossary/promiscuous-mode/"&gt;promiscuous mode&lt;/a&gt; if it needs to. So you can imagine easily that is resource-intensive, hogging the CPU and memory. This way, you can create a firewall, monitor and generate reports for business intelligence about the users on your network.
But returning to DHCP, so I decided to follow the ChatGPT and other AI-chat tools, all recommending to use scapy, but after developing and testing on a computer, I decided to apply it on the NAS. At first time, everything was working, but I started to feel strange every time I tried to log in to the NAS, a slowliness was taking place. So I do a htop on the NAS, and discovered that my own made DHCP server was taking almost 100 % CPU time, and filling the entire NAS\'s 1 GB RAM ! And this because scapy was analysing every packet traversing the NAS, since a NAS, as you can imagine easily, is a very active network piece of hardware.  So my only alternative was to rewrite the DHCP server using the usual socket approach and up til now, is working smoothly !&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>ill</category>
      <category>network</category>
      <category>programming</category>
    </item>
    <item>
      <title>Creating a minimal python development environment under Windows</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Sat, 09 Mar 2024 18:00:15 +0000</pubDate>
      <link>https://dev.to/digfish/creating-a-minimal-python-development-environment-under-windows-ph1</link>
      <guid>https://dev.to/digfish/creating-a-minimal-python-development-environment-under-windows-ph1</guid>
      <description>&lt;p&gt;This article explains how to get a minimal running Python environment under Windows.

After exploring several alternatives, like using micromamba script which is based in anaconda, I went on researching to obtain a stripped version of Python to use as a stub for running non compiled code under Windows.
Python.org has the embedded Python distribution on Windows (&lt;a href="https://www.get-python.org/downloads/windows/"&gt;see download page&lt;/a&gt;). The 64-bit 3.11.8 version zip distribution is 11 MB (40 MB expanded). If you analyse its contents, you'll se binaries &lt;code&gt;python&lt;/code&gt; and &lt;code&gt;pythonw&lt;/code&gt; there. What you don't have is the &lt;code&gt;pip&lt;/code&gt; executables, which you can add later.
So, extract the &lt;code&gt;python-x.y.z-embed-amd64.zip&lt;/code&gt; in a directory of your choice. In the extracted files, find the file &lt;code&gt;pythonXy._pth&lt;/code&gt; which has the following contents:&lt;/p&gt;

&lt;pre&gt;
&lt;code&gt;pythonxyy.zip
.

# Uncomment to run site.main() automatically
#import site
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Uncomment the last line and save the file.

Download the script &lt;code&gt;get-pip.py&lt;/code&gt; from &lt;a href="https://bootstrap.pypa.io/get-pip.py"&gt;https://bootstrap.pypa.io/get-pip.py&lt;/a&gt; and save it inside the python directory.
Open a command line inside the directory and run &lt;code&gt;python get-pip.py&lt;/code&gt;.
When the execution fininshes, you should now have a running python environment ready to be used.
Add the created &lt;code&gt;Scripts&lt;/code&gt; directory to the front of your PATH environment variable :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;set PATH=%CD%\scripts;%PATH%&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;to ensure you are running the right  &lt;code&gt;pip&lt;/code&gt; to install what you need.
For example I like to install the &lt;a href="https://pypi.org/project/pip-search/"&gt;&lt;code&gt;pip_search&lt;/code&gt;&lt;/a&gt; module which provides the deprecated &lt;code&gt;pip search&lt;/code&gt; functionality. &lt;/p&gt;

</description>
      <category>import</category>
      <category>pip</category>
      <category>python</category>
      <category>windows</category>
    </item>
    <item>
      <title>Synchronize a remote Dropbox directory with a local one in Python</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Sat, 28 Oct 2023 01:36:22 +0000</pubDate>
      <link>https://dev.to/digfish/synchronize-a-remote-dropbox-directory-with-a-local-one-in-python-3k1l</link>
      <guid>https://dev.to/digfish/synchronize-a-remote-dropbox-directory-with-a-local-one-in-python-3k1l</guid>
      <description>&lt;p&gt;After the last post, in which a simple local synchronizer were implemented in Python making use of the Watchdog library to detect the local changes and propagate them to a remote directory in Dropbox, I've decided to implement a reciprocal sychronizer that does the exact opposite - synchronizes continuously a remote Dropbox location to a local one.
It's using the same Dropbox Python SDK as the latter post, and of course you'll need to register an app of yours in order to create a access token to acess the Dropbox API.
In this particular case, a cursor is created every 30 seconds to poll for changes on the remote location and if that is the case, the API returns the name of involved file, and replicates locally what has happenned remotely.
Again, in this case, the program does not perform a global synchronization between remote and local directories, only listens to modifications in real time and propagates them one-way from remote to local.&lt;/p&gt;

&lt;p&gt;The code is below:&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


</description>
      <category>dropbox</category>
      <category>synchronizer</category>
    </item>
    <item>
      <title>Scrobbling from Shazam on Android via Tasker (...and PHP)</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Sun, 22 Oct 2023 23:57:11 +0000</pubDate>
      <link>https://dev.to/digfish/scrobbling-from-shazam-on-android-via-tasker-and-php-545o</link>
      <guid>https://dev.to/digfish/scrobbling-from-shazam-on-android-via-tasker-and-php-545o</guid>
      <description>&lt;h1&gt;TL; DR;&lt;/h1&gt;

&lt;p&gt;Schematically:&lt;/p&gt;

&lt;p&gt;Shazam on Your Android in AutoShazam Mode -&amp;gt; Sends notifications to Android -&amp;gt; Tasker listens and grabs notifications -&amp;gt; Parses Notification with track metadata -&amp;gt; Sends track metadata to Last.FM trough PHP script&lt;/p&gt;

&lt;h1&gt;The long story&lt;/h1&gt;

&lt;p&gt;Usually I rely for scrobbling my musical listenings on my Android Phone that the Player Apps have its own scrobbling capabality built-in. Spotify has it, VLC has it also. But if the app doesn't have it and it uses a fixed notification in your notification area with player controls on it, it's just a matter of using the wonderful [Pano Scrobbler] application. This app detects automatically this kind of notification, grabs the track metadata and sends them to last.fm . This is fine if you are listening to the music in the very app which provides the notifications, but if you are listening from music from an external source not related to your phone like online radio, or youtube ? Yes, you can use Shazam or other similar like SoundHound, but only Shazam possess continuos recognizing, which is called AutoShazam Mode. Shazam sends the automatically recognitions to a notification, but Pano Scrobbler is not able to reasd them.
Enters Tasker, the one and most complete source for automating and programming something tailored to your needs and you can't find an already made app for it: if you're a programmer this is what you want ! Tasker can read all your notifications (if you give permission to do so, of course) and you can filter by the app that generated and them and their contents.&lt;/p&gt;

&lt;h2&gt;Tasker script&lt;/h2&gt;

&lt;p&gt;In the XML code below, replace &lt;code&gt;yourserver.org&lt;/code&gt; with your domain.&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;TaskerData sr="" dvi="1" tv="6.1.32"&amp;gt;
    &amp;lt;dmetric&amp;gt;1080.0,2134.0&amp;lt;/dmetric&amp;gt;
    &amp;lt;Profile sr="prof212" ve="2"&amp;gt;
        &amp;lt;cdate&amp;gt;1691602106114&amp;lt;/cdate&amp;gt;
        &amp;lt;clp&amp;gt;true&amp;lt;/clp&amp;gt;
        &amp;lt;edate&amp;gt;1691601090420&amp;lt;/edate&amp;gt;
        &amp;lt;flags&amp;gt;8&amp;lt;/flags&amp;gt;
        &amp;lt;id&amp;gt;212&amp;lt;/id&amp;gt;
        &amp;lt;mid0&amp;gt;211&amp;lt;/mid0&amp;gt;
        &amp;lt;nme&amp;gt;Autoshazam Notifications&amp;lt;/nme&amp;gt;
        &amp;lt;Event sr="con0" ve="2"&amp;gt;
            &amp;lt;code&amp;gt;461&amp;lt;/code&amp;gt;
            &amp;lt;pri&amp;gt;0&amp;lt;/pri&amp;gt;
            &amp;lt;App sr="arg0"&amp;gt;
                &amp;lt;appClass&amp;gt;com.shazam.android.activities.SplashActivity&amp;lt;/appClass&amp;gt;
                &amp;lt;appPkg&amp;gt;com.shazam.android&amp;lt;/appPkg&amp;gt;
                &amp;lt;label&amp;gt;Shazam&amp;lt;/label&amp;gt;
            &amp;lt;/App&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg2" ve="3"&amp;gt;A reproduzir*&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg4" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg6" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg7" val="0"/&amp;gt;
        &amp;lt;/Event&amp;gt;
    &amp;lt;/Profile&amp;gt;
    &amp;lt;Project sr="proj0" ve="2"&amp;gt;
        &amp;lt;cdate&amp;gt;1691601049652&amp;lt;/cdate&amp;gt;
        &amp;lt;name&amp;gt;TaskerScrobblr&amp;lt;/name&amp;gt;
        &amp;lt;pids&amp;gt;212&amp;lt;/pids&amp;gt;
        &amp;lt;scenes&amp;gt;Popup&amp;lt;/scenes&amp;gt;
        &amp;lt;tids&amp;gt;210,211&amp;lt;/tids&amp;gt;
    &amp;lt;/Project&amp;gt;
    &amp;lt;Scene sr="scenePopup"&amp;gt;
        &amp;lt;cdate&amp;gt;1419546101360&amp;lt;/cdate&amp;gt;
        &amp;lt;edate&amp;gt;1643196942800&amp;lt;/edate&amp;gt;
        &amp;lt;gridSize&amp;gt;15&amp;lt;/gridSize&amp;gt;
        &amp;lt;heightLand&amp;gt;-1&amp;lt;/heightLand&amp;gt;
        &amp;lt;heightPort&amp;gt;370&amp;lt;/heightPort&amp;gt;
        &amp;lt;nme&amp;gt;Popup&amp;lt;/nme&amp;gt;
        &amp;lt;widthLand&amp;gt;-1&amp;lt;/widthLand&amp;gt;
        &amp;lt;widthPort&amp;gt;444&amp;lt;/widthPort&amp;gt;
        &amp;lt;TextElement sr="elements0" ve="3"&amp;gt;
            &amp;lt;flags&amp;gt;4&amp;lt;/flags&amp;gt;
            &amp;lt;geom&amp;gt;9,0,435,106,6,0,294,72&amp;lt;/geom&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;Title&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;Title&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="12"/&amp;gt;
            &amp;lt;Int sr="arg3" val="100"/&amp;gt;
            &amp;lt;Str sr="arg4" ve="3"&amp;gt;#FF0099CC&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="0"/&amp;gt;
            &amp;lt;Int sr="arg7" val="1"/&amp;gt;
            &amp;lt;Int sr="arg8" val="1"/&amp;gt;
        &amp;lt;/TextElement&amp;gt;
        &amp;lt;RectElement sr="elements1"&amp;gt;
            &amp;lt;flags&amp;gt;4&amp;lt;/flags&amp;gt;
            &amp;lt;geom&amp;gt;0,106,444,4,0,106,444,4&amp;lt;/geom&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;Header&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg1" val="0"/&amp;gt;
            &amp;lt;Str sr="arg2" ve="3"&amp;gt;#77333333&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg4" val="0"/&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"&amp;gt;#FF000000&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg6" val="0"/&amp;gt;
            &amp;lt;Int sr="arg7" val="0"/&amp;gt;
        &amp;lt;/RectElement&amp;gt;
        &amp;lt;TextElement sr="elements2" ve="3"&amp;gt;
            &amp;lt;clickTask&amp;gt;-936&amp;lt;/clickTask&amp;gt;
            &amp;lt;flags&amp;gt;5&amp;lt;/flags&amp;gt;
            &amp;lt;geom&amp;gt;0,148,444,197,10,116,423,216&amp;lt;/geom&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;Text1&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;Text&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="10"/&amp;gt;
            &amp;lt;Int sr="arg3" val="100"/&amp;gt;
            &amp;lt;Str sr="arg4" ve="3"&amp;gt;#FFFFFFFF&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="0"/&amp;gt;
            &amp;lt;Int sr="arg7" val="2"/&amp;gt;
            &amp;lt;Int sr="arg8" val="1"/&amp;gt;
            &amp;lt;RectElement sr="background"&amp;gt;
                &amp;lt;flags&amp;gt;4&amp;lt;/flags&amp;gt;
                &amp;lt;geom&amp;gt;-1,-1,-1,-1,-1,-1,-1,-1&amp;lt;/geom&amp;gt;
                &amp;lt;Str sr="arg0" ve="3"/&amp;gt;
                &amp;lt;Int sr="arg1" val="0"/&amp;gt;
                &amp;lt;Str sr="arg2" ve="3"/&amp;gt;
                &amp;lt;Str sr="arg3" ve="3"/&amp;gt;
                &amp;lt;Int sr="arg4" val="0"/&amp;gt;
                &amp;lt;Str sr="arg5" ve="3"&amp;gt;#FF000000&amp;lt;/Str&amp;gt;
                &amp;lt;Int sr="arg6" val="0"/&amp;gt;
                &amp;lt;Int sr="arg7" val="0"/&amp;gt;
            &amp;lt;/RectElement&amp;gt;
        &amp;lt;/TextElement&amp;gt;
        &amp;lt;PropertiesElement sr="props"&amp;gt;
            &amp;lt;Int sr="arg0" val="1"/&amp;gt;
            &amp;lt;Int sr="arg1" val="0"/&amp;gt;
            &amp;lt;Str sr="arg2" ve="3"&amp;gt;#FF000000&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
            &amp;lt;Str sr="arg4" ve="3"&amp;gt;Popup&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Img sr="arg6" ve="2"/&amp;gt;
            &amp;lt;Str sr="arg7" ve="3"/&amp;gt;
        &amp;lt;/PropertiesElement&amp;gt;
    &amp;lt;/Scene&amp;gt;
    &amp;lt;Task sr="task210"&amp;gt;
        &amp;lt;cdate&amp;gt;1691528745485&amp;lt;/cdate&amp;gt;
        &amp;lt;edate&amp;gt;1691589896085&amp;lt;/edate&amp;gt;
        &amp;lt;id&amp;gt;210&amp;lt;/id&amp;gt;
        &amp;lt;nme&amp;gt;Scrobble via your server&amp;lt;/nme&amp;gt;
        &amp;lt;pri&amp;gt;100&amp;lt;/pri&amp;gt;
        &amp;lt;Action sr="act0" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;37&amp;lt;/code&amp;gt;
            &amp;lt;ConditionList sr="if"&amp;gt;
                &amp;lt;Condition sr="c0" ve="3"&amp;gt;
                    &amp;lt;lhs&amp;gt;%artist&amp;lt;/lhs&amp;gt;
                    &amp;lt;op&amp;gt;13&amp;lt;/op&amp;gt;
                    &amp;lt;rhs&amp;gt;&amp;lt;/rhs&amp;gt;
                &amp;lt;/Condition&amp;gt;
            &amp;lt;/ConditionList&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act1" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;360&amp;lt;/code&amp;gt;
            &amp;lt;Bundle sr="arg0"&amp;gt;
                &amp;lt;Vals sr="val"&amp;gt;
                    &amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;&amp;lt;StringArray sr=""&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;%input
Input
The text that was inserted in the dialog&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;&amp;lt;/StringArray&amp;gt;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;
                    &amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;[Ljava.lang.String;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;
                &amp;lt;/Vals&amp;gt;
            &amp;lt;/Bundle&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;artist&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg2" ve="3"&amp;gt;Artist name? &amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"&amp;gt;%artist&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg4" val="20"/&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="0"/&amp;gt;
            &amp;lt;Int sr="arg7" val="0"/&amp;gt;
            &amp;lt;Str sr="arg8" ve="3"/&amp;gt;
            &amp;lt;ConditionList sr="if"&amp;gt;
                &amp;lt;Condition sr="c0" ve="3"&amp;gt;
                    &amp;lt;lhs&amp;gt;%artist&amp;lt;/lhs&amp;gt;
                    &amp;lt;op&amp;gt;13&amp;lt;/op&amp;gt;
                    &amp;lt;rhs&amp;gt;&amp;lt;/rhs&amp;gt;
                &amp;lt;/Condition&amp;gt;
            &amp;lt;/ConditionList&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act10" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;339&amp;lt;/code&amp;gt;
            &amp;lt;se&amp;gt;false&amp;lt;/se&amp;gt;
            &amp;lt;Bundle sr="arg0"&amp;gt;
                &amp;lt;Vals sr="val"&amp;gt;
                    &amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;&amp;lt;StringArray sr=""&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;%http_cookies
Cookies
The cookies the server sent in the response in the Cookie:COOKIE_VALUE format. You can use this directly in the 'Headers' field of the HTTP Request action&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&amp;gt;%http_data
Data
Data that the server responded from the HTTP request.&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&amp;gt;%http_file_output
File Output
Will always contain the file's full path even if you specified a directory as the File to save.&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3&amp;gt;%http_response_code
Response Code
The HTTP Code the server responded&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4&amp;gt;%http_headers()
Response Headers
The HTTP Headers the server sent in the response. Each header is in the 'key:value' format&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5&amp;gt;%http_response_length
Response Length
The size of the response in bytes&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5&amp;gt;&amp;lt;/StringArray&amp;gt;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;
                    &amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;[Ljava.lang.String;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;
                &amp;lt;/Vals&amp;gt;
            &amp;lt;/Bundle&amp;gt;
            &amp;lt;Int sr="arg1" val="1"/&amp;gt;
            &amp;lt;Int sr="arg10" val="0"/&amp;gt;
            &amp;lt;Int sr="arg11" val="1"/&amp;gt;
            &amp;lt;Int sr="arg12" val="1"/&amp;gt;
            &amp;lt;Str sr="arg2" ve="3"&amp;gt;http://yourserver.org/scrobble.php&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg4" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"&amp;gt;artist=%artist&amp;amp;track=%track_name&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg6" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg7" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg8" val="30"/&amp;gt;
            &amp;lt;Int sr="arg9" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act11" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;548&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;%http_data&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg1" val="0"/&amp;gt;
            &amp;lt;Str sr="arg10" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg11" val="1"/&amp;gt;
            &amp;lt;Int sr="arg12" val="0"/&amp;gt;
            &amp;lt;Str sr="arg13" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg14" val="0"/&amp;gt;
            &amp;lt;Str sr="arg15" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg4" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg6" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg7" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg8" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg9" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act2" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;547&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;%artist&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;%input&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
            &amp;lt;Int sr="arg4" val="0"/&amp;gt;
            &amp;lt;Int sr="arg5" val="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act3" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;38&amp;lt;/code&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act4" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;37&amp;lt;/code&amp;gt;
            &amp;lt;ConditionList sr="if"&amp;gt;
                &amp;lt;Condition sr="c0" ve="3"&amp;gt;
                    &amp;lt;lhs&amp;gt;%track_name&amp;lt;/lhs&amp;gt;
                    &amp;lt;op&amp;gt;13&amp;lt;/op&amp;gt;
                    &amp;lt;rhs&amp;gt;&amp;lt;/rhs&amp;gt;
                &amp;lt;/Condition&amp;gt;
            &amp;lt;/ConditionList&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act5" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;360&amp;lt;/code&amp;gt;
            &amp;lt;Bundle sr="arg0"&amp;gt;
                &amp;lt;Vals sr="val"&amp;gt;
                    &amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;&amp;lt;StringArray sr=""&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;%input
Input
The text that was inserted in the dialog&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;&amp;lt;/StringArray&amp;gt;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;
                    &amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;[Ljava.lang.String;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;
                &amp;lt;/Vals&amp;gt;
            &amp;lt;/Bundle&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;track name? &amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg2" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"&amp;gt;%track_name&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg4" val="20"/&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="0"/&amp;gt;
            &amp;lt;Int sr="arg7" val="0"/&amp;gt;
            &amp;lt;Str sr="arg8" ve="3"/&amp;gt;
            &amp;lt;ConditionList sr="if"&amp;gt;
                &amp;lt;Condition sr="c0" ve="3"&amp;gt;
                    &amp;lt;lhs&amp;gt;%track_name&amp;lt;/lhs&amp;gt;
                    &amp;lt;op&amp;gt;13&amp;lt;/op&amp;gt;
                    &amp;lt;rhs&amp;gt;&amp;lt;/rhs&amp;gt;
                &amp;lt;/Condition&amp;gt;
            &amp;lt;/ConditionList&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act6" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;547&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;%track_name&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;%input&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
            &amp;lt;Int sr="arg4" val="0"/&amp;gt;
            &amp;lt;Int sr="arg5" val="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act7" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;38&amp;lt;/code&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act8" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;550&amp;lt;/code&amp;gt;
            &amp;lt;on&amp;gt;false&amp;lt;/on&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;api_key=%lasfm_api_key&amp;amp;artist=%artist&amp;amp;method=track.scrobble&amp;amp;sk=%lasfm_sk&amp;amp;timestamp=%timestamp&amp;amp;track=%track_name&amp;amp;format=json&amp;amp;api_sig=%api_sig&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg2" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"&amp;gt;Popup&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg4" val="16"/&amp;gt;
            &amp;lt;Int sr="arg5" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act9" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;30&amp;lt;/code&amp;gt;
            &amp;lt;on&amp;gt;false&amp;lt;/on&amp;gt;
            &amp;lt;Int sr="arg0" val="0"/&amp;gt;
            &amp;lt;Int sr="arg1" val="10"/&amp;gt;
            &amp;lt;Int sr="arg2"/&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
            &amp;lt;Int sr="arg4" val="0"/&amp;gt;
        &amp;lt;/Action&amp;gt;
    &amp;lt;/Task&amp;gt;
    &amp;lt;Task sr="task211"&amp;gt;
        &amp;lt;cdate&amp;gt;1691505070601&amp;lt;/cdate&amp;gt;
        &amp;lt;edate&amp;gt;1691592228244&amp;lt;/edate&amp;gt;
        &amp;lt;id&amp;gt;211&amp;lt;/id&amp;gt;
        &amp;lt;nme&amp;gt;Scrobble Shazamed&amp;lt;/nme&amp;gt;
        &amp;lt;pri&amp;gt;6&amp;lt;/pri&amp;gt;
        &amp;lt;Action sr="act0" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;547&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;%label&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;%evtprm3&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
            &amp;lt;Int sr="arg4" val="0"/&amp;gt;
            &amp;lt;Int sr="arg5" val="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act1" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;598&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;%label&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;A reproduzir&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
            &amp;lt;Int sr="arg4" val="0"/&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="1"/&amp;gt;
            &amp;lt;Str sr="arg7" ve="3"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act10" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;130&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;Scrobble via yourserver.org&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg1"&amp;gt;
                &amp;lt;var&amp;gt;%priority&amp;lt;/var&amp;gt;
            &amp;lt;/Int&amp;gt;
            &amp;lt;Int sr="arg10" val="1"/&amp;gt;
            &amp;lt;Str sr="arg2" ve="3"&amp;gt;%artist&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"&amp;gt;%title&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg4" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg5" val="0"/&amp;gt;
            &amp;lt;Int sr="arg6" val="1"/&amp;gt;
            &amp;lt;Str sr="arg7" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg8" val="0"/&amp;gt;
            &amp;lt;Int sr="arg9" val="0"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act11" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;192&amp;lt;/code&amp;gt;
            &amp;lt;Int sr="arg0" val="1"/&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;Merope&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="5"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act12" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;548&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;Shazamed %artist - %track_name&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg1" val="0"/&amp;gt;
            &amp;lt;Str sr="arg10" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg11" val="1"/&amp;gt;
            &amp;lt;Int sr="arg12" val="0"/&amp;gt;
            &amp;lt;Str sr="arg13" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg14" val="0"/&amp;gt;
            &amp;lt;Str sr="arg15" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg4" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg6" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg7" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg8" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg9" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act13" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;547&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;%Last_track&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;%track_name&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
            &amp;lt;Int sr="arg4" val="0"/&amp;gt;
            &amp;lt;Int sr="arg5" val="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act14" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;38&amp;lt;/code&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act2" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;590&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;%label&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;de&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act3" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;547&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;%track_name&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;%label1&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
            &amp;lt;Int sr="arg4" val="0"/&amp;gt;
            &amp;lt;Int sr="arg5" val="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act4" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;547&amp;lt;/code&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;%artist&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;%label2&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Int sr="arg3" val="0"/&amp;gt;
            &amp;lt;Int sr="arg4" val="0"/&amp;gt;
            &amp;lt;Int sr="arg5" val="3"/&amp;gt;
            &amp;lt;Int sr="arg6" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act5" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;550&amp;lt;/code&amp;gt;
            &amp;lt;on&amp;gt;false&amp;lt;/on&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg1" ve="3"&amp;gt;%track_name = %Last_track?&amp;lt;/Str&amp;gt;
            &amp;lt;Str sr="arg2" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"&amp;gt;Popup&amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg4" val="5"/&amp;gt;
            &amp;lt;Int sr="arg5" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act6" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;37&amp;lt;/code&amp;gt;
            &amp;lt;on&amp;gt;false&amp;lt;/on&amp;gt;
            &amp;lt;ConditionList sr="if"&amp;gt;
                &amp;lt;Condition sr="c0" ve="3"&amp;gt;
                    &amp;lt;lhs&amp;gt;%track_name&amp;lt;/lhs&amp;gt;
                    &amp;lt;op&amp;gt;3&amp;lt;/op&amp;gt;
                    &amp;lt;rhs&amp;gt;%Last_track&amp;lt;/rhs&amp;gt;
                &amp;lt;/Condition&amp;gt;
            &amp;lt;/ConditionList&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act7" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;548&amp;lt;/code&amp;gt;
            &amp;lt;on&amp;gt;false&amp;lt;/on&amp;gt;
            &amp;lt;Str sr="arg0" ve="3"&amp;gt;Track didn't change! &amp;lt;/Str&amp;gt;
            &amp;lt;Int sr="arg1" val="0"/&amp;gt;
            &amp;lt;Str sr="arg10" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg11" val="1"/&amp;gt;
            &amp;lt;Int sr="arg12" val="0"/&amp;gt;
            &amp;lt;Str sr="arg13" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg14" val="0"/&amp;gt;
            &amp;lt;Str sr="arg15" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg2" val="0"/&amp;gt;
            &amp;lt;Str sr="arg3" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg4" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg5" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg6" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg7" ve="3"/&amp;gt;
            &amp;lt;Str sr="arg8" ve="3"/&amp;gt;
            &amp;lt;Int sr="arg9" val="1"/&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act8" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;38&amp;lt;/code&amp;gt;
            &amp;lt;on&amp;gt;false&amp;lt;/on&amp;gt;
        &amp;lt;/Action&amp;gt;
        &amp;lt;Action sr="act9" ve="7"&amp;gt;
            &amp;lt;code&amp;gt;37&amp;lt;/code&amp;gt;
            &amp;lt;ConditionList sr="if"&amp;gt;
                &amp;lt;Condition sr="c0" ve="3"&amp;gt;
                    &amp;lt;lhs&amp;gt;%track_name&amp;lt;/lhs&amp;gt;
                    &amp;lt;op&amp;gt;3&amp;lt;/op&amp;gt;
                    &amp;lt;rhs&amp;gt;%Last_track&amp;lt;/rhs&amp;gt;
                &amp;lt;/Condition&amp;gt;
            &amp;lt;/ConditionList&amp;gt;
        &amp;lt;/Action&amp;gt;
    &amp;lt;/Task&amp;gt;
&amp;lt;/TaskerData&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Save the code as ScrobbleShazam.prj.xml. Copy to your Android Phone and store it in &lt;code&gt;MARKDOWN_HASH72f2ff9cd151668e4455c7cb9fc4230fMARKDOWN&lt;em&gt;HASH&lt;/em&gt;&lt;/code&gt;. If you tap on the lower bar it must appear an Import project option.
First, on this project I tried to send the scrobble requests directly from Tasker but every time I tried it, the server refused the request with a 403 error (badly signed request). According to the specs, you have to calculate a MD5 checksum using all the arguments of the method. Tasker doesn't have this feature, you have to use external code to implement it, but i used an external javascript library, and calculated the checksum without errors last.fm API server refused it, even after having sucess after implementing it with Python code.  You can also download the [script here](&lt;a href="https://codehouse.digfish.org/wp-content/uploads/2023/08/ScrobleShazam.prj"&gt;https://codehouse.digfish.org/wp-content/uploads/2023/08/ScrobleShazam.prj&lt;/a&gt;.zip) .&lt;/p&gt;

&lt;h2&gt;The PHP script&lt;/h2&gt;

&lt;p&gt;The PHP script called by the Tasker project uses data from an application [created by you in Last.FM apps](&lt;a href="https://www.last.fm/api/account/create"&gt;Create API account | Last.fm&lt;/a&gt;). It will generate an &lt;em&gt;API Key&lt;/em&gt; and a &lt;em&gt;secret&lt;/em&gt; which you'll use in the PHP script. Besides these two, you'all also need a &lt;code&gt;session key&lt;/code&gt; (which is actually a access token). To get this, you can use the following python script:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;import pylast

skg = pylast.SessionKeyGenerator(network)
url = skg.get_web_auth_url()

print(f"Please authorize this script to access your account: {url}\n")
import time
import webbrowser

webbrowser.open(url)
session_key = skg.get_web_auth_session_key(url)

print("Your session key is", session_key)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;First install the &lt;code&gt;pylast&lt;/code&gt; package with &lt;code&gt;pip install pylast&lt;/code&gt; and you grab the session key.&lt;/p&gt;

&lt;p&gt;The PHP Code:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;?php

define('LASTFM_API_KEY', '');
define('LASTFM_API_SECRET', '');
define('LASTFM_SK', '');

if (!empty($_POST)) {

    $postdata = array(
        'api_key' =&amp;gt; LASTFM_API_KEY,
        'artist' =&amp;gt; trim($_POST['artist']),
        'method' =&amp;gt; 'track.scrobble',
        'sk' =&amp;gt; LASTFM_SK,
        'timestamp' =&amp;gt; time(),
        'track' =&amp;gt; trim($_POST['track'])
    );
    $aux = '';
    foreach ($postdata as $key =&amp;gt; $value) {
        $aux .= $key . $value;
    }

    $aux .= LASTFM_API_SECRET;
    $api_sig = md5($aux);

    $postdata['api_sig'] = $api_sig;
    $postdata['format'] = 'json';

    $ctx = stream_context_create(array(
        'http' =&amp;gt; array(
            'method' =&amp;gt; 'POST',
            'header' =&amp;gt; 'Content-Type: application/x-www-form-urlencoded',
            'timeout' =&amp;gt; 1,
            'content' =&amp;gt; http_build_query($postdata)
        )
    ));

    $result = file_get_contents('http://ws.audioscrobbler.com/2.0/', false, $ctx);

    var_dump($result);
}
?&amp;gt;

&amp;lt;form action='&amp;lt;?php echo $_SERVER['PHP_SELF'] ?&amp;gt;' method='POST'&amp;gt;
    &amp;lt;label&amp;gt;
        artist
    &amp;lt;/label&amp;gt;
    &amp;lt;input type='text' name='artist'&amp;gt;
    &amp;lt;label&amp;gt;
        track
    &amp;lt;/label&amp;gt;
    &amp;lt;input type='text' name='track'&amp;gt;
    &amp;lt;button type='submit'&amp;gt;Scrobble&amp;lt;/button&amp;gt;
&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The HTML Form below is not necessary but is only needed if you want first to test the script to see if everything is working fine without having to use the Tasker script. Replace the three constants at the start of the script and that's all ! Happy shazaming radio songs!&lt;/p&gt;

&lt;p&gt;PS: The Autoshazam feature normally can recognize the same song more than once in a consecutive way, but the tasker script automatically detects this and doesn't scrobble the song if an initial scrobble was already sent.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Select the best GUI toolkit – part 7: pyQt</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Sun, 22 Oct 2023 23:54:32 +0000</pubDate>
      <link>https://dev.to/digfish/select-the-best-gui-toolkit-part-7-pyqt-2j64</link>
      <guid>https://dev.to/digfish/select-the-best-gui-toolkit-part-7-pyqt-2j64</guid>
      <description>&lt;p&gt;And finally we reach the end... that is the last of the GUI framework I decided to experiment... pyQt.&lt;/p&gt;

&lt;p&gt;PyQt was developed by the Qt Company and is the base for the KDE, one of the desktop environments used by Linux. &lt;br&gt;
Its development started in 1990 and was since it's beginning a C framework conceived to provide a common abstraction layer able to render a GUI in different platforms. A complete history can be found in the &lt;a href="https://en.wikipedia.org/wiki/Qt_(software)#History_of_Qt"&gt;wikipedia article&lt;/a&gt;.&lt;br&gt;
Like WxWidgets, Qt is originally conceived to be a C++ framework, but now as many bindings on other languages, like this &lt;a href="https://wiki.qt.io/Language_Bindings"&gt;list&lt;/a&gt;. It has ports to almost all operating systems, like Android. Is much probably the most supported GUI framework in different platforms. It started as a GUI framework, but it has grown to be added support for extra stuff like network, mouse, audio, etc. There is a &lt;a href="https://www.qt.io/product/features"&gt;list of all features here&lt;/a&gt;.&lt;br&gt;
There are two ports of Qt in Python: PyQt and PySide. The first is the original branch comes from the licensing made by the owner of Qt: the Qt Company. The second was created by Nokia when was the licensee of Qt, since it wanna develop software using a different licensing, but Qt Company refused, and so Nokia forked the framework. The code require minimal modifications in order to use one or another, usually it suffices to change the imports from &lt;code&gt;PyQt&lt;/code&gt; to &lt;code&gt;PySide&lt;/code&gt;.&lt;br&gt;
There is a visual designer for Qt when you can build the GUI from the grounds-up using drag and drop widgets from a tool&lt;br&gt;
bar. &lt;a href="https://doc.qt.io/qt-6/qtdesigner-manual.html"&gt;QT Designer&lt;/a&gt; is free and can be installed along with Qt/PySide.&lt;br&gt;
Qt has a &lt;a href="https://doc.qt.io/qtforpython-6/overviews/widget-classes.html"&gt;staggering number of widgets&lt;/a&gt;, all descending from the basic class &lt;code&gt;QWidget&lt;/code&gt;. Almost everything you need is on those classes, I used a &lt;code&gt;QListView&lt;/code&gt; to build the main panel. For every item in the list there was a &lt;code&gt;QStandardItem&lt;/code&gt; which represents an Icon which is added to a &lt;code&gt;QStandItemModel&lt;/code&gt; which is the model to which you add the items.&lt;br&gt;
Dragging and droping the icons inside and from outside or to inside can be implemented through several &lt;code&gt;drag*&lt;/code&gt;and &lt;code&gt;drop*&lt;/code&gt; methods in the &lt;code&gt;QListView&lt;/code&gt; class. To bind widget events with methods you use the &lt;code&gt;.connect&lt;/code&gt; method to associate them, passing the name of the method to deal with the event.&lt;/p&gt;

&lt;p&gt;The program was developed and tested on Windows, and on Mac, because of the separation between icons and executables it required changes to deal with the specificities of each platofrm. There is, the code is not imediatelly portable between platforms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gKy-kkNI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://codehouse.digfish.org/wp-content/uploads/2023/07/mac-running-qtappmenulauncher.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gKy-kkNI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://codehouse.digfish.org/wp-content/uploads/2023/07/mac-running-qtappmenulauncher.jpg" alt="QtAppMenuLauncher on Mac" width="195" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The source code for this implementation is available at &lt;a href="https://github.com/digfish/QtAppMenuLauncher"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>toolkit</category>
      <category>comparison</category>
      <category>gui</category>
      <category>qt</category>
    </item>
    <item>
      <title>Creating a real-time local to cloud synchronizer in Python</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Sun, 22 Oct 2023 23:46:14 +0000</pubDate>
      <link>https://dev.to/digfish/creating-a-real-time-local-to-cloud-synchronizer-in-python-ohi</link>
      <guid>https://dev.to/digfish/creating-a-real-time-local-to-cloud-synchronizer-in-python-ohi</guid>
      <description>&lt;h2&gt;The idea&lt;/h2&gt;

&lt;p&gt;Some cloud storage providers offer a client application that can be installed in the local storage, allowing for a "local mirror" of the remote storage. Usually this synchronization is two-way, the changes on the local system are propagated to the cloud storage and the changes made in the remote storage are reflected in the local mirror. Dropbox since its inception as such app for such purpose, Google Drive used to have one of these, and OneDrive  also have such application. In this article, I will present a 'proof-of-concept' Python application that is able  to make the "first part" of the synchronize, ie, reproduce the local changes in the remote cloud storage.&lt;/p&gt;

&lt;h2&gt;The implementation&lt;/h2&gt;

&lt;p&gt;Using the official Dropbox Python SDK and the library watchdog, it's possible to crate one such application in around 100 lines of code.
&lt;a href="https://python-watchdog.readthedocs.io/en/stable/index.html"&gt;Watchdog&lt;/a&gt; allows you to monitor changes in your local file system through events triggered by those changes like 'FileCreated','FileModified','FileDeleted' or 'FileMoved'. For each type of event, there one respective method in an EventHandler subclass which should implement these methods.
To use the Dropbox SDK, you'll have to create one application in the &lt;a href="https://www.dropbox.com/developers/apps?_tk=pilot_lp&amp;amp;_ad=topbar4&amp;amp;_camp=myapps"&gt;Developer frontend&lt;/a&gt;. Generate one access token that can be used in our application.
This application just have two parameters: the local directory where the file changes will occur and the remote directory  on Dropbox where these changes should be reflect. It's a kind of mapping between that local directory and this remote directory.&lt;/p&gt;

&lt;p&gt;NOTE: This code does not perform an initial synchronization of the local files to the directory in the cloud. It only uploads file created or changed during the execution of the program.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


</description>
      <category>dropbox</category>
      <category>python</category>
      <category>synchronizer</category>
    </item>
    <item>
      <title>Meeting TimeCounter</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Sun, 15 Oct 2023 18:56:06 +0000</pubDate>
      <link>https://dev.to/digfish/meeting-timecounter-33af</link>
      <guid>https://dev.to/digfish/meeting-timecounter-33af</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2siGvMtC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://codehouse.digfish.org/wp-content/uploads/2023/10/image-1697395777743.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2siGvMtC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://codehouse.digfish.org/wp-content/uploads/2023/10/image-1697395777743.png" alt="file" width="358" height="286"&gt;&lt;/a&gt;
Allows you to manage your meeting participation spent time through a simple web application.&lt;/p&gt;

&lt;p&gt;The code is available at github. You just need to have nodeJS installed in a remote server in order to run it. Hit &lt;code&gt;npm run server&lt;/code&gt; to start it!
When the application is running, go to &lt;a href="http://yourserver:3000"&gt;http://yourserver:3000&lt;/a&gt; and then you can create users and start and stop timing and zero it if you need it. The time values for each user are stored on the server, so if something wrong happens, like a crash or freeze, you can always visit the web app again and choose your user and the app remembers the last stored value.
Github repository url: &lt;a href="https://github.com/digfish/meeting-timecounter"&gt;https://github.com/digfish/meeting-timecounter&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;Features&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create new users easily&lt;/li&gt;
&lt;li&gt;Start, stop, resume and reset the timer&lt;/li&gt;
&lt;li&gt;Can see the others' users current time counts&lt;/li&gt;
&lt;li&gt;Stores the time count locally and on the server&lt;/li&gt;
&lt;li&gt;Allows to recover the last stored time&lt;/li&gt;
&lt;li&gt;When running in multiuser, if one user starts the counter it will stop automatically the other users' counters&lt;/li&gt;
&lt;li&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Limitations&lt;/h2&gt;

&lt;p&gt;When openning many tabs in the browser, the browser that manages the resources the tabs use, perhaps if the tab is not on focus, will freeze it in order to use the resourcings it was using elsewhere. The server stores a new time each 2.5 seconds . If you focus again the tab, the browser will restart the counting fromt he
In mobile devices, since it has more restricted resources than desktop systems, just opening a new tab will almost for sure freeze the tab where the time counter is running.&lt;/p&gt;

&lt;h2&gt;This is just a proof of concept&lt;/h2&gt;

&lt;p&gt;This application was only made for fun: there isn't any user authentication involved. &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>meeting</category>
      <category>timecount</category>
    </item>
    <item>
      <title>Select Select the best GUI toolkit – And we have a winner !</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Sun, 27 Aug 2023 23:23:33 +0000</pubDate>
      <link>https://dev.to/digfish/select-select-the-best-gui-toolkit-and-we-have-a-winner--3n1e</link>
      <guid>https://dev.to/digfish/select-select-the-best-gui-toolkit-and-we-have-a-winner--3n1e</guid>
      <description>&lt;p&gt;And after seven posts, I've decided at least which is the best GUI framework that suits my needs! The one with the most useful utilities, with nice portability, and lots of features, ready to be exploited by the programmer.
And the winner is ... Qt! With its flexibility, ease of use and extensive features. The code worked flawlessly with minor adjustments in different platforms, always using Python, which speds up its easyness.&lt;/p&gt;

</description>
      <category>gui</category>
      <category>comparison</category>
      <category>toolkit</category>
    </item>
    <item>
      <title>Scrobbling from Shazam on Android via Tasker (...and PHP)</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Wed, 09 Aug 2023 19:48:44 +0000</pubDate>
      <link>https://dev.to/digfish/scrobbling-from-shazam-on-android-via-tasker-and-php-2ane</link>
      <guid>https://dev.to/digfish/scrobbling-from-shazam-on-android-via-tasker-and-php-2ane</guid>
      <description>&lt;h1&gt;
  
  
  TL; DR;
&lt;/h1&gt;

&lt;p&gt;Schematically:&lt;/p&gt;

&lt;p&gt;Shazam on Your Android in AutoShazam Mode -&amp;gt; Sends notifications to Android -&amp;gt; Tasker listens and grabs notifications -&amp;gt; Parses Notification with track metadata -&amp;gt; Sends track metadata to Last.FM trough PHP script&lt;/p&gt;

&lt;h1&gt;
  
  
  The long story
&lt;/h1&gt;

&lt;p&gt;Usually I rely for scrobbling my musical listenings on my Android Phone that the Player Apps have its own scrobbling capabality built-in. Spotify has it, VLC has it also. But if the app doesn't have it and it uses a fixed notification in your notification area with player controls on it, it's just a matter of using the wonderful [Pano Scrobbler] application. This app detects automatically this kind of notification, grabs the track metadata and sends them to last.fm . This is fine if you are listening to the music in the very app which provides the notifications, but if you are listening from music from an external source not related to your phone like online radio, or youtube ? Yes, you can use Shazam or other similar like SoundHound, but only Shazam possess continuos recognizing, which is called AutoShazam Mode. Shazam sends the automatically recognitions to a notification, but Pano Scrobbler is not able to reasd them.&lt;br&gt;
Enters Tasker, the one and most complete source for automating and programming something tailored to your needs and you can't find an already made app for it: if you're a programmer this is what you want ! Tasker can read all your notifications (if you give permission to do so, of course) and you can filter by the app that generated and them and their contents.&lt;/p&gt;
&lt;h2&gt;
  
  
  Tasker script
&lt;/h2&gt;

&lt;p&gt;In the XML code below, replace &lt;code&gt;yourserver.org&lt;/code&gt; with your domain.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;TaskerData&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt; &lt;span class="na"&gt;dvi=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;tv=&lt;/span&gt;&lt;span class="s"&gt;"6.1.32"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;dmetric&amp;gt;&lt;/span&gt;1080.0,2134.0&lt;span class="nt"&gt;&amp;lt;/dmetric&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Profile&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"prof212"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;cdate&amp;gt;&lt;/span&gt;1691602106114&lt;span class="nt"&gt;&amp;lt;/cdate&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;clp&amp;gt;&lt;/span&gt;true&lt;span class="nt"&gt;&amp;lt;/clp&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;edate&amp;gt;&lt;/span&gt;1691601090420&lt;span class="nt"&gt;&amp;lt;/edate&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;flags&amp;gt;&lt;/span&gt;8&lt;span class="nt"&gt;&amp;lt;/flags&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;212&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;mid0&amp;gt;&lt;/span&gt;211&lt;span class="nt"&gt;&amp;lt;/mid0&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;nme&amp;gt;&lt;/span&gt;Autoshazam Notifications&lt;span class="nt"&gt;&amp;lt;/nme&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Event&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"con0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;461&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;pri&amp;gt;&lt;/span&gt;0&lt;span class="nt"&gt;&amp;lt;/pri&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;App&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;appClass&amp;gt;&lt;/span&gt;com.shazam.android.activities.SplashActivity&lt;span class="nt"&gt;&amp;lt;/appClass&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;appPkg&amp;gt;&lt;/span&gt;com.shazam.android&lt;span class="nt"&gt;&amp;lt;/appPkg&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;Shazam&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/App&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;A reproduzir*&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Event&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/Profile&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Project&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"proj0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;cdate&amp;gt;&lt;/span&gt;1691601049652&lt;span class="nt"&gt;&amp;lt;/cdate&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;TaskerScrobblr&lt;span class="nt"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;pids&amp;gt;&lt;/span&gt;212&lt;span class="nt"&gt;&amp;lt;/pids&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;scenes&amp;gt;&lt;/span&gt;Popup&lt;span class="nt"&gt;&amp;lt;/scenes&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;tids&amp;gt;&lt;/span&gt;210,211&lt;span class="nt"&gt;&amp;lt;/tids&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/Project&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Scene&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"scenePopup"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;cdate&amp;gt;&lt;/span&gt;1419546101360&lt;span class="nt"&gt;&amp;lt;/cdate&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;edate&amp;gt;&lt;/span&gt;1643196942800&lt;span class="nt"&gt;&amp;lt;/edate&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;gridSize&amp;gt;&lt;/span&gt;15&lt;span class="nt"&gt;&amp;lt;/gridSize&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;heightLand&amp;gt;&lt;/span&gt;-1&lt;span class="nt"&gt;&amp;lt;/heightLand&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;heightPort&amp;gt;&lt;/span&gt;370&lt;span class="nt"&gt;&amp;lt;/heightPort&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;nme&amp;gt;&lt;/span&gt;Popup&lt;span class="nt"&gt;&amp;lt;/nme&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;widthLand&amp;gt;&lt;/span&gt;-1&lt;span class="nt"&gt;&amp;lt;/widthLand&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;widthPort&amp;gt;&lt;/span&gt;444&lt;span class="nt"&gt;&amp;lt;/widthPort&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;TextElement&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"elements0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;flags&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/flags&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;geom&amp;gt;&lt;/span&gt;9,0,435,106,6,0,294,72&lt;span class="nt"&gt;&amp;lt;/geom&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Title&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Title&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"12"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"100"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;#FF0099CC&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg8"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/TextElement&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;RectElement&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"elements1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;flags&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/flags&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;geom&amp;gt;&lt;/span&gt;0,106,444,4,0,106,444,4&lt;span class="nt"&gt;&amp;lt;/geom&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Header&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;#77333333&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;#FF000000&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/RectElement&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;TextElement&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"elements2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;clickTask&amp;gt;&lt;/span&gt;-936&lt;span class="nt"&gt;&amp;lt;/clickTask&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;flags&amp;gt;&lt;/span&gt;5&lt;span class="nt"&gt;&amp;lt;/flags&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;geom&amp;gt;&lt;/span&gt;0,148,444,197,10,116,423,216&lt;span class="nt"&gt;&amp;lt;/geom&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Text1&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Text&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"10"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"100"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;#FFFFFFFF&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg8"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;RectElement&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"background"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;flags&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/flags&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;geom&amp;gt;&lt;/span&gt;-1,-1,-1,-1,-1,-1,-1,-1&lt;span class="nt"&gt;&amp;lt;/geom&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;#FF000000&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/RectElement&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/TextElement&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;PropertiesElement&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"props"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;#FF000000&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Popup&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Img&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/PropertiesElement&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/Scene&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Task&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"task210"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;cdate&amp;gt;&lt;/span&gt;1691528745485&lt;span class="nt"&gt;&amp;lt;/cdate&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;edate&amp;gt;&lt;/span&gt;1691589896085&lt;span class="nt"&gt;&amp;lt;/edate&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;210&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;nme&amp;gt;&lt;/span&gt;Scrobble via your server&lt;span class="nt"&gt;&amp;lt;/nme&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;pri&amp;gt;&lt;/span&gt;100&lt;span class="nt"&gt;&amp;lt;/pri&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;37&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;ConditionList&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"if"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Condition&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"c0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;lhs&amp;gt;&lt;/span&gt;%artist&lt;span class="nt"&gt;&amp;lt;/lhs&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;op&amp;gt;&lt;/span&gt;13&lt;span class="nt"&gt;&amp;lt;/op&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;rhs&amp;gt;&amp;lt;/rhs&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/Condition&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/ConditionList&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;360&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Bundle&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Vals&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"val"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;&amp;lt;StringArray&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;&lt;/span&gt;%input
Input
The text that was inserted in the dialog&lt;span class="nt"&gt;&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;&amp;lt;/StringArray&amp;gt;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;&lt;/span&gt;[Ljava.lang.String;&lt;span class="nt"&gt;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/Vals&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/Bundle&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;artist&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Artist name? &lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%artist&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"20"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg8"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;ConditionList&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"if"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Condition&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"c0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;lhs&amp;gt;&lt;/span&gt;%artist&lt;span class="nt"&gt;&amp;lt;/lhs&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;op&amp;gt;&lt;/span&gt;13&lt;span class="nt"&gt;&amp;lt;/op&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;rhs&amp;gt;&amp;lt;/rhs&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/Condition&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/ConditionList&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act10"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;339&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;se&amp;gt;&lt;/span&gt;false&lt;span class="nt"&gt;&amp;lt;/se&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Bundle&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Vals&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"val"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;&amp;lt;StringArray&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;&lt;/span&gt;%http_cookies
Cookies
The cookies the server sent in the response in the Cookie:COOKIE_VALUE format. You can use this directly in the 'Headers' field of the HTTP Request action&lt;span class="nt"&gt;&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&amp;gt;&lt;/span&gt;%http_data
Data
Data that the server responded from the HTTP request.&lt;span class="nt"&gt;&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES1&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&amp;gt;&lt;/span&gt;%http_file_output
File Output
Will always contain the file's full path even if you specified a directory as the File to save.&lt;span class="nt"&gt;&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES2&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3&amp;gt;&lt;/span&gt;%http_response_code
Response Code
The HTTP Code the server responded&lt;span class="nt"&gt;&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES3&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4&amp;gt;&lt;/span&gt;%http_headers()
Response Headers
The HTTP Headers the server sent in the response. Each header is in the 'key:value' format&lt;span class="nt"&gt;&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES4&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5&amp;gt;&lt;/span&gt;%http_response_length
Response Length
The size of the response in bytes&lt;span class="nt"&gt;&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES5&amp;gt;&amp;lt;/StringArray&amp;gt;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;&lt;/span&gt;[Ljava.lang.String;&lt;span class="nt"&gt;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/Vals&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/Bundle&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg10"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg11"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg12"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;http://yourserver.org/scrobble.php&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;artist=%artist&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;track=%track_name&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg8"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"30"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg9"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act11"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;548&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%http_data&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg10"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg11"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg12"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg13"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg14"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg15"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg8"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg9"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;547&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%artist&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%input&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;38&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;37&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;ConditionList&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"if"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Condition&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"c0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;lhs&amp;gt;&lt;/span&gt;%track_name&lt;span class="nt"&gt;&amp;lt;/lhs&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;op&amp;gt;&lt;/span&gt;13&lt;span class="nt"&gt;&amp;lt;/op&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;rhs&amp;gt;&amp;lt;/rhs&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/Condition&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/ConditionList&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;360&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Bundle&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Vals&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"val"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;&amp;lt;StringArray&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;&lt;/span&gt;%input
Input
The text that was inserted in the dialog&lt;span class="nt"&gt;&amp;lt;/_array_net.dinglisch.android.tasker.RELEVANT_VARIABLES0&amp;gt;&amp;lt;/StringArray&amp;gt;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;&lt;/span&gt;[Ljava.lang.String;&lt;span class="nt"&gt;&amp;lt;/net.dinglisch.android.tasker.RELEVANT_VARIABLES-type&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/Vals&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/Bundle&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;track name? &lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%track_name&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"20"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg8"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;ConditionList&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"if"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Condition&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"c0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;lhs&amp;gt;&lt;/span&gt;%track_name&lt;span class="nt"&gt;&amp;lt;/lhs&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;op&amp;gt;&lt;/span&gt;13&lt;span class="nt"&gt;&amp;lt;/op&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;rhs&amp;gt;&amp;lt;/rhs&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/Condition&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/ConditionList&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act6"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;547&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%track_name&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%input&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act7"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;38&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act8"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;550&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;on&amp;gt;&lt;/span&gt;false&lt;span class="nt"&gt;&amp;lt;/on&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;api_key=%lasfm_api_key&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;artist=%artist&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;method=track.scrobble&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;sk=%lasfm_sk&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;timestamp=%timestamp&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;track=%track_name&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;format=json&lt;span class="err"&gt;&amp;amp;&lt;/span&gt;api_sig=%api_sig&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Popup&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"16"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act9"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;30&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;on&amp;gt;&lt;/span&gt;false&lt;span class="nt"&gt;&amp;lt;/on&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"10"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/Task&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;Task&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"task211"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;cdate&amp;gt;&lt;/span&gt;1691505070601&lt;span class="nt"&gt;&amp;lt;/cdate&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;edate&amp;gt;&lt;/span&gt;1691592228244&lt;span class="nt"&gt;&amp;lt;/edate&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;211&lt;span class="nt"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;nme&amp;gt;&lt;/span&gt;Scrobble Shazamed&lt;span class="nt"&gt;&amp;lt;/nme&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;pri&amp;gt;&lt;/span&gt;6&lt;span class="nt"&gt;&amp;lt;/pri&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;547&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%label&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%evtprm3&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;598&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%label&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;A reproduzir&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act10"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;130&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Scrobble via yourserver.org&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;var&amp;gt;&lt;/span&gt;%priority&lt;span class="nt"&gt;&amp;lt;/var&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/Int&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg10"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%artist&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%title&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg8"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg9"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act11"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;192&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Merope&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"5"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act12"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;548&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Shazamed %artist - %track_name&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg10"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg11"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg12"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg13"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg14"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg15"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg8"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg9"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act13"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;547&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%Last_track&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%track_name&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act14"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;38&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;590&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%label&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;de&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;547&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%track_name&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%label1&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;547&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%artist&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%label2&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;550&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;on&amp;gt;&lt;/span&gt;false&lt;span class="nt"&gt;&amp;lt;/on&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;%track_name = %Last_track?&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Popup&lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"5"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act6"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;37&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;on&amp;gt;&lt;/span&gt;false&lt;span class="nt"&gt;&amp;lt;/on&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;ConditionList&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"if"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Condition&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"c0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;lhs&amp;gt;&lt;/span&gt;%track_name&lt;span class="nt"&gt;&amp;lt;/lhs&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;op&amp;gt;&lt;/span&gt;3&lt;span class="nt"&gt;&amp;lt;/op&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;rhs&amp;gt;&lt;/span&gt;%Last_track&lt;span class="nt"&gt;&amp;lt;/rhs&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/Condition&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/ConditionList&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act7"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;548&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;on&amp;gt;&lt;/span&gt;false&lt;span class="nt"&gt;&amp;lt;/on&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Track didn't change! &lt;span class="nt"&gt;&amp;lt;/Str&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg1"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg10"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg11"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg12"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg13"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg14"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg15"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg2"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"0"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg3"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg4"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg5"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg6"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg7"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Str&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg8"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;Int&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"arg9"&lt;/span&gt; &lt;span class="na"&gt;val=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act8"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;38&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;on&amp;gt;&lt;/span&gt;false&lt;span class="nt"&gt;&amp;lt;/on&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;Action&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"act9"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"7"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;37&lt;span class="nt"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;ConditionList&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"if"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;Condition&lt;/span&gt; &lt;span class="na"&gt;sr=&lt;/span&gt;&lt;span class="s"&gt;"c0"&lt;/span&gt; &lt;span class="na"&gt;ve=&lt;/span&gt;&lt;span class="s"&gt;"3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;lhs&amp;gt;&lt;/span&gt;%track_name&lt;span class="nt"&gt;&amp;lt;/lhs&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;op&amp;gt;&lt;/span&gt;3&lt;span class="nt"&gt;&amp;lt;/op&amp;gt;&lt;/span&gt;
                    &lt;span class="nt"&gt;&amp;lt;rhs&amp;gt;&lt;/span&gt;%Last_track&lt;span class="nt"&gt;&amp;lt;/rhs&amp;gt;&lt;/span&gt;
                &lt;span class="nt"&gt;&amp;lt;/Condition&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;/ConditionList&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/Action&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/Task&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/TaskerData&amp;gt;&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save the code as ScrobbleShazam.prj.xml. Copy to your Android Phone and store it in &lt;code&gt;/sdcard/Tasker/projects&lt;/code&gt;. If you tap on the lower bar it must appear an Import project option. &lt;br&gt;
First, on this project I tried to send the scrobble requests directly from Tasker but every time I tried it, the server refused the request with a 403 error (badly signed request). According to the specs, you have to calculate a MD5 checksum using all the arguments of the method. Tasker doesn't have this feature, you have to use external code to implement it, but i used an external javascript library, and calculated the checksum without errors last.fm API server refused it, even after having sucess after implementing it with Python code.  You can also download the &lt;a href="https://codehouse.digfish.org/wp-content/uploads/2023/08/ScrobleShazam.prj_.zip"&gt;script here&lt;/a&gt; .&lt;/p&gt;
&lt;h2&gt;
  
  
  The PHP script
&lt;/h2&gt;

&lt;p&gt;The PHP script called by the Tasker project uses data from an application &lt;a href="[Create%20API%20account%20|%20Last.fm](https://www.last.fm/api/account/create)"&gt;created by you in Last.FM apps&lt;/a&gt;. It will generate an &lt;em&gt;API Key&lt;/em&gt; and a &lt;em&gt;secret&lt;/em&gt; which you'll use in the PHP script. Besides these two, you'all also need a &lt;code&gt;session key&lt;/code&gt; (which is actually a access token). To get this, you can use the following python script:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pylast&lt;/span&gt;

&lt;span class="n"&gt;skg&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pylast&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;SessionKeyGenerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;network&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;skg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_web_auth_url&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Please authorize this script to access your account: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;webbrowser&lt;/span&gt;

&lt;span class="n"&gt;webbrowser&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;open&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;session_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;skg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get_web_auth_session_key&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Your session key is"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;session_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;First install the &lt;code&gt;pylast&lt;/code&gt; package with &lt;code&gt;pip install pylast&lt;/code&gt; and you grab the session key.&lt;/p&gt;

&lt;p&gt;The PHP Code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'LASTFM_API_KEY'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'LASTFM_API_SECRET'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nb"&gt;define&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'LASTFM_SK'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="k"&gt;empty&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_POST&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="nv"&gt;$postdata&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="s1"&gt;'api_key'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;LASTFM_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'artist'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_POST&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'artist'&lt;/span&gt;&lt;span class="p"&gt;]),&lt;/span&gt;
        &lt;span class="s1"&gt;'method'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'track.scrobble'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'sk'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="no"&gt;LASTFM_SK&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="s1"&gt;'timestamp'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;time&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
        &lt;span class="s1"&gt;'track'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;trim&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_POST&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'track'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$aux&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;''&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;foreach&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$postdata&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nv"&gt;$key&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nv"&gt;$aux&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$key&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="nv"&gt;$aux&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;LASTFM_API_SECRET&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;$api_sig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;md5&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$aux&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nv"&gt;$postdata&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'api_sig'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$api_sig&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="nv"&gt;$postdata&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'format'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'json'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nv"&gt;$ctx&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;stream_context_create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="s1"&gt;'http'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="s1"&gt;'method'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'POST'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'header'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Content-Type: application/x-www-form-urlencoded'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'timeout'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="s1"&gt;'content'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;http_build_query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$postdata&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;));&lt;/span&gt;

    &lt;span class="nv"&gt;$result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;file_get_contents&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'http://ws.audioscrobbler.com/2.0/'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$ctx&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="nb"&gt;var_dump&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$_SERVER&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'PHP_SELF'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;'&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;'POST'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;
        artist
    &lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'text'&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'artist'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;label&amp;gt;&lt;/span&gt;
        track
    &lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'text'&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;'track'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;'submit'&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Scrobble&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The HTML Form below is not necessary but is only needed if you want first to test the script to see if everything is working fine without having to use the Tasker script. Replace the three constants at the start of the script and that's all ! Happy shazaming radio songs!&lt;/p&gt;

&lt;p&gt;PS: The Autoshazam feature normally can recognize the same song more than once in a consecutive way, but the tasker script automatically detects this and doesn't scrobble the song if an initial scrobble was already sent.&lt;/p&gt;

</description>
      <category>music</category>
      <category>tasker</category>
      <category>shazam</category>
      <category>scrobbling</category>
    </item>
    <item>
      <title>Select the best GUI toolkit – part 7: pyQt</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Wed, 26 Jul 2023 22:36:33 +0000</pubDate>
      <link>https://dev.to/digfish/select-the-best-gui-toolkit-part-7-pyqt-152g</link>
      <guid>https://dev.to/digfish/select-the-best-gui-toolkit-part-7-pyqt-152g</guid>
      <description>&lt;p&gt;And finally we reach the end... that is the last of the GUI framework I decided to experiment... pyQt.&lt;/p&gt;

&lt;p&gt;PyQt was developed by the Qt Company and is the base for the KDE, one of the desktop environments used by Linux. &lt;br&gt;
Its development started in 1990 and was since it's beginning a C framework conceived to provide a common abstraction layer able to render a GUI in different platforms. A complete history can be found in the &lt;a href="https://en.wikipedia.org/wiki/Qt_(software)#History_of_Qt"&gt;wikipedia article&lt;/a&gt;.&lt;br&gt;
Like WxWidgets, Qt is originally conceived to be a C++ framework, but now as many bindings on other languages, like this &lt;a href="https://wiki.qt.io/Language_Bindings"&gt;list&lt;/a&gt;. It has ports to almost all operating systems, like Android. Is much probably the most supported GUI framework in different platforms. It started as a GUI framework, but it has grown to be added support for extra stuff like network, mouse, audio, etc. There is a &lt;a href="https://www.qt.io/product/features"&gt;list of all features here&lt;/a&gt;.&lt;br&gt;
There are two ports of Qt in Python: PyQt and PySide. The first is the original branch comes from the licensing made by the owner of Qt: the Qt Company. The second was created by Nokia when was the licensee of Qt, since it wanna develop software using a different licensing, but Qt Company refused, and so Nokia forked the framework. The code require minimal modifications in order to use one or another, usually it suffices to change the imports from &lt;code&gt;PyQt&lt;/code&gt; to &lt;code&gt;PySide&lt;/code&gt;.&lt;br&gt;
There is a visual designer for Qt when you can build the GUI from the grounds-up using drag and drop widgets from a tool&lt;br&gt;
bar. &lt;a href="https://doc.qt.io/qt-6/qtdesigner-manual.html"&gt;QT Designer&lt;/a&gt; is free and can be installed along with Qt/PySide.&lt;br&gt;
Qt has a &lt;a href="https://doc.qt.io/qtforpython-6/overviews/widget-classes.html"&gt;staggering number of widgets&lt;/a&gt;, all descending from the basic class &lt;code&gt;QWidget&lt;/code&gt;. Almost everything you need is on those classes, I used a &lt;code&gt;QListView&lt;/code&gt; to build the main panel. For every item in the list there was a &lt;code&gt;QStandardItem&lt;/code&gt; which represents an Icon which is added to a &lt;code&gt;QStandItemModel&lt;/code&gt; which is the model to which you add the items.&lt;br&gt;
Dragging and droping the icons inside and from outside or to inside can be implemented through several &lt;code&gt;drag*&lt;/code&gt;and &lt;code&gt;drop*&lt;/code&gt; methods in the &lt;code&gt;QListView&lt;/code&gt; class. To bind widget events with methods you use the &lt;code&gt;.connect&lt;/code&gt; method to associate them, passing the name of the method to deal with the event.&lt;/p&gt;

&lt;p&gt;The program was developed and tested on Windows, and on Mac, because of the separation between icons and executables it required changes to deal with the specificities of each platofrm. There is, the code is not imediatelly portable between platforms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gKy-kkNI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://codehouse.digfish.org/wp-content/uploads/2023/07/mac-running-qtappmenulauncher.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gKy-kkNI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://codehouse.digfish.org/wp-content/uploads/2023/07/mac-running-qtappmenulauncher.jpg" alt="QtAppMenuLauncher on Mac" width="195" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The source code for this implementation is available at &lt;a href="https://github.com/digfish/QtAppMenuLauncher"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>toolkit</category>
      <category>comparison</category>
      <category>gui</category>
      <category>qt</category>
    </item>
    <item>
      <title>Select the best GUI toolkit – part 6: wxWidgets</title>
      <dc:creator>Samuel Viana</dc:creator>
      <pubDate>Sat, 08 Jul 2023 19:59:01 +0000</pubDate>
      <link>https://dev.to/digfish/select-the-best-gui-toolkit-part-6-wxwidgets-op4</link>
      <guid>https://dev.to/digfish/select-the-best-gui-toolkit-part-6-wxwidgets-op4</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8dctbZS5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/digfish/wxappmenulauncher/raw/main/screenshot.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8dctbZS5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/digfish/wxappmenulauncher/raw/main/screenshot.jpg" alt="WxAppMenuLauncher" width="349" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this sixth part, we\'ll be abording wxWidgets (which was called wxWindows in the past). Originally intended for programming in C++, it knows several wrappers, like WxPython, which we'll be discussing here and several others, like wxNode, wxsqlite3, etc.&lt;br&gt;
WxWidgets was developed to port graphical applications to several operating systems, and providing a looand feel as if it was a real native application, which is true, comparing it for example with Java Swing.&lt;br&gt;
Having a dedicated design editor is also a great plus: &lt;a href="https://github.com/wxFormBuilder/wxFormBuilder"&gt;wxFormBuilder&lt;/a&gt;, developed independentely provide the developer with a way to develop the graphical interface first and later write the code for each case of event triggered by some window widget. The entire design is then serialized to a Python Class which must be subclassed when you implement its functionality.&lt;br&gt;
It's easy, through drap and drop, to rearrange the layout of the widgets the help of the designer, all you have to do is then regenerate the code. WxFormBuilder uses &lt;code&gt;fbp&lt;/code&gt; files to store the designer project definitions.&lt;br&gt;
The event management in wxWidgets is done through the method &lt;code&gt;bind&lt;/code&gt; in each widget. Usually in the constructor you "connect" each event identified by a constant in the &lt;code&gt;wx&lt;/code&gt; module.&lt;br&gt;
Drag and Drop is implemented by the &lt;code&gt;wx.DropTarget&lt;/code&gt; class. You\'ll have to implement several methods in this class.&lt;br&gt;
On Windows most of the majority of the listview functionality with the icons were implemented in the &lt;code&gt;wx.ListCtrl&lt;/code&gt; class. You have to fill two &lt;code&gt;wx.ImageList&lt;/code&gt;s with the executables icons, one with the smaller size of 16 pixels and another with the bigger size of 32 pixels. Extracting the icons from the executables is built-in in the library.&lt;br&gt;
On Linux and the Mac, since the icons are not embedded in the executable, you'll have to associate manually each icon with the application manually. The library does not come with this feature out of the box. This limitated the hability of the launcher to properly render the apps with the associated icons on Linux and the Mac.&lt;br&gt;
So, this limitated the portability of the launcher in the different OSes. Anyway, the feature I enjoyed the most is the free designer and the native look and feel of the app in every OS. But in order to make it work properly in every platform, you'll have to tweak it for every OS.&lt;br&gt;
The source code for this implementation is available at &lt;a href="https://github.com/digfish/wxappmenulauncher"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Article posted using &lt;a href="https://bloggu.io"&gt;bloggu.io&lt;/a&gt;. Try it for free.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>gui</category>
      <category>comparison</category>
      <category>launcher</category>
    </item>
  </channel>
</rss>
