#include <workbench/workbench.h>
#include <exec/execbase.h>

#define Drop(s) Write(Output(),s,strlen(s))

extern struct Library	*OpenLibrary();
struct Library		*IconBase;

USHORT Doc1Data[420] =
{
	/* Plane 0 */

	0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
	0x0000,0x0000,0x4555,0x5555,0x5540,0x0000,0x0000,0x0000,
	0x0000,0x4555,0x5555,0x5540,0x0000,0x0000,0x0000,0x0000,
	0x455F,0x57D7,0xD545,0x0000,0x0000,0x0000,0x0000,0x455D,
	0x9CDC,0x4547,0x0000,0x0000,0x0000,0x0000,0x455C,0xDCCC,
	0x4547,0x0000,0x0000,0x0000,0x0000,0x455C,0xCCCC,0x5547,
	0x0000,0x0000,0x0000,0x0000,0x455C,0xCCCC,0x5547,0x0000,
	0x0000,0x0000,0x0000,0x455D,0xCCCC,0x5547,0x0000,0x0000,
	0x0000,0x0000,0x455F,0x17C7,0xC547,0x0000,0x0000,0x0000,
	0x0000,0x4550,0x1414,0x1547,0x0000,0x0000,0x0000,0x0000,
	0x4555,0x5555,0x5547,0x0000,0x0000,0x0000,0x0000,0x45FD,
	0xF5F5,0xFD47,0x0000,0x0000,0x0000,0x0000,0x45C9,0x61C5,
	0xC947,0x0000,0x0000,0x0000,0x0000,0x45D5,0x65C5,0xD547,
	0x0000,0x0000,0x0000,0x0000,0x45F1,0x65C5,0xF147,0x0000,
	0x0000,0x0000,0x0000,0x45D1,0x65C5,0xD147,0x0000,0x0000,
	0x0000,0x0000,0x45C1,0x65CD,0xC947,0x0000,0x0000,0x0000,
	0x0000,0x45E5,0xF5FD,0xFD47,0x0000,0x0000,0x0000,0x0000,
	0x4505,0x4101,0x0147,0x0000,0x0000,0x0000,0x0000,0x4555,
	0x5555,0x5547,0x0000,0x0000,0x0000,0x0000,0x4555,0x5555,
	0x5547,0x0000,0x0000,0x0000,0x0000,0x4555,0x5555,0x5547,
	0x0000,0x0000,0x0000,0x0000,0x4555,0x5540,0x0147,0x0000,
	0x0000,0x0000,0x0000,0x4555,0x5555,0x5547,0x0000,0x0000,
	0x0000,0x0000,0x0000,0x0000,0x0007,0x0000,0x0000,0x0000,
	0x0000,0x2FFF,0xFFFF,0xFFFF,0x0000,0x0000,0x0000,0x0000,
	0x1555,0x5555,0x5555,0x0000,0x0000,0x0000,0x0000,0x0000,
	0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
	0x0000,0x0000,

	/* Plane 1 */

	0x0000,0x0000,0x0001,0xFFFF,0xFFFF,0xFFF8,0x0000,0x0000,
	0x0000,0x0001,0xFFFF,0xFFFF,0xFFF8,0x0000,0x0000,0x0000,
	0x0001,0xFFFF,0xFFFF,0xFFFF,0xC000,0x0000,0x0000,0x0001,
	0xFFE0,0xF878,0x3FFF,0xC000,0x0000,0x0000,0x0001,0xFFF2,
	0x7333,0xBFFB,0xC000,0x0000,0x0000,0x0001,0xFFF3,0x3333,
	0xFFFB,0xC000,0x0000,0x0000,0x0001,0xFFF3,0x3333,0xFFFB,
	0xC000,0x0000,0x0000,0x0001,0xFFF3,0x3333,0xFFFB,0xC000,
	0x0000,0x0000,0x0001,0xFFF2,0x7333,0xBFFB,0xC000,0x0000,
	0x0000,0x0001,0xFFE0,0xF878,0x7FFB,0xC000,0x0000,0x0000,
	0x0001,0xFFFF,0xFFFF,0xFFFB,0xC000,0x0000,0x0000,0x0001,
	0xFFFF,0xFFFF,0xFFFB,0xC000,0x0000,0x0000,0x0001,0xFE07,
	0x0E1E,0x07FB,0xC000,0x0000,0x0000,0x0001,0xFF37,0x9F3F,
	0x37FB,0xC000,0x0000,0x0000,0x0001,0xFF2F,0x9F3F,0x2FFB,
	0xC000,0x0000,0x0000,0x0001,0xFF0F,0x9F3F,0x0FFB,0xC000,
	0x0000,0x0000,0x0001,0xFF2F,0x9F3F,0x2FFB,0xC000,0x0000,
	0x0000,0x0001,0xFF3F,0x9F37,0x37FB,0xC000,0x0000,0x0000,
	0x0001,0xFE1F,0x0E06,0x07FB,0xC000,0x0000,0x0000,0x0001,
	0xFFFF,0xFFFF,0xFFFB,0xC000,0x0000,0x0000,0x0001,0xFFFF,
	0xFFFF,0xFFFB,0xC000,0x0000,0x0000,0x0001,0xFFFF,0xFFFF,
	0xFFFB,0xC000,0x0000,0x0000,0x0001,0xFFFF,0xFFFF,0xFFFB,
	0xC000,0x0000,0x0000,0x0001,0xFFFF,0xFFFF,0xFFFB,0xC000,
	0x0000,0x0000,0x0001,0xFFFF,0xFFFF,0xFFFB,0xC000,0x0000,
	0x0000,0x0001,0xFFFF,0xFFFF,0xFFFB,0xC000,0x0000,0x0000,
	0x0001,0xF800,0x0000,0x0003,0xC000,0x0000,0x0000,0x0000,
	0xFFFF,0xFFFF,0xFFFF,0xC000,0x0000,0x0000,0x0000,0x7FFF,
	0xFFFF,0xFFFF,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,
	0x0000,0x0000
};

