With sole aim to expand our business all across the globe, we are committed in offering superior quality PMDC Worm Gear Motor 100 W. The provided motor is manufactured with the aid of progressive techniques and top notch quality components by our ingenious experts. This motor is highly used in printing, plastic extrusion and other similar machines. Beside, the offered PMDC Worm Gear Motor 100 W can be purchased from us at rock bottom price.
Motor OD 80mm, length 150mm.


I'm sure everyone remembers Phyllis from the original Animal Crossing on the gamecube. She's real moody and has a bad attitude towards the player. I thought that I would create a throwback design for her and make it look like the old post office from AC GC with a few upgrades of course. It's got a cute little mail room and ATM machine money area! The furniture is all wood to represent the style from all games.


Before you sign up for that defensive driving course down the road, you should take the time to check out the courses available online. A Texas online defensive driving course can save you money both in course fees as well as in travel time, and you don't have to take time off of work! You can take the class from the comfort of your own home, or even at work during your lunch hour, making it easy on your schedule. It will definitely save you money!
Most tickets are far more than the small $25 fee that our Texas online defensive driving course is going to cost you. And since you don't even have to travel, you will save even more over other courses!


text:
Valerie Shrimplin
Publication date: 2 May 2019
Anne Boleyn is one of the most divisive figures in British history. Her love-match with Henry VIII and her subsequent execution at the Tower of London after only three years of marriage have made her the subject of heated debate and speculation.
Everyone wants to know how she really felt and how and why she became queen: was she a ruthless schemer or was her death simply a tragic consequence of court politics?
Unbiased descriptions of Anne are difficult to find: most were written after her death. Anne was effectively written out of history for the rest of Henry VIII's reign, and that of his son, Edward VI. Her name was literally chiselled out of the fabric of Hampton Court, her badges and heraldry replaced by those of Jane Seymour.
Historians continue to battle over her reputation today and the fascination with the life and death of Anne Boleyn lives on. This objective and informative book brings clarity to our view of Anne Boleyn, perhaps the most influential and important queen consort England ever had.

redpajama_set_name: RedPajamaCommonCrawl


Glad you found our corner of the world. We are a very pen and fun site and usually hold back nothing. Have a question just fire away, need a question answered there usually is someone on here that can help. All with out the drama the other sites have.
I have a 1996 20' Proline that I launch out of AH.


Struggling to expand your home network to every room in the house?
Battling network issues such as cable length, Wi-Fi "dead zones" and obstructions?
Don't let these connection issues get you down.
and can easily increase the range of your existing wireless network.
We offer an impressive range of Wi-Fi Routers which cover all of your home wireless networking needs.
in the world of wireless technology. Blazing speed meets wireless flexibility.


AS A FAMILY RUN COMPANY WITH MANY YEARS EXPERIENCE ALL WORK INVOLVED IN THIS INDUSTRY FROM SALES TO SURVEY TO FITTING BY THE SAME SQUAD.
INVEST IN THE BEST FOR ALL YOUR DOUBLE GLAZING NEEDS.
At Lyca Windows, our goal is to not only help you design and build your dream home, but to make the process easy and enjoyable for you. We are a full-service design/build company with a wide range of experience.Our excellent reputation and long list of satisfied clients attest to our superior craftmanship, attention to detail, clear communication, honesty and integrity just ask for our client reference.We supply and fit u-pvc,alluminum and timber windows,doors,porches and conservatories and undertake all associated building work. For your complete peace of mind our products come with a 10 years insurance backed guarantee.
With our past experience we have developed designs and styles to suit your needs with our tailor made service we can make what you want.
Along with the quality of the design comes with the durability. we have worked alongside the met and studied the u.k weather patterns for the last 25 years, meaning that our double glazed and low maintenance Pvc-u products can handle just about anything the weather can throw at them.no rotting frames or faded colours just quality that lasts!


text:
You are here: Home » Memorials » Anglesey » Beaumaris: Cemetery graves
John Lloyd Thomas
John Lloyd Thomas (d.1913)
This finely carved headstone marks the resting place of John Lloyd Thomas of Dinmor, Penmon. He served with the Royal Navy between 1884 and 1911, becoming its Deputy Surgeon General.
Born in September 1856, he received his medical education at the Middlesex Hospital and Queen's College, Birmingham, before becoming a surgeon at Queen's Hospital in the same city. He entered the Royal Navy Medical Services in 1884 and saw service with the Home Fleet and in the Mediterranean.
There was an outbreak of yellow fever while he was serving at the Naval Hospital, Jamaica, in the early 1890s. He was commended for his work and for an essay he wrote about the treatment of the victims of the epidemic.
John was next sent to China, where he helped set up a hospital for wounded Chinese servicemen in Yantai (then known as Chefoo) during the Chinese-Japanese War. That work was recognised by the Imperial Chinese Government, which awarded him the Grand Order of the Double Dragon of China of the First Division, Third Class.
He was back in the Far East in 1899 and was with British forces during the "Peking Expedition" of 1900. The brigade's robust health was attributed to his work, although ironically he contracted a debilitating condition which considerably shortened his life.
On returning to Britain he had to take a prolonged period of sick leave before returning to service at Chatham, Bristol and Liverpool. He retired in 1911 to Anglesey, where he served as High Sheriff before his death in June 1913.
Return to Beaumaris cemetery graves page


Tim Trickey was well known in the Land O'Lakes region for his tireless efforts to to start up and maintain a cadet program at North Addington Education Centre for kids from Addington Highlands and North Frontenac. Even after his cancer diagnosis he continued to work with the cadets and as recently as last month, he led them at the Remembrance Day Service in Flinton. He died on December 17 at the age of 51.
Trickey was the co-ordinator for the volunteer ambulance service in Northbrook in the 1990's and then served with L&A County Emergency Services as a paramedic for over 14 years. He also served on the Central Frontenac Volunteer Fire department.
Tim was married for 30 years to Darlene (nee Kelford). The couple have a son, Jordan, and a late daughter, Natasha. Tim is fondly remembered by his extended family, friends & co-workers.
Tim's family will receive friends at the Milestone Funeral Center, 11928 Hwy 41 Northbrook on Friday from 2-4pm & 7-9pm. A Celebration of Life & Tribute Service will be in the Chapel on Saturday, December 23, 2017 at 1:00pm with visitation 1hr prior to the service. A Gofundme campaign is underway to help Tim's family.


