text:
article_category
EDITIONS: Murcia Today Alicante Today Andalucia Today
HOME > SPANISH NEWS > COVID 19
ALL SPANISH NEWSCOVID 19PROPERTYTRAVEL & TOURISMARTS & CULTUREWEATHER
Live Articles : 44
For more articles select a Page or Next.
EU countries ramp up Covid requirements with mandatory jabs and passportsIn Austria, vaccinations will be mandatory for all adults while France has extended the use of the Covid passport Even though experts across the globe are predicting that the sixth wave of the pandemic should peak in the coming weeks, France and Austria.. 17/01/2022
Madrid supports adding Djokovic to the Mutua Open line-upThe mayor believes the tennis star's presence would be a 'big win' for Madrid Spain has now weighed in on the seemingly endless Novak Djokovic saga with the mayor of Madrid saying it would be "a great claim" if the tennis.. 17/01/2022
Spain begins key week for predicting the end of the sixth waveLast week Spain experienced a consistent decrease in daily infections On the anniversary of the peak of the third wave of the coronavirus pandemic, health experts in Spain are hoping that the sixth wave will follow the same trend. Between January.. 17/01/2022
Only 6 per cent of adults in Spain are unvaccinatedThe Omicron variant has created a surge in vaccinations throughout Spain As Spain moves forward with the booster Covid jab for everyone over the age of 18 and the campaign for vaccinating younger children continues to gather steam, just 6.7% of the.. 17/01/2022
AntiCovid chewing gum to hit the market in Spain'Chewing Mask' gum will be available in supermarkets in the Canary Islands next month From February, a rather novel product will join the fight against coronavirus in Spain. The so-called 'Chewing mask' is the first gum.. 14/01/2022
Rapid Covid tests: Spain goes from most expensive to cheapest overnightThe government has set a price cap of 2.94 euros on over-the-counter antigen tests in Spain With Spain racking up an average of 100,000 coronavirus infections every day, the demand has never been higher for self-test antigen kits. Following a nationwide.. 14/01/2022
France reopens its borders to vaccinated BritsQuarantine has been scrapped but travellers will still need a Covid test to enter France Fully vaccinated travellers from the UK will be able to enter France once again from Friday January 14 without providing a "compelling" reason, French.. 14/01/2022
Sixth wave begins to slow down: Spain Covid update January 14Spain could be approaching the peak of the pandemic wave As predicted by the Minister of Health earlier in the week, Spain is showing the first signs that the sixth wave of the coronavirus pandemic is beginning to reach its peak. While the country.. 14/01/2022
Spain advances booster jab to everyone over the age of 18Wait time between second and third doses has been reduced to five months in Spain The general directors of Public Health of the Ministry met on Thursday morning, January 13 and made a number of important decisions regarding the coronavirus pandemic.. 13/01/2022
Half of ICUs in Spain in very high-risk Covid categoryThe occupancy rate exceeds 25% in 26 provinces in Spain The explosion of infections that began before the Christmas holidays and has continued well into the New Year has begun heaping pressure on Spain's hospitals, and although the Ministry&.. 13/01/2022
Spain sets price cap of 2.94 euros on pharmacy antigen testsThe lower price for Covid tests will come into effect in Spain on Saturday January 15 The Interministerial Drug Price Commission (CIMP) has unanimously agreed on Thursday January 13 that the maximum sale price of Covid self-diagnostic antigen tests.. 13/01/2022
Spain debates extending Covid booster to under 40sAlmost 16 million people in Spain have now received a third coronavirus vaccine The Public Health Commission in Spain is set to meet on Thursday January 13 to debate the proposal put forward by the Vaccine Report to begin administering the booster.. 13/01/2022
Europe concerned about countries overusing Covid boostersThe EMA is worried that too many jabs will 'saturate' the immune system and render them ineffective The European Medicines Agency (EMA) has observed with concern the plan of many nations to administer a booster dose of the coronavirus.. 13/01/2022
Incidence rate drops in three regions: Spain Covid update January 13The sixth wave could be slowing down, according to Spain's Minister for Health In a week fraught with debate in Spain over whether Covid monitoring should be reduced to treat it more like the common flu, the Minister of Health, Carolina Darias.. 13/01/2022
Experts in Spain divided over whether to treat Covid like fluThe WHO has advised Spain not to act 'prematurely' by downgrading the health crisis to endemic When does a pandemic stop being a pandemic, and at what point should nations change the way in which they monitor it? The WHO has this Tuesday.. 12/01/2022
Why antigen tests are not sold in supermarkets in SpainSpain has one of the highest prices for the Covid diagnostic tests in Europe The high demand for antigen tests in Spain in the lead-up to Christmas far exceeded supply, which led to many pharmacies upping their prices to as much as 12 euros and others.. 12/01/2022
Incidence exceeds 3,000 cases for first time ever: Spain Covid update January 12A further 247 people have died and Spain remains firmly in the high-risk category The aftermath of the Christmas celebrations is well and truly upon us as Spain is experiencing a rebound of infections, hospitalisations and Covid-related fatalities.. 12/01/2022
WHO predicts half of Europeans will have Omicron within 8 weeksThe more transmissible Covid strain is now the dominant one in Western Europe The World Health Organisation (WHO) has predicted on Tuesday January 11 that more than half the population of Europe will be infected with the Omicron variant in the next.. 11/01/2022
Antiviral pills poised to join the Covid battle in SpainHow the medication works and what side effects it could present The President of the Spanish Government, Pedro Sanchez, announced on Monday January 10 that he has ordered 344,000 oral antivirals manufactured by pharmaceutical giant Pfizer, and this.. 11/01/2022
Spanish airports struggle to recover pre-Covid figuresOnly 10 airports in Spain have recovered to 2019 commercial flight numbers With the world poised in the hope of making 2022 a year of economic recovery, at first glance Spain appears to be doing well in the aviation stakes, as commercial air traffic.. 11/01/2022


For the compensation you deserve.
Honest advice, great results and no hidden fees.
Free initial advice and No Win No Fee available.
first as we guide them to a great result.
expert lawyers, clear advice when and where you need it, and no hidden costs.
and empathy you only get with a team dedicated to you and your case.
At Polaris we ask: how can we help?
If you have been injured in a road or motor vehicle accident, you are likely to be entitled to a range of TAC benefits including wages, medical benefits and lump sum compensation, no matter how the accident happened.
You are entitled to trust your hospital and doctors to treat you reasonably.
When you don't get the treatment you deserve, it can be both difficult and important to understand why it went wrong.
If you have been injured because someone else didn't take the right amount of care or has injured you as part of a criminal act, you may be able to make a claim for compensation.
If you're living with a disability, it is important to make sure that you have all the help and support you need. Insurance and government benefits and payments can make life easier.
If you've had been injured or aggravated an injury, or your health has been affected by your workplace, you may be entitled to compensation from WorkCover.
Use our free online tool to find out how to get started with a TAC claim.
With over 30 years combined experience in personal injury law we have the knowledge and insight to get the best outcomes for our clients.
Take the stress out of pursuing a claim and focus on your recovery. We are a compassionate and understanding team with no hidden fees or charges, free initial advice when and where you need it.
Polaris lawyers is an innovative boutique personal injury law firm combining over 30 years of big firm expertise.


According to WPLG Local 10, a woman is in critical but stable condition at Jackson Memorial's Ryder Trauma Center after she jumped from the third floor as Miami Beach Fire attempted a rescue. Two other residents were transported to Mount Sinai Medical Center.
Residents, blinded by smoke in the 30-unit building, had to feel their way out of the building and several were treated for smoke inhalation.
"I just wanna go home, and I'm worried about my cat and I'm hungry," displaced resident Linda Bladholm, who has written for the Miami Herald's food section, told WPLG.
According to NBC6, arson investigators are looking into reports that a woman was allegedly seen attempting to set fire to the building.
Collins Avenue has re-opened to traffic.


Free standing full round body female 3/4 curvy body torso form. Arms are removable at the shoulder seam and hands are detachable at the wrist for easy dressing of clothes and garments. Dress form is durable and long lasting. Perfect for trade shows where you need to constantly setup, breakdown and move the mannequin around.


HANOI: Floods from a burst dam in Laos have inundated thousands of hectares of paddy fields in Vietnam's rice-growing Mekong Delta region, officials said on Wednesday, although the damage is limited and not expected to affect the country's export crop.
A saddle dam that was part of Laos' US$1.2 billion (£914.6 million) Xe-Pian Xe-Namnoy hydropower project collapsed last week, sending torrents of water crashing into neighbouring villages.
At least 11 people were killed in the accident, and a further 120 people are still missing, the state-run Vientiane Times in Laos reported on Wednesday.
"The flood water is hampering the ongoing harvest of the summer-autumn rice crop in some areas, especially in Dong Thap, Long An and An Giang provinces," Tran Xuan Dinh, deputy head of the Department of Crop Production under Vietnam's Ministry of Agriculture and Rural Development, told Reuters.
The Mekong Delta is the largest rice-growing area in Vietnam, which is the world's third-largest rice exporter after India and Thailand.
The water level in the Mekong Delta region has risen by 7-10 centimetres (3-4 inches) since the dam burst, Dinh said.
Although heavy rains and excess waters from the dam in Laos have damaged crops, the impact of the floods will not significantly impact rice production, said Nguyen Si Lam, deputy director of An Giang province's agricultural department.
Farmers in the delta provinces have planted more than 1.69 million hectares of rice for the summer-autumn crop, with unhusked paddy output estimated at 9.51 million tonnes, an increase of 3 percent in terms of output from a year ago, according to the Ministry of Agriculture and Rural Development.
Farmers in the Mekong Delta have brought in more than 40 percent of the summer-autumn rice crop and the harvest is expected to end in 15-20 days, Dinh said.
"The flooding season in the Mekong Delta was previously forecast to begin around August 5-7, but the water from Laos made it start sooner," he said.


text:
Q: How to change styling for disabled ListView in JavaFX? I'm trying to make a disabled ListView look the same as a non-disabled ListView.
I looked it up and found that you have to set the opacity to 1 and have tried a number of approaches, with and without stylesheets, but none seem to work.  I have tried:
listView.setStyle("-fx-opacity: 1.0;");

.listView:disabled {
    -fx-opacity: 1.0;
}

.listView .list-cell {
    -fx-opacity: 1.0;
}

.listView .list-cell:disabled {
    -fx-opacity : 1.0;
}

I have also tried setting the background-color to white but this makes the text invisble for some reason, even though no other color does that. How would I go about doing this? Thanks.

A: Setting the opacity in the disabled pseudo-class (as you mentioned) should be enough:
.list-view:disabled {
    -fx-opacity: 1;
}

just dont forget to add the stylesheet to the Scene:
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());

As an example:
public class Main extends Application {
    @Override
    public void start(Stage primaryStage) {

        BorderPane root = new BorderPane();
        Scene scene = new Scene(root, 400, 400);
        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());