struct Image Doc1 =
{
	0,0,
	98,30,2,
	(USHORT *)&Doc1Data[0],
	0x03,0x00,
	(struct Image *)NULL
};

USHORT Doc2Data[420] =
{
	/* Plane 0 */

	0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x2AAA,
	0xAAAA,0xAAA8,0x0555,0x5555,0x5555,0x0000,0x37FF,0xFFFF,
	0xFFFE,0xBFFF,0xFFFF,0xFFFB,0x0000,0x37FF,0xFFFF,0xFFFE,
	0xBFFF,0xFFFF,0xFFFB,0x0000,0x37FF,0xFFFF,0xFFFE,0xBFFF,
	0xFFFF,0xFFFB,0x0000,0x37EA,0xAAAA,0xAAE0,0x03EA,0xAAAA,
	0xAABB,0x0000,0x37FF,0xFFFF,0xFFFE,0xBFFF,0xFFFF,0xFFFB,
	0x0000,0x37FF,0xFFFF,0xFFFE,0xBFAA,0xAAAA,0xAABB,0x0000,
	0x37FF,0xFFFF,0xFFFE,0xBFFF,0xFFFF,0xFFFB,0x0000,0x37D5,
	0x5555,0x557E,0xBFAA,0xAAAA,0xAABB,0x0000,0x37FF,0xFFFF,
	0xFFFE,0xBFFF,0xFFFF,0xFFFB,0x0000,0x3755,0x5555,0x557E,
	0xBFAA,0xAAAA,0xAABB,0x0000,0x37FF,0xFFFF,0xFFFE,0xBFFF,
	0xFFFF,0xFFFB,0x0000,0x3755,0x5555,0x557E,0xBFAA,0xAAAA,
	0xAABB,0x0000,0x37FF,0xFFFF,0xFFE0,0x03FF,0xFFFF,0xFFFB,
	0x0000,0x3755,0x5555,0x557E,0xBFAA,0xAAAA,0xAABB,0x0000,
	0x37FF,0xFFFF,0xFFFE,0xBFFF,0xFFFF,0xFFFB,0x0000,0x37D5,
	0x5555,0x557E,0xBFAA,0xAAAA,0xAABB,0x0000,0x37FF,0xFFFF,
	0xFFFE,0xBFFF,0xFFFF,0xFFFB,0x0000,0x3755,0x5555,0x557E,
	0xBFAA,0xAAAA,0xAABB,0x0000,0x37FF,0xFFFF,0xFFFE,0xBFFF,
	0xFFFF,0xFFFB,0x0000,0x3755,0x5555,0x557E,0xBFAA,0xAAAA,
	0xAABB,0x0000,0x37FF,0xFFFF,0xFFFE,0xBFFF,0xFFFF,0xFFFB,
	0x0000,0x37FF,0xFFFF,0xFFE0,0x03FF,0xFFFF,0xFFFB,0x0000,
	0x37FF,0xFF5F,0xFFFE,0xBFFF,0xFEBF,0xFFFB,0x0000,0x37FF,
	0xFFFF,0xFFFE,0xBFFF,0xFFFF,0xFFFB,0x0000,0x3000,0x0000,
	0x0000,0x8000,0x0000,0x0003,0x0000,0x2AAA,0xAAAA,0xAAA8,
	0x0555,0x5555,0x5555,0x0000,0x0000,0x0000,0x0000,0x0000,
	0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
	0x0000,0x0000,

	/* Plane 1 */

	0xFFFF,0xFFFF,0xFFFE,0x1FFF,0xFFFF,0xFFFF,0xC000,0xFFFF,
	0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xC000,0xF800,0x0000,
	0x0001,0xC000,0x0000,0x0007,0xC000,0xF800,0x0000,0x0001,
	0xC000,0x0000,0x0007,0xC000,0xF800,0x0000,0x0001,0xC000,
	0x0000,0x0007,0xC000,0xF800,0x0000,0x001F,0xFC15,0x5555,
	0x5547,0xC000,0xF800,0x0000,0x0001,0xC000,0x0000,0x0007,
	0xC000,0xF800,0x0000,0x0001,0xC055,0x5555,0x5547,0xC000,
	0xF800,0x0000,0x0001,0xC000,0x0000,0x0007,0xC000,0xF82A,
	0xAAAA,0xAA81,0xC055,0x5555,0x5547,0xC000,0xF800,0x0000,
	0x0001,0xC000,0x0000,0x0007,0xC000,0xF8AA,0xAAAA,0xAA81,
	0xC055,0x5555,0x5547,0xC000,0xF800,0x0000,0x0001,0xC000,
	0x0000,0x0007,0xC000,0xF8AA,0xAAAA,0xAA81,0xC055,0x5555,
	0x5547,0xC000,0xF800,0x0000,0x001F,0xFC00,0x0000,0x0007,
	0xC000,0xF8AA,0xAAAA,0xAA81,0xC055,0x5555,0x5547,0xC000,
	0xF800,0x0000,0x0001,0xC000,0x0000,0x0007,0xC000,0xF82A,
	0xAAAA,0xAA81,0xC055,0x5555,0x5547,0xC000,0xF800,0x0000,
	0x0001,0xC000,0x0000,0x0007,0xC000,0xF8AA,0xAAAA,0xAA81,
	0xC055,0x5555,0x5547,0xC000,0xF800,0x0000,0x0001,0xC000,
	0x0000,0x0007,0xC000,0xF8AA,0xAAAA,0xAA81,0xC055,0x5555,
	0x5547,0xC000,0xF800,0x0000,0x0001,0xC000,0x0000,0x0007,
	0xC000,0xF800,0x0000,0x001F,0xFC00,0x0000,0x0007,0xC000,
	0xF800,0x00A0,0x0001,0xC000,0x0140,0x0007,0xC000,0xF800,
	0x0000,0x0001,0xC000,0x0000,0x0007,0xC000,0xFFFF,0xFFFF,
	0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xC000,0xFFFF,0xFFFF,0xFFFF,
	0xFFFF,0xFFFF,0xFFFF,0xC000,0xFFFF,0xFFFF,0xFFFE,0x1FFF,
	0xFFFF,0xFFFF,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,
	0x0000,0x0000
};