text:
WikiLex:
A History Hub
For Teachers/Educators
A Salute to Lexington's Greatest Generation: World War II on the War and Home Fronts
In Black and White: A Photographic Collection of African- American Life in the Bluegrass
Lincoln and His Wife's Hometown
Not Just a Hunting Ground: Native Americans in Kentucky
Not Just a Hunting Ground: Native Americans in Kentucky- Adena Culture
Not Just a Hunting Ground: Native Americans in Kentucky- Archaeological Site Maps
Not Just a Hunting Ground: Native Americans in Kentucky- Archaic Period
Not Just a Hunting Ground: Native Americans in Kentucky- Choctaw Academy
Not Just a Hunting Ground: Native Americans in Kentucky- Fort Ancient Culture
Not Just a Hunting Ground: Native Americans in Kentucky- Kentucky Native American Heritage Council
Not Just a Hunting Ground: Native Americans in Kentucky- Mississippian Culture
Not Just a Hunting Ground: Native Americans in Kentucky- Paleoindian Period
Not Just a Hunting Ground: Native Americans in Kentucky- Rock shelters and Caves
Not Just a Hunting Ground: Native Americans in Kentucky- State Recognition
Not Just a Hunting Ground: Native Americans in Kentucky- The Cherokee
Not Just a Hunting Ground: Native Americans in Kentucky- The Chickasaw
Not Just a Hunting Ground: Native Americans in Kentucky- The Fight for Kentucky
Not Just a Hunting Ground: Native Americans in Kentucky- The Shawnee
Prohibition Comes to Lexington
The Freemasons: In the Bluegrass and Beyond
Window on the War (Civil War Lexington)
Beginning during the slavery years and ending with the Civil Rights movement, this exhibition seeks to document a reality that sometimes escapes description in the written word. Viewers will see the faces of fellow citizens who struggled in demeaning jobs, educated their community, provide spiritual comfort to one another, delighted in friends and family, and achieved many personal and professional rewards despite the constraints of segregation. Many of these images may make views uncomfortable, but like those reflecting progress and change they reflect the difficulties and prejudice sometimes found in our midst.
Working under a grant from the Kentucky Humanities Council, the museum in conjunction with the African- American Studies and Research Program at the University of Kentucky have begun building a collection of photographs documenting African- American life in the Bluegrass area. Guided by Dr. Gerald Smith, a member of the museum's Board of Trustees and director of the AASRP, grant workers and museum volunteers were instrumental in locating and preserving these treasures. To find these images, the museum held several "photo fairs' inviting local citizens to bring in family albums, church records, school pictures and family portraits. Volunteers scanned the photographs so they could be digitally stored, and recorded background information from the donors. The collection will become part of the Kentucky Digital Library. This exhibit represents a small portion of the over four hundred images currently in the collection. Dr. Smith's book from the Black American Series: Lexington Kentucky was expanded from the grant work.
The first known black servant to come into Kentucky did so with Christopher Gist in 1751. Gist's slave was not the first black man in the west. At this time there were several escaped slaves that lived among the Shawnee. The entrance of Gist and his slave, marks the beginning of a long history of slavery in Kentucky. In Pioneer times, master and slave worked side by side to carve out a life in this new territory. African Americans fought on both sides in the settler's conflict with the Native Americans. For example, Pompey, who served as interpreter for Blackfish, and fought on the Shawnee side in the attack on Boonesboro. Pompey was killed in this conflict. Monk is remembered for tricking the Native Troops, after they took him captive, into forgoing their plans to attack Estill's Station. Monk's brave actions when face to face with the enemy, earned him his freedom. By 1798, Kentucky established an elaborate slave code, that solidified slavery in the region. 1790 Census states that there were 11,830 slaves and 114 Freedmen in Kentucky. By 1790, Lexington and the surrounding Bluegrass regions, was the largest slave owning area in Kentucky. By 1860, 47.3% of Lexington's population was black and most of those individuals were slaves.
Most slaves in Kentucky worked on small farms. They served as domestic servants, field hands, industrial workers, mine workers and to build the Railroads. A visitor to a Lexington hemp factory in 1830, was impressed by the use of slave labor in manufacturing. He stated that " The constantly increasing utilization of slave labor in manufacturing left no doubt as to its growing profitability". 10 years of age seems to be the average age slave children were put to work, but some slaves told of starting small chores as early as four.
Slave status was passed down through the mother, regardless of the status of the father. Slave marriages were not recognized by law. In order to "marry" slaves had to have the permission of their masters. The marriage ceremony itself could be a simple as obtaining permission and moving in together to full out church ceremonies with elaborate parties to celebrate. Due to the tenuous nature of slave marriages. African American preacher, Rev. London Ferrill, often pronounced couples married until "death or distance" parted them. Slaves families were often headed by women. Though many Kentucky slaves knew both of their parents, and it was not unheard of to know all of their grandparents.
The type of housing offered to slaves varied with the prosperity of the owner. Most slave cabins were log structures (though stone and brick houses were not uncommon), that were properly chinked, with brink or stone fireplaces. Most cabins had at least one window and most had dirt floors. The cabins usually styled with one room on ground floor with a loft above. The cabins only had crude furnishings. Urban slaves, either lived in cabins behind their master's house or in servant's rooms with in the house.
Owners supplied their servants, with the exception of favored or important house slaves, with cloths that met only basic needs and were not from the best cloth. Shoes were allotted usually just for the winter months.
Slaves were offered a very basic diet. One large farms, food was handed out once a week with each person receiving four pounds of pork, a peck of meal, and molasses. Slaves were expected to grow their own garden to supplement their food allotment. Food was used as presents in the form of wheat bread, coffee, sugar and syrup.
To leave the farm that they worked on for more than four hours, a slave needed a pass written by their, the owners family or the overseer. Passes were very descriptive and dated, in order to ensure that they could not just be handed off. The punishment for being out without a pass was ten lashes on the bare back. In 1800, Kentucky prohibited large gatherings of blacks on Saturday, Sunday and nights. Curfew was set at 10 pm. Due to the number of issues that they had regarding curfew with slaves that worked the market place, all slaves used in this capacity were to carry a pass at all times. In 1853, the Lexington and Frankfort Railroad ordered that merely having a ticket would not enable a black person to ride the train. The railway required that a slave produce a pass in duplicate, and the pass had to some from a person know to the conductor. If the owner was not known by the railway official the bondsman must get "some respectable white known to the officers" to corroborate his identity.
Recreation was available to the slaves. On the farm recreation was found in games like marbles and horseshoes. Storytelling and music were also popular entertainment. Most Kentucky slaves were allowed free time from Saturday afternoon, until Monday morning. Many slaves were also allowed the week between Christmas and New Years off. On these days recreation took the form of visits to town, fishing, quilting bees, parties, dances, sing alongs, foot races, jumping contests, wrestling, and boxing.
In the Bluegrass many master contracted with local doctors on a yearly basis to provide care for their family and their slaves. That being said the master and his wife were often the first to treat a ill slave with the remedies that they had on hand. . Medical care at this time was hazardous at best, but most owners felt it was in their best interest to see their slaves properly care for. Master's were required by law to care for the old and the disabled. In cases of mental retardation or with the mentally ill the state required that the master, at his expense, place them in institutionalized care.
The most common form of punishment was whipping. Bucking, which is tying the slaves hands together in the front, forcing them to draw them over the knees, and then forcing a stick under the knees but over the arms, was often used by masters to discipline slave. Those caught running away, branding or ear cropping was used. Instances of severe abuse or murder of slaves by their owners was investigated but the guilty parties were rarely punished.
Many slaves attended the church of their masters but many were able to attend Black churches or be server by black preachers on their farms. Black Churches formed the nucleus around which the entire back community, slave and free, organized their own social, educational and cultural activities. Kentucky did not prohibit by law the education of slaves, though there was some white opposition to the idea of literate slaves. Slave became literate in several ways, one being taught on the farm by their masters, or by literate members of their own family, some slave children were educated in private school, in their neighborhood( most run by churches). Not all slaves were able to enrich themselves by learning to read.
{C}{C}{C}{C}The age, sex, health, disposition, skill, supply, and demand for slaves, determined their value. Slaves were most valuable for sale between the ages of 18 and 35, with men being more valuable than women. There was also a smaller market for children, the elderly and for "fancy girls". " Fancy Girls" were attractive, young, gentile, usually mulatto women purchased to be mistresses or prostitutes. Lexington had the largest market for "fancy girls" outside of New Orleans. Kentucky passed a law in 1833, which was repealed in 1849, which prohibited the bringing of slaves into Kentucky for the purpose of sale. "Jails" were used to house slaves awaiting purchase. These jails varied in the severity of the surroundings, but most offered unconformable or harsh surroundings. Slaves traders were required to have a license and written consent of the majority of citizens living within 400Ft of the salve jail. Many owners tired to sale their slaves locally or privately to traders, if theirs was not doable, then slaves were put up for auction. In Kentucky 77,000 slaves were sold to the Deep South between 1830 and 1850s.
{C}{C}{C}{C}Many slaves found ways to resist slavery. Some tried to gain freedom by buying themselves out of slavery. They obtained the money to do so by selling wares they created, selling their services to other members of the community. Men usually bought themselves first and then purchased the rest of their family. The "slowdown" was a common non-violent means to resist slavery. This was achieved by slowing ones pace, pretending to be sick, or breaking machinery. Many slaves attempted the perilous task of running away. It was uncommon for slaves in Kentucky to use the underground railroad. Kentucky slaves did not seek help until after they had escaped into free territory.
Reconstruction to the Civil Right area
First Days of Freedom
Kentucky Slaves had not been freed by the Emancipation Proclamation. Determining their status near and at the end of the Civil War, created issues for freedman and authorities alike. Black Refugees flocked to refugee camps and into the cities to seek protection from Federal authorities. Federal officials proclaimed the slaves to be free, slave owners threatened any that was willing to employee "their" slaves, and officials arrested the "freedmen" as vagrants.
Major General John M. Palmer, Federal Commander of Kentucky, used his power under martial law to ease this tension. Palmer issued Order No. 32, on May 11, 1865, allowing the black population of Louisville Kentucky, including slaves, the right to move freely in Kentucky, and allowed them to cross over into Ohio. On July 20, he issues Order No. 32, allowing refugees to leave their appointed refugee camps throughout the state. These "Palmer Passes" greatly increased the movement of the "freedmen" throughout the state. During this period of movement multiple families sometimes lived in spaces unsuitable for a single family. They often occupied abandoned buildings, barns and stables. As one person put it " better a thousand fold liberty with poverty than plenty with slavery."
Those that took up freedom's promise often sot out the families that they had been separated from. Many of these family members, were often still held in slavery. "When Catherine Riley of Logan County demanded her child still held in slavery, her former owner beat her with a club and left her beside the road "covered with blood". The story of Rev. Elisha Green, illustrates the issues that Kentucky blacks faced. Green had three daughter, who were owned by three different family. One daughter, Amanda, used the "Palmer Pass" to be reunited with her father. Green was arrested for " harboring slaves", was found guilty, and fined thirty dollars. His daughter Maria owner, when Green refused to return her to him, finally agreed to let her go if she left the state. Green found a place in Ohio for her. Green's arranged for his third daughter, Caroline, to rescued from her owner by a squad of troops.
Kentucky lay out of the bounds of the Freedman's Bureau jurisdiction. However by June of 1865 Major General Oliver O Howard, the head of the Freedman's Bureau, directed that the Freedman's Bureau out of Tennessee begin extending its influence, if not authority in Kentucky. With the adoption of the 13th amendment, the bureau formally began overseeing Kentucky's former slaves. They promoted "industry, peace, good order, and education" for the black population of Kentucky. The bureau maintained educational activities until summer of 1870, and maintained a veterans' claim office until June 1872. The Freedman's bureau was not very effective in Kentucky due to the lack of funds, lack of federal troops in Kentucky, and the hostilities of white Kentuckians.
School Segregation
The passage of several state laws profoundly shaped the education of African American students in Lexington schools. In the 1890s laws commonly referred to as "Jim Crow" legally sanctioned segregation across the south. Named after an 1828 minstrel act and a common racial slur, these laws mandated the separation of whites and blacks in all public Facilities. This legislation permitted decades of discrimination in all schools, restaurants, train carriages hotels and cemeteries. Many Jim Crow laws remained in effect until the Civil Rights movement in the 1960s.
The state of Kentucky enacted the Day Law in July 1904 to specifically address segregation in schools. The law targeted the coeducation of black and white students at Berea College, and effectively segregated both public and private schools throughout the state. An enlighten institution such as Berea College, dedicated to educating African- Americans and the Appalachian poor, was prohibited from fulfilling their mission. The Day Law remained in effect until amended in 1948 to allow black physicians and nurses to take postgraduate instruction in public hospitals in Louisville. The bill was further amended in 1950 to allow black students to pursue classes unavailable at Kentucky State College. Berea College was the first institution to admit black students; the University of Kentucky and the University of Louisville quickly followed. In June 1954 the United States Supreme Court's ruling on Brown v. Board of Education invalidated the Day Law, and mandated school integration "with all deliberate speed."
Lexington History Museum
Explore the Museums
Pocket Museums
WikiLex: A History Hub


The Green Valley Park, with an area of approximately 25 hectares, is situated on green hills, in the midst of unspoiled nature, around the old town of Stárkov. The park is located near the Teplicko-Adršpašské Rock area in the unique nature park of Broumovsko, not far from the Polish border. Stárkov has a beautiful environment, not only because of the nature, but also because of the numerous cultural sites you will find here. The holiday villas are modern and solidly built in Czech style and offer western luxury. The apartments are fully and luxuriously furnished and are located in a sunny area. The park has a variety of facilities including a restaurant, a game room with snooker and darts, a riding ring, fishing pond, miniature golf course with a garden, a trampoline and lots of grazing animals. On the terrace of the main building and in the café you can use free WiFi. You can use Wi-Fi internet also in the villa for a fee (8 euros / week). For the little ones there is plenty of oppornity to have fun.
On the ground floor (100 m2) there is a living room with a comfortable seating area, doors leading to a furnished terrace, a satellite TV (with foreign channels) and in some apartments, a wood-burning stove or fireplace. Wood for the stove or fireplace is availabel for a fee. The luxurious, semi-open kitchen has a dining area, 4-burner electric hotplates, microwave, coffeemaker, kettle and a fridge. There is a large bathroom with a sink, shower and / or bathtub. There is a separate toilet. On the 1st floor there are two bedrooms furnished with two single beds. The third bedroom has a double bed. In some accommodations there is a second toilet. The villa has electric heating. In the villa you can use Wi-Fi internet for a fee (8 euros / week).
NOTICE:The tariff for gas/water/electricity. For energy are fixed costs calculated.
In this park there are many options for entertainment, so that no one will be bored: a riding ring, miniature golf and a childrens playground with a swimming pool, trampoline and fishing pond. The barbecue and campfire are suitable for a culinary festival, while the 'Lorna', a Czech feast featuring chicken, chops and sausage, is prepared on the open fire. You can also bowl, play golf or engage in a number of other games such as football, darts, pool or table tennis. There are organized horse and carriage rides (if there are a sufficient number of participants) and once a week there is a trip to Prague. For groups of 15 to 20 persons there is the possibility to book a golf or yacht package. In the park you can rent bikes to explore the surroundings. You can swim at the lake of the park. A tennis court is 500 meters away and for 'racers' there is a go-kart track 4 km from the park. - Tips for day trips: swimming and water sports at the sport center in Rozkoš, the heated outdoor pool in Trutnov, or the covered swimming pool in Polish Kudowa Zdroj. Hiking or climbing is possible at the Adršpach National Park with its rock formations. With the children go one day to the zoo and safari park in Dvůr Kralove nad Labem. For lovers of culture and history there is the imposing monastery complex in Kuks Broumov. Still to recommend: the Giant Mountains (Krkonose), the Christmas manger in Třebechovice, the aqua park in Hradec Kralove, or a visit to Poland with its Kudowa Zdroj resort, Gor Stolowich National Park and Polish market.


