Error building 'defaut.hv' and 'user.hv' - 8125, K-JAM, P4300, MDA Vario ROM Development

Anyone know what causes these errors in the BuildOS app?

the answer according to MattK
At the end of buildOS it says "Error building default.hv and user.hv".
ah, I see what where there's either an error in a .rgu file, or duplicate registry entries.
Ensure the .rgu in this package is good - heck, try removing it just to test the theory. Then check to see what it's doing - might clue you in to what is wrong.
__________________

Great thinking... Thanks... removed my .rgu in my OEM folder and it cleared it up... guess I just have to find the duplicate entry now... grrr

Actually its not duplicate entries, its that the .rgu has a problem. Check these things:
* Does it start with REGEDIT4 on the first line
* Is there a blank line at the bottom of the file (this is REQUIRED!)
* Is the file saved in Unicode and not ANSI?
One of those three things almost always causes this.

* Does it start with REGEDIT4 on the first line?
Yes
* Is there a blank line at the bottom of the file?
Yes
* Is the file saved in Unicode and not ANSI?
Yes
When I removed the entire "x-faria settings" folder, the error disappeared, so here's the RGU from x-faria settings: <see attached,>
Let me know if you see something that would cause this.
Thanks,
Nick

Anyone wanna take a look??

inneyeseakay said:
Anyone wanna take a look??
Click to expand...
Click to collapse
needs to be cleaned up:
"GUID" = hex : \
A1, E7, A4, 06, 47, BB, D0, 11, 84, 27, 00, AA, 00, B5, 1C, C2
this is one of the line entries.
Should read:
"GUID" = hex :A1, E7, A4, 06, 47, BB, D0, 11, 84, 27, 00, AA, 00, B5, 1C, C2
I'd suggest comparing to another .rgu for examples / structure.
Edit: thinking about it, the "\" may be a "continue on next line" command, however, I don't know if the hv engine can handle this, and overall it's much easier to read when it's all together.

Related

easy and quick way to make a reg. cab?

Hi,
everytime I make a ROM flash (very often) I have to do some reg hacks to get my unit syncing (due to our firewire at work).
Is there a quick and easy way I can make a cab do this work for me?
the entry is:
Reg Sub Key: [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\RNDIS]
Name of value to add: MTU
Type: DWORD
Data: 1514 (Value is in Decimal)
Reg Sub Key: [HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\RNDIS]
Name of Value to add: MaxOutTransfer
Type: DWORD
Data: 1642 (Value is in Decimal)
hi, does anyone have a clue how to do this?

remove reg keys with batch script

Hey guys,
I'm trying to create a batch script for deploying pda's and I need to disable the hardware buttons on a Pharos. Here's what i've found:
In a command line, you can use the command
Code:
REG DELETE \\HKLM\Software\microsoft\shell\keys\ /va /f
But i'm thinking this command deletes the LOCAL key on the computer, and I obviously need it to delete it on the PDA.
I've used this example:
Code:
REG DELETE KeyName [/v ValueName | /ve | /va] [/f]
KeyName [\\Machine\]FullKey
Machine Name of remote machine - omitting defaults to the current machine
Only HKLM and HKU are available on remote machines
FullKey ROOTKEY\SubKey
ROOTKEY [ HKLM | HKCU | HKCR | HKU | HKCC ]
SubKey The full name of a registry key under the selected ROOTKEY
ValueName The value name, under the selected Key, to delete
When omitted, all subkeys and values under the Key are deleted
/ve delete the value of empty value name <no name>
/va delete all values under this key
/f Forces the deletion without propmt
Examples:
REG DELETE HKLM\Software\MyCo\MyApp\Timeout
Deletes the registry key Timeout and its all subkeys and values
Anyone have a clue?
i would read up on doing it with morth scripts on the pda
I don't think that's an option, since I have 500+ devices to configure... I'll look into it, but i'm hoping someone could help me out with my first script.
/me = stupid.
I should've thought of this earlier: i can make a cabfile and then push it to the device with the batch script.
Problem solved.

Force Titanium to Refresh?

