Jump to content

My Personal Image Integration Process


Recommended Posts

I am going to attempt to document the process that I use to make my images using WinToolKit and a few other tools. This will be a bit of an ongoing documentary and I hope this will be helpful to others and I am also very open to the forum for suggestions and improvements .. after all I have learned everything I know about integration's from the numerous forums I am a member of.


I do not profess to be any kind of expert or authority, in fact quite the contrary... I am a professional in the IT field but I am learning everyday and humbled all the time


I would be remiss if I didn't start with some thanks to the many individuals and groups that have helped me for the years I have been doing this and if I missed anyone please forgive me as it is only an oversight and not a lack or appreciation.


In no particular order My Thanks:


RyanVM http://www.ryanvm.net/forum/index.php and far too many individuals on the forum to list here... for me this is where it began and I spent years doing amazing XP integration's thanks to the forum and the members


DriverPacks http://forum.driverpacks.net again what can I say... they are unrivaled in their excellence at what they do and they literally did what no one else could at a time when the industry that was truly in turmoil. They then continued to provide something that no one else came close to. They helped me for years and I rely on them still


WinCert & My Digital Life http://forums.mydigitallife.info/forum.php have taken my skills with Win 7 to an entirely new level... can't thank them enough for the tools they have brought to me


Ricktendo http://www.wincert.net/forum/topic/10480-slim-net-framework-45-full-x86x64-1-08-2013/ has been my reliable single source of .Net development pretty much from day one


McRip http://hotfix.cesidian.info , Komm http://windows-update-checker.com , Burfadel http://burf.cesidian.info/ , what can I say!!! Without your work I would give up and I am in awe... I could never do an image without your work and what your scripts do is magic


Liam, this is simply the most amazing tool and the best supported/developed overall integration tool PERIOD!


I will definitely mention other individuals as I continue this log


Liam and/or Kel If this in inappropriate in any way or not what you want please just let me know and I will cease


Lastly everyone be patient I am not a technical writer and for that matter I grew up in New York and some say I barely speak English :-)

Edited by compstuff
Link to comment
Share on other sites

Description of My stages:


By no means am I saying this is right or the only way it is just MY way. Ever since I started with my XP integration's using the RVM Integrator I have always done integration's in phases  Frankly it allows me to make mistakes and recover/troubleshoot rather easily plus I can reuse the various phases for development. I have also always used multiple disks to try and maximize the I/O read/write aspects of the process. Early in my learning phase I found that the more spindles I had the better my times were. This has changed with the WinToolKit and I am still testing to see what provides a good balance of speed and reliability. Currently I have a laptop with an SSD and a HDD. So here is what I do now with the WinToolKit


0) I take my vanilla Win7x64 Enterprise extracted image and I have a "base" image directory that I keep on my drive and never change

1) I have a directory that I copy the base to that I only use for MS updates and nothing else. I use McRips files and I will provide much more detail on this later

2) After I do the updates I copy that completed integration to another folder where I apply only SFX/silent installers and anything else I want to run in that manner

***I always burn an ISO after step 2 and test in VirtualBox before I continue to the drivers. for me everything has to work 100% before I moved on***

3) I then copy that directory to another folder where I do nothing but driver integration's 

4) I copy the completed drivers 3rd step to my Tweaks folder where I slim and remove items or other tweaks and specialty items


I then test my final image on real hardware using a laptop I have to test my images. I burn my image to a USB and do all my installs that way. The laptop has an SSD so it helps the testing process be as quick as possible. This physical stage is mostly for driver testing but I do catch other items as well.




I will add more details about STEP 1 in my next update

Edited by compstuff
Link to comment
Share on other sites

Step 1 Folder Structure


Step 1 is the heart of my integration's and in general probably creates an image that is about 95% "done" if I was looking for just a updated Win7x64 image with nothing else added. The remaining 5% would be the additional MS items that can't be integrated this way, some MSFixit solutions and some reg settings that need to be applied. After those we would have an image that would be updated as of that date which could be used for all your future installations  The one thing to note is that I am 100% sure that if you run that new image in its current state it would NOT completely satisfy the Windows Update when run and it would NOT pass a KUC run, which is why I use the KUC and will explain much later.


More about my directory structure (this is long so be patient):