text:
What the Town Meeting on Iraq revealed
A political system in crisis
The February 18th "International Town Meeting" at Ohio State University was a political debacle for the Clinton administration. Intended to demonstrate popular support for the impending air war against Iraq, the meeting instead revealed widespread disquiet about a new military assault, as well as resentment and suspicion toward the government and the media.
Neither the White House operatives and CNN officials who staged the event, nor the three top foreign policy aides who defended the government's war plans, were prepared for the sometimes loud and often pointed opposition expressed by sections of the audience. The White House was apparently so confident that its town meeting--properly vetted to screen out embarrassing questions--would project the "right" image, it chose CNN to broadcast the event, knowing that the network's global range would reach Saddam Hussein's headquarters. A measure of how badly it miscalculated was the decision of the regime in Baghdad to rebroadcast to the Iraqi public excerpts of the program, showing questioners challenging the Clinton administration officials.
Secretary of State Madeleine Albright, Secretary of Defense William Cohen and national security adviser Samuel Berger thought they could go to Columbus and simply repeat their stock phrases about "weapons of mass destruction," "rogue states" and how the US represents "the will of the international community." In their arrogance, they exemplified the contempt of US policymakers for the intelligence of the American people.
No less astonishing than the administration's misreading of the public mood was the abysmally low level, from an intellectual standpoint, of its attempt to defend its policy. That people at the pinnacle of the government--ostensibly the most seasoned foreign policy specialists--should display such a combination of ignorance and incompetence can only mean they exist in a sheltered political environment, where none of the ideological assumptions of American imperialist policy are challenged, no one feels the need to answer to the people, and the overarching concern is how best to utilize the media to deceive the masses and manipulate public opinion.
Dodging the real questions
At the Town Meeting the three Clinton spokesmen resorted to pat phrases and diversions when confronted with questions reflecting many different standpoints, from those who implied a bombing attack would not go far enough, to those expressing concern over casualties, Iraqi as well as American, to those voicing outright opposition to US militarism and aggression. Challenged by a young teacher who asked why Washington was singling out Iraq when it supported many governments guilty of repression, torture and external aggression, Albright resorted to a crude smear, accusing the questioner of siding with Saddam Hussein.
At one level, the administration's political miscalculations reflect the degree to which the political establishment bases itself on the images of social reality created by the media -- images which bear little relation to the actual state of affairs. Indeed, the immediate response of some Clinton officials was to fault CNN for failing to anticipate and block opposition to the administration's policy. The main conclusion that will be drawn in high places is the need to take even more extensive measures to control such media events in the future.
The evolution of the American media over the past several decades is itself a significant aspect of the growing alienation of the political system from the masses of working people. In the 1960s and 70s government and corporate officials repeatedly expressed concern over widespread coverage of civil unrest and protest at home, and the role of the US military abroad. With images of violence in American cities and US atrocities in Vietnam filling the airwaves, the media became a frequent target of political attack.
The late 1970s and early 1980s saw a series of well-publicized libel actions, including General William Westmoreland's suit against CBS, aimed at bringing the media under tighter control. A consensus developed within top corporate and political circles that coverage and commentary on the social contradictions of American society, and critical exposures of its foreign policy, had to be suppressed.
The role of the media was to highlight the positive features of American life and galvanize public opinion behind the foreign policy objectives of American capitalism. Above all, it had the job of building support for US military interventions and vetting their coverage so as to exclude images of death and destruction.
US militarism and media censorship
Since the early 1980s, each instance of US aggression has been presented to the American public in an increasingly censored and distorted manner, beginning with Grenada in 1983, including Panama in 1989, and reaching its high point in the war against Iraq. In Desert Storm virtually no pictures were shown of dead Iraqis, either soldiers or civilians. To this day no report has been given of the death toll from the bombs, missiles and bullets of the US and its Gulf War allies.
At the same time that the techniques for manipulating the news grew more sophisticated, the integration of the media into the capitalist state became more pronounced. Today, with barely a pretense of objectivity, the major news outlets function as propaganda organs of the government.
This process has been reinforced by the increasing monopolization of the mass media. The major television networks in the US are now owned by a handful of corporate conglomerates--Disney (ABC), General Electric (NBC), Westinghouse (CBS), the Murdoch empire (Fox) and Time Warner (CNN).
The marriage of the corporate-controlled media and the state is reflected as well in the personnel who occupy the uppermost ranks of reporters, news anchors and commentators. Millionaires and multi-millionaires in their own right, they routinely hobnob with the so-called movers and shakers of the business and political world. The guest list at any major state function will include a significant number of TV news personalities and press commentators.
Media and government -- a tight knit circle
The politically incestuous relationship between big business, the government and the media is exemplified by personal ties. To cite a few examples: NBC White House correspondent Andrea Mitchell is married to Alan Greenspan, the chairman of the Federal Reserve Board; CNN's chief international correspondent Christiane Amanpour is married to James Rubin, the assistant secretary of state for public affairs; and ABC News' Cokie Roberts is the daughter of Hale Boggs (D-Louisiana), the late House majority leader.
Under such conditions, it is no wonder that the media--and the politicians who base themselves on focus groups, polls and the advice of media spin masters--can become entranced by the images of their own making. The very fact that the media, in practical terms, lacks any independence from the capitalist state actually contributes to the political disorientation within the ruling circles. Just in the space of a few weeks the pundits have been blindsided first by the public reaction to the Monica Lewinsky sex scandal, and now by the growing disquiet over a military attack on Iraq.
The problem for Clinton and the entire political establishment highlighted by the Town Meeting in Ohio cannot be solved by media manipulators. That event provided a glimpse of the profound isolation of the ruling elite in America from the masses of working people.
The insulation of policy makers has grown dramatically over the past two decades, as the chasm has widened between the rich and the super rich on the one hand, and the vast majority of the population on the other. To an unprecedented degree, the economic and political elite in America live in a world of luxury and power that has only the most tenuous connections to the world of economic insecurity and stagnant or falling living standards inhabited by working people.
The official institutions of politics and mass communications function shamelessly as the handmaidens of corporate wealth and power. Dazzled by the success of the stock market, lulled by the subservience of what is called the organized labor movement, the narrow and privileged social layer that holds the reins of power is inclined to take for good coin the media images of a prosperous and contented nation.
Clinton's Pentagon speech -- illusion and reality
Indeed, one day before the Ohio disaster, Clinton presented in his speech from the Pentagon just such an idyllic picture of America at the end of the 20th century. The only threat to universal peace and prosperity, he asserted, was the demonic force supposedly embodied in the person of Saddam Hussein.
Columbus was chosen as the site for the Town Meeting because of its credentials as a white collar, conservative city. But how many families in the Columbus area have been hit by corporate downsizing, the decay of public education, the soaring cost of health insurance, and the general decay of urban life?
It was this social reality and the growing alienation of masses of people from the existing political system that found their expression--as yet in a politically unfocused form--in the Town Meeting. In its aftermath, commentators worried out loud that the very image of working people and students standing up to government officials and challenging their war propaganda, at an event broadcast around the world, would have a catalytic effect, reassuring millions of others that they are not alone in their anger and opposition, and emboldening them to speak out against the government's policies. The New York Times noted nervously that the forum at Ohio State University was "eerily reminiscent of the protests and passions generated by the Vietnam War."
At the same time, the Town Meeting expressed the increasingly hollow and worm-eaten character of democracy in America. The fact that the ruling class and its political representatives feel they can launch major military interventions without so much as the pretense of serious public debate, or even the constitutional requirement of Congressional approval, is one expression of the incompatibility of political democracy with the existing level of social inequality.
It is critical that the growing social discontent, which will inevitably express itself in great class struggles, find expression in a political program that articulates the real needs and interests of the masses of working people.
The World Socialist Web Site is dedicated to providing the political analysis, historical knowledge and socialist perspective which the coming mass movement will require. This is the only basis for opposing imperialist war and the assault on democratic rights.
North AmericaAmericasUnited States