        ListView<String> lw = new ListView<>();
        lw.setItems(FXCollections.observableArrayList("dog", "cat", "whale"));
        lw.setDisable(true);
        root.setCenter(lw);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

and the CSS selector is contained in the file application.css and this file placed in the same directory as the Application class file.
Note: If you would like to have the selection also to look like the same, you can define the following selectors also:
.list-cell:disabled,
.list-cell:disabled,
.list-view:disabled {
    -fx-opacity: 1;
}

redpajama_set_name: RedPajamaStackExchange


text:
Nineteenth-Century Art (1)
Graphic Design and Typography (2)
Industrial and Commercial Art (2)
Architecture and Urban Planning x
Graphic Design and Typography x
Industrial and Commercial Art x
(b Winterthur, Dec 22, 1908; d Zurich, Dec 9, 1994).
Swiss architect, sculptor, painter, industrial designer, graphic designer and writer. He attended silversmithing classes at the Kunstgewerbeschule in Zurich from 1924 to 1927. Then, inspired by the Exposition Internationale des Arts Décoratifs et Industriels Modernes (1925), Paris, by the works of Le Corbusier and by a competition entry (1927) for the Palace of the League of Nations, Geneva, by Hannes Meyer and Hans Wittwer (1894–1952), he decided to become an architect and enrolled in the Bauhaus, Dessau, in 1927. He studied there for two years as a pupil of Josef Albers, László Moholy-Nagy, Paul Klee and Vasily Kandinsky, mainly in the field of 'free art'. In 1929 he returned to Zurich. After working on graphic designs for the few modern buildings being constructed, he built his first work, his own house and studio (1932–3) in Zurich-Höngg; although this adheres to the principles of the new architecture, it retains echoes of the traditional, for example in the gently sloping saddle roof....
Lauweriks, J(ohannes) L(udovicus) Mathieu
Marty Th. Bax
(b Roermond, Aug 25, 1864; d Amsterdam, April 15, 1932).
Dutch architect, theorist, industrial designer, illustrator and teacher. He grew up in the artistic milieu around P. J. H. Cuypers and probably received most of his artistic education in this environment. Between 1880 and 1887 Lauweriks attended various drawing courses including in 1885–7 those at the Rijksnormaalschool voor Teekenonderwijzers in Amsterdam. In 1889 he became decoration draughtsman in Cuypers's office. In 1891 he became a member of the architectural society Architectura et Amicitia and from 1893 was editor of the society's journal Architectura. At the same time, together with his friends and colleagues K. P. C. de Bazel and Herman J. M. Walenkamp, he became involved with ethical–anarchist groups and produced illustrations for Licht en waarheid, the journal of the anarchist group Wie Denkt Overwint (Who thinks conquers).
On 31 May 1894, with de Bazel, Lauweriks joined the Theosophical Society. This brought him into strong conflict with Cuypers. He left the latter's office in ...

redpajama_set_name: RedPajamaCommonCrawl


The StudyCAS web page was first created in 2010, by CAS students (Erik Sterner, Petter Törnberg, Eskil Varenius, Viktor Jonsson, Niklas Schräder and Fadi Bitar). Today, a majority of the students that participated in creating it have become PhD candidates (the direction of the causation behind this correlation is shrouded in mystery). This (and an accepted application for funds to the Physics department) has allowed Erik and Petter to continue working with the website, in 2013 giving it a major overhaul and subsequent relaunch. As part of this, we're looking to engage new students from the CAS program, to allow the website to continue to be maintained and run by students since that is what it is and should be: a page about the program for students, by students (of course with help from the teachers=).
Karl Nyman, Max Unfried and Henrik Svensson have since they started the program Autumn 2013 shown an interest in communicating about the program and as the "student webpage masters" we believe they will get a great opportunity to do so!
The first version of the webpage was based on Drupal but for the second version we have migrated to Joomla!


Raw dairy free sweets that is perfect for Christmas.
Hello! Here I am again with another Christmas recipe. Well, this recipe does not really have to be for the Christmas only. You can actually prepare this on any other holiday or even on ordinary days.
The biggest reason I had this as one of my holiday recipe choices is for the kids. I know that Christmas is for all ages but we have to admit that Christmas is more gun when there are children around. Don't you think? Plus it is also difficult for kids who are not familiar with vegan living to eat vegan dishes or treats. This is also another reason for such recipe post. If you want to prepare something for your kids without them frowning this Christmas, then this recipe is a go-to.
And I am also pretty sure that the adults will also love having some of these. It's extra healthy so you won't need to worry about the added calories this holidays.
Place the dates, nut butter, and vanilla in a food processor or high speed blender (I used a Vitamix). Blend the ingredients until a smooth mass forms.
Line a metal loaf pan with parchment paper. Scoop the caramel into the lined loaf pan. Keeping you hands slightly wet (not dripping!), press the caramel down into the pan in a smooth layer.
Pull the parchment paper out of the pan and using a sharp knife, cut the caramel slab into squares (you should end up with about 2 dozen caramels).
Pop the caramel squares back in the freezer while you make the chocolate.
In a small bowl, whisk together the coconut oil, raw cacao powder, and maple syrup. Heat for a few seconds in the microwave for a more liquid-y texture.
Set a caramel on the tines of a fork and dip in the chocolate coating. Tap off excess chocolate and place the caramel on a parchment lined tray. Repeat with remaining caramels.
Top each caramel with a little sprinkle of sea salt.
*If you don't want to make the raw chocolate for dipping, simply melt chocolate chips to dip the caramels in.
A very big thank you to Kayley from thekitchenmccabe.com for this sweet recipe.


text:
#include <iostream>
#include <sstream>
#include <string>
#include <vector>

#include <llvm/IR/Argument.h>
#include <llvm/IR/BasicBlock.h>
#include <llvm/IR/Function.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/IntrinsicInst.h>
#include <llvm/IR/Intrinsics.h>

#include <llvm/MC/MCInst.h>

#include <llvm/Support/CodeGen.h>

#include "mcsema/Arch/Arch.h"
#include "mcsema/Arch/Dispatch.h"
#include "mcsema/Arch/Register.h"

#include "mcsema/Arch/X86/Util.h"
#include "mcsema/Arch/X86/Semantics/Branches.h"

#include "mcsema/CFG/Externals.h"
#include "mcsema/BC/Util.h"
#include "mcsema/cfgToLLVM/JumpTables.h"

template<int width>
static InstTransResult doLRet(llvm::BasicBlock *b) {
  //do a read from the location pointed to by ESP

  TASSERT(width == 32 || width == 64, "Invalid reg width for RET");
  auto xsp = 32 == width ? llvm::X86::ESP : llvm::X86::RSP;
  auto rESP = R_READ<width>(b, xsp);
  auto nESP = llvm::BinaryOperator::CreateAdd(rESP,
                                              CONST_V<width>(b, 2 * width / 8),
                                              "", b);

  auto xip = 32 == width ? llvm::X86::EIP : llvm::X86::RIP;
  auto ra = M_READ_0<width>(b, rESP);
  // set EIP -- this is used by the asm stubs that
  // connect translated code and native code
  R_WRITE<width>(b, xip, ra);

  //write back to ESP
  R_WRITE<width>(b, xsp, nESP);

  llvm::ReturnInst::Create(b->getContext(), b);

  return EndCFG;
}

template<int width>
static InstTransResult doRet(llvm::BasicBlock *b) {
  //do a read from the location pointed to by ESP

  TASSERT(width == 32 || width == 64, "Invalid reg width for RET");
  auto xsp = 32 == width ? llvm::X86::ESP : llvm::X86::RSP;
  auto rESP = R_READ<width>(b, xsp);
  auto nESP = llvm::BinaryOperator::CreateAdd(rESP,
                                              CONST_V<width>(b, width / 8), "",
                                              b);

  auto xip = 32 == width ? llvm::X86::EIP : llvm::X86::RIP;
  auto ra = M_READ_0<width>(b, rESP);
  // set EIP -- this is used by the asm stubs that
  // connect translated code and native code
  R_WRITE<width>(b, xip, ra);

  //write back to ESP
  R_WRITE<width>(b, xsp, nESP);

  llvm::ReturnInst::Create(b->getContext(), b);

  return EndCFG;
}

template<int width>
static InstTransResult doRetI(llvm::BasicBlock *&b, const llvm::MCOperand &o) {
  TASSERT(width == 32 || width == 64, "Invalid reg width for RETI");
  TASSERT(o.isImm(), "Operand not immediate");

  auto xsp = 32 == width ? llvm::X86::ESP : llvm::X86::RSP;
  auto c = CONST_V<width>(b, o.getImm());
  auto rESP = R_READ<width>(b, xsp);
  auto ra = M_READ_0<width>(b, rESP);
  TASSERT(ra != NULL, "Could not read value from stack");

  auto xip = 32 == width ? llvm::X86::EIP : llvm::X86::RIP;
  // set EIP -- this is used by the asm stubs that
  // connect translated code and native code
  R_WRITE<width>(b, xip, ra);
  //add the immediate to ESP
  auto rESP_1 = llvm::BinaryOperator::CreateAdd(rESP, c, "", b);

  //add pointer width to ESP
  auto nESP = llvm::BinaryOperator::CreateAdd(rESP_1,
                                              CONST_V<width>(b, width / 8), "",
                                              b);

  //write back to ESP
  R_WRITE<width>(b, xsp, nESP);

  //spill all locals into the structure
  llvm::ReturnInst::Create(b->getContext(), b);
  return EndCFG;
}

//emit a nonconditional branch
static InstTransResult doNonCondBranch(llvm::BasicBlock *&b,
                                       llvm::BasicBlock *tgt) {
  TASSERT(tgt != NULL, "Branch to a NULL target");

  llvm::BranchInst::Create(tgt, b);

  return EndBlock;
}

//for the LOOP class of instructions, we'll assume that the
//target of the loop branch has already been defined as a block
template<size_t width>
static InstTransResult doLoopIMPL(llvm::BasicBlock *&b, llvm::BasicBlock *T,
                                  llvm::BasicBlock *F) {
  TASSERT(T != NULL, "True block is NULL");
  TASSERT(F != NULL, "False block is NULL");

  //retrieve ECX
  auto xcx = 32 == width ? llvm::X86::ECX : llvm::X86::RCX;

  auto count = R_READ<width>(b, xcx);
  //decrement ECX
  auto count_dec = llvm::BinaryOperator::CreateSub(count, CONST_V<width>(b, 1),
                                                   "", b);
  //write ECX back into the register
  R_WRITE<width>(b, xcx, count_dec);

  //test and see if ECX is 0
  auto testRes = new llvm::ICmpInst( *b, llvm::CmpInst::ICMP_NE, count_dec,
                                    CONST_V<width>(b, 0));

  //conditionally branch on this result
  llvm::BranchInst::Create(T, F, testRes, b);

  return EndBlock;
}

template<int width>
static InstTransResult doLoopEIMPL(llvm::BasicBlock *&b, llvm::BasicBlock *T,
                                   llvm::BasicBlock *F) {
  TASSERT(T != NULL, "");
  TASSERT(F != NULL, "");

  //retrieve ECX
  auto xcx = 32 == width ? llvm::X86::ECX : llvm::X86::RCX;
  auto count = R_READ<width>(b, xcx);
  //decrement ECX
  auto count_dec = llvm::BinaryOperator::CreateSub(count, CONST_V<width>(b, 1),
                                                   "", b);
  //write ECX back into the register
  R_WRITE<width>(b, xcx, count_dec);

  //test and see if ECX is 0
  auto testRes = new llvm::ICmpInst( *b, llvm::CmpInst::ICMP_NE, count_dec,
                                    CONST_V<width>(b, 0));

  //also test and see if ZF is 1
  auto zf = F_READ(b, llvm::X86::ZF);
  auto zfRes = new llvm::ICmpInst( *b, llvm::CmpInst::ICMP_EQ, zf,
                                  CONST_V<1>(b, 1));

  auto andRes = llvm::BinaryOperator::CreateAnd(zfRes, testRes, "", b);
  //conditionally branch on this result
  llvm::BranchInst::Create(T, F, andRes, b);

  return EndBlock;
}

template<int width>
static InstTransResult doLoopNEIMPL(llvm::BasicBlock *&b, llvm::BasicBlock *T,
                                    llvm::BasicBlock *F) {
  TASSERT(T != NULL, "");
  TASSERT(F != NULL, "");

  //retrieve ECX
  auto xcx = 32 == width ? llvm::X86::ECX : llvm::X86::RCX;
  auto count = R_READ<width>(b, xcx);
  //decrement ECX
  auto count_dec = llvm::BinaryOperator::CreateSub(count, CONST_V<width>(b, 1),
                                                   "", b);
  //write ECX back into the register
  R_WRITE<width>(b, xcx, count_dec);

  //test and see if ECX is 0
  auto testRes = new llvm::ICmpInst( *b, llvm::CmpInst::ICMP_NE, count_dec,
                                    CONST_V<width>(b, 0));

  //test and see if ZF is 0
  auto zf = F_READ(b, llvm::X86::ZF);
  auto zfRes = new llvm::ICmpInst( *b, llvm::CmpInst::ICMP_EQ, zf,
                                  CONST_V<1>(b, 0));

  auto andRes = llvm::BinaryOperator::CreateAnd(zfRes, testRes, "", b);
  //conditionally branch on this result
  llvm::BranchInst::Create(T, F, andRes, b);

  return EndBlock;
}

static InstTransResult doLoop(llvm::BasicBlock *&b, llvm::BasicBlock *T,
                              llvm::BasicBlock *F) {
  auto M = b->getParent()->getParent();

  if (ArchPointerSize(M) == Pointer32) {
    return doLoopIMPL<32>(b, T, F);
  } else {
    return doLoopIMPL<64>(b, T, F);
  }
}

static InstTransResult doLoopE(llvm::BasicBlock *&b, llvm::BasicBlock *T,
                               llvm::BasicBlock *F) {
  auto M = b->getParent()->getParent();

  if (ArchPointerSize(M) == Pointer32) {
    return doLoopEIMPL<32>(b, T, F);
  } else {
    return doLoopEIMPL<64>(b, T, F);
  }
}

static InstTransResult doLoopNE(llvm::BasicBlock *&b, llvm::BasicBlock *T,
                                llvm::BasicBlock *F) {
  auto M = b->getParent()->getParent();

  if (ArchPointerSize(M) == Pointer32) {
    return doLoopNEIMPL<32>(b, T, F);
  } else {
    return doLoopNEIMPL<64>(b, T, F);
  }
}

template<int width>
static void writeReturnAddr(llvm::BasicBlock *B, VA ret_addr) {
  auto xsp = 32 == width ? llvm::X86::ESP : llvm::X86::RSP;
  auto espOld = R_READ<width>(B, xsp);
  auto espSub = llvm::BinaryOperator::CreateSub(espOld,
                                                CONST_V<width>(B, width / 8),
                                                "", B);
  M_WRITE_0<width>(B, espSub, CONST_V<width>(B, ret_addr));
  R_WRITE<width>(B, xsp, espSub);
}

template<int width>
static void writeDetachReturnAddr(llvm::BasicBlock *B) {
  auto xsp = 32 == width ? llvm::X86::ESP : llvm::X86::RSP;
  auto xip = 32 == width ? llvm::X86::EIP : llvm::X86::RIP;
  auto espOld = R_READ<width>(B, xsp);
  auto espSub = llvm::BinaryOperator::CreateSub(espOld,
                                                CONST_V<width>(B, width / 8),
                                                "", B);
  M_WRITE_0<width>(B, espSub, CONST_V<width>(B, 0xde7accccde7acccc));
  R_WRITE<width>(B, xsp, espSub);
}

static void doCallV(llvm::BasicBlock *&block, NativeInstPtr ip,
                    llvm::Value *call_addr, bool is_jump) {

  auto F = block->getParent();
  auto M = F->getParent();
  auto &C = M->getContext();
  uint32_t bitWidth = ArchPointerSize(M);

  if (_X86_64_ == SystemArch(M)) {
    R_WRITE<64>(block, llvm::X86::RIP, call_addr);
    if ( !is_jump) {
      writeDetachReturnAddr<64>(block);
    }
  } else {
    R_WRITE<32>(block, llvm::X86::EIP, call_addr);
    if ( !is_jump) {
      writeDetachReturnAddr<32>(block);
    }
  }

  auto detach = M->getFunction("__mcsema_detach_call_value");
  auto call_detach = llvm::CallInst::Create(detach, "", block);
  call_detach->setCallingConv(llvm::CallingConv::C);
}

template<int width>
static void doCallM(llvm::BasicBlock *&block, NativeInstPtr ip,
                    llvm::Value *mem_addr, bool is_jump) {
  auto call_addr = M_READ<width>(ip, block, mem_addr);
  return doCallV(block, ip, call_addr, is_jump);
}

template<int width>
static llvm::CallInst *emitInternalCall(llvm::BasicBlock *&b, llvm::Module *M,
                                        const std::string &target_fn,
                                        VA ret_addr, bool is_jmp) {
  // we need the parent function to get the regstate argument
  auto ourF = b->getParent();
  TASSERT(ourF->arg_size() == 1, "");

  // figure out who we are calling
  auto targetF = M->getFunction(target_fn);

  TASSERT(targetF != nullptr, "Could not find target function: " + target_fn);

  // do we need to push a ret addr?
  if (!is_jmp) {
    writeReturnAddr<width>(b, ret_addr);
  }

  // emit: call target_fn(regstate);
  std::vector<llvm::Value *> subArgs;
  for (auto &arg : ourF->args()) {
    subArgs.push_back(&arg);
  }
  auto c = llvm::CallInst::Create(targetF, subArgs, "", b);
  ArchSetCallingConv(M, c);

  // return ptr to this callinst
  return c;
}

template<int width>
static InstTransResult doCallPC(NativeInstPtr ip, llvm::BasicBlock *&b,
                                VA tgtAddr, bool is_jump) {
  auto M = b->getParent()->getParent();

  //We should be able to look it up in our module.
  std::cout << __FUNCTION__ << "target address : "
            << std::hex << tgtAddr << std::endl;

  std::stringstream ss;
  ss << "sub_" << std::hex << tgtAddr;
  std::string fname = ss.str();

  auto c = emitInternalCall<width>(
      b, M, fname, ip->get_loc() + ip->get_len(), is_jump);
  auto F = c->getCalledFunction();

  if (ip->has_local_noreturn() || F->doesNotReturn()) {
    // noreturn functions just hit unreachable
    std::cout << __FUNCTION__
              << ": Adding Unreachable Instruction to local noreturn"
              << std::endl;
    c->setDoesNotReturn();
    c->setTailCall();
    auto unreachable = new llvm::UnreachableInst(b->getContext(), b);
    return EndBlock;
  }
  //and we can continue to run the old code

  return ContinueBlock;
}

namespace x86 {
static InstTransResult doCallPCExtern(llvm::BasicBlock *&b, std::string target,
                                      bool is_jump) {
  auto M = b->getParent()->getParent();
  auto &C = M->getContext();

  //write it into the location pointer to by ESP-4
  auto espOld = x86::R_READ<32>(b, llvm::X86::ESP);

  //lookup the function in the module
  auto externFunction = M->getFunction(target);
  TASSERT(externFunction != nullptr,
          "Could not find external function: " + target);
  auto externFunctionTy = externFunction->getFunctionType();
  auto rType = externFunction->getReturnType();
  int paramCount = externFunctionTy->getNumParams();

  //now we need to do a series of reads off the stack, essentially
  //a series of POPs but without writing anything back to ESP
  llvm::Value *baseEspVal = nullptr;
  std::vector<llvm::Value *> arguments;

  // in fastcall, the first two params are passed via register
  // only need to adjust stack if there are more than two args
  //

  auto exit_point = ArchAddExitPointDriver(externFunction);

  if (externFunction->getCallingConv() == llvm::CallingConv::X86_FastCall) {

    auto it = externFunction->arg_begin();
    auto end = externFunction->arg_end();

    auto it_ep = exit_point->arg_begin();
    auto end_ep = exit_point->arg_end();

    llvm::AttrBuilder B;
    B.addAttribute(llvm::Attribute::InReg);

    if (paramCount && it != end) {
      auto r_ecx = x86::R_READ<32>(b, llvm::X86::ECX);
      arguments.push_back(r_ecx);
      --paramCount;
      // set argument 1's attribute: make it in a register
      it->addAttr(llvm::AttributeSet::get(C, 1, B));
      it_ep->addAttr(llvm::AttributeSet::get(C, 1, B));
      ++it;
      ++it_ep;
    }

    if (paramCount && it != end) {
      auto r_edx = x86::R_READ<32>(b, llvm::X86::EDX);
      arguments.push_back(r_edx);
      --paramCount;
      // set argument 2's attribute: make it in a register
      it->addAttr(llvm::AttributeSet::get(C, 2, B));
      it_ep->addAttr(llvm::AttributeSet::get(C, 2, B));
      ++it;
      ++it_ep;
    }
  }

  if (paramCount) {
    baseEspVal = x86::R_READ<32>(b, llvm::X86::ESP);
    // if this is a JMP, there is already a fake return address
    // on the stack. Skip it to read stack arguments
    if (is_jump) {
      baseEspVal = llvm::BinaryOperator::CreateAdd(baseEspVal,
                                                   CONST_V<32>(b, 4), "", b);
    }
  }

  for (int i = 0; i < paramCount; i++) {
    auto vFromStack = M_READ_0<32>(b, baseEspVal);

    arguments.push_back(vFromStack);

    if (i + 1 != paramCount) {
      baseEspVal = llvm::BinaryOperator::CreateAdd(baseEspVal,
                                                   CONST_V<32>(b, 4), "", b);
    }
  }

  if ( !is_jump) {
    writeDetachReturnAddr<32>(b);
  }
  auto callR = llvm::CallInst::Create(exit_point, arguments, "", b);
  callR->setCallingConv(externFunction->getCallingConv());

  noAliasMCSemaScope(callR);

  if (externFunction->doesNotReturn()) {
    // noreturn functions just hit unreachable
    std::cout << __FUNCTION__ << ": Adding Unreachable Instruction"
              << std::endl;
    callR->setDoesNotReturn();
    callR->setTailCall();
    (void) new llvm::UnreachableInst(b->getContext(), b);
    return EndBlock;
  }

  // we returned from an extern: assume it cleared the direction flag
  // which is standard for MS calling conventions
  //
  F_CLEAR(b, llvm::X86::DF);

  //if our convention says to keep the call result alive then do it
  //really, we could always keep the call result alive...
  if (rType == llvm::Type::getInt32Ty(M->getContext())) {
    x86::R_WRITE<32>(b, llvm::X86::EAX, callR);
  }

  return ContinueBlock;
}
}

namespace x86_64 {

static InstTransResult doCallPCExtern(llvm::BasicBlock *&b, std::string target,
                                      bool is_jump) {
  auto F = b->getParent();
  auto M = F->getParent();
  auto &C = M->getContext();
  llvm::Argument *state_ptr = &*F->arg_begin();

  //lookup the function in the module
  auto externFunction = M->getFunction(target);
  TASSERT(externFunction != nullptr,
          "Could not find external function: " + target);
  auto externFunctionTy = externFunction->getFunctionType();
  auto rType = externFunction->getReturnType();
  int paramCount = externFunctionTy->getNumParams();
  //std::string 	funcSign = externFunction->getSignature();

  std::cout << __FUNCTION__ << " paramCount  : " << paramCount << " : "
            << target << std::endl;
  std::cout << externFunctionTy->getNumParams() << " : "
            << std::hex << ((VA) externFunctionTy->getParamType(0))
            << std::endl;
  std::cout.flush();

  //now we need to do a series of reads off the stack, essentially
  //a series of POPs but without writing anything back to ESP
  llvm::Value *baseRspVal = nullptr;
  std::vector<llvm::Value *> arguments;

  // on x86_64 platform all calls will be x86_64_SysV
  auto it = externFunction->arg_begin();
  auto end = externFunction->arg_end();
  llvm::AttrBuilder B;
  B.addAttribute(llvm::Attribute::InReg);

  if (SystemOS(M) == llvm::Triple::Win32) {
    if (paramCount && it != end) {
      auto T = it->getType();
      llvm::Value *arg1 = nullptr;
      if (T->isDoubleTy()) {
        int k = ArchRegisterOffset(llvm::X86::XMM0);
        llvm::Value *arg1FieldGEPV[] = {CONST_V<64>(b, 0), CONST_V<32>(b, k)};

        auto GEP_128 = llvm::GetElementPtrInst::CreateInBounds(
            state_ptr, arg1FieldGEPV, "XMM0", b);
        auto GEP_double = llvm::CastInst::CreatePointerCast(
            GEP_128,
            llvm::PointerType::get(llvm::Type::getDoubleTy(M->getContext()), 0),
            "conv0", b);
        arg1 = new llvm::LoadInst(GEP_double, "", b);

      } else {
        arg1 = x86_64::R_READ<64>(b, llvm::X86::RCX);
      }

      arguments.push_back(arg1);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 1, B));
      ++it;
    }