My structure is actually based on advice I had received years ago when using the RVM Integrator and I have modified it further. I am a very visual person so I use color to help me and I also personally need lots of structure when doing things so all of my folders have a "logic" that works for me. At the top level I separate my "tools" and my "builds" into two separate folders and I keep those in the root of my drives. I use a single "!" and "_" to keep them at the top of my directories so I can get them easily.



Drilling down further into the _7Tools brings me to the main folders I use; "!" is something I am actively working on right now, _Addons contains specials tools to make certain addons (I will explain later), _Drivers contains all my driver related items used in STEP 3, _Step-2 contains all my SFX and silent installers used in STEP-2 and _Updates are the updates used in STEP-1



Drilling down further into_7Builds I have just a few folders and some simple scripts that are very important but I will talk about in STEP-2. The $OEM$ folders contain all my work that must be done in that manner in STEP-2, CPG and TechNet contain the targets that I use and they are similar but CPG is my work for a specific client, TechNet is mine, we will be using TechNet for all further discussions.



OK so if your still with me were now in the _Updates folder. I actually have many folders in here but the ones that are important are the "McRip Windows 7 x64" and the "SatisfyWU" and for now we use "McRip Windows 7 x64" which is the download structure that is created by WinToolKit when using the Update Catalog feature and selecting McRip's updates which are currently the main source I use for my work. 



The last folder to explain before we move on to the actual integration is the Additional folder. I use the Additional folder and the included updates that McRip offers and in order to obtain these I UNCHECK the Update Catalog Filter in WinToolKit Options-Main-General.


Here is where I use my most "color" and I have actually created a legend using the top 5 folders with "_" to help me keep things in order.  I think the legend actually pretty much explains this :-)


***I need to upload the image into the next post since I have exceeded the attachment size***

Edited by compstuff
Link to comment
Share on other sites

Step 1 Integration


The first thing I do is copy the vanilla source files from "W7T_7SP1x64ent_TechNet-base" to my target directory "W7T_7SP1x64ent_TechNet-Step-1-Updates". I then open WinToolKit, and if I haven't already done it I will go to the Update Catalog, select my McRip choice and makes sure I have the latest updates. Actually I spend quite a bit of time checking and reviewing updates and I use http://forums.mydigitallife.info/threads/19461-Windows-Hotfix-repository and the members there to provide the support for this part.


Once that part is done to my satisfaction I open the AIO Integration option and select my "W7T_7SP1x64ent_TechNet-Step-1-Updates" target. In this case I will skip the preset and start from scratch to create a new .ini I select the updates tab and then follow the same specific procedure every time I do Step 1.

NOTE: this months update sequence changed slightly due to Windows Update showing some of the IE10 pre-req's so I added them at step 2 below in this phase, every other step I have been repeating exactly for about a year and more integration's than I can even remember


1) Select Add Updates & Subfolders, select IE9 folder found in the Additional folder and WinToolKIt will properly add them all

2) Select Add Updates, select KB2786081, KB2726535, KB2729094 found in Additional IE10ReleasePreview and WinToolKIt will properly add them all

3) Select Add Updates, highlight and select every .msu in the _Updates "McRip Windows 7 x64" folder

*** At this point I select the GREEN folders and items that I want to add to my image and this will vary based on your personal preference and need. RDP8.0 has one item I add in Step 1 ***

4) Select Add Updates & Subfolders, continue to select each GREEN folder (i just do them in sequence) and WinToolKit will properly add them all. When you reach the BROWN "RemoteDesktopProtocol8.0" use Add Updates and only add KB2574819, then finish off the rest of the GREEN folders.


I have now added all my updates that apply to my STEP-1.  Now at this point I actually don't run it yet because I just created a new .ini and I want to compare it to an old one and make sure it looks right and that I haven't forgotten anything. As much as this seem overly anal, each integration takes more than 2 hrs so the few minutes I take to check my work is well worth it and I have often found something I left out or wanted to change. So what I do is select Presets-Save All and then name the ini something like "STEP-1-Updates-02-09-13"


So here is an example of what we have after I saved the latest Step-1 Preset and I reloaded an image and what to use it:



When I load that Preset it will look like this:



Here is my actual STEP-1-Updates-02-09-13.ini




Additional Notes:


I actually save lots of .ini files and I will even edit ini files sometime during the month as new updates get release. What I tend to do is wait until a week after the major release date (2nd Tuesday of the month) because that's about the time frame that McRips scanners finish and he and the others at http://forums.mydigitallife.info/threads/19461-Windows-Hotfix-repository have pretty much stabilized the releases then I create my new image. But we all know that additional files get release so sometime I just edit the .ini and add them that way. What that gives me is a new and updated .ini without having to really do much at all and if I want to use it as a preset for a new image I am good to go.


Also If I have already completed my images and new updates come out I just open that target, add the additional hotfixes to my already integrated image and the image will be up to date. I really don't due that often but it definitely works. I have found it just as easy to use the new preset, start a new integration, go to dinner, have some wine and come back and its done, then I just run the additional steps and since they run much faster it's not a big deal... just my preference.

Edited by compstuff
Link to comment
Share on other sites

I was beginning to wonder if this was actually useful so thank you for the acknowledgement.I will be doing STEP 2 as soon as possible just a little tied up with work now.

Adding my 2cents - this is very useful for someone like me who is new to using this tool.  I am building my first images and went through your Step-1 process and have been waiting for step 2 :)  No pressure though, I installed my image and will be playing around for a while before I build a new one. 


Just wanted to say thanks!

Link to comment
Share on other sites

Step 2 SFX/Silent Installers


If you have been following this then some steps will now become repetitive which is good because that's whats makes some of this rather straight forward to me. Hopefully you will also be able to follow my folder logic so I can just go directly to the folders we will use.


This step may be a little more complicated for me to explain but I will try my best and I think I will start with my reasons for doing it in this manner. I really prefer to separate and control all the items that I add as silent installers etc and RunOnceEx item and run them in a single process. I also try to create a method that allows me to make easy updates to files when they become available and then just drop a file in place, re-run this step (which takes about 10 minutes) and then my image is up to date. Other supportive scenarios would be how easy this step is to maintain for the next full integration by reusing my .ini file because I have used generic names for the files or the fact that most files don't change at all. Lastly I can use generic calls to batch files or scripts to install files from my $OEM$ folder which works great when I want something for one client versus another or to create a "admin" image with lots of different tools for myself. If this is not clear don't worry, I have a lot more explaining to do.


NOTE: I can't explain every single item that is added, it would take too long and is really not the scope of this, but each item will be fully referenced so you can research them yourself


Lets start with the easy stuff:


Setting up the new target image for this step I am working in my _Slipstream\_7Builds\ folder. I copy the completed Step 1 Integration to the Step-2-SFX folder. We will copy my $OEM$ folder and my Autounattend.xml later so just keep that in mind. (Refer to previous pics)


Now lets take a look at the !Slipstream\_7Tools\_Step-2 folder since this and the $OEM$ are the brains of all of this:



OK now I am sure this may look like soo much to maintain but I swear other than a few files, I basically set all this up once and pretty much never changed it and I have been using this forever... and remember if I never really change the files or file names then the .ini can be reused :-)


So lets look at items 00 to 07, these are items that can't be installed in Step 1 so they get installed to an online image. I obtained all of these from McRip and I just manage them this particular way. I can reuse the same .ini content for this:

NOTE: reading the .ini file will show what actual files are in what folders... I literally did these when I first started so I need to help myself understand what things were for  

KB974150-x64::;NO;792.74 KB;E:\!Slipstream\_7Tools\_Step-2\00_NtBackup\KB974150-x64.msu;Always InstalledKB974674-x64::;NO;668.16 KB;E:\!Slipstream\_7Tools\_Step-2\00_NtBackup\KB974674-x64.msu;Always InstalledKB2533552x64::N/A (Not Needed);NO;9.23 MB;E:\!Slipstream\_7Tools\_Step-2\01-02-Offline\01-KB2533552\KB2533552x64.msu;Always InstalledKB2603229x64::N/A (Not Needed);NO;193.42 KB;E:\!Slipstream\_7Tools\_Step-2\01-02-Offline\02-KB2603229\KB2603229x64.msu;Always Installedhelp::N/A (Not Needed);NO;701.34 KB;E:\!Slipstream\_7Tools\_Step-2\03-KB917607\help.msu;Always Installedfmapi::N/A (Not Needed);NO;237.99 KB;E:\!Slipstream\_7Tools\_Step-2\04-KB943790\fmapi.msu;Always Installedagent::N/A (Not Needed);NO;2.65 MB;E:\!Slipstream\_7Tools\_Step-2\05-KB969168\agent.msu;Always Installedactivation::N/A (Not Needed);NO;1.35 MB;E:\!Slipstream\_7Tools\_Step-2\06-KB971033\activation.msu;Always Installedidentity::N/A (Not Needed);NO;1.47 MB;E:\!Slipstream\_7Tools\_Step-2\07-KB974405\identity.msu;Always InstalledidentityHF2::N/A (Not Needed);NO;2.75 MB;E:\!Slipstream\_7Tools\_Step-2\07-KB974405\identityHF2.msu;Always Installed