text:
Apr16Fri
No Time to Say Goodbye
Suicide is not the only way out. Caring friends, relatives and professionals can make the difference between life and death April 16, 2010 by Alex Newman
It's always there—the missing him," says Judith Kennedy.
Losing a child was the worst thing imaginable for Judith. But losing that child to suicide made it even worse—the recurring nightmares about how he took his life, not knowing what despair went through his mind beforehand, feeling that she should have done more but not knowing what. Suicide spares no one and brings no closure.
A Family's Grief
Her son Michael's suicide 18 years ago didn't come as a complete surprise—he'd attempted it three times and the family had dealt with trauma since he was eight, when he was sexually abused by a camp counsellor.
In retrospect, seemingly unrelated incidents were warning signs—brain trauma after being knocked out in a hockey game and ending up in hospital for four days, experimenting with drugs, getting into a fight at university and other "strange episodes."
Doctors all over the United States and Canada gave Judith different diagnoses: bipolar, schizophrenia and, finally, "diagnostic enigma"—meaning they didn't have a clue.
Despite the lead-up, when Michael took his life in 1992, the family was devastated. Unable to pray, Judith lit a candle and meditated, one word at a time: "mercy, Jesus, beloved." She sat in Michael's room, holding his teddy bear, rocking back and forth, weeping.
"There just weren't words," she remembers.
Her husband, Jim, would lie on the couch every night, "so lifeless in his grief, I thought he was dead. His hair turned white before my eyes."
Their other four children grieved deeply, each in their own way. Even the dog was affected, not moving for days from the spot near the urn that held Michael's ashes.
For a deeply faithful family, how could such a thing happen?
Offering Help
"Nobody, Christian or otherwise, is exempt from life's struggles," says Stephanie Oliver, director of The Salvation Army's Suicide Prevention Services in Hamilton, Ont.
Christian countries have lower rates of suicide. But for many Christians, the pressure that they shouldn't be depressed or suicidal because they believe in an all-powerful God only increases a sense of failure, and isolates them even more.
Approximately 4,000 suicides take place in Canada each year. The exhausting struggle to cope with difficult circumstances such as divorce, death, unemployment or abuse can often lead to feelings of hopelessness. "There's a desire to escape whatever is causing pain, frustration, pressure or failure, and suicide is seen as a way of ending that," Stephanie explains. "Teens are especially vulnerable because they are less able to be objective, and can feel more desperate." In fact, suicide is the second-leading cause of death for Canadian youths between the ages of 10 and 24.
Any time is a good time to intervene if you suspect someone is suicidal, she adds. Keep an eye on anyone struggling with difficult circumstances in their lives, whether at home, work or church. "Pray, be caring and listen—really listen—and then do something. Practical support is the place to start."
Lives Lost and Left Behind
Debbie Miller, a member of The Salvation Army crisis-line team for almost 20 years, has fielded hundreds of calls from people about to attempt suicide. "Most are completely without supports," she states, "Their relationships are severed. They feel no one cares, and they're isolated."
She's talked many callers back from the brink, among them a young man who took drugs and contracted HIV, and another man facing divorce court for the second time. Debbie uses empathy, active listening skills and gentle persuasion—for example, asking the divorced man to take his kids' pictures out of his wallet and look at them.
"You develop a gut feeling about people after a while," Debbie believes, "and you have to be compassionate and sincere. Callers know when you're not real."
Though she is prepared to provide as much support as necessary, there's nothing Debbie can do about what happens after. The tragedy lies not only with those lost but with the shattered lives of those left behind.
That's where the Church can step in with pastoral understanding, care and sensitivity. "God is a refuge and strength, and offers unconditional love," says Major Doug Hefford, a Salvation Army pastor who's presided over the funerals of two suicide victims. "We live in a culture that devalues human life, and the Church has a role in changing that perception. We reinforce the importance of life, and God calls us to deliver a message of grace that says no matter what happens to the body, we can't destroy who we are in Him."
For the Kennedys, worshipping in a caring Anglican parish made all the difference. There was material help—prepared meals, a single rose—and friends and acquaintances sent messages of hope and encouragement. Eminent theologian Henri Nouwen delivered the eulogy and visited their home. Missionaries living in Africa sent their condolences. Even a nurse from the hospital where Michael died came to church and, out of her pain, brought some solace to them.
"There were moments of profound and real community," Judith Kennedy recalls. "I had been in Bible study with the same people for about 20 years. They didn't give advice or hand me lists of books to read. We just sat there and held hands around the table, and Christ was in our midst."
Eventually, between bouts of weeping, Judith found a renewed joy in the preciousness of life. "All our children are beautiful Christians," she says. "Their brother's death made them probe and question their beliefs, but their faith became deeper as a result."
Judith's faith has turned her grief to grace, giving her the heart to support others who have lost someone to suicide. "I hold on to a verse from one of the Psalms," she says, " 'Those who sow with tears will reap with songs of joy' (Psalm 126:5). God sends angels to us in times of loss, pain and grief. Any one of us can answer the call to be one."
The Salvation Army Suicide Crisis Line (905) 522-1477. Collect calls accepted
Centre for Suicide Prevention (www.suicideinfo.ca). The purpose of the Calgary-based centre is to inform and equip people with additional knowledge and skills for the prevention of suicide. (403) 245-3900 or csp@suicideinfo.ca
Know some of the key warning signs (helplessness, hopelessness, lack of purpose, anxiety, anger, feeling trapped, withdrawing from life, acting reckless, talking about death, dramatic mood changes)
Know how to get help, and take all threats seriously
Ask the person: "Are you thinking of suicide?" Asking someone if they are suicidal will not make them suicidal. Most likely they will be relieved that you asked
Listen actively. Remain calm and do not judge. Explore and encourage other options.
Options give hope
Do not agree to keep the person's suicidal thoughts or plans a secret. Get help
« Influential Leadership View All Revival is in the Air »


When a tenant is in rental arrears, it can be rather costly for the landlord. Particularly, if the appropriate rental arrears procedures are not followed by the property manager.
A good Property Manager will ensure all tenants sign a rental payment agreement form at the beginning of their lease and understand their rental payment obligations. Should your tenant fall into arrears, under the Residential Tenancies and Rooming Accommodation Act (RTRA Act), action can only be taken against a tenant when they are seven clear days behind in their rental payments. Best practice for an agency is that they contact the tenant prior to this time and advise them of the rent payment being overdue. Section 280 allows your agent, on your behalf, to serve a breach notice to the tenant on the 8th day of arrears. Under legislation the tenant is then given the allowed remedy period of 7 days to pay the rent owing. They should then advise you promptly if rent defaults occur and keep you informed of the developments until there is an outcome.
Property Manager calls all tenants who are four days in arrears and diarise each conversation.
Advise tenants that they are four days overdue and if they reach 8 days they will be issued with a breach notice.
Property Manager to issue a Form 11 Notice to Remedy Breach.
Phone lessor and provide a copy via email of post to lessor.
Property Manager to phone tenant to enquire about rent payment and diarise.
Property Manager to advise licensee/manager if required.
If tenant has not vacated, Property Manager is to lodge QCAT Form 2—urgent application for termination warrant of possession. Discuss with lessor.
How Much Should I Pay In Property Management Fees?


text:
Der 200-Meter-Lauf der Männer bei den Olympischen Spielen 1912 in Stockholm wurde am 10. und 11. Juli 1912 im Stockholmer Olympiastadion ausgetragen. 61 Athleten nahmen daran teil.

Olympiasieger wurde der US-Amerikaner Ralph Craig vor seinem Landsmann Donald Lippincott. Die Bronzemedaille gewann der Brite Willie Applegarth.

Die deutschen Starter Heinrich Wenseler und Emil Ketterer sowie die Österreicher Rudolf Rauch, Władysław Ponurski und Fritz Fleischer schieden in ihren Vorläufen aus. Erwin Kern, Deutschland, konnte wegen einer Verletzung nicht antreten. Bester Athlet aus den deutschsprachigen Ländern war Richard Rau aus Deutschland, der bis ins Finale kam und dort den vierten Platz belegte. Schweizer Athleten waren nicht am Start.

Bestehende Rekorde
Der hier angegebene Weltrekord wurde in einem Rennen über 220 Yards aufgestellt das entspricht 201,168 Metern.

Anmerkung zum Weltrekord durch Dan Kelly von 1906:
Dan Kelly war auf einer geraden Bahn ohne Kurve gelaufen.

Der bestehende olympische Rekord wurde bei diesen Spielen nicht ganz erreicht.

Durchführung des Wettbewerbs
Am 10. Juli wurden insgesamt achtzehn Vorläufe durchgeführt. Die auf den jeweils ersten beiden Plätzen eingelaufenen Athleten – hellblau unterlegt – qualifizierten sich für die Halbfinals, die am gleichen Tag durchgeführt wurden. In den sechs Läufen qualifizierten sich jeweils nur die Sieger für das Finale am 11. Juli.

Vorlrunde
Datum: 10. Juli 1912

Die auf den jeweils ersten beiden Plätzen eingelaufenen Athleten – hellblau unterlegt – qualifizierten sich für die Halbfinals.

Es sind nur wenige Zeiten überliefert, die Siegeszeiten und einige wenige andere. Auch im offiziellen Bericht der Spiele werden lediglich die Abstände der weiteren Läufer in Zentimetern oder Metern angegeben, nicht jedoch die Zeiten.

Sehr seltsam muten hier die Einteilungen in den Vorläufen an. Einige Rennen gingen mit lediglich zwei Teilnehmern vonstatten, die so natürlich beide schon vorher das Weiterkommen sicher hatten, während andere Läufe mit bis zu fünf Sprintern durchgeführt wurden.

Vorlauf 1

Vorlauf 2

Vorlauf 3

Ira Courtney konnte den Briten Duncan Macmillan auf Distanz halten, der sich von einerTrainingsverletzung, die er sich wenige Tage vor Beginn der Wettkämpfe zugezogen hatte, erholt hatte.

Vorlauf 4

Vorlauf 5

Vorlauf 6

Vorlauf 7

Carl Cooke schlug den Südafrikaner Reuben Povey im schnellsten aller Vorläufe.

Vorlauf 8

Vorlauf 9

Vorlauf 10

Vorlauf 11

Vorlauf 12

Vorlauf 13

Donnell Young und Cyril Seedhouse achteten nur auf den jeweiligen Gegner.Seedhouse hinderte Young nicht am Sieg.

Vorlauf 14

Vorlauf 15

Vorlauf 16

Die beiden einzigen Teilnehmer an diesem Lauf liefen nicht ernsthaft und passierten die Ziellinie fast gleichzeitig.

Vorlauf 17

Vorlauf 18

Halbfinale
Datum: 10. Juli 1912

Für das Finale qualifizierten sich nur die Sieger – hellblau hinterlegt. Wie in den Vorläufen wurden hier nur die Siegeszeiten und einige wenige andere Zeiten übermittelt.

Lauf 1

Es gab einen Start-Ziel-Sieg des US-Amerikaners Ralph Craig.

Lauf 2

William Applegarth und Clement Wilson lieferten sich bis zum Ziel einen harten Kampf, den der Brite für sich entscheiden konnte.

Lauf 3

Lauf 4

Während in der Kurve Ivan Möller und John Howard den beidenUS-Amerikanern noch folgen konnten, legten diese auf der Geraden anGeschwindigkeit zu. Am Ende lief Donald Lippincott die schnellste Zeit des Tages.

Lauf 5

Charles Luther hatte einen schlechten Start und kämpfte sich bis zurGeraden an die beiden Führenden, Richard Rau und Peter Gerhardt, heran. Nach 120 Metern lagen die drei fast gleichauf. Rau hatte das stärkste Finishund siegte knapp vor Gerhardt und Luther.

Lauf 6

Auch im letzten Halbfinale kam es zu einem Dreikampf. Charles,ReidpathVictor d'Arcy und Knut Lindberg lagen bis 25 Metervor dem Ziel fast gleichauf, als Reidpath noch einmal beschleunigteund knapp gewinnen konnte.

Finale

Datum: 11. Juli 1912

Es war die achte US-Medaille in dieser Disziplin seit der Einführung 1900.

Nach einem schnellen Start lagen die US-Amerikaner in Führung. Ausgangs der Kurve konnte William Applegarth die Spitze übernehmen, doch Ralph Craig zog an ihm vorbei. Donald Lippincott konnte Craig folgen, doch Craig hatte das beste Stehvermögen. Applegarth und Richard Rau kämpften am Ende um Platz drei, der Brite erwies sich als der Stärkere.
Ralph Craig wurde nach seinem Sieg über 100 Meter Doppelolympiasieger.

Bildergalerie

Video
 1912 Stockholm Olympics - 100m & 200m, youtube.com (englisch), abgerufen am 16. Mai 2021

Literatur
 Ekkehard zur Megede, Die Geschichte der olympischen Leichtathletik, Band 1: 1896–1936, Verlag Bartels & Wernitz KG, Berlin, 2. Auflage 1970, S. 99f

Weblinks
 SportsReference 200 m, abgerufen am 25. August 2017
 Offizieller Bericht, engl. (PDF; 52.385 KB), abgerufen am 25. August 2017
 Olympedia, 1912 Summer Olympics, Athletics 200 m metres, Men, olympedia.org (englisch), abgerufen am 16. Mai 2021
 Olympic Games Stockholm 1912, Athletics, 200m men, Seite des IOC zur Leichtathletik bei den Olympischen Spielen 1912, olympic.org (englisch), abgerufen am 16. Mai 2021

Einzelnachweise

Leichtathletikwettbewerb bei den Olympischen Sommerspielen 1912
Laufveranstaltung in Schweden

redpajama_set_name: RedPajamaWikipedia