struct Image Doc2 =
{
	0,0,
	98,30,2,
	(USHORT *)&Doc2Data[0],
	0x03,0x00,
	(struct Image *)NULL
};

struct DiskObject DocIcon =
{
	WB_DISKMAGIC,
	WB_DISKVERSION,

	(struct Gadget *)NULL,
	0,0,
	98,30,
	GADGIMAGE | GADGHIMAGE,
	RELVERIFY | GADGIMMEDIATE,
	BOOLGADGET,
	(APTR)&Doc1,
	(APTR)&Doc2,
	(struct IntuiText *)NULL,
	NULL,
	(APTR)NULL,
	NULL,
	(APTR)NULL,

	WBPROJECT,
	(char *)":C/Less",
	(char **)NULL,
	NO_ICON_POSITION,
	NO_ICON_POSITION,
	(struct DrawerData *)NULL,
	(char *)NULL,
	4000
};

void _wb_parse(){}

void
main(argc,argv)
long argc;
char *argv[];
{
	if(!argc)
		exit(20);

	if(!(IconBase = (struct Library *)OpenLibrary("icon.library",LIBRARY_VERSION)))
	{
		Drop("Couldn't open icon.library!\n");

		exit(20);
	}

	if(!PutDiskObject(argv[1],&DocIcon))
	{
		Drop("Couldn't create icon!\n");
		CloseLibrary(IconBase);

		exit(20);
	}

	CloseLibrary(IconBase);

	exit(0);
}