    if (paramCount && it != end) {
      auto T = it->getType();
      llvm::Value *arg2 = nullptr;
      if (T->isDoubleTy()) {
        int k = ArchRegisterOffset(llvm::X86::XMM1);
        llvm::Value *arg2FieldGEPV[] = {CONST_V<64>(b, 0), CONST_V<32>(b, k)};

        auto GEP_128 = llvm::GetElementPtrInst::CreateInBounds(
            state_ptr, arg2FieldGEPV, "XMM1", b);
        auto GEP_double = llvm::CastInst::CreatePointerCast(
            GEP_128,
            llvm::PointerType::get(llvm::Type::getDoubleTy(M->getContext()), 0),
            "conv1", b);
        arg2 = new llvm::LoadInst(GEP_double, "", b);
      } else {
        arg2 = x86_64::R_READ<64>(b, llvm::X86::RDX);
      }
      arguments.push_back(arg2);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 2, B));
      ++it;
    }

    if (paramCount && it != end) {
      auto T = it->getType();
      llvm::Value *arg3 = nullptr;
      if (T->isDoubleTy()) {
        int k = ArchRegisterOffset(llvm::X86::XMM2);
        llvm::Value *arg3FieldGEPV[] = {CONST_V<64>(b, 0), CONST_V<32>(b, k)};

        auto GEP_128 = llvm::GetElementPtrInst::CreateInBounds(
            state_ptr, arg3FieldGEPV, "XMM2", b);
        auto GEP_double = llvm::CastInst::CreatePointerCast(
            GEP_128,
            llvm::PointerType::get(llvm::Type::getDoubleTy(M->getContext()), 0),
            "conv2", b);
        arg3 = new llvm::LoadInst(GEP_double, "", b);
      } else {
        arg3 = x86_64::R_READ<64>(b, llvm::X86::R8);
      }
      arguments.push_back(arg3);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 3, B));
      ++it;
    }

    if (paramCount && it != end) {
      auto T = it->getType();
      llvm::Value *arg4 = nullptr;
      if (T->isDoubleTy()) {
        int k = ArchRegisterOffset(llvm::X86::XMM3);
        llvm::Value *arg4FieldGEPV[] = {CONST_V<64>(b, 0), CONST_V<32>(b, k)};

        auto GEP_128 = llvm::GetElementPtrInst::CreateInBounds(
            state_ptr, arg4FieldGEPV, "XMM3", b);
        auto GEP_double = llvm::CastInst::CreatePointerCast(
            GEP_128,
            llvm::PointerType::get(llvm::Type::getDoubleTy(M->getContext()), 0),
            "conv3", b);
        arg4 = new llvm::LoadInst(GEP_double, "", b);
      } else {
        arg4 = x86_64::R_READ<64>(b, llvm::X86::R9);
      }
      arguments.push_back(arg4);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 4, B));
      ++it;
    }
  } else {
    if (paramCount && it != end) {
      // fix it by updating the value type
      auto reg_rdi = x86_64::R_READ<64>(b, llvm::X86::RDI);
      arguments.push_back(reg_rdi);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 1, B));
      ++it;

    }

    if (paramCount && it != end) {
      auto reg_rsi = x86_64::R_READ<64>(b, llvm::X86::RSI);
      arguments.push_back(reg_rsi);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 2, B));
      ++it;
    }

    if (paramCount && it != end) {
      auto reg_rdx = x86_64::R_READ<64>(b, llvm::X86::RDX);
      arguments.push_back(reg_rdx);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 3, B));
      ++it;
    }

    if (paramCount && it != end) {
      auto reg_rcx = x86_64::R_READ<64>(b, llvm::X86::RCX);
      arguments.push_back(reg_rcx);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 4, B));
      ++it;
    }

    if (paramCount && it != end) {
      auto reg_r8 = x86_64::R_READ<64>(b, llvm::X86::R8);
      arguments.push_back(reg_r8);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 5, B));
      ++it;
    }

    if (paramCount && it != end) {
      auto reg_r9 = x86_64::R_READ<64>(b, llvm::X86::R9);
      arguments.push_back(reg_r9);
      --paramCount;
      it->addAttr(llvm::AttributeSet::get(C, 6, B));
      ++it;
    }
  }

  if (paramCount) {
    // rest of the arguments are passed over stack
    // adjust the stack pointer if required
    baseRspVal = x86_64::R_READ<64>(b, llvm::X86::RSP);

    // The Windows amd64 calling convention requires
    // 32-bytes of stack reserved in each function call. At the call point,
    // the stack is already pre-reserved, so the arguments start 32 bytes up
    // of where we would expect
    if (SystemOS(M) == llvm::Triple::Win32) {
      baseRspVal = llvm::BinaryOperator::CreateAdd(baseRspVal,
                                                   CONST_V<64>(b, 0x20), "", b);
    }

    // if this is a JMP, there is already a fake return address
    // on the stack. Skip it to read stack arguments
    if (is_jump) {
      baseRspVal = llvm::BinaryOperator::CreateAdd(baseRspVal,
                                                   CONST_V<64>(b, 8), "", b);
    }
  }

  for (int i = 0; i < paramCount; i++) {
    auto vFromStack = M_READ_0<64>(b, baseRspVal);

    arguments.push_back(vFromStack);

    if (i + 1 != paramCount) {
      baseRspVal = llvm::BinaryOperator::CreateAdd(baseRspVal,
                                                   CONST_V<64>(b, 8), "", b);
    }
  }

  if ( !is_jump) {
    writeDetachReturnAddr<64>(b);
  }

  auto callR = llvm::CallInst::Create(ArchAddExitPointDriver(externFunction),
                                      arguments, "", b);
  ArchSetCallingConv(M, callR);

  if (externFunction->doesNotReturn()) {
    // noreturn functions just hit unreachable
    std::cout << __FUNCTION__ << ": Adding Unreachable Instruction"
              << std::endl;
    callR->setDoesNotReturn();
    callR->setTailCall();
    (void) new llvm::UnreachableInst(b->getContext(), b);
    return EndBlock;
  }

  //if our convention says to keep the call result alive then do it
  //really, we could always keep the call result alive...
  if (rType == llvm::Type::getInt64Ty(M->getContext())) {
    x86_64::R_WRITE<64>(b, llvm::X86::RAX, callR);
  }

  return ContinueBlock;
}

}