Home Plans Designs Photos Kerala With Home Plan Design Free Plan And Elevation Kerala Home Design Floor. Home Plans Designs Photos Kerala With 59 Elegant Image Kerala Home Plan And Design | Home Plans Inspiration. Home Plans Designs Photos Kerala With Luxury Plan For 4 Bedroom House In Kerala New Home Plans Design. Home Plans Designs Photos Kerala With Luxurious And Splendid Kerala House Plans Designs 8 Style Home. Home Plans Designs Photos Kerala With Modern House Plans In Kerala Homes Floor Plans. Home Plans Designs Photos Kerala With New Home Plan Designs Fresh N House Plans Designs Kerala Home Design. Home Plans Designs Photos Kerala With New Golf Course House Plans Designs | Home Interior And Design. Home Plans Designs Photos Kerala With Kerala House Plans Designs Free. Home Plans Designs Photos Kerala With Kerala House Designs And Floor Plans Marvelous Design Plan Home. Home Plans Designs Photos Kerala With Kerala Architectural House Plans Home Design Architecture Wallpaper.


Marissa's wedding is the epitome of Spring....bright, colorful and full of open blooms!
Marissa wanted to stand out with all of the color for her bouquet with these pink, lavender and peach flowers!
The bride's bouquet was filled with pale pink peonies, bright mauve double tulips, lavender stock and tiffany and faith roses with accents of queen anne's lace, dusty miller and eucalyptus.
Each of our bride's are given a keepsake brooch that best compliments their bouquet and personality! Oh and check out the lovely lace and tulle provided by the bride, Marissa.
Marissa kept it neutral with these white and ivory bouquets to coordinate the dusty lavender bridesmaids dresses.
The bridesmaids' bouquets were filled with polo roses, white stock and sweet william with accents of queen anne's lace, dusty miller and eucalyptus.
The mantle arrangement tied everything together!
Flowers for the cake was the perfect touch!
2. How did you choose your wedding color palette? I'm not sure exactly, but purple is my favorite color and it was a summer wedding. I've always loved how lavender and sage look together.
4. What was your favorite part about your wedding day flowers? Everything. They were absolutely perfect. My bouquet and the brooch that was given to me by you.
Thanks to Marissa and Drew for choosing The Floral Cottage to design the flowers for your wedding day! Your wedding colors are style are unforgettable just like you. We wish you many years of love and happiness!
The bride chose vibrant colors of pink, lavender and peach for her bouquets and neutral shades of white and ivory the bridesmaids!


text:
'use strict'

const chai = require('chai');
const expect = chai.expect;
const msgUtils = require('../src/utils/message_utils.js');
const BN = require('bn.js');