This is hopefully painfully easy for experienced developers on here, but I've googled till my fingers bled and have not been able to find a suitable answer.
How do I force the Titanium menu in WM6.5 to refresh... i.e. pick up new data from the Windows registry?
For the old "Today" screen, advice seems to be use the Send Message command to broadbast an INI change to all open Windows:
Code:
Public Shared HWND_BROADCAST As IntPtr = IntPtr.op_Explicit(&HFFFF)
Public Const WM_WININICHANGE = &H1A
---------------------------------------
ret = SendMessage(HWND_BROADCAST, WM_WININICHANGE, 252, 0)
But this doesn't seem to be working for Titanium.
Anyone got any ideas?
I'm just using the refresh Titanium.exe which can be found in Twolf's Multiplugin Cab found here: http://forum.xda-developers.com/showthread.php?p=3906994
Thanks for the link.
Couldn't see any exes in the cab, just what I assume are mortscripts. Do you write you apps in .NET or in mortscript? If the former, how do you "shell" the script from within your program?
digital_elysium said:
Thanks for the link.
Couldn't see any exes in the cab, just what I assume are mortscripts. Do you write you apps in .NET or in mortscript? If the former, how do you "shell" the script from within your program?
Click to expand...
Click to collapse
Me & Twolf, use mortscript, the plugin you see there is by Twolf.
Owh yh, it probably is the Refresh Titanium.mscr, which i ment, there's just a link made in the start menu folder. Refresh Titanium will refresh the today screen...
To use it in another mortscript file, just use: Run(\Program Files\...\Refresh Titanium.mscr) where ... stands for the folder where you put it in...
Maybe a bit off topic but does somone know what is the command to disable and enable (not refresh) the today screen in wm6.5? I need it for use in a mort script.
claus1953 said:
Maybe a bit off topic but does somone know what is the command to disable and enable (not refresh) the today screen in wm6.5? I need it for use in a mort script.
Click to expand...
Click to collapse
I don't really know, but i wonder why Twolf uses double RefreshToday in his mscr. So maybe just one time will disable it?:s not sure.
---edit---
i figured it out for you claus...
So first write 0 (for disable) to: HKEY_LOCAL_MACHINE\Software\Microsoft\Today\Items\"Windows Default":Enabled
Then RedrawToday
Now today screen will be empty and you can do whatever you want...
larbke666 said:
I don't really know, but i wonder why Twolf uses double RefreshToday in his mscr. So maybe just one time will disable it?:s not sure.
---edit---
i figured it out for you claus...
So first write 0 (for disable) to: HKEY_LOCAL_MACHINE\Software\Microsoft\Today\Items\"Windows Default":Enabled
Then RedrawToday
Now today screen will be empty and you can do whatever you want...
Click to expand...
Click to collapse
Thanks a lot, it worked
Sorry, only read this now.
I used to use the refresh.exe made by a forum menber (I have no idea who... ).
Now Im using only the today refresh option of Mortscript that is simply:
Code:
RedrawToday
claus1953 said:
Thanks a lot, it worked
Click to expand...
Click to collapse
Hi,
I don't know much about mortscript, I am looking for one that will reload Windows Default after I change the cpr ( I hope this is what you are talking about )
In case you dont have it yet...
Thanks Twolf, my life is easier now
digital_elysium said:
This is hopefully painfully easy for experienced developers on here, but I've googled till my fingers bled and have not been able to find a suitable answer.
How do I force the Titanium menu in WM6.5 to refresh... i.e. pick up new data from the Windows registry?
For the old "Today" screen, advice seems to be use the Send Message command to broadbast an INI change to all open Windows:
Code:
Public Shared HWND_BROADCAST As IntPtr = IntPtr.op_Explicit(&HFFFF)
Public Const WM_WININICHANGE = &H1A
---------------------------------------
ret = SendMessage(HWND_BROADCAST, WM_WININICHANGE, 252, 0)
But this doesn't seem to be working for Titanium.
Anyone got any ideas?
Click to expand...
Click to collapse
I don't know if you still want to do this in .net but here is the working code:
Declare Function SendMessage Lib "coredll.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As IntPtr
Declare Function GetDesktopWindow Lib "coredll.dll" () As IntPtr
Private Const WM_WININICHANGE As Long = &H1A ' 0x1a = 26 ; &HF2 = 242
SendMessage(GetDesktopWindow(), WM_WININICHANGE, &HF2, 0)
Click to expand...
Click to collapse
have fun!