template<int width>
static InstTransResult translate_JMPm(TranslationContext &ctx,
                                      llvm::BasicBlock *& block) {
  InstTransResult ret;
  auto natM = ctx.natM;
  auto ip = ctx.natI;
  auto &inst = ip->get_inst();

  // translate JMP mem64 API calls
  // as a call <api>, ret;

  if (ip->has_ext_call_target()) {
    std::string s = ip->get_ext_call_target()->getSymbolName();

    // this is really an internal call; this calling convention
    // is reserved for functions that we are going to implement internally
    if (ip->get_ext_call_target()->getCallingConvention()
        == ExternalCodeRef::McsemaCall) {
      auto M = block->getParent()->getParent();
      std::string target_fn = ArchNameMcSemaCall(s);
      emitInternalCall<width>(
          block, M, target_fn, ip->get_loc() + ip->get_len(), true);
      return ContinueBlock;
    }

    if (64 == width) {
      ret = x86_64::doCallPCExtern(block, s, true);
    } else {
      ret = x86::doCallPCExtern(block, s, true);
    }
    if (ret != EndBlock) {
      //doRet<width>(block);
      llvm::ReturnInst::Create(block->getContext(), block);
      return EndBlock;
    } else {
      // the external was a call to donotreturn function
      return ret;
    }
  } else if (ip->has_ext_data_ref()) {
    auto M = block->getParent()->getParent();

    std::string target = ip->get_ext_data_ref()->getSymbolName();
    llvm::Value *gvar = M->getGlobalVariable(target);

    TASSERT(gvar != NULL, "Could not find data ref: " + target);

    auto addrInt = new llvm::PtrToIntInst(
        gvar, llvm::Type::getIntNTy(block->getContext(), width), "", block);

    doCallM<width>(block, ip, addrInt, true);
    llvm::ReturnInst::Create(block->getContext(), block);
    return EndBlock;

  } else if (ip->has_jump_table() && ip->has_mem_reference) {
    // this is a jump table that got converted
    // into a table in the data section
    doJumpTableViaData(ctx, block, width);
    llvm::ReturnInst::Create(block->getContext(), block);
    return EndBlock;

  } else if (ip->has_jump_table()) {
    // this is a conformant jump table
    // emit an llvm switch
    doJumpTableViaSwitch(ctx, block, width);
    return EndBlock;

  } else if (ip->has_mem_reference) {
    doCallM<width>(block, ip, MEM_REFERENCE(0), true);
    llvm::ReturnInst::Create(block->getContext(), block);
    return EndBlock;
  } else {
    // normal jump by memory (e.g. jmp [reg+offset] )
    doCallM<width>(block, ip, ADDR_NOREF(0), true);
    llvm::ReturnInst::Create(block->getContext(), block);
    return EndBlock;
  }
}