08-MSFixit contains the following fixes:


Some of these I got from McRip and some I got from my own research. I believe McRip still has his own installer for these but I also think I added some additional items which is why I handle this using my method


MicrosoftFixit50470.msi::    _Step-2\08-MSFixit\MicrosoftFixit50470.msi
MicrosoftFixit50531.msi::     _Step-2\08-MSFixit\MicrosoftFixit50531.msi
MicrosoftFixit50688.msi::     _Step-2\08-MSFixit\MicrosoftFixit50688.msi
MicrosoftFixit50848_KB2665946::    _Step-2\08-MSFixit\MicrosoftFixit50848_KB2665946.msi
MicrosoftFixit50877.msi::    _Step-2\08-MSFixit\MicrosoftFixit50877.msi
MicrosoftFixit50897.msi::    _Step-2\08-MSFixit\MicrosoftFixit50897.msi
MicrosoftFixit50907.msi::    _Step-2\08-MSFixit\MicrosoftFixit50907.msi
MicrosoftFixit50908.msi::    _Step-2\08-MSFixit\MicrosoftFixit50908.msi
MicrosoftFixit50939.msi::    _Step-2\08-MSFixit\MicrosoftFixit50939.msi
When and if I determine I need another fix I can just add it to this folder and use a simple method to get the correct syntax and entry. Just mount an image, go to the advanced tab, SFX silent installs, add the single new fix, and then create and save a new temp .ini file ...then just open the temp .ini file and copy and past the entry into you real working .ini (I hope that makes sense). It literally takes about 5 minutes and I have only had to change this directory and .ini portion once so far
MicrosoftFixit50470::/quiet /norestart;NO;638.00 KB;E:\!Slipstream\_7Tools\_Step-2\08-MSFixit\MicrosoftFixit50470.msi;Always InstalledMicrosoftFixit50531::/quiet /norestart;NO;646.50 KB;E:\!Slipstream\_7Tools\_Step-2\08-MSFixit\MicrosoftFixit50531.msi;Always InstalledMicrosoftFixit50688::/quiet /norestart;NO;655.50 KB;E:\!Slipstream\_7Tools\_Step-2\08-MSFixit\MicrosoftFixit50688.msi;Always InstalledMicrosoftFixit50848_KB2665946::/quiet /norestart;NO;964.00 KB;E:\!Slipstream\_7Tools\_Step-2\08-MSFixit\MicrosoftFixit50848_KB2665946.msi;Always InstalledMicrosoftFixit50877::/quiet /norestart;NO;1.00 MB;E:\!Slipstream\_7Tools\_Step-2\08-MSFixit\MicrosoftFixit50877.msi;Always InstalledMicrosoftFixit50897::/quiet /norestart;NO;1.12 MB;E:\!Slipstream\_7Tools\_Step-2\08-MSFixit\MicrosoftFixit50897.msi;Always InstalledMicrosoftFixit50907::/quiet /norestart;NO;961.50 KB;E:\!Slipstream\_7Tools\_Step-2\08-MSFixit\MicrosoftFixit50907.msi;Always InstalledMicrosoftFixit50908::/quiet /norestart;NO;965.00 KB;E:\!Slipstream\_7Tools\_Step-2\08-MSFixit\MicrosoftFixit50908.msi;Always InstalledMicrosoftFixit50939::/quiet /norestart;NO;1.03 MB;E:\!Slipstream\_7Tools\_Step-2\08-MSFixit\MicrosoftFixit50939.msi;Always Installed