HDMI output findings in CRESPO GIT?

Been browsing the Crespo GIT searching for some info and found something interesting, It may not mean anything at all, here it is
The following is disabled in the libcamera Android.mk
"
28 #Enable the below code to show the video output (without GUI) on TV
29 #ifeq ($(BOARD_USES_HDMI), true)
30 #LOCAL_CFLAGS+=-DENABLE_HDMI_DISPLAY \
31 # -DBOARD_HDMI_STD=$(BOARD_HDMI_STD)
32 #
33 #LOCAL_C_INCLUDES += $(LOCAL_PATH)/../include
34 #LOCAL_SHARED_LIBRARIES+= libhdmi
35 #endif
"
Im nowhere near a dev or something but there's been some talk about TV-OUT, maybe someone with more insight can look into this.
[device/samsung/crespo.git]
http://android.git.kernel.org/?p=device/samsung/crespo.git;a=blob;f=libcamera/Android.mk;h=ebbd37b6e08d546f4ee075cc52e7339ebd57bd3c;hb=HEAD
it seems to me that HDMI output might be possible..

Fix for ARLiberator 3.01 half screen issue on HDMI sticks

When using ARLiberator on a HDMI stick to connect to an AppRadio it seems to work however there's an issue that only half of the screen can be reached. Which makes it pretty useless even though it seems a small problem and indeed it was. I have developed a fix for it that involves modifying the APK of the ARLiberator 3.01 version.
The steps are as following:
1) Get apktool
- Goto https://code.google.com/p/android-apktool/downloads/list
- Download apktool1.5.2.tar.bz2
- Download apktool-install-windows-r05-ibot.tar.bz2
- Unpack both files in a directory like c:\apktool so it will look like this
aapt.exe
apktool.bat
apktool.jar
2) Get Java JDK 7u25
- Goto //www.oracle.com/technetwork/java/javase/downloads/index.html
- Click on Java Platform (JDK) 7u25
- Click on jdk-7u25-windows-i586.exe if you have a 32bits system
- Click on jdk-7u25-windows-x64.exe if you have a 64bits system
- Save file and install it.
- Add C:\Program Files\Java\jdk1.7.0_25\bin to your path variable.
3) Open command line in c:\apktool
C:\Apktool>java -version
java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) Client VM (build 23.25-b01, mixed mode, sharing)
4) Copy your 3.01 apk file to c:\apktool in my case called com.kyle.arliberator-a49f58a925d99a41afeb9a36d472b806.apk
5) Decompile
C:\Apktool>apktool d com.kyle.arliberator-a49f58a925d99a41afeb9a36d472b806.apk 301
I: Baksmaling...
I: Loading resource table...
I: Loaded.
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Documents and Settings\Ruud\apktool\framework\1.apk
I: Loaded.
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Done.
I: Copying assets and libs...
6) Fix files
Open file C:\Apktool\301\smali\com\kyle\arliberator\TouchHandler.smali
Goto line 72. "if-le v0, v1, :cond_0"
Change it to "goto :cond_0"
Open file C:\Apktool\301\smali\com\kyle\arliberator\KillNanny.smali
Goto line 807. "0x1e1cf -> :sswitch_1"
Change it to "0x1e1cf -> :sswitch_0"
7) Build apk
C:\Apktool>apktool b 301 301fixed.apk
I: Checking whether sources has changed...
I: Smaling...
I: Checking whether resources has changed...
I: Building resources...
I: Copying libs...
I: Building apk file...
8) Prepare apk signing (only need to do once, values you enter don't really matter except password)
C:\Apktool>keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Enter keystore password: android
Re-enter new password: android
What is your first and last name?
[Unknown]: james brown
What is the name of your organizational unit?
[Unknown]: fluffy
What is the name of your organization?
[Unknown]: fluffers
What is the name of your City or Locality?
[Unknown]: amsterdam
What is the name of your State or Province?
[Unknown]: nh
What is the two-letter country code for this unit?
[Unknown]: nl
Is CN=james brown, OU=fluffy, O=fluffers, L=amsterdam, ST=nh, C=nl correct?
[no]: yes
Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 10,000 days
for: CN=james brown, OU=fluffy, O=fluffers, L=amsterdam, ST=nh, C=nl
Enter key password for <alias_name>
(RETURN if same as keystore password):
New certificate (self-signed):
[
[
Version: V3
Subject: CN=james brown, OU=fluffy, O=fluffers, L=amsterdam, ST=nh, C=nl
Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11
Key: Sun RSA public key, 2048 bits
modulus: 2302897498469818610507865964188619447321569256045500777798690530354475198664205066592969169321470713032681508
733306834574529850207658647514679181766691822631188140576709323607982695172198123038121197240253522055939542487047506386
716104547119098887170863849418260816385179213380928971384233871142993611611834083487249662969179258518611292988333637102
227241592334735863024515710929024071170905152943178086184336293000456783247552092347479124040297057663523558151307892056
393360874914089822140793285958124895164763575613359626849777825230884625298246269560901997927825106169042411463502008207
2538339018083911783240963349
public exponent: 65537
Validity: [From: Thu Aug 15 22:36:25 CEST 2013,
To: Mon Dec 31 21:36:25 CET 2040]
Issuer: CN=james brown, OU=fluffy, O=fluffers, L=amsterdam, ST=nh, C=nl
SerialNumber: [ 123ba4dd]
Certificate Extensions: 1
[1]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 18 2A 06 45 87 E9 63 88 52 F7 D1 6C 38 C2 F0 CC .*.E..c.R..l8...
0010: 36 11 9A D7 6...
]
]
]
Algorithm: [SHA256withRSA]
Signature:
0000: 1E BB 4E 57 3D AF C8 51 AA 08 62 5C C9 17 ED B6 ..NW=..Q..b\....
0010: 7E 91 A7 2C 9B A2 E8 31 ED C3 92 FE 67 33 0F 08 ...,...1....g3..
0020: DD 07 51 DF 40 DD 49 B0 A3 BC 79 DE 1B DE 0A F2 ..Q @.i...y.....
0030: E6 91 50 F2 65 3C 14 4B 80 C5 D8 68 10 29 C5 3F ..P.e<.K...h.).?
0040: 3E 8F 01 AC F7 12 25 79 E3 48 80 A8 2C 94 3A 08 >.....%y.H..,.:.
0050: 0D 1F C4 17 56 39 B4 7F 8C 3A 9D 7D EB 29 22 9F ....V9...:...)".
0060: 40 7A 2A 98 CE 5A 24 79 34 AA 85 EE D7 9E DB 6D @z*..Z$y4......m
0070: 1B 50 58 E5 68 22 58 FB A5 84 15 B1 8E 17 FD E8 .PX.h"X.........
0080: 40 E2 95 7A 27 4D 0F E0 6B 45 69 E7 29 80 AB 02 @..z'M..kEi.)...
0090: 38 BB 5B AB 62 68 4B 88 12 1D 32 97 0D 15 F4 9C 8.[.bhK...2.....
00A0: BC 49 11 D1 1E C9 D1 0E 20 92 D0 DE BE C7 73 81 .I...... .....s.
00B0: 38 93 C7 53 36 FD 7E CA 76 1A 71 93 43 B1 95 5D 8..S6...v.q.C..]
00C0: 27 D6 2B 0E E2 EC 57 47 90 EB C0 4B 79 C5 2E 3A '.+...WG...Ky..:
00D0: 91 EA F4 37 B6 10 AC B1 C5 D0 81 6C 42 37 ED E8 ...7.......lB7..
00E0: 77 94 4B E6 1A 07 90 AE B1 A1 5D 24 F7 73 A5 96 w.K.......]$.s..
00F0: B1 08 58 1F 0A 14 D7 06 3A 3A 5F 28 BE 75 E1 01 ..X.....::_(.u..
]
[Storing my-release-key.keystore]
9) Sign apk file
C:\Apktool>jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore 301fixed.apk alias_name
Enter Passphrase for keystore: android
adding: META-INF/MANIFEST.MF
adding: META-INF/ALIAS_NA.SF
adding: META-INF/ALIAS_NA.RSA
signing: assets/digital7.ttf
signing: lib/armeabi/libndk1.so
signing: res/anim/dialog_enter.xml
signing: res/anim/dialog_exit.xml
signing: res/anim/fade_in.xml
..
..
signing: res/xml/appradiohome.xml
signing: res/xml/changelog.xml
signing: res/xml/settings.xml
signing: AndroidManifest.xml
signing: classes.dex
signing: resources.arsc
10) Install your new apk file and enjoy
note: Google license check is removed so it can run anywhere.
Please keep this in mind and do not spread it around.
This only works with invert xy coordinates enabled in the settings.
any suggestions on the better HDMI Sticks to use for this?
Same question, which stick is the best to get?
xdaisgreat said:
Same question, which stick is the best to get?
Click to expand...
Click to collapse
I don't know which one is best but I got a Tronsmart MK908. It's a quad core and it's fast and snappy. It should provide more than enough processing power and memory (2GB) to play music, video and run a navigation app. Here you can read more about it XDA discussion on MK908.
I installed some apps and everything seems to work well and fast. In the XDA discussion some people complain that it's 720p and not 1080p but for use with an AppRadio that doesn't matter at all. To cut a long story short, I got one and I am happy with it thus far.
I fixed this ARL issue but then didn't finish my complete setup with the MK908 yet because now I am working on hacking the Pioneer AppRadio app so it will allow complete control of your phone/stick. I am doing this because ARL doesn't support AppRadio 3 but the Pioneer App does.
Also with ARL 3.01 it was quite difficult to get Bluetooth connected with the stick. This is an ARL issue because the Pioneer app has no problems connecting.
Difficult? How so exactly? Where are the issues?
Willing to try it so I am not limited on my phone selection
Sent from my Nexus 7 using Tapatalk 4
-=Jeff=- said:
Difficult? How so exactly? Where are the issues?
Click to expand...
Click to collapse
That you have to retry connecting many times before it connects. What seems to help is to cycle Bluetooth on/off. If you scroll down a bit here http://forum.xda-developers.com/showthread.php?t=1622795&page=36 there's some quite complicated procedure on how to get it connecting. Note that the older ARL V2.51 had no connection issues. Anyway it's an ARL issue and since the appradio forums is back on I suggest you check there for possible solutions.
This is very interesting, i have been trying to get a Minix Neo X7 Quad core box installed for a week now. i have all the connections working really well but the touch screen is well off.
It would seem using the stock application for touch would not really give me any alignment at all. all the calibration tool did was show on the right had side of the screen and once complete really didn't match a thing.
Once i installed the modded APK the calibration tool still only shows on the right of the screen but i now have the left of the screen setup ok. all works and touch is spot on.!
So can you tell me if the application can be modded again to give me touch across the whole thing?
smartit said:
This is very interesting, i have been trying to get a Minix Neo X7 Quad core box installed for a week now. i have all the connections working really well but the touch screen is well off.
It would seem using the stock application for touch would not really give me any alignment at all. all the calibration tool did was show on the right had side of the screen and once complete really didn't match a thing.
Once i installed the modded APK the calibration tool still only shows on the right of the screen but i now have the left of the screen setup ok. all works and touch is spot on.!
So can you tell me if the application can be modded again to give me touch across the whole thing?
Click to expand...
Click to collapse
Of course it can. If you are willing to spend enough time on it.
Did you enable invert xy coordinates?
This issue should have been fixed by the ARL dev long time ago already. It was actually one of the reasons why I started development of the AppRadio Unchained mod.
When I have some time I will look at it again. There's another line in the code where the coordinates are limited. Removing this will fix the problem.
Area51© said:
Of course it can. If you are willing to spend enough time on it.
Did you enable invert xy coordinates?
This issue should have been fixed by the ARL dev long time ago already. It was actually one of the reasons why I started development of the AppRadio Unchained mod.
When I have some time I will look at it again. There's another line in the code where the coordinates are limited. Removing this will fix the problem.
Click to expand...
Click to collapse
Thank you for your response.
I have not had another chance to look at this but I will over the weekend. I am sure I checked the invert checkbox but I think I will flush all app data and try again, I have noticed that the DEV has added lines for screen resolution etc and I am wondering if it thinks its still in portrait mode. I will confirm all this over the weekend. you also mentioned you have had better connection success with an older version of the app?
Would you be able to PM me about this?
smartit said:
Thank you for your response.
I have not had another chance to look at this but I will over the weekend. I am sure I checked the invert checkbox but I think I will flush all app data and try again, I have noticed that the DEV has added lines for screen resolution etc and I am wondering if it thinks its still in portrait mode. I will confirm all this over the weekend. you also mentioned you have had better connection success with an older version of the app?
Would you be able to PM me about this?
Click to expand...
Click to collapse
Ok, I checked for you. To remove the other limiting thingy, add the following to step 6) :
In TouchHandler.smali
Goto line 119: "if-lt v0, v1, :cond_0"
Change it to "goto :cond_0"
I hope this helps. I would rather not spend more time on it. Quite busy with AppRadio Unchained development.
Thanks again. For you quick help with.
Sent from my GT-I9505 using Tapatalk
Really so I have to recompile the whole package? Yikes! There has to be an easier way. Do you have a patch I could apply? I'm using a mouse to get around the screen right now but that's not really how I wanted to do things.
SageForce said:
Really so I have to recompile the whole package?
Click to expand...
Click to collapse
Yeah. I could have put the APK somewhere for download but didn't want to make a pirated copy available. Also I don't have loads of spare time to make things as easy as possible for anybody that possibly wants to use this. Maybe you can contribute something?
I hear you on that could you PM me a link? I've got my license version but I'd like to take a look at it and see what I could do?
Area51© said:
Yeah. I could have put the APK somewhere for download but didn't want to make a pirated copy available. Also I don't have loads of spare time to make things as easy as possible for anybody that possibly wants to use this. Maybe you can contribute something?
Click to expand...
Click to collapse
Thank u very much
Your tutorial works very fine for me. Takes me about 20 minutes till its works. thx a lot!!:good::good::good:
I tried to do that but it is still not working for my ODROID U3 .
If someone has an idea !
Edit : My bad, I've done again the calibration and now it's working well. Thanks .
My only problem is that I need to force the connection at startup.
Thanks for the write up. I have a MK809III with AppRadio Unchained. Funny enough, it does the same half screen thing. I am going to try this tonight & see if it works. If so, I'll do a FULL walkthrough on setting this up. The main problem I see is that there are soo many variants of these sticks. On my board, its listed a Ver 5_2, which I could not find almost any ROMs that worked. One good thing though, the WiFi is pretty good. It looks like they have an antenna built in around the perimeter of the board.
Sincidius said:
Thanks for the write up. I have a MK809III with AppRadio Unchained. Funny enough, it does the same half screen thing. I am going to try this tonight & see if it works. If so, I'll do a FULL walkthrough on setting this up. The main problem I see is that there are soo many variants of these sticks. On my board, its listed a Ver 5_2, which I could not find almost any ROMs that worked. One good thing though, the WiFi is pretty good. It looks like they have an antenna built in around the perimeter of the board.
Click to expand...
Click to collapse
After not being happy with ARL I made ARU and ARUReloaded that definitely does not have this issue. If you have ARUR make sure that you have selected 'Invert XY-coordinates' in the settings.
Area51© said:
After not being happy with ARL I made ARU and ARUReloaded that definitely does not have this issue. If you have ARUR make sure that you have selected 'Invert XY-coordinates' in the settings.
Click to expand...
Click to collapse
Yeah, 720P output, invert, reset, worked. Thanks!
The only issue now is Google Play music using the SD card storage. I have tried almost everything (Xposed Music fix, RootBrowser) but cannot seem to get Play Music to download to the SD card. The select memory under settings isn't even available. Not looking for a solution, just whining.

Categories

Resources