template<int width>
static InstTransResult translate_JMPr(TranslationContext &ctx,
                                      llvm::BasicBlock *&block) {
  auto ip = ctx.natI;
  auto &inst = ip->get_inst();
  const auto &tgtOp = inst.getOperand(0);

  TASSERT(inst.getNumOperands() == 1, "");
  TASSERT(tgtOp.isReg(), "");

  //read the register
  auto fromReg = R_READ<width>(block, tgtOp.getReg());

  auto M = block->getParent()->getParent();

  VA ot_addr = ip->offset_table;

  // does this inst have an offset table?
  if (ot_addr != -1) {
    auto ot_value = ctx.natM->offset_tables.find(ot_addr);

    if (ot_value != ctx.natM->offset_tables.end()) {
      std::cerr
          << __FUNCTION__ << ": We have an offset table for: "
          << std::hex << ip->get_loc() << " at: "
          << std::hex << ot_addr << std::endl;

      VA data_section = 0;
      MCSOffsetTablePtr ot = ot_value->second;
      VA old_table_addr = ot->getStartAddr();
      auto global_v = getGlobalFromOriginalAddr<width>(old_table_addr, ctx.natM,
                                                       0, block);

      if (global_v) {
        llvm::BasicBlock *defaultb = nullptr;
        doJumpOffsetTableViaSwitchReg(ctx, block, fromReg, defaultb, global_v,
                                      ot);
        // add trap to default block
        auto trapIntrin = llvm::Intrinsic::getDeclaration(M, llvm::Intrinsic::trap);
        llvm::CallInst::Create(trapIntrin, "", defaultb);
        (void) new llvm::UnreachableInst(defaultb->getContext(), defaultb);
        return EndCFG;

      } else {
        std::cerr
            << "Could not find global for addr: "
            << std::hex << old_table_addr << std::endl;
        TASSERT(false, "");
      }
    } else {
      std::cerr
          << "Could not find offset table for addr: "
          << std::hex << ot_addr << std::endl;
      TASSERT(false, "");
    }
  }

  if (ip->has_jump_table()) {
    // this is a jump table that got converted
    // into a table in the data section
    std::cerr
        << __FUNCTION__ << ": jump table via register: "
        << std::hex << ip->get_loc() << std::endl;

    llvm::BasicBlock *defaultb = nullptr;

    // Terrible HACK
    // Subtract image base since we assume win64 adds it for jump
    // tables. This may not always be true.
    llvm::Value *minus_base = nullptr;
    if (width == 64 && shouldSubtractImageBase(M)) {
      minus_base = doSubtractImageBaseInt(fromReg, block);
    } else {
      minus_base = fromReg;
    }
    // end terrible HACK
    doJumpTableViaSwitchReg(ctx, block, minus_base, defaultb, width);
    TASSERT(defaultb != nullptr, "Default block has to exit");
    // fallback to doing do_call_value
    doCallV(defaultb, ip, fromReg, true);
    llvm::ReturnInst::Create(defaultb->getContext(), defaultb);
    return EndCFG;

  } else {
    // translate the JMP64r as a call/ret
    std::cerr
        << __FUNCTION__ << ": regular jump via register: "
        << std::hex << ip->get_loc() << std::endl;

    doCallV(block, ip, fromReg, true);
    llvm::ReturnInst::Create(block->getContext(), block);
    return EndCFG;
  }
}

template<int width>
static InstTransResult translate_CALLpcrel32(TranslationContext &ctx,
                                             llvm::BasicBlock *&block) {
  InstTransResult ret;
  auto natM = ctx.natM;
  auto ip = ctx.natI;
  auto &inst = ip->get_inst();

  if (ip->has_ext_call_target()) {
    std::string s = ip->get_ext_call_target()->getSymbolName();
    if (ip->get_ext_call_target()->getCallingConvention()
        == ExternalCodeRef::McsemaCall) {
      auto M = block->getParent()->getParent();
      std::string target_fn = ArchNameMcSemaCall(s);
      emitInternalCall<width>(
          block, M, target_fn, ip->get_loc() + ip->get_len(), false);
      return ContinueBlock;
    } else {
      llvm::dbgs() << __FUNCTION__ << ": function is: " << s << ", cc is: "
                   << ip->get_ext_call_target()->getCallingConvention() << "\n";
    }
    if (width == 64) {
      ret = x86_64::doCallPCExtern(block, s, false);
    } else {
      ret = x86::doCallPCExtern(block, s, false);
    }
  } else if (ip->has_code_ref()) {
    VA off = ip->get_reference(NativeInst::MEMRef);
    ret = doCallPC<width>(ip, block, off, false);
  } else {
    VA off = OP(0).getImm();
    ret = doCallPC<width>(ip, block, ip->get_loc() + ip->get_len() + off,
                          false);
  }

  return ret;
}

template<int width>
static InstTransResult translate_CALLm(TranslationContext &ctx,
                                       llvm::BasicBlock *&block) {
  auto natM = ctx.natM;
  auto ip = ctx.natI;
  auto &inst = ip->get_inst();

  // is this an external call?
  if (ip->has_ext_call_target()) {
    std::string s = ip->get_ext_call_target()->getSymbolName();

    // this is really an internal call; this calling convention
    // is reserved for functions that we are going to implement internally
    if (ip->get_ext_call_target()->getCallingConvention()
        == ExternalCodeRef::McsemaCall) {
      auto M = block->getParent()->getParent();
      std::string target_fn = ArchNameMcSemaCall(s);
      emitInternalCall<width>(
          block, M, target_fn, ip->get_loc() + ip->get_len(), false);
      return ContinueBlock;
    }

    if (width == 64) {
      return x86_64::doCallPCExtern(block, s, false);
    } else {
      return x86::doCallPCExtern(block, s, false);
    }

  // not external call, but some weird way of calling local function?
  } else if (ip->has_code_ref()) {
    std::cout << __FUNCTION__ << ":" << __LINE__ << ": doing call" << std::endl;
    return doCallPC<width>(ip, block, ip->get_reference(NativeInst::MEMRef), false);

  // is this referencing global data?
  } else if (ip->has_mem_reference) {
    doCallM<width>(block, ip, MEM_REFERENCE(0), false);
    return ContinueBlock;
    // is this a simple address computation?

  } else {
    doCallM<width>(block, ip, ADDR_NOREF(0), false);
    return ContinueBlock;
  }
}

template<int width>
static InstTransResult translate_CALLr(TranslationContext &ctx,
                                       llvm::BasicBlock *&block) {
  auto ip = ctx.natI;
  auto &inst = ip->get_inst();
  const auto &tgtOp = inst.getOperand(0);
  //we are calling a register! this is VERY EXCITING
  //first, we need to know which register we are calling. read that
  //register, then make a call to the external procedure.
  //the external procedure has a signature of
  // void do_call_value(Value *loc, struct regs *r);

  TASSERT(inst.getNumOperands() == 1, "");
  TASSERT(tgtOp.isReg(), "");

  //read the register
  auto fromReg = R_READ<width>(block, tgtOp.getReg());
  doCallV(block, ip, fromReg, false);
  return ContinueBlock;
}

#define BLOCKNAMES_TRANSLATION(NAME, THECALL) static InstTransResult translate_ ## NAME (TranslationContext &ctx, llvm::BasicBlock *&block) {\
    auto F = block->getParent(); \
    auto ip = ctx.natI; \
    auto ifTrue = ctx.va_to_bb[ip->get_tr()]; \
    auto ifFalse = ctx.va_to_bb[ip->get_fa()]; \
    InstTransResult ret;\
    ret = THECALL ; \
    return ret ;\
}

BLOCKNAMES_TRANSLATION(LOOP, doLoop(block, ifTrue, ifFalse))
BLOCKNAMES_TRANSLATION(LOOPE, doLoopE(block, ifTrue, ifFalse))
BLOCKNAMES_TRANSLATION(LOOPNE, doLoopNE(block, ifTrue, ifFalse))
GENERIC_TRANSLATION(RET, doRet<32>(block))
GENERIC_TRANSLATION(RETI, doRetI<32>(block, OP(0)))
GENERIC_TRANSLATION(RETIW, doRetI<16>(block, OP(0)))
GENERIC_TRANSLATION(RETQ, doRet<64>(block))
GENERIC_TRANSLATION(RETIQ, doRetI<64>(block, OP(0)))

GENERIC_TRANSLATION(LRET, doLRet<32>(block))

BLOCKNAMES_TRANSLATION(JMP_4, doNonCondBranch(block, ifTrue))
BLOCKNAMES_TRANSLATION(JMP_2, doNonCondBranch(block, ifTrue))
BLOCKNAMES_TRANSLATION(JMP_1, doNonCondBranch(block, ifTrue))

void Branches_populateDispatchMap(DispatchMap &m) {
  m[llvm::X86::JMP32r] = translate_JMPr<32>;
  m[llvm::X86::JMP32m] = translate_JMPm<32>;
  m[llvm::X86::JMP64r] = translate_JMPr<64>;
  m[llvm::X86::JMP64m] = translate_JMPm<64>;

  m[llvm::X86::JMP_4] = translate_JMP_4;
  m[llvm::X86::JMP_2] = translate_JMP_2;
  m[llvm::X86::JMP_1] = translate_JMP_1;

  m[llvm::X86::CALLpcrel32] = (translate_CALLpcrel32<32> );
  m[llvm::X86::CALL64pcrel32] = (translate_CALLpcrel32<64> );
  m[llvm::X86::CALL32m] = translate_CALLm<32>;
  m[llvm::X86::CALL64m] = translate_CALLm<64>;
  m[llvm::X86::CALL32r] = translate_CALLr<32>;
  m[llvm::X86::CALL64r] = translate_CALLr<64>;

  m[llvm::X86::LOOP] = translate_LOOP;
  m[llvm::X86::LOOPE] = translate_LOOPE;
  m[llvm::X86::LOOPNE] = translate_LOOPNE;
  m[llvm::X86::RETL] = translate_RET;
  m[llvm::X86::RETIL] = translate_RETI;
  m[llvm::X86::RETQ] = translate_RETQ;
  m[llvm::X86::RETIQ] = translate_RETIQ;
  m[llvm::X86::RETIW] = translate_RETIW;

  m[llvm::X86::LRETL] = translate_LRET;
}

redpajama_set_name: RedPajamaGithub


Tulani is a powerhouse singer, songwriter and harpist whose music colors outside the lines. She can't be put in a box! Her voice, soulful and powerful has been described as "rich as coffee," Her music, a blend of pop, funk and soul and heavily influenced by the 60's, 70's and 80's has been described as "old school meets the future." A high energy and electric entertainer, Tulani, has opened up for Music Soulchild as well as George Clinton and Parliament Funkadelic. Tulani grew up surrounded by music. Her father was a professional jazz guitarist and songwriter, who trained and mentored Tulani in music. She started singing solos in her church choir when she was little and began studying harp soon after. Tulani began pursuing a career in music with dreams of becoming a global artist. She always loved singing, playing harp and performing.
Meanwhile, her different and commercial way of playing the harp landed her the opportunity to tour with Lady Gaga on the worldwide Monster Ball Tour where Tulani spent a year and a half playing harp in Lady Gaga's band. About a year after touring with Lady Gaga, Tulani met Producer/Songwriter Geno Regist. "When I first started writing with Geno, it was magic! We truly clicked, we went back to my roots, full of soul and passion, like how I used to sing in church and we meshed it with my affinity for funk and pop. The music is limitless, never in a box, it's a blend of everything I love with something new" says Tulani. Her debut single "Miss You" is a powerful heartfelt ballad produced by Geno and co-written by Tulani and Geno.