I personally always use Ricktendo's .net installers and this is a great example of and easy to maintain folder item. Rick releases a new version, I copy it to the folder, rename it and I'm good to go with no other changes to anything.

dotNetFx45::/ai;NO;46.04 MB;E:\!Slipstream\_7Tools\_Step-2\10-DotNet\dotNetFx45.exe;Always Installed



Rick's installer has the following switches I choose and I just the /ai


/y - Passive mode, shows progress bar advancing but requires no user interaction. *Full* package is installed.
/ai - Quiet mode, no user input required or output shown. *Full* package is installed.
/ain - Quiet mode, no user input required or output shown. *Full* package is installed and 'ngen executequeueditems' is also run.
/h | /? - Display this help.
Mr_SmartePants has an excellent method of creating your own .net installer I just choose to use Rick's
*************************TO BE CONTINUED HEADING OFF TO WORK**********************************
Edited by compstuff
Link to comment
Share on other sites

I did know your's was there so no worries but I do appreciate it... I just know I can ramble sometimes and doing something like this is rather new to me

My thanks went without saying, but it shouldn't have.  Many Thanks compstuff!


Cheers and Regards

Link to comment
Share on other sites

Step 2 is much more complicated to explain since I need to explain some tools I use as well... so it will take me a while and many edits I but I will get it done... and then I hope my method of using the KUC will be helpful since it is a little unique but that should be easy to explain


Adding my 2cents - this is very useful for someone like me who is new to using this tool.  I am building my first images and went through your Step-1 process and have been waiting for step 2 :)  No pressure though, I installed my image and will be playing around for a while before I build a new one. 


Just wanted to say thanks!

Link to comment
Share on other sites



well, it took me my while to run through your post, , I Like the visuals :) thanks to your guide I was able to refine my own method by adapting some your concepts. Great stuff, Thanks for   :guitar: Rambling on ... :prop:

Edited by dotfusion
Link to comment
Share on other sites

Glad it could be of some use... I have been delayed in making my next update because I too have been refining my methods to make some improvements. Ironically they happen to be in Step-2 and Step-3 (driver Integration) and were prompted by the posts that have occurred over the last 2 weeks or so.



well, it took me my while to run through your post, , I Like the visuals :) thanks to your guide I was able to refine my own method by adapting some your concepts. Great stuff, Thanks for   :guitar: Rambling on ... :prop:

Link to comment
Share on other sites

There might need to be a separate sub-forum for peoples integration guides.  I have started on a guide myself, but have not yet finished it (life gets in the way).  Thank you for this thread compstuff.  It just gives me more incentive to complete the guide I am working on.

Link to comment
Share on other sites

  • 2 weeks later...

compstuff - Hey I was wondering if you could provide some more explanation to your updates integration. I followed your link to the 2 repositories and downloaded both but I'm still working on just the windows updates with no luck thus far.  I've tried to piece together what needs to be done but every time I try to install the new image with updates on VMware it fails.  


I have installed KUC, created c:\wu and \wu\repo, created c:\test and c:\temp, copied the install.wim from the extracted files of a good working windows 7 64 bit ISO with multiple images into c:\test.  I also have the MS development tools installed (forget their name).  Then I run command prompt as admin, use DISM to mount the install.wim from c:\test into c:\temp, open KUC as admin, create packages.txt through DISM pointing to c:\temp, chose that packages.txt file in KUC, continue through without checking any additional update boxes, point the 2 KUC directories to c:\wu and c:\wu\repo and download.  I get no bad packages showing and all downloads complete and the commandletes are created.  