describe('gennodejsTests', () => {
  msgUtils.loadMessagePackage('std_msgs');
  msgUtils.loadMessagePackage('test_msgs');
  msgUtils.loadMessagePackage('actionlib_msgs');

  it('basic', (done) => {
    let stringMsg;
    const loadStrFunc = () => {
      stringMsg = msgUtils.getHandlerForMsgType('std_msgs/String');
    };
    expect(loadStrFunc).to.not.throw(/good function/);
    expect(stringMsg).to.be.a('function');
    expect(stringMsg).to.have.property('serialize');
    expect(stringMsg.serialize).to.be.a('function');
    expect(stringMsg).to.have.property('deserialize');
    expect(stringMsg.deserialize).to.be.a('function');
    expect(stringMsg).to.have.property('datatype');
    expect(stringMsg.datatype).to.be.a('function');
    expect(stringMsg).to.have.property('md5sum');
    expect(stringMsg.md5sum).to.be.a('function');
    expect(stringMsg).to.have.property('messageDefinition');
    expect(stringMsg.messageDefinition).to.be.a('function');

    done();
  });

  it('json or instance', (done) => {
    const msgData = 'chatter';
    const stdMsgString = msgUtils.getHandlerForMsgType('std_msgs/String');
    const msgInstance = new stdMsgString();
    msgInstance.data = msgData;

    let instanceBuffer = new Buffer(stdMsgString.getMessageSize(msgInstance));
    stdMsgString.serialize(msgInstance, instanceBuffer, 0);

    let jsonMsg = {data: msgData};
    let jsonBuffer = new Buffer(stdMsgString.getMessageSize(jsonMsg));
    stdMsgString.serialize(jsonMsg, jsonBuffer, 0);

    expect(instanceBuffer.equals(jsonBuffer)).to.be.true;

    done();
  });

  describe('builtins', () => {
    it('string', (done) => {
      const stdMsgString = msgUtils.getHandlerForMsgType('std_msgs/String');
      const msgData = 'chatter';
      const msgSize = 4 + msgData.length;
      // manually serialize string msg
      const fullMsg = new Buffer(msgSize);
      fullMsg.writeUInt32LE(msgData.length);
      fullMsg.write(msgData, 4);

      // auto serialize
      const msg = new stdMsgString();
      msg.data = msgData;

      const fullMsg2 = new Buffer(stdMsgString.getMessageSize(msg));
      stdMsgString.serialize(msg, fullMsg2, 0);

      // expect equality
      expect(fullMsg.equals(fullMsg2)).to.be.true;

      // deserialize msg buffer - should equal original msgData
      expect(stdMsgString.deserialize(fullMsg2, [0]).data).to.equal(msgData);

      expect((new stdMsgString()).data).to.equal('');

      done();
    });

    it('bool', (done) => {
      const data = true;

      const msgBuffer = new Buffer(1);
      msgBuffer.writeInt8(true);

      const msgBuffer2 =  new Buffer(1);
      const Bool = msgUtils.getHandlerForMsgType('std_msgs/Bool');
      Bool.serialize({data: data}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(Bool.deserialize(msgBuffer2, [0]).data).to.equal(data);

      expect((new Bool()).data).to.equal(false);

      done();
    });

    it('int8', (done) => {
      const intData = -33;

      const msgBuffer = new Buffer(1);
      msgBuffer.writeInt8(intData);

      const msgBuffer2 =  new Buffer(1);
      const Int8 = msgUtils.getHandlerForMsgType('std_msgs/Int8');
      Int8.serialize({data: intData}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(Int8.deserialize(msgBuffer2, [0]).data).to.equal(intData);

      expect((new Int8()).data).to.equal(0);

      done();
    });

    it('uint8', (done) => {
      const data = 32;

      const msgBuffer = new Buffer(1);
      msgBuffer.writeInt8(data);

      const msgBuffer2 =  new Buffer(1);
      const UInt8 = msgUtils.getHandlerForMsgType('std_msgs/UInt8');
      UInt8.serialize({data: data}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(UInt8.deserialize(msgBuffer2, [0]).data).to.equal(data);

      expect((new UInt8()).data).to.equal(0);

      done();
    });

    it('int16', (done) => {
      const intData = -3345;

      const msgBuffer = new Buffer(2);
      msgBuffer.writeInt16LE(intData);

      const msgBuffer2 =  new Buffer(2);
      const Int16 = msgUtils.getHandlerForMsgType('std_msgs/Int16');
      Int16.serialize({data: intData}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(Int16.deserialize(msgBuffer2, [0]).data).to.equal(intData);

      expect((new Int16()).data).to.equal(0);

      done();
    });

    it('uint16', (done) => {
      const data = 65530;

      const msgBuffer = new Buffer(2);
      msgBuffer.writeUInt16LE(data);

      const msgBuffer2 =  new Buffer(2);
      const UInt16 = msgUtils.getHandlerForMsgType('std_msgs/UInt16');
      UInt16.serialize({data: data}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(UInt16.deserialize(msgBuffer2, [0]).data).to.equal(data);

      expect((new UInt16()).data).to.equal(0);

      done();
    });

    it('int32', (done) => {
      const intData = -3345;

      const msgBuffer = new Buffer(4);
      msgBuffer.writeInt32LE(intData);

      const msgBuffer2 =  new Buffer(4);
      const Int32 = msgUtils.getHandlerForMsgType('std_msgs/Int32');
      Int32.serialize({data: intData}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(Int32.deserialize(msgBuffer2, [0]).data).to.equal(intData);

      expect((new Int32()).data).to.equal(0);

      done();
    });

    it('uint32', (done) => {
      const data = 65530;

      const msgBuffer = new Buffer(4);
      msgBuffer.writeUInt32LE(data);

      const msgBuffer2 =  new Buffer(4);
      const UInt32 = msgUtils.getHandlerForMsgType('std_msgs/UInt32');
      UInt32.serialize({data: data}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(UInt32.deserialize(msgBuffer2, [0]).data).to.equal(data);

      expect((new UInt32()).data).to.equal(0);

      done();
    });

    it('int64', (done) => {
      const intData = new BN('9223372036854765802');

      const msgBuffer = intData.toBuffer('le', 8);

      const msgBuffer2 =  new Buffer(8);
      const Int64 = msgUtils.getHandlerForMsgType('std_msgs/Int64');
      Int64.serialize({data: intData}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(intData.eq(Int64.deserialize(msgBuffer2, [0]).data)).to.be.true;

      expect((new Int64()).data).to.equal(0);

      done();
    });

    it('uint64', (done) => {
      const intData = new BN('9223372036854765802');

      const msgBuffer = intData.toBuffer('le', 8);

      const msgBuffer2 =  new Buffer(8);
      const UInt64 = msgUtils.getHandlerForMsgType('std_msgs/UInt64');
      UInt64.serialize({data: intData}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(intData.eq(UInt64.deserialize(msgBuffer2, [0]).data)).to.be.true;

      expect((new UInt64()).data).to.equal(0);

      done();
    });

    it('float32', (done) => {
      const data = -3345.123;

      const msgBuffer = new Buffer(4);
      msgBuffer.writeFloatLE(data);

      const msgBuffer2 =  new Buffer(4);
      const Float32 = msgUtils.getHandlerForMsgType('std_msgs/Float32');
      Float32.serialize({data: data}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(Float32.deserialize(msgBuffer2, [0]).data).to.be.closeTo(data, 0.0005);

      expect((new Float32()).data).to.be.closeTo(0.0, 0.0005);

      done();
    });

    it('float64', (done) => {
      const data = -3345.123576;

      const msgBuffer = new Buffer(8);
      msgBuffer.writeDoubleLE(data);

      const msgBuffer2 =  new Buffer(8);
      const Float32 = msgUtils.getHandlerForMsgType('std_msgs/Float64');
      Float32.serialize({data: data}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      expect(Float32.deserialize(msgBuffer2, [0]).data).to.be.closeTo(data, 0.0000005);

      expect((new Float32()).data).to.be.closeTo(0.0, 0.0000005);

      done();
    });

    it('time', (done) => {
      const time = {secs: 0, nsecs: 0};

      const msgBuffer = new Buffer(8);
      msgBuffer.writeInt32LE(time.secs)
      msgBuffer.writeInt32LE(time.nsecs, 4);

      const msgBuffer2 =  new Buffer(8);
      const Time = msgUtils.getHandlerForMsgType('std_msgs/Time');
      Time.serialize({data: time}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      const deserializedTime = Time.deserialize(msgBuffer2, [0]).data;
      expect(deserializedTime.secs).to.equal(time.secs);
      expect(deserializedTime.nsecs).to.equal(time.nsecs);

      expect((new Time()).data).to.deep.equal({secs: 0, nsecs: 0});

      done();
    });

    it('duration', (done) => {
      const duration = {secs: 0, nsecs: 0};

      const msgBuffer = new Buffer(8);
      msgBuffer.writeInt32LE(duration.secs)
      msgBuffer.writeInt32LE(duration.nsecs, 4);

      const msgBuffer2 =  new Buffer(8);
      const Duration = msgUtils.getHandlerForMsgType('std_msgs/Duration');
      Duration.serialize({data: duration}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      const deserializedDuration = Duration.deserialize(msgBuffer2, [0]).data;
      expect(deserializedDuration.secs).to.equal(duration.secs);
      expect(deserializedDuration.nsecs).to.equal(duration.nsecs);

      expect((new Duration()).data).to.deep.equal({secs: 0, nsecs: 0});

      done();
    });

    it('string', (done) => {
      const str = 'Hello, 世界';
      const len = Buffer.byteLength(str);
      const msgBuffer = Buffer.alloc(4 + len);
      msgBuffer.writeUInt32LE(len)
      msgBuffer.write(str, 4, len, 'utf8');

      const msgBuffer2 =  Buffer.alloc(4 + len);
      const StrMsg = msgUtils.getHandlerForMsgType('std_msgs/String');
      StrMsg.serialize({data: str}, msgBuffer2, 0);

      expect(msgBuffer.equals(msgBuffer2)).to.be.true;
      const deserializedString = StrMsg.deserialize(msgBuffer2, [0]).data;
      expect(deserializedString).to.equal(str);

      done();
    });
  });

  describe('complex_msgs', () => {
    it('messages and constants', (done) => {
      const BaseType = msgUtils.getHandlerForMsgType('test_msgs/BaseType');

      expect(BaseType).to.be.a('function');
      expect(BaseType).to.have.property('Constants');

      expect(BaseType.Constants.NUMERIC_CONSTANT_A).to.be.a('number');
      expect(BaseType.Constants.NUMERIC_CONSTANT_B).to.be.a('number');
      expect(BaseType.Constants.STRING_CONSTANT).to.be.a('string');

      expect(BaseType.Constants.NUMERIC_CONSTANT_A).to.equal(1);
      expect(BaseType.Constants.NUMERIC_CONSTANT_B).to.equal(2);
      expect(BaseType.Constants.STRING_CONSTANT).to.equal('hello');

      const baseType = new BaseType();
      expect(BaseType.getMessageSize(baseType)).to.equal(5);
      baseType.string_field = BaseType.Constants.STRING_CONSTANT;
      baseType.num_field = BaseType.Constants.NUMERIC_CONSTANT_A;
      let newlen = 5 + BaseType.Constants.STRING_CONSTANT.length;
      expect(BaseType.getMessageSize(baseType)).to.equal(newlen);

      const msgBuffer = new Buffer(BaseType.getMessageSize(baseType));
      BaseType.serialize(baseType, msgBuffer, 0);

      const deserializedMsg = BaseType.deserialize(msgBuffer, [0]);

      expect(deserializedMsg.string_field).to.equal(baseType.string_field);
      expect(deserializedMsg.num_field).to.equal(baseType.num_field);

      done();
    });

    it('check constant types', (done) => {
      const AllTypes = msgUtils.getHandlerForMsgType('test_msgs/AllTypes');

      expect(AllTypes).to.be.a('function');
      expect(AllTypes).to.have.property('Constants');

      expect(AllTypes.Constants.STRING_CONST).to.equal('1');
      expect(AllTypes.Constants.UINT8_CONST).to.equal(1);
      expect(AllTypes.Constants.UINT16_CONST).to.equal(1);
      expect(AllTypes.Constants.UINT32_CONST).to.equal(1);
      expect(AllTypes.Constants.UINT64_CONST).to.equal(1);
      expect(AllTypes.Constants.INT8_CONST).to.equal(1);
      expect(AllTypes.Constants.INT16_CONST).to.equal(1);
      expect(AllTypes.Constants.INT32_CONST).to.equal(1);
      expect(AllTypes.Constants.INT64_CONST).to.equal(1);
      expect(AllTypes.Constants.FLOAT32_CONST).to.equal(1);
      expect(AllTypes.Constants.FLOAT64_CONST).to.equal(1);
      expect(AllTypes.Constants.BYTE_CONST).to.equal(1);
      expect(AllTypes.Constants.CHAR_CONST).to.equal(1);
      expect(AllTypes.Constants.BOOL_CONST).to.equal(true);

      expect(AllTypes.md5sum()).to.equal('95bdfe2fab3bda07e308f9640f25904c');

      const allTypeMsg = new AllTypes();

      expect(allTypeMsg.string_field).to.equal('');
      expect(allTypeMsg.uint8_field).to.equal(0);
      expect(allTypeMsg.uint16_field).to.equal(0);
      expect(allTypeMsg.uint32_field).to.equal(0);
      expect(allTypeMsg.uint64_field).to.equal(0);
      expect(allTypeMsg.int8_field).to.equal(0);
      expect(allTypeMsg.int16_field).to.equal(0);
      expect(allTypeMsg.int32_field).to.equal(0);
      expect(allTypeMsg.int64_field).to.equal(0);
      expect(allTypeMsg.float32_field).to.equal(0);
      expect(allTypeMsg.float64_field).to.equal(0);
      expect(allTypeMsg.byte_field).to.equal(0);
      expect(allTypeMsg.char_field).to.equal(0);
      expect(allTypeMsg.bool_field).to.equal(false);
      expect(allTypeMsg.time_field).to.deep.equal({secs: 0, nsecs: 0});
      expect(allTypeMsg.duration_field).to.deep.equal({secs: 0, nsecs: 0});

      done();
    });

    it('initialization', () => {
      const BaseType = msgUtils.getHandlerForMsgType('test_msgs/BaseType');

      let baseType = new BaseType();
      expect(baseType.string_field).to.be.empty;
      expect(baseType.num_field).to.equal(0);

      const stringField = 'AnInTeReStInGVaLuE';
      const numField = 12345;

      baseType = new BaseType({
        string_field: stringField,
        num_field: numField
      });

      expect(baseType.string_field).to.equal(stringField);
      expect(baseType.num_field).to.equal(numField);

      const stringField2 = 'Woahh, they changed it';
      baseType.string_field = stringField2;

      baseType = new BaseType(baseType);
      expect(baseType.string_field).to.equal(stringField2);
      expect(baseType.num_field).to.equal(numField);

      const BaseTypeVariableLengthArray = msgUtils.getHandlerForMsgType('test_msgs/BaseTypeVariableLengthArray');
      let instance1 = new BaseTypeVariableLengthArray();

      expect(instance1.array_field).to.deep.equal([]);

      instance1.array_field.push(baseType);
      expect(instance1.array_field[0]).to.equal(baseType);

      let instance2 = new BaseTypeVariableLengthArray(instance1);
      expect(instance1.array_field).to.deep.equal(instance2.array_field);

      const BasicService = msgUtils.getHandlerForSrvType('test_msgs/BasicService');
      let basicServiceReq = new BasicService.Request();

      expect(basicServiceReq.data).to.equal('');
      expect(basicServiceReq.op).to.equal('');

      basicServiceReq = new BasicService.Request({data: stringField, op: stringField2});

      expect(basicServiceReq.data).to.equal(stringField);
      expect(basicServiceReq.op).to.equal(stringField2);

      let basicServiceResp = new BasicService.Response();

      expect(basicServiceResp.result).to.equal('');

      basicServiceResp = new BasicService.Response({result: stringField});

      expect(basicServiceResp.result).to.equal(stringField);

      // expect full message definition (including test_msgs/BaseType)
      expect(BaseTypeVariableLengthArray.messageDefinition().includes(BaseType.messageDefinition().trim())).to.be.true;
    });

    it('constant length arrays', (done) => {
      const CLA = msgUtils.getHandlerForMsgType('test_msgs/ConstantLengthArray');

      const cla = new CLA();
      const claArrLen = 10;
      expect(cla.array_field).to.be.a('Array');
      expect(cla.array_field.length).to.equal(claArrLen);
      expect(CLA.getMessageSize(cla)).to.equal(claArrLen);

      cla.array_field.forEach((item) => {
        expect(item).to.be.a('number');
        expect(item).to.equal(0);
      });

      const msgBuffer = new Buffer(CLA.getMessageSize(cla));
      CLA.serialize(cla, msgBuffer, 0);
      expect(msgBuffer.length).to.equal(claArrLen);

      const deserializedMsg = CLA.deserialize(msgBuffer, [0]);
      expect(deserializedMsg.array_field.length).to.equal(claArrLen);

      const BTCLA = msgUtils.getHandlerForMsgType('test_msgs/BaseTypeConstantLengthArray');
      const BaseType = msgUtils.getHandlerForMsgType('test_msgs/BaseType');

      const btcla = new BTCLA();
      const btclaArrLen = 5;
      expect(btcla.array_field).to.be.a('Array');
      expect(btcla.array_field.length).to.equal(btclaArrLen);
      expect(BTCLA.getMessageSize(btcla)).to.equal(25);

      btcla.array_field.forEach((item) => {
        expect(item).to.be.an.instanceof(BaseType);
      });

      const msgBuffer2 = new Buffer(BTCLA.getMessageSize(btcla));
      BTCLA.serialize(btcla, msgBuffer2, 0);
      expect(msgBuffer2.length).to.equal(25);

      const deserializedMsg2 = BTCLA.deserialize(msgBuffer2, [0]);
      expect(deserializedMsg2.array_field.length).to.equal(btclaArrLen);
      deserializedMsg2.array_field.forEach((item) => {
        expect(item).to.be.an.instanceof(BaseType);
      });

      done();
    });

    it('variable length arrays', (done) => {
      const VLA = msgUtils.getHandlerForMsgType('test_msgs/VariableLengthArray');

      const vla = new VLA();
      expect(vla.array_field).to.be.a('Array');
      expect(vla.array_field.length).to.equal(0);
      expect(VLA.getMessageSize(vla)).to.equal(4);

      const msgBuffer = new Buffer(4);
      VLA.serialize(vla, msgBuffer, 0);

      const val = 12;
      const arrLen = 7;
      vla.array_field = new Array(arrLen).fill(val);
      vla.array_field.forEach((item) => {
        expect(item).to.be.a('number');
        expect(item).to.equal(val);
      });

      expect(VLA.getMessageSize(vla)).to.equal(arrLen + 4);
      const msgBuffer2 = new Buffer(VLA.getMessageSize(vla));
      VLA.serialize(vla, msgBuffer2, 0);

      const deserializedMsg = VLA.deserialize(msgBuffer2, [0]);
      expect(deserializedMsg.array_field.length).to.equal(arrLen);
      deserializedMsg.array_field.forEach((item) => {
        expect(item).to.be.a('number');
        expect(item).to.equal(val);
      });

      const BTVLA = msgUtils.getHandlerForMsgType('test_msgs/BaseTypeVariableLengthArray');
      const BaseType = msgUtils.getHandlerForMsgType('test_msgs/BaseType');

      const btvla = new BTVLA();
      expect(btvla.array_field).to.be.a('Array');
      expect(btvla.array_field.length).to.equal(0);
      expect(BTVLA.getMessageSize(btvla)).to.equal(4);

      const msgBuffer3 = new Buffer(VLA.getMessageSize(btvla));
      VLA.serialize(btvla, msgBuffer3, 0);
      expect(msgBuffer3.length).to.equal(4);

      const arrLen2 = 4;
      btvla.array_field = new Array(arrLen2).fill(new BaseType());

      expect(BTVLA.getMessageSize(btvla)).to.equal(24);

      const msgBuffer4 = new Buffer(BTVLA.getMessageSize(btvla));
      BTVLA.serialize(btvla, msgBuffer4, 0);

      const deserializedMsg2 = BTVLA.deserialize(msgBuffer4, [0]);
      expect(deserializedMsg2.array_field.length).to.equal(arrLen2);
      deserializedMsg2.array_field.forEach((item) => {
        expect(item).to.be.an.instanceof(BaseType);
      });

      done();
    });

    it('services and constants', (done) => {
      const BasicService = msgUtils.getHandlerForSrvType('test_msgs/BasicService');

      expect(BasicService).to.have.property('Request');
      expect(BasicService).to.have.property('Response');
      expect(BasicService).to.have.property('md5sum');
      expect(BasicService.md5sum).to.be.a('function');

      expect(BasicService.md5sum()).to.not.equal(BasicService.Request.md5sum());
      expect(BasicService.md5sum()).to.not.equal(BasicService.Response.md5sum());

      const BSRequest = BasicService.Request;
      expect(BSRequest.Constants.OP_REVERSE).to.equal('reverse');
      expect(BSRequest.Constants.OP_LEFT_PAD).to.equal('left_pad');
      const bsRequest = new BSRequest();
      expect(bsRequest.data).to.be.a('string');
      expect(bsRequest.op).to.be.a('string');
      expect(BSRequest.getMessageSize(bsRequest)).to.equal(8);

      const dataField = 'JUNK';
      bsRequest.data = dataField;
      bsRequest.op = BSRequest.Constants.OP_LEFT_PAD;
      let newlen = 8 + bsRequest.data.length + bsRequest.op.length;
      expect(BSRequest.getMessageSize(bsRequest)).to.equal(newlen);

      const msgBuffer = new Buffer(BSRequest.getMessageSize(bsRequest));
      BSRequest.serialize(bsRequest, msgBuffer, 0);

      const deserializedRequest = BSRequest.deserialize(msgBuffer, [0]);
      expect(deserializedRequest).to.be.an.instanceof(BSRequest);
      expect(deserializedRequest.data).to.equal(dataField);
      expect(deserializedRequest.op).to.equal(BSRequest.Constants.OP_LEFT_PAD);

      const BSResponse = BasicService.Response;
      expect(BSResponse.Constants.RES_NULL).to.equal('null');
      const bsResponse = new BSResponse();
      expect(bsResponse.result).to.be.a('string');

      bsResponse.result = BSResponse.Constants.RES_NULL;
      const msgBuffer2 = new Buffer(BSResponse.getMessageSize(bsResponse));
      BSResponse.serialize(bsResponse, msgBuffer2, 0);
      expect(msgBuffer2.length).to.equal(8);

      const deserializedResponse = BSResponse.deserialize(msgBuffer2, [0]);
      expect(deserializedResponse).to.be.an.instanceof(BSResponse);
      expect(deserializedResponse.result).to.equal(BSResponse.Constants.RES_NULL);

      done();
    });

    it('service depending on this package', (done) => {
      const TestService = msgUtils.getHandlerForSrvType('test_msgs/TestService');
      const BaseType = msgUtils.getHandlerForMsgType('test_msgs/BaseType');

      const TSRequest = TestService.Request;
      const TSResponse = TestService.Response;
      expect(TSRequest).to.be.a('function');
      expect(TSResponse).to.be.a('function');

      const tsRequest = new TSRequest();
      expect(TSRequest.getMessageSize(tsRequest)).to.equal(5);
      expect(tsRequest.input).to.be.an.instanceof(BaseType);
      tsRequest.input.string_field = BaseType.Constants.STRING_CONSTANT;

      let newlen = 5 + BaseType.Constants.STRING_CONSTANT.length;
      expect(TSRequest.getMessageSize(tsRequest)).to.equal(newlen);
      const msgBuffer = new Buffer(TSRequest.getMessageSize(tsRequest));
      TSRequest.serialize(tsRequest, msgBuffer, 0);
      expect(msgBuffer.length).to.equal(10);

      const deserializedRequest = TSRequest.deserialize(msgBuffer, [0]);
      expect(deserializedRequest).to.be.an.instanceof(TSRequest);
      expect(deserializedRequest.input).to.be.an.instanceof(BaseType);

      const tsResponse = new TSResponse();
      expect(tsResponse).to.be.empty;
      expect(TSResponse.getMessageSize(tsResponse)).to.equal(0);
      expect(TSResponse.getMessageSize()).to.equal(0);

      const msgBuffer2 = new Buffer(TSResponse.getMessageSize(tsResponse));
      TSResponse.serialize(tsResponse, msgBuffer2, 0);
      expect(msgBuffer2.length).to.equal(0);

      const deserializedRequest2 = TSResponse.deserialize(msgBuffer2, [0]);
      expect(deserializedRequest2).to.be.an.instanceof(TSResponse);
      expect(deserializedRequest2).to.be.empty;

      done();
    });

    it('message depending on another package', (done) => {
      const StdMsg = msgUtils.getHandlerForMsgType('test_msgs/StdMsg');
      const Header = msgUtils.getHandlerForMsgType('std_msgs/Header');

      const frameId = 'base';
      const time = {secs: 100, nsecs: 1000};
      const seq = 123;

      const header = new Header();
      expect(header.frame_id).to.be.a('string');
      header.seq = seq;
      header.stamp = time;
      header.frame_id = frameId;

      const stdMsg = new StdMsg();
      expect(StdMsg.getMessageSize(stdMsg)).to.equal(24);
      expect(stdMsg.header).to.be.an.instanceof(Header);
      stdMsg.header = header;
      stdMsg.time_field = time;

      let newlen = 24 + stdMsg.header.frame_id.length;
      expect(StdMsg.getMessageSize(stdMsg)).to.equal(newlen);
      const msgBuffer = new Buffer(StdMsg.getMessageSize(stdMsg));
      StdMsg.serialize(stdMsg, msgBuffer, 0);

      const deserializedMsg = StdMsg.deserialize(msgBuffer, [0]);
      expect(deserializedMsg.header.seq).to.equal(seq);
      expect(deserializedMsg.header.stamp.secs).to.equal(time.secs);
      expect(deserializedMsg.header.stamp.nsecs).to.equal(time.nsecs);
      expect(deserializedMsg.header.frame_id).to.equal(frameId);
      expect(deserializedMsg.time_field.secs).to.equal(time.secs);
      expect(deserializedMsg.time_field.nsecs).to.equal(time.nsecs);

      // check message definition is full message definition (including message it depends on)
      expect(StdMsg.messageDefinition().includes(Header.messageDefinition().trim())).to.be.true;

      done();
    });

    it('service depending on another package', (done) => {
      const HeaderService = msgUtils.getHandlerForSrvType('test_msgs/HeaderService');
      const Header = msgUtils.getHandlerForMsgType('std_msgs/Header');

      const HRequest = HeaderService.Request;
      const HResponse = HeaderService.Response;
      expect(HRequest).to.be.a('function');
      expect(HResponse).to.be.a('function');

      const hRequest = new HRequest();
      expect(hRequest).to.be.empty;
      expect(HRequest.getMessageSize(hRequest)).to.equal(0);
      expect(HRequest.getMessageSize()).to.equal(0);

      const msgBuffer = new Buffer(HRequest.getMessageSize(hRequest));
      HRequest.serialize(hRequest, msgBuffer, 0);
      expect(msgBuffer.length).to.equal(0);

      const deserializedRequest = HRequest.deserialize(msgBuffer, [0]);
      expect(deserializedRequest).to.be.an.instanceof(HRequest);
      expect(hRequest).to.be.empty;

      const hResponse =  new HResponse();
      expect(HResponse.getMessageSize(hResponse)).to.equal(16);
      expect(hResponse.header_response).to.be.an.instanceof(Header);
      const seq = 123;
      const frameId = 'base';
      hResponse.header_response.seq = seq;
      hResponse.header_response.frame_id = frameId;

      let newlen = 16 + frameId.length;
      expect(HResponse.getMessageSize(hResponse)).to.equal(newlen);

      const msgBuffer2 = new Buffer(HResponse.getMessageSize(hResponse));
      HResponse.serialize(hResponse, msgBuffer2, 0);
      expect(msgBuffer2.length).to.equal(20);

      const deserializedRequest2 = HResponse.deserialize(msgBuffer2, [0]);
      expect(deserializedRequest2).to.be.an.instanceof(HResponse);
      expect(deserializedRequest2.header_response).to.be.an.instanceof(Header);
      expect(deserializedRequest2.header_response.seq).to.equal(seq);
      expect(deserializedRequest2.header_response.frame_id).to.equal(frameId);
      expect(deserializedRequest2.header_response.stamp.secs).to.equal(0);
      expect(deserializedRequest2.header_response.stamp.nsecs).to.equal(0);

      done();
    });

    it('Service with improper divider', (done) => {
      // correct message divider is '---'
      // we're allowing any line starting with '---' though, parroting genmsg
      const HeaderService = msgUtils.getHandlerForSrvType('test_msgs/NonSpecServiceDivider');

      const requestMsg = HeaderService.Request.messageDefinition().trim();
      expect(requestMsg).to.equal('string data');

      const responseMsg = HeaderService.Response.messageDefinition().trim();
      expect(responseMsg).to.equal('uint8 response');

      done();
    });
  });

  describe('actions', () => {
    it('Action Messages Exist', () => {
      expect(msgUtils.getHandlerForMsgType('actionlib_msgs/GoalID')).to.not.throw;
      expect(msgUtils.getHandlerForMsgType('actionlib_msgs/GoalStatus')).to.not.throw;
      expect(msgUtils.getHandlerForMsgType('actionlib_msgs/GoalStatusArray')).to.not.throw;

      expect(msgUtils.getHandlerForMsgType('test_msgs/TestActionActionResult')).to.not.throw;
      expect(msgUtils.getHandlerForMsgType('test_msgs/TestActionActionFeedback')).to.not.throw;
      expect(msgUtils.getHandlerForMsgType('test_msgs/TestActionActionGoal')).to.not.throw;
      expect(msgUtils.getHandlerForMsgType('test_msgs/TestActionResult')).to.not.throw;
      expect(msgUtils.getHandlerForMsgType('test_msgs/TestActionAction')).to.not.throw;
      expect(msgUtils.getHandlerForMsgType('test_msgs/TestActionFeedback')).to.not.throw;
      expect(msgUtils.getHandlerForMsgType('test_msgs/TestActionGoal')).to.not.throw;
    });

    it('Message Definition', () => {
      const TestActionActionGoal = msgUtils.getHandlerForMsgType('test_msgs/TestActionActionGoal');
      const TestActionActionFeedback = msgUtils.getHandlerForMsgType('test_msgs/TestActionActionFeedback');
      const TestActionActionResult = msgUtils.getHandlerForMsgType('test_msgs/TestActionActionResult');
      const TestActionGoal = msgUtils.getHandlerForMsgType('test_msgs/TestActionGoal');
      const TestActionFeedback = msgUtils.getHandlerForMsgType('test_msgs/TestActionFeedback');
      const TestActionResult = msgUtils.getHandlerForMsgType('test_msgs/TestActionResult');

      const actionGoalMsgDefinition = TestActionActionGoal.messageDefinition().trim();
      const actionFeedbackMsgDefinition = TestActionActionFeedback.messageDefinition().trim();
      const actionResultMsgDefinition = TestActionActionResult.messageDefinition().trim();
      const goalMsgDefinition = TestActionGoal.messageDefinition().trim();
      const feedbackMsgDefinition = TestActionFeedback.messageDefinition().trim();
      const resultMsgDefinition = TestActionResult.messageDefinition().trim();

      expect(goalMsgDefinition.includes('---')).to.be.false;
      expect(goalMsgDefinition.includes(feedbackMsgDefinition)).to.be.false;
      expect(goalMsgDefinition.includes(resultMsgDefinition)).to.be.false;

      expect(feedbackMsgDefinition.includes('---')).to.be.false;
      expect(feedbackMsgDefinition.includes(goalMsgDefinition)).to.be.false;
      expect(feedbackMsgDefinition.includes(resultMsgDefinition)).to.be.false;

      expect(resultMsgDefinition.includes('---')).to.be.false;
      expect(resultMsgDefinition.includes(feedbackMsgDefinition)).to.be.false;
      expect(resultMsgDefinition.includes(goalMsgDefinition)).to.be.false;

      expect(actionGoalMsgDefinition.includes('---')).to.be.false;
      expect(actionGoalMsgDefinition.includes(goalMsgDefinition)).to.be.true;
      expect(actionGoalMsgDefinition.includes(feedbackMsgDefinition)).to.be.false;
      expect(actionGoalMsgDefinition.includes(resultMsgDefinition)).to.be.false;

      expect(actionFeedbackMsgDefinition.includes('---')).to.be.false;
      expect(actionFeedbackMsgDefinition.includes(goalMsgDefinition)).to.be.false;
      expect(actionFeedbackMsgDefinition.includes(feedbackMsgDefinition)).to.be.true;
      expect(actionFeedbackMsgDefinition.includes(resultMsgDefinition)).to.be.false;

      expect(actionResultMsgDefinition.includes('---')).to.be.false;
      expect(actionResultMsgDefinition.includes(goalMsgDefinition)).to.be.false;
      expect(actionResultMsgDefinition.includes(feedbackMsgDefinition)).to.be.false;
      expect(actionResultMsgDefinition.includes(resultMsgDefinition)).to.be.true;
    });
  });

  describe('Message Resolving', () => {
    // Test partially filling in a message and then being able to serialize it

    const test_msgs = msgUtils.getPackage('test_msgs');
    const Header = msgUtils.getHandlerForMsgType('std_msgs/Header');
    const BaseType = test_msgs.msg.BaseType;
    const StdMsg = test_msgs.msg.StdMsg;

    // just assuming this will be enough
    const buf = Buffer.alloc(500);

    it('Base Type', () => {
      let msg = {num_field: 1001};
      let fullMsg = BaseType.Resolve(msg);

      expect(fullMsg.string_field).to.equal('');
      expect(fullMsg.num_field).to.equal(1001);

      expect(() => BaseType.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => BaseType.serialize(fullMsg, buf, 0)).to.not.throw;

      msg = {num_field: undefined};
      fullMsg = BaseType.Resolve(msg);

      expect(fullMsg.string_field).to.equal('');
      expect(fullMsg.num_field).to.equal(0);

      expect(() => BaseType.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => BaseType.serialize(fullMsg, buf, 0)).to.not.throw;

      msg = undefined;
      fullMsg = BaseType.Resolve(msg);

      expect(fullMsg.string_field).to.equal('');
      expect(fullMsg.num_field).to.equal(0);

      expect(() => BaseType.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => BaseType.serialize(fullMsg, buf, 0)).to.not.throw;

      fullMsg = BaseType.Resolve(null);

      expect(fullMsg.string_field).to.equal('');
      expect(fullMsg.num_field).to.equal(0);

      expect(() => BaseType.serialize(fullMsg, buf, 0)).to.not.throw;

      fullMsg = BaseType.Resolve('hi');

      expect(fullMsg.string_field).to.equal('');
      expect(fullMsg.num_field).to.equal(0);

      expect(() => BaseType.serialize(fullMsg, buf, 0)).to.not.throw;

      fullMsg = BaseType.Resolve(false);

      expect(fullMsg.string_field).to.equal('');
      expect(fullMsg.num_field).to.equal(0);

      expect(() => BaseType.serialize(fullMsg, buf, 0)).to.not.throw;

      fullMsg = BaseType.Resolve(true);

      expect(fullMsg.string_field).to.equal('');
      expect(fullMsg.num_field).to.equal(0);

      expect(() => BaseType.serialize(fullMsg, buf, 0)).to.not.throw;

      fullMsg = BaseType.Resolve(1);

      expect(fullMsg.string_field).to.equal('');
      expect(fullMsg.num_field).to.equal(0);

      expect(() => BaseType.serialize(fullMsg, buf, 0)).to.not.throw;
    });

    it('Nested Type', () => {
      let msg = {header: {seq: 102}};
      let fullMsg = StdMsg.Resolve(msg);

      expect(fullMsg.header instanceof Header).to.be.true;
      expect(() => StdMsg.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => StdMsg.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = {header: undefined};
      fullMsg = StdMsg.Resolve(msg);

      expect(fullMsg.header instanceof Header).to.be.true;
      expect(() => StdMsg.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => StdMsg.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = undefined;
      fullMsg = StdMsg.Resolve(msg);

      expect(fullMsg.header instanceof Header).to.be.true;
      expect(() => StdMsg.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => StdMsg.serialize(fullMsg, buf, 0)).to.not.throw(Error);
    });

    it('Simple Constant Length Array', () => {
      const ConstantLengthArray = test_msgs.msg.ConstantLengthArray;

      let msg = {array_field: [1,2]};
      let fullMsg = ConstantLengthArray.Resolve(msg);

      expect(() => ConstantLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => ConstantLengthArray.serialize(fullMsg, buf, 0)).to.throw(Error);

      msg = {array_field: undefined};
      fullMsg = ConstantLengthArray.Resolve(msg);

      expect(() => ConstantLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => ConstantLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = undefined;
      fullMsg = ConstantLengthArray.Resolve(msg);

      expect(() => ConstantLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => ConstantLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);
    });

    it('Simple Variable Length Array', () => {
      const VariableLengthArray = test_msgs.msg.VariableLengthArray;

      let msg = {};
      let fullMsg = VariableLengthArray.Resolve(msg);

      expect(() => VariableLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => VariableLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = {array_field: undefined};
      fullMsg = VariableLengthArray.Resolve(msg);

      expect(() => VariableLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => VariableLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = {array_field: [1,2]};
      fullMsg = VariableLengthArray.Resolve(msg);

      expect(() => VariableLengthArray.serialize(msg, buf, 0)).to.not.throw(Error);
      expect(() => VariableLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);
    });

    it('Complex Constant Length Array', () => {
      const ConstantLengthArray = test_msgs.msg.BaseTypeConstantLengthArray;

      // BaseTypeConstantLengthArray has an array_field field of length 5

      let msg = {array_field: [new BaseType(), 2]};
      let fullMsg = ConstantLengthArray.Resolve(msg);

      expect(() => ConstantLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => ConstantLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = {array_field: undefined};
      fullMsg = ConstantLengthArray.Resolve(msg);

      expect(() => ConstantLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => ConstantLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = {array_field: [new BaseType(), 2, 5, 10, 12, 15, 20]};
      fullMsg = ConstantLengthArray.Resolve(msg);

      expect(() => ConstantLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => ConstantLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = 'hi';
      fullMsg = ConstantLengthArray.Resolve(msg);

      expect(() => ConstantLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => ConstantLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);
    });

    it('Complex Variable Length Array', () => {
      const VariableLengthArray = test_msgs.msg.BaseTypeVariableLengthArray;

      let msg = {};
      let fullMsg = VariableLengthArray.Resolve(msg);

      expect(() => VariableLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => VariableLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = {array_field: undefined};
      fullMsg = VariableLengthArray.Resolve(msg);

      expect(() => VariableLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => VariableLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = {array_field: [1,2]};
      fullMsg = VariableLengthArray.Resolve(msg);

      expect(() => VariableLengthArray.serialize(msg, buf, 0)).to.throw(Error);
      expect(() => VariableLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);

      msg = {array_field: []};
      fullMsg = VariableLengthArray.Resolve(msg);

      expect(() => VariableLengthArray.serialize(msg, buf, 0)).to.not.throw(Error);
      expect(() => VariableLengthArray.serialize(fullMsg, buf, 0)).to.not.throw(Error);
    });
  });
});

redpajama_set_name: RedPajamaGithub


What options are available to victims of brain injuries?
On behalf of Daniel Crandall of The Law Offices of Daniel L. Crandall & Associates posted in Brain Injuries on Thursday, October 6, 2016.
Victims of brain injuries may wonder what they are dealing with and what they should do. Brain injuries can cause temporary or permanent functional problems for victims and can result in death. Brain injuries can occur in a variety of different ways. There are two primary types of brain injuries: traumatic brain injuries are usually the result of trauma to the brain and acquired brain injuries are usually the result of a lack of oxygen to the brain. Traumatic brain injuries can be penetrating injuries or can include jolts or blows to the head that result in a traumatic brain injury.
The impact of a brain injury can vary by victim and may be based on the nature of the injury. Cognitive deficits commonly result from a brain injury, causing victims to suffer a number of challenges associated with their daily lives. Brain injuries can also have a psychological impact on victims and can cause emotional disruptions that can be challenging for victims and their families.
Commonly, if a victim has suffered a brain injury as a result of the negligence of another party, such as a negligent driver, remedies may be available to help them recover compensation for the damages they suffered. Traumatic brain injury victims and their families may suffer a host of physical, financial and emotional damages and challenges. Brain injuries can impact your daily activities, quality of life and your work and personal relationships. They may also require ongoing and rehabilitative care to treat. Damages may pile up as a result of the serious nature of brain injuries.
Through a personal injury claim for damages, victims may be able to recover compensation for the high costs associated with a traumatic brain injury, including the physical, financial and emotional costs and difficulties they experience. It is important that victims and their families be familiar with the resources available to them as they struggle through the impact of a traumatic brain injury.