From almost missing not one, but two planes to losing my suitcase. What a day!
So my day started bright (not really, it was dark and -3C) and early at 5:30am.
After arriving at the Kelowna airport at around 8:00am, the first obstacle of the day was already upon us. The Air Canada system was down. At first the individuals working at Air Canada began manually writing everything by hand (i.e., boarding passes, baggage tickets, etc.), but (from what I overheard one Air Canada worker saying) security got mad at them so they stopped writing everything and decided to wait 20 minutes before rebooting the system.
Well, that was fine with me, because my flight was at 9:25am, so I still had quite a bite of time. By the time the system began to work again, it was 8:45am and I was ready for my flight.
Except… it had been delayed.
This would have been okay on any other day, except I only had a layover of 50 minutes in Calgary for my next flight. Since my flight in Kelowna was 30 minutes delayed, that meant that I would only have 20 minutes (if the flight arrived on time) to get to my next flight.
So I get to Calgary with 15 minutes to spare (HAH) and book it. I am literally running the fastest I have ran in a long while. I have to make it from terminal A to Gate E89. DO YOU GUYS UNDERSTAND HOW FAR THAT IS?
Two things I learned while running for dear life. A: I need to up my cardio game. I think my heart gave out a couple of times while running. B: The female agents portrayed in movies that are wearing heels while running are not portrayed accurately. They portray it as being easy "ladeedadeedum I'm running in heels ladeeda." NOOOOOPE. Running quickly in heels is very hard. IT IS VERY VERY HARD. For a good hot minute I debated whether I should just take my heels off and run in socks. I decided to go against it in the end because I wondered how crazy I would look.
BUT I MADE IT! Thankfully the plane had waited a few minutes because there were 5 of us getting on it. HALLELUJAH! Off to Houston!
The feeling of relief yet utter death all in one picture. Taken seconds after getting to my seat in the plane.
At this point my throat was on fire and my heart was burning.
AHAHAHAHAHA OH SWEET LORD IS THIS PUNISHMENT FOR NOT EXERCISING THIS YEAR?
Again, I had to run for my life from terminal A to C44. Thankfully, a bit of the distance was covered with a skytrain, so I think I had a little less running to do than compared to the Calgary airport dash.
"I'M SORRY, WHAT DID YOU SAY?? YOU BEST BE GIVING ME A SEAT SINCE IT WAS YOUR AIRLINE THAT MESSED ME OVER" is what I wanted to say in frustration.
"Could you please check and see if there are any remaining seats?" is what actually ended up coming out of my mouth.
Thankfully this ever so lovely lady found me a seat and I was off to my final destination, San Antonio!
Nothing else could go wrong, right?
"What ELSE happened?" you may ask?
Well, you see, as I was waiting for my baggage at the San Antonio airport, I came to realize something.
Thankfully, two lovely ladies working at the baggage area were so sweet, polite, and helpful. Why can't everyone working at airports be as amazing as them? They made sure to find where my suitcase was, made sure it was on the next flight to San Antonio (which was 2-3am), and gave me an "overnight care package" since I had no toiletries.
These amazing women told me that someone would deliver it to the hotel I was staying at and *fingers crossed* it would be here by the next day.
So I made my way over to the Pear Tree Inn hotel, got myself some food (finally!), and got ready for bed.
What an adventure-filled day! Here's to the next few days being great!


The VaporBlunt 2.0 Screen Pack is a two pack of replacement screens specifically for your VaporBlunt 2.0 Vaporizer.
If you aren't into cleaning screens for your vaporizer then don't even stress about it. Screens can get clogged easily and be difficult to clean and maintain. Instead of taking the time to clean the screens just replace them with the VaporBlunt 2.0 Screen Pack. The VaporBlunt 2.0 Screen Pack last longer before cleaning is necessary, with this two pack it should keep you going for a quite a while. With the VaporBlunt 2.0 Screen pack it will deliver high quality vapor.