From there I have tried 2 options. First before I use the commandletes I opened Win Toolkit, AIO Integrator, selected all of the updates in c:\wu\repo, integrate into a copy of the extracted working ISO (I have original ISO, extracted original ISO and copy of extracted original ISO), create new ISO in Win toolkit, attempt install on VMware and it fails.  Then I went back into the elevated command prompt and ran copy_files_2_add and update (I hadn't unmounted the image yet), upon reboot I had to remount the image and then unmounted it with the /commit action, created a second copy of the extracted original ISO (separate from the one I used in Win Toolkit), replaced the install.wim with the KUC modified one from c:\test, used Win Toolkit to create an ISO of that, attempted install on fresh VMware machine and it failed.


What am I doing wrong?

Link to comment
Share on other sites

MeltManBob the way I do it is to use McRips updates and WinToolKit... I do use the KUC but my method is to use it as a 2nd run which I haven't explained yet... trying to get to it. Anyway I download all of McRip's and select some of the additional updates along with the rest of the GDR/LDR items.


Here is my last Step-1 ini which does NOT include IE10:


This ini definitely works so as a test you could use it by just changing the txt to fit your folder structure

NOTE: this is not the latest set of updates that McRip has so it is slightly out of sync but should still work fine for testing 

Link to comment
Share on other sites

Thanks! I'll take a look at that here in a bit.  I finally got a few things set up so I can do this stuff on a virtual machine and use a second one to test on so I don't have to keep rebooting my actual computer. I also figured out that none of the updates were getting applied through DISM and KUC.  They would download and run the commandlettes and I would see a bunch of files through DISM that looked like they were being integrated but when I took what was supposed to be the updated wim file and ran it back through KUC, it still showed the same amount of updates needed which was also verified in the packages.txt file.  Once I got my virtual machines set up and files/apps moved over I started fresh and this time DISM took a lot longer so I'm pretty sure this time it integrated.


I was also going to try a fresh run using Win Toolkit but for some reason now when I go into the Update Catalog and try to select the correct OS from the drop down menu I get a "No Network Connection" error box: http://hotfix2.cesidian.info/x64/   The remote server returned an error: (404) Not Found. You could be behind a proxy server.


This happens on the virtual machine and on the host computer, even after restarting the host machine and they both can browse the internet.  I haven't found much on how to resolve this and I'm not sure why it's doing that; it worked fine yesterday and I have a backup of the 384 files that Update Catalog let me download.  Only problem is, I tried a fresh integration with those updates through Win Toolkit yesterday or the day before and the install wouldn't complete without an error.


Unfortunately when I downloaded from the Update Catalog I didn't get the Additional updates so my McRip folder only contains MSU files.  I re-read your post and correct me if I'm wrong but do certain updates need to be done first? My confusion there comes from some of your steps saying to choose Updates and sub-folders vs just Updates and in step 4 (of Step 1) you mention adding folders in sequence and then only a particular update from a brown folder. I do realize the coloring is something I won't have and is specific to how you have your stuff set up.


From looking at your .ini file it seems like the coding is fairly simplistic such as the *AIO, #Updates, #Options and the rest is verbatim for the location of each update and option as it appears in the AIO Integrator.  I'm sure these are pretty common sense assumptions but this is a whole new ball game for me with computers so please excuse me when I go over these things, it's just to make sure I'm understanding what I'm doing and the program is doing instead of just wanting to know how to click through things.


Correct me if I'm wrong at any point here: adding the updates is a GUI way of having AIO write all of the paths and create the .ini file, if you choose start then AIO opens DISM, mounts the wim file, selects the image you selected when you started AIO, integrates them, performs the /commit action and unmounts the wim file.


Thanks again! Any help you or someone else can provide about the 404 error for the Update catalog would be great too, I'm sure it's something simple that I'm just not getting.

Link to comment
Share on other sites

Any help you or someone else can provide about the 404 error for the Update catalog would be great too, I'm sure it's something simple that I'm just not getting.


From what I understand, there have been times over the last few days that McRip's server has been down, so that might have contributed to at least some of the 404's you received.


Cheers and Regards

Link to comment
Share on other sites

New to this tool and finding your guide quite helpful!  Since you posted the initial process, MS has released IE10 for Win7.  The folder structure downloaded from McRip seems fairly rich in sub-folders and file types.  it would be quite instructive to get some insight into how this would be integrated.


Thank you for sharing

Link to comment
Share on other sites

Thanks for the feedback... I have been working on Step 2 for the last few days and I just finished two new integration's with a revised Step 1 (including IE10). I will start updating the posts later this evening. 


New to this tool and finding your guide quite helpful!  Since you posted the initial process, MS has released IE10 for Win7.  The folder structure downloaded from McRip seems fairly rich in sub-folders and file types.  it would be quite instructive to get some insight into how this would be integrated.


Thank you for sharing

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...