text:
The anti-semitism v anti-Zionism question revisited
Because of recent information I was given*** I was prompted to update my chart on the "anti-semitism v anti-Zionism" debate. Clearly the two things have nothing in common .....
Anti-Zionism
Official Definition
Hatred of Jews
Hatred of the Jewish state
What vociferous proponents really want
Physical destruction of the entire Jewish race
Physical destruction of the entire Jewish state
What is the core belief
The Jews are the root cause of most suffering in the world
The Jewish state is the root cause of most suffering in the world
What it based on
The singling out and demonization of Jews based on a set of complete lies about the political, economic, social and religious behaviour of Jews
The singling out and demonization of the Jewish state based on a set of complete lies about the political, economic, social and religious behaviour of the Jewish state
How is it currently sustained
Continued and incessant lies about Jews – much of it emanating from Muslim countries and academia - promulgated in the media and on the web – that is rarely if ever challenged
Continued and incessant lies about the Jewish State – much of it emanating from Muslim countries and academia - promulgated in the media and on the web– that is rarely if ever challenged
Typical media presentation
Cartoons of big fat Jews who control the world and eat non-Jewish babies; cartoons of Jews killing non-Jewish children.
Cartoons of big fat Jews who control the world and eat non-Jewish babies; cartoons of Jewish soldiers killing Arab children
Who currently are the most virulent proponents
Muslims, left-wing political activists, Black panthers, right-wing extremists, racists, self-hating Jews
In Muslim countries Pew surveys report 96% of the population 'hate Jews'
In Muslim countries Pew surveys report 98% of the population 'hate Israel'
Most common beliefs
· Jews are baby-killers;
· Jews did 9/11
· Jews control America, Britain, France (add any country you like, including even Arab ones)
· Jews control the world banking system, the United Nations (add any international organization you like)
· Jews bake the blood of Christian children in their Passover matzos;
· Zionists are baby-killers;
· Zionists did 9/11
· Zionists control America, Britain, France (add any country you like, including even Arab ones)
· Zionists control the world banking system, the United Nations (add any international organization you like)
· Zionists bake the blood of Arab children in their Passover matzos;
Tactic 1: Deligitimization
The message that the Jews are a depraved, illegitimate, 'invented' race. Denial of Jewish history including its origin in the Middle East.
The message that the Jewish State is depraved, 'invented' and illegitimate. Denial of Jewish history including its origin in the Middle East.
Tactic 2:Boycott
In the 1930s the Nazi singled out Jews – and Jews only – for economic, cultural, political, and academic boycott (antisemites still do this informally)
Singling out the Jewish State - and only the Jewish State – for economic, cultural, political, and academic boycott
Economic boycott in practice
Boycott Jewish businesses; vandalise Jewish-owned shops and their products, including daubing Swastikas and Stars of David.
Boycott Jewish owned Israeli businesses; vandalise Jewish-owned Israeli shops and their products, including daubing Swastikas and Stars of David.
Cultural boycott in practice
In Nazi Germany Jewish artists, performers, writers and sportsmen were not allowed to perform, while books, art, and plays sympathetic to Jews were banned
Jewish Israeli artists, performers, writers and sportsmen are not allowed to perform, while books, art, and plays sympathetic to Israel are shut out or shut down
Use of the Law
In the 1930s special Nazi laws introduced to both outlaw Jewish-owned businesses and criminalise attempts by anybody else to work with them
Special EU and Arab laws introduced to outlaw Jewish-owned Israeli businesses and criminalise attempts by anybody else to work with them
Secondary boycott tactics
In Nazi Germany Non-Jews visiting Jewish houses and businesses were publicly vilified and threatened to be boycotted themselves if they did not cease their interaction with Jews
In today's West Non-Jews visiting the Jewish state and doing business with it are publicly vilified and threatened to be boycotted themselves if they do not cease their interaction with the Jewish state
Labelling and taxes
The Nazis forced Jews to wear the yellow star while Muslim countries have always forced Jews to pay a 'dhimmi' tax
The EU now forces Israel to put a special label on goods produced by Jewish-owned businesses (and only Jewish owned businesses) and also imposes additional taxes
Typical everyday behaviour
· Criticizing Jews for certain character traits (such as meanness, aggressiveness, deviousness) that are actually more prominent in other ethnic and religious groups
· Criticizing Jews for their genuinely good character traits (such as intelligence and business acumen) as in 'The Jews use these traits to trick and steal from non-Jews'
· Criticizing the Jewish State for certain character traits (such as meanness, aggressiveness, deviousness) that are actually far more prominent in most other countries
· Criticizing the Jewish State for their genuinely good character traits (such as intelligence and business acumen) as in 'The Zionists use these traits to trick and steal from the Arabs'
Beliefs about the Holocaust
The holocaust is exaggerated to gain sympathy for Israel. The only real holocaust was committed by Zionists against the Palestinians
What especially angers proponents
· Jews defending themselves from attack;
· Any Jewish success in science and culture
· The Jewish state defending itself from attack;
· Any Israeli success in science and culture
What they have never heard of or must never be mentioned
The total destruction of Jewish communities in Muslim lands after the establishment of Israel
About the killing of Jews by Arab terrorists
If it really happens then the Jews must have had it coming to them
If it happens at all it is a natural reaction against Zionist crimes
About violence generally
Jews are legitimate targets for violence
Zionist Jews are legitimate targets for violence
Who are their heroes
Hitler, George Galloway, Saddam Hussein, Ahmedinejad and any other Muslim bigot you can think of - because they "stood up to the Jews"
George Galloway, Saddam Hussein, Ahmedinejad and any other Muslim bigot you can think of – because they "stood up to the Jews Zionists"
Mandatory reading
Protocols of the Elder of Zion, anything by Gilad Atzmon
Popular phrase
"Jews back to Palestine"
"Jews out of Palestine"
What happens if they 'win'
Millions of Jews were killed in the Holocaust, but it did not help the Nazis in any way at all
Millions of Jews will be killed, but it will not help the Palestinians in any way at all
What is their current most hated thing in the whole world
The State of Israel
For an alternative spin on this see: Why anti-Zionism has nothing to do with antisemitism
*** I was told that the Streetwise organisation (whose website says that it "works nationally with Jewish schools and Community organisations, enhancing the personal safety and personal development of young Jewish people to support their safe, physical, and emotional wellbeing") had provided training at a Jewish school in London in which students were told that "anti-semitism was completely different to anti-Zionism". I now believe this was was a misunderstanding. After writing to Streetwise asking "In what way are you preparing Jewish students, for example, for the tsunami of hatred they will face when they go to University given that 100% of the hatred will be dressed up as anti-Zionism rather than what it really is?" I recieved the following response:
At Streetwise we use CST's antisemitic incidents and antisemitic discourse reports as the basis for discussing antisemitism, and the related and often overlapping problems of anti-Zionism and anti-Israel hate. The CST reports do not say that anti-Zionism is completely different to antisemitism; and this is not what was said in the session that you refer to.
Our specific work with 6th formers includes an antisemitism campus-preparation session in partnership with CST. This highlights the types of antisemitic hate crimes that young Jewish people may face on campus, as well as how to respond and report such incidents to the relevant authorities.
I am very happy to put the record straight on this. I believe that Streetwise are providing an excellent and very important service for the Jewish community. I will be looking into the CST material.
What Muslims believe
at 2:22 pm 3 comments:
Labels: antisemitism, major article, satire
Money for starving Africans or convicted Palestinian terrorists?
I have reported many times on the scandal of Britain's funding of the Palestinian Authority going to pay salaries of convicted terrorists. Finally, some of the main stream media is waking up to the story - as you can see from this report in today's Daily Express.
Cash for terrorist salaries from the Foreign Aid budget is by no means the only scandal relating to British payments to the 'Palestinian cause'. Millions more per year goes to NGOs based in Israel and the PA which are dedicated solely to the deligitimization of Israel. The idiots at the Foreign Office claim these payments will ultimately support a 'two-state solution', whereas these organisations actually do nothing other than incite hatred and violence.
And of course there is also the millions from hard-working Brits paid every year to charities like Oxfam, Christian and Comic Relief which ends up directly funding Palestinian Jew-hatred.
MP's response to my letter about funding convicted Palestinian terrorists
The UK is paying Palestinian terrorists to murder Jews
Labels: funding, terrorism, Tories
Charles meets IRA leader but won't visit Israel
Prince Charles has upset some people today by meeting IRA leader Gerry Adams, although nobody ever bats an eyelid when he - and the Queen - visit terrorist-sponsoring corrupt Arab regimes, which they do all the time.
Charles did make one visit to Israel in 1995 to 'represent the Queen' at the funeral of Yitzhak Rabin. It is the ONLY 'official' visit ever made by a member of the British Royal Family (his father Prince Philip visited his mother's grave in Jerusalem in 1994 but the Royal Family and the British Government made clear that this was only in a 'private capacity'). The anti-semitic Arab arse-licking goons who have dominated the British Foreign Office for years have never allowed the Queen to visit Israel in case it 'upsets our Arab friends'. But Prince Charles's aides went further than that in 2007 when they ruled out any official visit declaring:
"Acceptance would make it hard to avoid the many ways in which Israel would want HRH [Prince Charles] to help burnish its international image."
If David Cameron is even half the 'friend' of Israel that he and some of his naive Jewish supporters think then he should demand that the Queen finally accepts Israel's long-standing invitation to visit their country.
"Nothing must be done to 'burnish' the image of Israel"
How to get a letter published in the Evening Standard
Labels: UK antisemitism
In shock move Vatican recognizes Islamic State of Luton*
Pope Francis greets Luton Leader Anjem Choudary after Vatican formally recognises Islamic State of Luton today
The Vatican has quickly followed its recognition of the terrorist State of Palestine today by also formally recognising the Islamic State of Luton. In an historic meeting in Rome today with the moderate leader of Luton, the Emir Anjem Choudary, Pope Francis said:
The illegal occupation of Islamic Luton by the imperialist British government continues to be a barrier to world peace. The aspirations of the Muslims of Luton to have their own independent Sharia State - as Emir Choudary has heroically campaigned for years - can no longer be denied.
By recognising the Islamic State of Luton today the Vatican also brings pressure to bear on the British Government to ensure a peaceful transfer of power to these long down-trodden Muslim people.
Anjum Choudary, in a sensitive and conciliatory speech asserted:
The new Islamic State of Luton demands that the rest of Britain must now submit to Sharia law. No non-Muslim will be harmed providing they convert to Islam. We also demand that the Vatican renounce Catholicism and submit to the Sharia.
President Obama supported the move saying "I have always maintained that no peace in Britain is possible until there is a 2-state solution - a 100% Muslim State of Luton and a 65% non-Muslim State for the rest of Britain. Moroever, the world's 180 million Muslim refugees who originate from just outside Luton must be allowed to return to their ancient homeland (i.e. the rest of Britain).
Israeli President Benjamin Netanyahu also welcomed the move but said "I believe that Britain has a right to exist, but Israeli support for Britain's right to exist could not be guaranteed if the illegal occupation of Luton continued"
*Satire, but no more silly than the genuine news from the Vatican.
The Iran deal in full
Netanyahu: "France has right to exist but ..."
Obama's new plan to deal with ISIS
Tear down the Zionist Thams barrier ...
Obama: Nazis were not Nazis and were no worse than the Jews who slaughtered Amalekites
Obama to renew ties with Nazi Germany
Obama has Israel's back
Dramatic new announcement by Obama
Obama dispenses with Israel
If World War 2 had been conducted like this
If 9/11 was reported like reports on Israel ..
Labels: Obama, satire
Simple questions relating to the Middle East that are never asked
I have sent this to a couple of news outlets.
Why are Western countries expected to take in unlimited Muslim "refugees" while far wealthier (and under-populated) Muslim countries like Qatar, Saudi, UAE, Bahrein, etc never are despite them sharing the same religion, language and culture as the "refugees"?
Why is it a cause for celebration when Americans, Brits or Arabs kill Islamic terrorists, but a 'war crime' when Israel does it?
Why is the only country in the Middle East that is not an apartheid state (Israel) the only one that is accused of being an apartheid state?
How is it that the people who call Israel an 'apartheid' state also generally insist that every single Jew must leave 'Palestinian territory'?
Why are antisemitic activists who are dedicated to the destruction of Israel always called "Pro-Palestinians" rather than what they really are?
Can you identify a single pro-Palestinian activity (as opposed to anti-Israel activity) that has ever been carried out by any Western "pro-Palestinian" activist?
Why are anti-Zionist organisations like Yachad, J-Street and the New Israel Fund still referred to as being 'pro-Israel'.
Why are bigoted, brainwashed Westerners who go to "Palestine" to throw rocks at Israelis called "peace activists"?
Why are scorecards of 'civilians killed' mandatory for conflicts involving Israel (as in "2000 Palestinians killed, only 10 Israelis"), but never used in any other conflict in the world (did you ever see the number of dead British or US civilians mentioned when those countries mount attacks against Arab countries)?
Over 140 countries in the United Nations were either created, or achieved independence, after 1945. Why is it that only one - Israel - has its legitimacy questioned?
Why do people who routinely reject Israel's claim to its own capital city Jerusalem never question Britain's claim to the Falkland Islands (a mere 13,000 miles away)?
(To all British politicians) Why do you insist that Muslim colonisation of British cities is a great success for multi-culturalism, whereas allowing Jews to live in their own capital city Jerusalem is an obstacle to peace?
Why does Iran need 'peaceful nuclear energy' when it has the second largest reserves of oil and gas in the world (enough to meet its own population's energy demands for over a million years)?
Why is Turkey still occupying Northern Cyprus?
(To all politicians) If - as you insist - Islamist terrorists who declare that they are killing in the name of Allah are not Muslims, then what religion are they?
(To all politicians) If - as you insist - Islam is a "Religion of Peace" then why do you you also tell cartoonists they must not draw Mohamed as it will incite Muslims to kill them?
(To David Cameron and every single LibDem and Labour politician) If, as you always say, every penny reduction to the Foreign Aid budget will lead to more African children starving to death, how do you justify the £20 million of the budget every year being paid to the Palestine Authority as salaries for convicted terrorists?
If poverty and discrimination are reasons youngsters in the West turn to terrorism, how come it is primarily Muslims (and not Hindus, Sikhs, Buddhists, non-Muslim Africans, non-Muslim blacks, Charedi Jews, gypsies and indeed every other poor, minority group) that have actually become terrorists?
Rules and guidelines for reporting of Israel and the Middles East
Vatican recognises Islamic State of Luton
Labels: major article, media bias
The dangers of criticising Islam
Ed Miliband got plenty of things wrong in his election campaign but he got unfairly singled out for his plan to "outlaw Islamaphobia" under a Labour Government. In fact Miliband was simply following a commitment made two months earlier by the Conservative Party.
Moreover, the criminalisation of 'Islamaphobia' (including 'displaying posters critical of Islam' and 'tearing pages from a Koran') had already been put into practice many times by the last Conservative-led government, as can be seen from the examples here and here.
Of course in the USA criticising Islam could never by criminalised because of the First Amendement. And that is why the American (and world-wide) response to the Jihad attack against Pamela Geller's "Draw Muhamed" event was so appalling (basically Geller - and not the Jihadists - got the blame).
Mark Steyn has a fantastic article "Stay Quiet and You'll BeOkay" on the attacks on Geller but I was prompted from what he wrote to do this piece because even Steyn made the mistake of assuming that Milliband and the Labour Party were somehow unique in the UK in their intent to criminalise "Islamaphobia". Not only was this official Conservative and LibDem policy before Labour announced it but it is also supported by the SNP, the Greens and the Welsh Nationalists. In other words everyone (except UKIP).
Incidentally I reproduce below an appeal I received from Pamela Geller. I don't normally do this sort of thing but this woman is one of the bravest people in the world and (as proven by the small number in the West who have challenged sharia law publicly) her life is in imminent danger. The Obama administration has made it clear they will do nothing to protect her (I suspect they will be rather relieved if she is murdered) and she needs money for security.
Appeal from Pamela Geller
Look. I am sure you have heard about what happened in Garland, Texas. Two jihadists wanted to replicate and ramp up what happened in Paris, by murdering scores of patriotic Americans who were standing in defense of free speech. They were met with an utterly authentic response. The media has been waging jihad against the defenders of freedom, primarily me, but that's only a device they are using to destroy anyone who speaks against the sharia and jihad. In the wake of our Muhammad Art Exhibit and Cartoon Contest, ISIS issued a death threat against me. They called me khanzaar -- pig -- which is the word Muhammad used of his victims before he slaughtered Jews. They threatened to murder also anyone associated with me, anyone who defends me, and anyone who supports our work
In other words, they've declared war against America.
The media, on the other hand, is aligned with the jihad force. They're cheering and agitating for my demise -- some news outlets have even asked me for my posthumous remarks. They have been viciously attacking me and Robert Spencer, blaming us for the attack on us.
They are not going to win. We are not going to let them win. If we had a responsible media, it would report on the positive developments in light of this terrorist attack: the jihadists were killed. By drawing them out, we exposed their network, without getting anyone killed. The FBI is now going after sources. They are gleaning intel from their computers as we speak. We smoked out a terror structure. The FBI has put more American terror suspects under constant surveillance following the deadly attack. Every city across the U.S. has "subjects of concern" under heightened scrutiny, and the military is taking the threat seriously enough to raise the threat level to Bravo -- the highest level since 9/11. The terror network that hit us has now expanded to include roots in Minneapolis.
People say we "provoked" the jihadis. But it has since come out that they were already looking for targets to hit. If they hadn't hit us, they would have hit a much less protected target, as did the jihadist Amedy Coulibaly in the Hyper Cacher kosher supermarket in Paris, and the jihadist Man Haron Monis in the Lindt Chocolat Cafe in Sydney, Australia. The jihadis in Garland weren't provoked by us -- they are already provoked. Our event just smoked them out. If we had not had such extensive security, many more people would have died -- either at our event or somewhere else. Instead, the only dead were two jihadis, and a jihad network is exposed.
All that from one little art exhibit.
With just one small, relatively obscure presentation, America has been made aware that the threat is here. America has been made aware of the virulence of the war on free speech. Obama cannot ignore and excuse terrorism that is committed in the name of Islam, and we exposed the quislings and apologists for jihad terror among the political, cultural and media elites.
This has come with an enormous cost.
We are now marked. Marked for life. And we need to take extraordinary measures to protect ourselves, and above all, our work for freedom. This involves costs that are so far beyond astronomical, they take our breath away.
Yet this is not negotiable. The NYPD and our own security team have told us in no uncertain terms that specific measures must be taken.
We cannot rely on the Obama administration. The FBI has not even bothered to contact us. Clearly, if we held positions the administration favored, we would be under guard sent by the government right now. But we do not.
That means that it's on us. And that means you, because we cannot do it without you. If you support our work, if you support the stand we have taken, we need your help now more than we ever did before. This is going to require a small army. And not just for the next month, but for the foreseeable future.
This is not just about protecting some people from being attacked and killed. This is about taking a stand and showing the world that violence, murder and threats will not win.
We need your help now more than ever. Now is the time. This is a gamechanger. This is a new era. Few have realized just how different everything is after Garland: now Americans will have to watch their back every time they do anything that Muslim fanatics think "offends Islam."
Strike a blow against that. Strike a blow for freedom. Every dime will be used for security -- nothing else. Send your tax-deductible donation via Paypal to americanfreedomdefense@aol.com -- go here. Or send to:
1040 1st Ave. #121
Cartoon from http://comicallyincorrect.com/2015/05/13/pam-geller/
Labels: censoring, terrorism
Money for starving Africans or convicted Palestini...
In shock move Vatican recognizes Islamic State of ...
Simple questions relating to the Middle East that ...
The variety of policies that were offered by UK po...
Death threat from ISIS


SIRIS - BBC Birkenhead Brewing Co.
We present our next offering in collaboration with Ninkasi Brewing Co called 'Siris' (pronounced "suh-rees"). The Mesopotamian goddess Siris is known as the patron of beer and was daughter of the Sumerian goddess of beer, Ninkasi.
We'll be making more seasonals in the future. In the meantime, enjoy our second collaboration - Siris Red IPA - our stunning offering to you and the beer goddesses.
A rare one-off beer - a memorable occasion.
A punchy, elegant and smooth Red IPA balanced on US & NZ hops and a big malt blend. Tastes fresh and hoppy with moderate bitterness and some caramel, toffee and dark fruit character.
Dry and clean finish. Reddish copper and clear in appearance with a persistent head.
888ml bottle, 30 litre stainless.


These zucchini squares make a great side dish or a great light lunch. Here's one delcious way to get your veggies!
Heat oven to 350. Spray a 9" x 13" baking pan w/ cooking spray. In lg bowl, whisk together eggs, oil, parmesan cheese, parsley, salt, oregano, basil and garlic powder.
Whisk in onion then baking mix. Stir in zucchini. Spoon into pan. Bake until golden, about 25-30 mins.


text:
Community Character Under CEQA Limited to Aesthetics, Appellate Court Rules
By: William Fulton on Mar 14, 2016
Environment Watch
Resident concerns about the social and psychological impact associated with the conversion of a horse-boarding facility to a 12-lot subdivision do not constitute a "community character" issue requiring an environmental impact report, the Fourth District Court of Appeal has ruled. >>read more
CDFA Erred in EIR Alternatives Analysis on Pest Control Action, Court Rules
By: William Fulton on Jan 11, 2016
alternatives, California Environmental Quality Act, Environment Watch
The California Department of Food & Agriculture erred in preparing an environmental impact report for a program intended to eradicate with an invasive pest without examining the long-term consequences of an alternative program to control the pest rather than eradicate it, the Third District Court of Appeal has ruled.
As it happens, CDFA actually switched the program at the last minute from eradication to control, but the Third District said the defeat in the EIR would have been a legal problem under any circumstances. Relying on Neighbors for Smart Rail v. Exposition Metro Line Construction Authority (2013) 57 Cal.4th 439, the Third District said CDFA's action was "prejudicial," requiring the appellate court to reverse two trial court rulings related to the case.
The case involves CDFA's efforts to eradicate the light brown apple moth, or LBAM, an invasive "leaf-roller" moth that was first seen in California in 2007. Because LBAM represented a threat to all California ornamental plants as well as fruits and vegetables, and its invasion of California was moving fast, the legislature quickly authorized CDFA to undertake a temporary LBAM program with the goal of eradicating the pest. >>read more
Will CBIA v BAAQMD Make Infill Projects Easier To Build in California?
By: Martha Bridegam on Dec 20, 2015
California Environmental Quality Act, Environment Watch
Last week's unanimous, finely worded ruling by the California Supreme Court has spared builders their worst-case scenario in the long-awaited "CEQA in Reverse" case. It does not interpret the California Environmental Quality Act to require an environmental impact report whenever a project might attract more people within range of an existing hazard such as air pollution or earthquake risk. >>read more
Supreme Court Gives Enviros Big Victory on Newhall Ranch
By: Martha Bridegam on Nov 30, 2015
California Environmental Quality Act, Environment Watch, Los Angeles County, Newhall Ranch
California's Supreme Court broke the Newhall Land & Farming Company's long winning streak November 30 in a victory for environmental and community groups over the Newhall Ranch megadevelopment. >>read more
First District Reverses Earlier Decision in Berkeley Hillside Case
By: William Fulton on Nov 1, 2015
Reversing itself on remand, the First District Court of Appeal has ruled in the Berkeley Hillside case that the proposed home of computer pioneer Mitch Kapor and his wife does not, in and of itself, represent an "unusual circumstances" under the CEQA Guidelines and therefore the City of Berkeley acted properly in applying a CEQA exemption to the project.
In so doing, the court did not need to move on to the second half of the analysis laid out earlier this year by the California Supreme Court in the appeal of the Berkeley Hillside case, Berkeley Hillside Preservation v. City of Berkeley (2015) 60 Cal.4th 1086, which was decided in May. >>read more
Supreme Court Denies, Depublishes Riverside Habitat-CEQA Case
By: William Fulton on Oct 11, 2015
Brownfields, Environment Watch, Riverside County
The California Supreme Court has denied review of a case from Riverside County involving the interplay of habitat conservation planning and the California Environmental Quality Act -- and also depublished the case so it cannot be used as precedent. >>read more
Sixth Circuit Issues Nationwide Stay on EPA's WOTUS Rule
By: Martha Bridegam on Oct 11, 2015
Environment Watch, Waters of the United Statrs, Wetlands
The federal Sixth Circuit Court of Appeals on Friday issued a nationwide stay blocking enforcement of the new federal rule defining "Waters of the United States". For now the stay applies in all states, including California. While it lasts, the "Waters Of..." definition returns to the jumbled but familiar state it was in before the new rule took effect on August 28. Although the stay is only a temporary measure, it strengthens legitimacy and buys time for opponents of the Obama Administration's approach to clean water regulation. >>read more
High Court Faces Tough Deferred Issues on CEQA Docket
By: Martha Bridegam on Sep 20, 2015
The California Supreme Court is finally catching up on its backlog of cases interpreting the California Environmental Quality Act (CEQA). Recently the justices moved along two cases related to the law's climate change implications. The bottom line, however, is that the list is getting longer. The court now has eight CEQA cases pending on issues ranging from how CEQA must account for climate change to whether the law is pre-empted by federal railroad regulation.
The justices heard arguments September 2 on the leading Newhall Ranch case, emphasizing greenhouse gas reduction standards. They've also just scheduled oral argument for October 7 on the "CEQA in Reverse" case, which addresses whether developers must consider the impact of environmental conditions on a project, as well as vice versa.
This is a big change from a year ago. Shorthanded from two retirements, the court had a docket full of big lurking environmental review issues with grants of review dating as far back as 2012. Last year, not counting denials of review, the justices issued one big CEQA opinion in the whole year: Tuolumne Jobs & Small Business Alliance, an August 2014 decision allowing the use of ballot measure petitions to pressure local governments into adopting large projects. (See CP&DR coverage here.) >>read more
For Better or Worse, The Tuolomne Tactic Is Here to Stay
By: William Fulton on Sep 7, 2015
Just before Labor Day, Rick Caruso, the savvy real estate developer from Los Angeles, used the "Tuolomne Tactic" to end-run the California Environmental Quality Act in order to get a shopping center approved in Carlsbad.
Which means the score is now one Walmart in Tuolomne County, two football stadiums in L.A., and a shopping center in San Diego County. And that raises a pretty interesting question: How far will developers push the Tuolomne Tactic? And will the Legislature step in with a fix?
Not likely - which means California planning regulation just got even more convoluted than it was before. >>read more
Valencia Water Company's Status Becomes a Newhall Ranch Football
By: Martha Bridegam on Jun 1, 2015
Environment Watch, Los Angeles County, Newhall Ranch, Water
This article was corrected on June 2, 2015.
The longtime battle over Newhall Ranch has spilled into unusual legal territory with a fight over the status of the private water company that would likely serve the development project.
Uniquely, the Valencia Water Company (VWC) may be California's only active large-scale water provider that is neither public, nor mutual, nor regulated as a private entity by the California Public Utilities Commission (CPUC).
VWC still supplies water day by day to some 31,000 existing hookups serving about 120,000 people in the Santa Clarita Valley of Los Angeles County. But legally VWC has been in an odd state of existence for a little over a year. Opinions differ whether VWC is public or private, what rules apply to its continued operation, and even by what right it operates at all.
prev | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | next


Crack 2 eggs and whisk until combined.
I microwave mine for 2 minutes, you can cook it how you would like to on the stove or otherwise.
Cut up the avocado into diced pieces add to cooked eggs.
Add Jalapeños, cayenne and cracked paper, stir through and enjoy!


text:
«Міст Верразано» — науково-фантастичний роман російського радянського письменника Олександра Мірера. У романі розповідається про винахід електромобіля, здатного замінити автомобілі з двигунами внутрішнього згоряння, і про проблему запуску подібного дива техніки в масове виробництво у світі, в якому править нафта.

Сюжет
У США, у зовсім недалекому майбутньому, учений-інженер Берт Ейвон («Розумник») винаходить акумулятор з дуже великим ККД ("Я винайшов акумулятор. Вага прим. 120 фунтів. Дає пробіг авто орієнт. 100 тис. миль»"), ставить його на спеціально зібраний для цієї мети електромобіль " і запрошує главу американської корпорації «Дженерал Карз» Клемента Гілберта («Сі-Джі») взяти участь у запуску автомобіля в масове виробництво. Однак герої швидко усвідомлюють, який виклик автомобіль кидає світу, в якому всім править нафта, який це може викликати крах промисловості та економіки ("«Він уявив собі паніку на світових біржах, крах нафтових компаній, нафтоперегонних заводів, крах жахливої мережі бензозаправок...»"), але все-таки вирішують спробувати.

Поки автомобіль тестують і вивчають, люди, чий бізнес будується на нафті, дізнаються про винахід і намагаються перешкоджати його масового впровадження. Зокрема, підривають цех з експериментальним зразком, ведуть полювання за винахідником, який змушений ховатися в Голландії, шантажують Сі-Джі і домагаються припинення проекту.

Розумник не сидить склавши руки і винаходить «машинку-невредимку» — пристрій, здатний створювати захисне поле навколо об'єкта, і таким чином захищає себе і своїх друзів від замахів на життя та здоров'я. Завдяки своєму винаходу він переживає замах і змушений сам вбити одного з людей, які боролися з його проектом.

Хоча Розумник і його близькі залишаються живі і здорові, проект в найближчому майбутньому більше продовжувати ніхто не збирається. За ідеєю автора, поки в світі правлять гроші, отримані від реалізації нафти, люди не здатні відмовитися від такого способу життя навіть заради високих таких благородних ідей, як чисте довкілля і здоров'я своїх дітей.

Посилання
 "С. В. Бережний." Хто оплатить майбутнє?  (рецензія на роман «Міст Верразано»).
 "О. М. Ковтун." Художній вимисел у літературі XX століття. — , «Вища школа». — 2008. С. 325. ISBN 978-5-06-005661-7

Твори Олександра Мірера
Науково-фантастичні романи Росії
Науково-фантастичні романи 1998
Російськомовні фантастичні романи
Книги за алфавітом

redpajama_set_name: RedPajamaWikipedia


text:
Home I Quality I Compliance I Line Card I Shopping Cart I About I Contact I My Account I Careers I
Part # Site
Advanced Interconnections
Aero Conesys
Carlisle Tri-Star
Cinch Connectivity Solutions
DMC - Daniels Tools
Glenair
J-Tech Conesys
L-com Global
Connector Backshells
Connector Contacts
Mighty Mouse Connectors
Military Connectors
Protective Dust Caps
Stuffing Tubes
Rugged RJ45 Connectors
Tools and Tool Kits
Value-Added Lines
MIL-PRF-28876
MIL-DTL-26482 I
MIL-DTL-26482 II
MIL-DTL-38999 III
Front Release
Rear Release
Home » Item Detail
97-3106A18-8PW
Mfg. Name: AMPHENOL INDUSTRIAL VAD
Description: 5015 Solder Plug 97-Blue Insert
Stock to Build: 5-Day Assembly! NA
Price: CALL
__________________________________________________________________________________________________________
ICC Corporate Quick Links My Account
Home Interactive Line Card LOG IN
About Us Quality Account Details
Contact Us Glossary of Terms Shopping Cart
Newsletter Sign-Up Value-Added Video RFQ Cart
Newsletter Archive Web Survey Sales T&C
Request Supplier Catalog PDF Catalog Library PO T&C
Press Room Compliance Privacy Policy
Careers at ICC
Tweets by @connecticc
© Interstate Connecting Components | 100C Mount Holly Bypass | Lumberton, NJ 08048 | P: 800-422-3911 | F: 856-722-9425 | View All Locations


LEGIT Clickworker Reviews: SCAM or LEGIT?
Clickworker has a lot of tasks lately!
Also, Clickworker App is now available on iPhone and Android devices.
You can do tasks and earn anytime and anywhere you want.
If interested please join and CLICK HERE!
I joined Clickworker after reading this review. It's been 6 days since I joined. I have filled in my profile and verified my phone but so far I could not see a single task available. I wanted to take the assessment but it states, no base or project assessment available. May be it only works for countries like US, UK.
Clickworker has a strict requirement with jobs. I once accepted a job called "take photos of clothes with stains". I went into the kitchen and splashed a drop of oil on an old shirt. After waiting for half a week, it was rejected.