text:
«А́нна Каре́нина. Исто́рия Вро́нского» — российский полнометражный художественный фильм, а также его расширенная восьмисерийная телевизионная версия под названием «Анна Каренина», снятые режиссёром Кареном Шахназаровым в 2017 году. Является вольной экранизацией одноимённого романа Льва Толстого, публицистической повести «На японской войне» и цикла «Рассказы о японской войне» Викентия Вересаева.

Слоган фильма — «Великая любовь не зависит от времени».

Премьера многосерийного (8 серий) телевизионного художественного фильма «Анна Каренина» состоялась с 17 по 20 апреля 2017 года на телеканале «Россия».

Всероссийская премьера в кинотеатрах полнометражного художественного фильма «Анна Каренина. История Вронского» состоялась 8 июня 2017 года.

Картина является первым телесериалом, снятым режиссёром Кареном Шахназаровым.

Сюжет
Действие фильма разворачивается по двум сюжетным линиям, связанным друг с другом одной историей. События происходят во второй половине XIX века в Российской империи (1872—1875) и в начале XX века в Китае на Русско-японской войне (1904).

Повествование начинается спустя тридцать лет после трагической гибели Анны Карениной, на полях Русско-японской войны, которая не была описана в романе Льва Толстого.

Основное время действия картины — 1904 год, место действия — Маньчжурия. Идёт война. Госпитальный обоз отступает вместе с Русской императорской армией. В суматохе исчезают главный врач и смотритель госпиталя. Старшему ординатору Сергею Алексеевичу Каренину приходится принять руководство госпиталем на себя. В полузаброшенной китайской деревне, где располагается госпиталь после отступления, Каренин оперирует раненого полковника, которого зовут Алексей Кириллович Вронский.

Ночью Сергей приходит в палату к Вронскому и просит рассказать ему, почему его мать, Анна Каренина, которую граф знал тридцать лет назад, бросилась под поезд, и можно ли было что-либо изменить в тот роковой день. Постаревший Вронский соглашается с неохотой и, предупредив о том, что у каждого человека своя правда, начинает рассказывать взрослому сыну своей любимой женщины историю любви к его матери.

В ролях
 Елизавета Боярская — Анна Аркадьевна Каренина (Облонская)
 Максим Матвеев — Алексей Кириллович Вронский, граф, полковник
 Виталий Кищенко — Алексей Александрович Каренин, муж Анны
 Макар Михалкин — Серёжа (в детстве), сын Анны Аркадьевны и Алексея Александровича Карениных
 Кирилл Гребенщиков — Сергей Алексеевич Каренин (Серёжа, тридцать лет спустя), сын Анны Аркадьевны и Алексея Александровича Карениных, военный врач, начальник госпиталя
 Владимир Ильин — седой генерал
 Иван Колесников — Степан Аркадьевич («Стива») Облонский, брат Анны Карениной
 Татьяна Лютаева — графиня Вронская, мать Алексея Кирилловича
 Виктория Исакова — Долли (Дарья Александровна) Облонская, жена Стивы Облонского
 Анастасия Макеева — Бетси (Елизавета Фёдоровна) Тверская (Вронская), княгиня, кузина Алексея Кирилловича, жена кузена Анны Карениной (Облонской)
 Иван Верховых — семейный доктор Карениных
 Алексей Вертков — капитан Максимов, раненый русский солдат
 Дмитрий Миллер — Александр Кириллович Вронский, граф, брат Алексея Вронского

Производство
Подготовка к съёмкам фильма «Анна Каренина» началась в январе 2015 года, а до этого ещё около двух лет велась кропотливая работа над сценарием.

Съёмки проходили с начала 2016 года в Москве (в павильонах «Мосфильма»), Санкт-Петербурге и Богородицке. Натурные съёмки производились в Крыму, для чего была специально построена и затем сожжена целая китайская деревня. Съёмочный процесс закончился в июле 2016 года.

Фильм создан по заказу телеканала «Россия», но исключительно за деньги спонсоров. По словам режиссёра Карена Шахназарова, «…государственных денег нет в этой картине. Можете это опубликовать, чтобы не было лишних разговоров. От государства не получили на съёмки ни копейки (только — деньги спонсоров). Это важно». В картину основательно вложились канал «Россия-1» и киноконцерн «Мосфильм».

Рейтинг и оценки
 Первая серия получила 14—15 %, потом рейтинги упали до 13 % (что ниже средней доли телеканала «Россия-1» в этот временной слот).
 Протоиерей Георгий Ореханов, исследователь жизни и творчества Толстого, так высказался об экранизации: «Посмотрел две минуты и выключил, не смог дальше смотреть. Честно скажу, не могу смотреть никаких новых экранизаций».
 Леонид Клейн отметил: «На мой взгляд, никаких удачных экранизаций ["Анны Карениной"] в принципе нет, кроме фильма, который вышел несколько лет назад по сценарию Стоппарда».

Примечания

Ссылки
  на официальном канале «Мосфильма»

 Анонсы (серии № 1—8). Многосерийный телевизионный художественный фильм Карена Шахназарова «Анна Каренина» (Россия, 2017 год). Сетевое издание «Государственный интернет-канал "Россия"» // russia.tv

Фильмы России 2017 года
Телесериалы России 2010-х годов
Телесериалы России, запущенные в 2017 году
Телесериалы России, завершённые в 2017 году
Экранизации романа «Анна Каренина»
Фильмы-драмы России
Драматические телесериалы России
Телесериалы России на военную тематику
Фильмы о Русско-японской войне
Фильмы студии «Мосфильм»
Телесериалы, снятые при участии студии «Мосфильм»
Телесериалы телеканала Россия-1
Фильмы о Российской империи
Телесериалы, снятые по заказу ВГТРК
Кинофильмы, имеющие телеверсии


German winemaking has its place in Washington's wine production.
Riesling is a grape of many ways. It can be dry from a fermentation that consumes all the fruit sugars, it can be still or sparkling. Some evolve gracefully from time spent aging in a bottle, others in a great big tartrate-lined oak barrel that has been used for centuries. The interior of these barrels gives the wine a distinct mouthfeel that is definitely not anywhere near oaky.
Many people think Riesling is sweet, and it can be. But there is so much more to it! Riesling can be semi-sweet or semi-dry, sweet or even real sweet, as in dessert. It can be crisp and it can have a wonderful minerality. It's a very versatile grape. And the Germans and Alsatians have been perfecting this for a few centuries.
A couple of common characteristics of Riesling, especially those from Germany, are they are rarely blended with other varietals and rarely exposed to oak. With the possible exception of some maverick vintners fermenting in neutral oak barrels or the Alsatians who use barrels lined with hundreds of years' worth of tartrates.
The wine classification system in Germany is highly organized and much can be learned about the wine's pedigree by reading the label. The German Wine Law of 1971 is strictly adhered to in Germany's delineated and registered vineyards, and the grapes from these vineyards can be used to make wine of the different quality levels that are determined by the ripeness or must weight (more sugars make a heavier must) of the grapes.
In Germany, sugar levels at the time of harvest are an important consideration in the Qualitatswein (quality wine) production. The sweetness of the wine is categorized using terms that describe the ripeness of the grapes such as Kabinett, Spätlese, Auslese, Beerenauslese, Trockenbeerenauslese and Eiswein.
Equally important is wine's acidity, which is made possible by the cool nights on the steep ridges of the Mosel, Saar and Ruwer Rivers off the Rhine River, where some think the best Rieslings in the world are made.
Acidity is yang to the Riesling's sugar's yin. You must have an equal amount of both to make a balanced wine. There are two types of acidity, malic acid and tartaric acid. Malic acid is the softer rounder acidity. Similar to the mouthfeel of a nice cold glass of half and half. Tartaric acidity will bring a snappy citrus crispness to your wine.
In cool years, waiting until November to harvest Riesling is a high stakes gamble. If the birds don't make off with the harvest, the longer hang time and cooler weather concentrates the sugars, and the acidity levels definitely rise.
Hundreds of years of practice at making wine in a cold climate was an exacting science for German winemakers. They measured the fruit sugars, the acidity and always kept an eye on the thermometer, both inside and out. Before refrigeration, wineries could and did stabilize the wine with the weather, the low temps in winter would halt fermentation and leave the wines with natural sugars and a resultant lower alcohol.
High levels of both acidity and sugar are necessary if you intend to age a Riesling. Riesling acquires more depth and breadth as it ages. If the levels are high, after 10 or so years, they could precipitate out into "wine jewels" little tartaric deposits in the bottom of the bottle.
I recently shared (wine is always better when shared) a bottle of a Selbach 2003 Zeltinger Himmelreich Spätlese from my cellar. Reading the label word by word, Selbach is the producer. Zeltinger is the name of the town where the vineyards lie, and Himmelreich is the name of the delineated vineyard. Finally, Spätlese is the name of the style the wine according to the strict law of the Germans. It was magnificent with the lemon, ginger and white pepper cake.
Another you may be familiar with is Dr. Loosen (In German, double vowels are never both pronounced, only the second vowel is used) 2016 Wehlener Sonnenuhr Riesling Kabinett. A delicious, lip-smacking wine with everything: spice, minerality, floral notes and lovely fruit.
The Langguth family winery was founded in 1789 by Franz Wilhelm Langguth. It has expanded from the Mosel to five continents. It also owns the famous Blue Nun brand and is in the top five of German wine producers.
In the early 1980s, it made the move to Washington state to try its winemaking knowledge on Riesling. It invested a heap of money to build a very huge winery in Mattawa. It opened in 1982. Jurgen Grieb, a graduate of a German winemaking institute, was imported to be the winemaker.
Weinbau Vineyard, a 460-acre vineyard, was planted in 1981 as part of Langguth Winery. Alas, some good wines were made, but after a few years it was out of business. Weinbau is now part of the Sagemoor partnership; the huge winemaking facility is a custom-crush winery. Jurgen Grieb liked Washington state enough that he stayed on to open his own winery, Treveri Cellars in Wapato.
Treveri Cellars Sparkling Riesling is, in the German tradition, 100 percent Riesling. From Washington's oldest AVA, Yakima Valley, this sparkling wine is semi-dry and like any of their sparkling wines, perfect for every occasion.


text:
O pau de chuva é um instrumento musical idiofónico, ou seja, é o próprio corpo do instrumento que produz o som, instrumento de percussão e ritmo com um som musicalmente impreciso, próximo ao que chamamos de ruído, originário do Chile.

Muitos destes instrumentos têm forte presença em cerimônias religiosas ou na prática de rituais xamânicos, em sessões de santería cubana, que geraram ritmos populares como o son, o mambo, etc., denunciando alguma influência indígena na música negra cubana.

São desta família também diversos tipos de chocalhos africanos, alguns formados apenas por um corpo qualquer revestido com uma malha de fios e contas.
Este instrumento é decorado com símbolos indígenas.

Idiofones percutidos
Instrumentos de percussão

redpajama_set_name: RedPajamaWikipedia


text:
use crate::ptr::NullPtr;
use crate::{CppBox, CppDeletable, Ptr, Ref, StaticUpcast};

/// Performs some of the conversions that are available implicitly in C++.
///
/// `CastInto` is automatically implemented for all `CastFrom` conversions,
/// similar to `From` and `Into` traits from `std`.
pub trait CastFrom<T>: Sized {
    /// Performs the conversion.
    ///
    /// ### Safety
    ///
    /// This operation is safe as long as `value` is valid.
    unsafe fn cast_from(value: T) -> Self;
}

/// Performs some of the conversions that are available implicitly in C++.
///
/// `CastInto` is automatically implemented for all `CastFrom` conversions,
/// similar to `From` and `Into` traits from `std`.
pub trait CastInto<T>: Sized {
    /// Performs the conversion.
    ///
    /// ### Safety
    ///
    /// This operation is safe as long as `self` is valid.
    unsafe fn cast_into(self) -> T;
}

impl<T, U: CastFrom<T>> CastInto<U> for T {
    unsafe fn cast_into(self) -> U {
        U::cast_from(self)
    }
}

impl<T, U> CastFrom<Ref<U>> for Ptr<T>
where
    U: StaticUpcast<T>,
{
    unsafe fn cast_from(value: Ref<U>) -> Self {
        StaticUpcast::static_upcast(value.as_ptr())
    }
}

impl<'a, T, U: CppDeletable> CastFrom<&'a CppBox<U>> for Ptr<T>
where
    U: StaticUpcast<T>,
{
    unsafe fn cast_from(value: &'a CppBox<U>) -> Self {
        StaticUpcast::static_upcast(value.as_ptr())
    }
}

impl<'a, T, U: CppDeletable> CastFrom<&'a CppBox<U>> for Ref<T>
where
    U: StaticUpcast<T>,
{
    unsafe fn cast_from(value: &'a CppBox<U>) -> Self {
        StaticUpcast::static_upcast(value.as_ptr())
            .as_ref()
            .expect("StaticUpcast returned null on CppBox input")
    }
}

impl<T, U> CastFrom<Ptr<U>> for Ptr<T>
where
    U: StaticUpcast<T>,
{
    unsafe fn cast_from(value: Ptr<U>) -> Self {
        StaticUpcast::static_upcast(value)
    }
}

impl<T, U> CastFrom<Ref<U>> for Ref<T>
where
    U: StaticUpcast<T>,
{
    unsafe fn cast_from(value: Ref<U>) -> Self {
        StaticUpcast::static_upcast(value.as_ptr())
            .as_ref()
            .expect("StaticUpcast returned null on Ref input")
    }
}

impl<T> CastFrom<NullPtr> for Ptr<T> {
    unsafe fn cast_from(_value: NullPtr) -> Self {
        Self::null()
    }
}

impl<T, U> CastFrom<*const U> for Ptr<T>
where
    U: StaticUpcast<T>,
{
    unsafe fn cast_from(value: *const U) -> Self {
        Self::cast_from(Ptr::from_raw(value))
    }
}

impl<T, U> CastFrom<*mut U> for Ptr<T>
where
    U: StaticUpcast<T>,
{
    unsafe fn cast_from(value: *mut U) -> Self {
        Self::cast_from(Ptr::from_raw(value))
    }
}

redpajama_set_name: RedPajamaGithub


LOS ANGELES — Interesting how form follows function. It wasn't long ago that cable TV companies began offering up internet access via DOCSIS (the Data Over Cable Service Interface Specification).
Now, with the proliferation of TV offerings available via the internet, the picture has completely turned over: The emphasis is on internet access. Who really needs cable TV? Let me give you a couple of examples of what I mean.
According to a recent report from Cisco, there will be as many as 13 networked devices and internet connections per person by 2021 in the U.S. Clearly having a lot of data capacity in the home will be important. Hopefully some of that will be used for "radio" in whatever form it's in.
WOW! Internet, Cable & Phone, based in Englewood, Colo., recently announced the availability of its 1 gigabit per second Internet service to more than 95% of the company's customers and network footprint, according to lightreading.com. WOW! is one of the first internet providers to offer 1 Gig services to such a large portion of its customers. The company has introduced the service to nine markets, including: Cleveland, Ohio; Charleston; and Pinellas, Fla., and has completed the rollout of 1 Gig services to the entirety of Columbus, Ga., and large portions of Huntsville and Montgomery, Ala.


A collection of reports and photos from project that took place in Slovenia, Scotland and Romania.
Festival day in the hamlet of Rîmeţ, Alba County, Romania which sits at about 1000 metres above spectacular rural scenery that is only accessible by rough track roads.
The gable end of the building houses 60 hives for honey production, and additional hives at each side to provide air to rise from the hives to surround a person on the couch in the room above the hive. The building has large ground floor rooms and bedrooms and a balcony above, thus making it into an apitherapy centre.


The 2018 NFL season is here, players are reporting to training camp and we're working toward wrapping up our Know Your Rival Series. The second of three installments is a discussion with Oscar from the Better Rivals Podcast, our longest tenured rival, joining the show to talk about the San Francisco 49ers offseason. Before we get to it, we briefly discuss Earl Thomas and his likely holdout.
The 49ers are a team that seems to be on the rise. Having traded for a franchise quarterback and closing out the 2017 season with a 6-game winning streak, it seems as though San Fran is once again the competitive rival that Seahawks fans got used to in the Harbaugh era. It's clear that 49ers fans are starting to feel some excitement again. The guys discuss some of the free agent acquisitions and draft picks from the offseason as well as some of the contract decisions that bring up questions about the team's front office.
These two teams have clear areas of the team where talent at particular position groups are stronger than the opponent. But what about areas like offensive line, wide receiver, running back and defensive backs? The guys debate which areas of the team are strongest and where there are some questions marks between the two clubs.
With an abbreviated show, we close out the show with a discussion about Richard Sherman's latest comments and how little we should be surprised to hear his responses in a recent Sports Illustrated article. Better at life honors go to a new employee who went through extraordinary lengths to make it to work on his first day and the response from the company's CEO. Tony Miles, runner up in the World Series of Poker, also earns top honors on the show.


text:
Sclareol inhibits cell proliferation and sensitizes cells to the antiproliferative effect of bortezomib via upregulating the tumor suppressor caveolin-1 in cervical cancer cells
Ting Zhang
Ting Wang
Peiling Cai
Affiliations: Department of Medical Cell Biology and Genetics, Southwest Medical University, Luzhou, Sichuan 646000, P.R. China, Department of Anatomy and Histology, School of Medicine, Chengdu University, Chengdu, Sichuan 610106, P.R. China
Published online on: April 13, 2017 https://doi.org/10.3892/mmr.2017.6480
Copyright: © Zhang et al. This is an open access article distributed under the terms of Creative Commons Attribution License.
The anticancer effect of sclareol has long been reported, however, the exact mechanisms underlying the antitumorigenic effect of sclareol in cervical carcinoma remain to be fully elucidated. The present study analyzed cell proliferation and cell apoptosis by MTT and FITC‑Annexin V assays. The protein levels of caveolin‑1 (Cav‑1) and copper-zinc superoxide dismutase (SOD)1 were determined by western blotting, and the interaction of Cav1 and HSC70 was investigated by co‑immunoprecipitation experiments. The present study found that sclareol inhibited cell proliferation and induced apoptosis in HeLa cells. Two cancer‑associated proteins, Cav1 and SOD1 were identified as potential targets of sclareol in HeLa cells. The expression of Cav1 increased when the cells were treated with sclareol, and the protein level of SOD1 was negatively correlated with Cav1. The overexpression of Cav1 enhanced the sensitivity of the HeLa cells to sclareol treatment and downregulated the protein level of SOD1, which exhibited potential associations between Cav1 and SOD1. In addition, sclareol significantly sensitized several cancer cells to the anticancer effect of bortezomib by targeting Cav1 and SOD1. Taken together, the results of the present study demonstrated that sclareol inhibited tumor cell growth through the upregulation of Cav1, and provides a potential therapeutic target for human cancer.
Cervical cancer is the third most common type of cancer and the fourth leading cause of cancer-associated mortality in women worldwide (1). In developing countries, it is the most common cause of cancer-associated mortality, and the five-year survival rate for patients with advanced cervical cancer is low (1). Thus, it is important to identify and examine effective drugs in cervical cancer treatment. It has long been reported that sclareol, a labdane-type diterpene isolated from the Salvia sclarea plant can inhibit the proliferation and induce the apoptosis of several cancer cell lines (2–6). However, the exact mechanisms underlying the antitumorigenic effect of sclareol in cervical carcinoma remain to be elucidated.
Caveolin-1 (Cav1) is an important component of caveolae and is known to function as a scaffolding protein in the regulation of several signaling pathways (7–9). The loss of Cav1 has been demonstrated to be involved in the tumorigenesis of several types of cancer, and the overexpression of Cav1 has been shown to inhibit cell and tumor growth (10–12). Thus Cav1 is regarded as a potential tumor suppressor. Although numerous studies have been performed investigating the function of Cav1 in several types of cancer, the exact role of Cav1 in cervical carcinoma remains to be elucidated (10–12).
Copper-zinc superoxide dismutase (SOD1) is an essential element of the superoxide radical eliminating system. It is the most abundant anti-oxidant enzyme and is predominantly localized in the cytoplasm, although its localization in the mitochondrial intermembrane space and nucleus has also been reported (13,14). Previous studies have revealed that SOD1 is overexpressed in various types of cancer, and that the downregulation of SOD1 leads to cancer cell death (15,16), which indicates that SOD1 is important in tumorigenesis.
In the present study, the anticancer effect of sclareol was investigated, and the expression levels of Cav1 and SOD1 in a cervical cancer cell line were investigated, in order to elucidate the potential mechanisms involved in the anticancer effect of sclareol.
HeLa cells were obtained from the American Type Culture Collection (Rockville, MD, USA). The SW480, SW620, HepG2 and MCF-7 cancer cell lines were obtained from the Cell Resource Center of the Chinese Academy of Sciences (Shanghai, China). All cell lines were grown in Dulbecco's modified Eagle's medium (DMEM; HyClone; GE Healthcare Life Sciences, Logan, UT, USA) supplemented with 10% fetal bovine serum (HyClone; GE Healthcare Life Sciences). All cell lines were incubated in a humidified atmosphere containing 5% CO2 at 37°C.
Reagents and antibodies
Sclareol, bortezomib, E64 and pepstatin A were obtained from Sigma-Aldrich; Thermo Fisher Scientific, Inc. (Waltham, MA, USA). The Cav1, SOD1, β-tubulin and p62 antibodies were obtained from ProteinTech Group, Inc., Chicago, IL, USA), the LC3 antibody was obtained from Sigma-Aldrich; Thermo Fisher Scientific, Inc.), the Flag antibody was obtained from Prospec-Tany TechnoGene, Ltd., (East Brunswick, NJ, USA), the HA tag antibody was obtained from Cell Signaling Technology, Inc. (Beverly, MA, USA).
MTT and cell apoptosis assays
The cells were plated into 96-well tissue culture plates and seeded at a density of 10,000 cells per well. Viability of HeLa cells was determined using an MTT assay following treatment with vehicle or 10 µg/ml sclareol for 24, 48 or 72 h at 37°C. Cell apoptosis assay of HeLa cells treated with 5 µg/ml sclareol was performed for 24, 48 or 72 h at 37°C. The final volume of culture medium in each well was 100 µl. A 10 µl volume of MTT solution (5 mg/ml) was added to the 100 µl medium in each well. The plates were incubated at 37°C for 4 h, following which the supernatant was removed and 100 µl DMSO was added to each well. The absorbance signals were measured on a spectrophotometer at 490 nm. The cell death-inducing effects of drug treatment were measured using a CF488A-Annexin V and Propidium Iodide (PI) Apoptosis Assay kit (Biotium, Inc., Hayward, CA, USA). The samples and assays were prepared according to the manufacturer's protocol and then mounted onto slides. Images were captured with a Nikon fluorescence microscope (Nikon, Tokyo, Japan).
Samples were collected with 1X SDS sample buffer and were separated by 10–12% SDS-PAGE (20 µg/lane). The proteins were transferred onto an Immobilon-FL PVDF membrane (EMD Millipore, Bedford, MA, USA). Protein quantification was performed using a BCA assay kit (Thermo Fisher Scientific, Inc.). The membrane was first blocked with 5% milk for 1 h, and then incubated overnight at 4°C with the following primary antibodies: Cav 1 (cat. no. 16447-1-AP; 1:1,000; ProteinTech Group, Inc., Chicago, IL, USA), SOD1 (cat. no. 10269-1-AP; 1:1,000; ProteinTech Group, Inc.), β-tubilin (cat. no. 66240-1; 1:2,000; ProteinTech Group, Inc.), p62 (cat. no. 18420-1-AP; 1:1,000; ProteinTech Group, Inc.), LC3 (cat. no. L8918; 1:1,000; Sigma-Aldrich; Merck Millipore, Darmstadt, Germany), Flag (cat. no. ANT-222; 1:1,000; Prospec-Tany TechnoGene, Ltd., East Brunswick, NJ, USA) and HA tag (cat. no. C29F4; 1:1,000; Cell Signaling Technology, Inc., Danvers, MA, USA) diluted in the same blocking buffer. Following three washes with Tris-buffered saline with Tween 20 (TBST) containing 50 mM Tris-HCl (pH 7.5), 150 mM NaCl and 0.2% Tween 20, the blot was incubated with Dylight 680/800-conjugated secondary antibodies (cat. nos. 042-06-15-06 and 042-06-18-0; 1:10,000; KPL, Inc. Gaithersburg, MD, USA) in the dark for 2 h at room temperature. The blot was then washed again with TBST and images were captured using a Li-Cor Odyssey Clx infrared imaging system (LI-COR BioSciences, Inc., Lincoln, NE, USA).
Establishment of stable cell line
For the stable expression of Cav-1, the HeLa cells were transduced with Cav1-Flag lentiviral particles using ViraPower Lentiviral Expression system following the manufacturer's protocol (Invitrogen; Thermo Fisher Scientific, Inc.) following the manufacturer's protocol, and stable cell lines were selected using blasticidin (Invitrogen; Thermo Fisher Scientific, Inc.).
Co-immunoprecipitation assay
At 24 h post-transduction, the cells were washed with phosphate-buffered saline (PBS) and lysed in 1% NP40 lysis buffer for 30 min on ice. The cell lysates were collected in an EP tube and then centrifuged at >18,000 × g for 10 min at 4°C, the supernatants were immunoprecipitated with the Flag (1:1,000) and HA tag (1:1,000) antibodies overnight at 4°C. Prewashed protein A/G-agarose beads (Thermo Fisher Scientific, Inc.) were then added to the supernatant and incubated for another 2 h at 4°C. The immune complexes were washed with lysis buffer three times, resuspended in sample buffer and then subjected to western blot analysis.
Immunofluorescence assay
The cells were plated on coverslips at a density of 1.0×105 cells and transfected with the indicated plasmid using Lipofectamine 2000. HeLa cells and HeLa cells stably transfected with Cav1-Flag (Cav1) were transiently transfected with a plasmid expressing lysosome-associated protein 2A (Lamp-2A)-EGFP. At 24 h post-transfection, the cells were then fixed with 4% paraformaldehyde for 15 min at room temperature, rinsed with PBS and permeabilized with 0.25% Triton-x-100 for 10 min at room temperature. Following rinsing with PBS three times, the cells were blocked with 3% bovine serum albumin (Sigma-Aldrich; Merck Millipore) overnight at 4°C. The EGFP (cat. no. 50430-2; 1:1,000; Proteintech Group, Inc.), Flag (1:1,000) antibodies were added and incubated overnight at 4°C and rinsed with PBS three times The secondary antibody was added for 1 hour at room temperature, following which the cells were rinsed with PBS three times, and then incubated with DAPI for 10 min at room temperature. The cells were then rinsed, mounted and sealed. Images were captured using an Olympus confocal microscope (Olympus, Tokyo, Japan).
Plasmid construction and transfection
The full-length Cav1 open reading frame (ORF) was amplified by polymerase chain reaction (PCR) with a BamHI site-containing 5′ primer and an XbaI site-containing 3′ primer, and cloned into the pcDNA3.1(+)-flag vector (Invitrogen; Thermo Fisher Scientific, Inc.) between the BamHI and XbaI sites to generate the Cav1-Flag expression construct. The full-length heat-shock protein cognate 70 (HSC70) ORF was amplified by PCR with a BamHI site-containing 5′ primer and an XbaI site-containing 3′ primer, and cloned between the BamHI and XbaI sites of the pcDNA3.1(+)-HA vector to generate the HSC70-HA expression construct. Full-length LAMP-2A ORF was amplified by PCR with a BamHI site-containing 5′ primer and an XbaI site-containing 3′ primer, and cloned between the BamHI and XbaI sites of the pcDNA3.1(+)-EGFP vector to generate the LAMP-2A-EGFP expression construct. The human cDNA preserved in the laboratory was utilized as the template. Flag tag, HA tag and EGFP tag were cloned into the pcDNA3.1(+) vector (Life Technologies; Thermo Fisher Scientific, Inc.) between XbaI and ApaI to generate the pcDNA3.1(+)-tagged vector. For the generation of Cav1Flag lentiviral particles, the Cav1-Flag cDNA fragment was inserted into a pLenti6 lentiviral vector (Invitrogen Life Technologies; Thermo Fisher Scientific, Inc.), and the resultant plasmid was co-transfected with ViraPower Lentiviral Packaging mix (Invitrogen Life Technologies; Thermo Fisher Scientific, Inc.) into HEK293FT cells with Lipofectamine 2000. The virus-containing cell culture medium was harvested 40 h later and used to transduce the HeLa cells. The sequences of the primers are listed in Table I.
Sequences of primers for plasmid construction.
Primer name
Sequence (5′-3′)
Cav1-F gatcggatccgccaccatgtctgggggcaaatacgtag
Cav1-R gtagttgaacgtctttctttatagatctctag
HSC70-F gatcggatccgccaccatgtccaagggacctgcagttg
HSC70-R gggtggtaacttctccaactaagatctctag
LAMP-2A-F gatcggatccgccaccatggtgtgcttccgcctcttc
LAMP-2A-R gtacgacctatactcgttaaaagatctctag
[i] Restriction sites are underlined. F, forward; R, reverse; Cav1, caveolin-1; HSC70, heat shock protein cognate 70; LAMP-2A, lysosome-associated protein 2A.
Experimental data are expressed as the mean ± standard error of the mean. Data analyses were performed using ImageJ software (National Institutes of Health, Bethesda, MD, USA). Differences between groups were compared using one-way analysis of variance followed by Tukey's post-hoc test. P<0.05 was considered to indicate a statistically significant difference.
Sclareol inhibits cell proliferation and induces apoptosis in HeLa cells
In the present study, HeLa cells were used to investigate the anticancer effects of sclareol in cervical carcinoma. An MTT assay was first performed to measure the viability of the HeLa cells. The cells were treated with sclareol for 24, 48 and 72 h, and cell viability was measured at each time point. The results showed that sclareol significantly inhibited the proliferation of the HeLa cells, and the inhibitory effect was time-dependent (Fig. 1A). In addition, when the cells were treated with different concentrations of sclareol, the proliferation of the HeLa cells was inhibited in a dose-dependent manner (Fig. 1B).
Sclareol inhibits cell proliferation and induces cell apoptosis in HeLa cells. (A) Cell viability of HeLa cells was measured using an MTT assay following treatment with vehicle or 10 µg/ml sclareol for 24, 48 and 72 h. (B) Cell viability of HeLa cells was measured using an MTT assay following treatment with vehicle or sclareol at the indicated concentration for 48 and 72 h. (C) Cell apoptosis assay of HeLa cells treated with 5 µg/ml sclareol for the indicated durations. (D) Quantification of the ratio of positive cells to total cells. The number of positive cells were counted using Image J software. Data are presented as the mean + standard error of the mean of three independent experiments. *P<0.05, **P<0.01 and ***P<0.005, compared with the vehicle group. Ctr, control; PI, propidium iodide.
Treatment with sclareol also induced the apoptosis of the HeLa cells. An Annexin V-fluorescein isothiocyanate (FITC)/PI staining assay was used to assess the proportion of apoptotic cells when HeLa cells were treated with sclareol for indicated durations. The results indicated that the Annexin V-FITC-positive and PI-positive cells were significantly increased in a time-dependent manner when treated with sclareol (Fig. 1C and D).
Sclareol induces the expression of Cav1
As the exact mechanism involved in the anticancer effect of sclareol remains to be fully elucidated, the present study examined the expression of various cancer-associated proteins to identify the potential target of sclareol. The cells were exposed to sclareol for 24, 48 and 72 h, and were then subjected to western blot analysis. The results showed that sclareol induced the protein levels of Cav1 in a time-dependent manner, compared with the control group (Fig. 2A and B).
Sclareol affects the protein levels of Cav1 and SOD1 in HeLa cells, and overexpression of Cav1 enhances sensitivity to slcareol treatment. (A) Upregulation of the expression of Cav1 and downregulation of the expression of SOD1 were observed following treatment with 5 µg/ml sclareol. HeLa cells were treated with sclareol for the indicated duration and then harvested for western blot analysis. (B) Quantification of the protein levels of Cav1 and SOD1 in HeLa cells. Data are presented as the mean + standard error of the mean of three independent experiments. *P<0.05, **P<0.01 and ***P<0.005, compared with the vehicle group. (C) Western blot analysis of HeLa cells stably expressing Flag-tagged Cav1 protein. (D) Viability of HeLa cells and HeLa cells stably expressing Flag-tagged Cav1 protein were measured using an MTT assay following treatment with vehicle or sclareol at the indicated concentration for 24 h. Data are presented as the mean + standard error of the mean of three independent experiments. *P<0.05, **P<0.01 and ***P<0.005, compared with the control group. Cav1, caveolin-1; SOD1, superoxide dismutase 1.
Expression of SOD1 is negatively correlated with Cav1
SOD1 has previously been identified as a novel cancer gene (13,14). The results of the present study showed that the protein level of SOD1 was significantly decreased in a time-dependent manner when treated with sclareol (Fig. 2A and B), and the decreased expression of SOD1 was negatively correlated with the increased expression of Cav1.
Cells overexpressing Cav1 are more sensitive to sclareol treatment
The present study established a HeLa cell line stably expressing Cav1. The stable Cav1-expressing cell line and normal HeLa cells were treated with vehicle or sclareol at the indicated concentration for 24 h, following which the cell viability was measured using an MTT assay. It was found that stable expression of Cav1 enhanced the sensitivity of the cells to sclareol treatment (Fig. 2C and D). These results indicated that the upregulation of Cav1 was responsible for the anticancer effect of sclareol.
Cav1 promotes the downregulation of SOD1
It was previously demonstrated that SOD1 is important in cancer development (10,11), whereas Cav1 has been reported to be a cancer suppressor. As shown in Fig. 2, the present study found that SOD1 was negatively correlated with Cav1. To determine whether the expression of SOD1 was directly regulated by Cav1, HeLa cells overexpressing Flag-tagged Cav1 were established, and western blot analysis was performed to determine the protein level of SOD1. The results showed that the overexpression of Cav1 significantly promoted the downregulation of SOD1 (Fig. 3A and B). In the HeLa cell line stably expressing Cav1, it was found that stable expression of Cav1 enhanced the downregulation of SOD1 when treated with sclareol (Fig. 3C and D).
Overexpression of Cav1 enhances the downregulation of the protein level of SOD1 (A) Transient transfection of ectopic Cav1 in HeLa cells led to the downregulation of SOD1. HeLa cells were transfected with Flag-tagged Cav1 expression plasmid (Cav1) or empty vector (Ctr) respectively. The cells were harvested 24 h following transfection and then subjected to western blot analysis. (B) Quantification of the protein levels of SOD1 in HeLa cells. Data are presented as the mean + standard error of the mean of three independent experiments. *P<0.05, **P<0.01 and ***P<0.005, compared with the control group. (C) Stable expression of ectopic Cav1 enhanced the downregulation of the protein level of SOD1when treated with sclareol. HeLa cells (Ctr) and HeLa cells stably expressing Flag-tagged Cav1 (Cav1) were treated with vehicle and sclareol (5 µg/ml) for 48 h, and then subjected to western blot analysis. (D) Quantification of the protein levels of SOD1 in the Ctr and Cav1 cells. Data are presented as the mean + standard error of the mean of three independent experiments. *P<0.05, **P<0.01 and ***P<0.005, compared with the control group. Ctr, control; Cav1, caveolin-1; SOD1, superoxide dismutase 1.
Sclareol sensitizes cells to the antiproliferative effect of bortezomib by targeting Cav1 and SOD1
Previous investigations have revealed that Cav1 is degraded through the ubiquitin-proteasome pathway (17,18). As the results of the present study showed that sclareol inhibited cancer cell proliferation through the upregulation of Cav1, whether bortezomib, an anticancer drug and a proteasome inhibitor, enhances the anticancer effect of sclareol was investigated. The HeLa cells were treated with sclareol only, bortezomib only or sclareol and bortezomib together, and subjected to western blot analysis and an MTT assay. By measuring the cell viability of each group, it was found that sclareol significantly enhanced the antiproliferative effect of bortezomib, compared with the cells treated with either drug separately (Fig. 4A). The results of the western blot analysis showed that the protein level of Cav1 increased following treatment with bortezomib (Fig. 4B and C). In addition, the HeLa cells treated with sclareol and bortezomib together exhibited a lower level of SOD1 and higher level of Cav1, compared with the vehicle group (Fig. 4B and C). Similar results were observed when other cancer cells were treated with the drug combination of bortezomib and sclareol (Fig. 4D).
Sclareol synergizes with bortezomib to inhibit cancer cell growth. (A) HeLa cells were treated with sclareol (5 µg/ml) only, bortezomib (5 nM) only, or sclareol (5 µg/ml) with bortezomib (5 nM) for 48 h, and subjected to MTT analysis. Data are presented as the mean + standard error of the mean of three independent experiments. *P<0.05, **P<0.01 and ***P<0.005, compared with the vehicle group. (B) Treated HeLa cells were also subjected to western blot analysis. (C) Quantification of the relative protein levels of SOD1 and Cav1 in HeLa cells treated with vehicle (Ctr) or indicated drugs. Data are presented as the mean + standard error of the mean of three independent experiments. *P<0.05, **P<0.01 and ***P<0.005, compared with the control group. (D) Sclareol sensitized cells to the anti-proliferative effect of bortezomib in several cancer cell lines. (A) MCF-7, HepG2, SW480 and SW620 cells were also subjected to MTT analysis. Data are presented as the mean + standard error of the mean of three independent experiments. *P<0.05, **P<0.01 and ***P<0.005 compared with control group. Ctr, control; Cav1, caveolin-1; SOD1, superoxide dismutase 1; Sclar, sclareol; Bort, bortzomib.
Cav1 may be involved in the lysosome-mediated degradation of SOD1
Previous reports have shown that Cav1 mediates the degradation of several proteins (19–21), thus it is possible that Cav1 promotes the degradation of SOD1. HSC70 and LAMP-2A are two important components of chaperone-mediated autophagy (CMA) (22). The present study found that Cav1 not only colocalized with LAMP-2A (Fig. 5A) but also interacted with HSC70 (Fig. 5B and C), thus it is possible that Cav1 may be involved in CMA-mediated protein degradation. CMA substrates are usually delivered to the lysosome for degradation (23). In the present study, HeLa cells were treated with sclareol only or sclareol together with lysosome inhibitors and then subjected to western blot analysis. Of note, as with p62/SQSTM1 and LC3 II, which are two autophagy-associated proteins previously reported to be degraded in lysosomes (24,25), inhibition of lysosome activity suppressed the downregulation of SOD1 caused by sclareol treatment (Fig. 5D-G), which suggested that sclareol treatment may promote the downregulation of SOD1 through lysosome mediated degradation via Cav1.
Cav1 may be involved in the lysosome-mediated degradation of SOD1. (A) Colocalization of Cav1 and lysosome-associated protein 2A. Interaction of (B) Cav1 and (C) HSC70. (D) Lysosome inhibitors suppressed the downregulation in the protein level of SOD1 when treated with sclareol. HeLa cells were treated with sclareol (5 µg/ml) only or sclareol (5 µg/ml) with lysosome inhibitors (10 µM E64 and 20 µM pepstatin A) for 48 h and then subjected to western blot analysis. Quantification of the relative protein levels of (E) SOD1, (F) p62 and (G) LC3 II in HeLa cells treated with vehicle or the indicated drugs. Data are presented as the mean + standard error of the mean of three independent experiments. *P<0.05, **P<0.01 and ***P<0.005, compared with the control group. Con, vehicle control; Scla, sclareol; LyIn, lysosome inhibitor; HSC70, heat shock protein cognate 70.
Sclareol exhibits antiproliferative and cytotoxic activity against various human cancer cell lines (2–6), and inhibits tumor growth in vivo (3,6). The anticancer effect of sclareol has long been reported, however, the exact role of sclareol and its molecular mechanisms in cervical carcinoma remain to be elucidated. The present study demonstrated that sclareol inhibited proliferation and induced apoptosis in HeLa cells, and the combination of sclareol with another anticancer drug, bortezomib, significantly inhibited tumor cell proliferation in several types of cancer cell. It was also shown that sclareol treatment induced the expression of Cav1 in HeLa cells.
Although the role of Cav1 in tumorigenesis is controversial, increasing evidence indicates that Cav1 functions as a tumor suppressor in various types of cancer. The downregulation of Cav1 has been implicated in the development and progression of cutaneous squamous cell carcinoma (26), lung carcinoma (12), alveolar rhabdomyosarcomas (10), colon cancer (11), sporadic vestibular schwannomas (27) and breast cancer (28). The overexpression of Cav1 decreases tumor cell growth (10–12) and enhances the sensitivity of cancer cells to anticancer drugs (21). However, the exact function of Cav1 in cervical carcinoma remains to be elucidated. In the present study, the upregulation of Cav1 correlated with decreased cell viability under sclareol treatment, which indicated that Cav1 may function as a tumor suppressor in HeLa cells.
Cav1 is ubiquitinated and targeted to lysosomes for degradation (17,18), and previous studies have demonstrated that Cav-1 is also a molecular target of bortezomib, which is involved in antitumorigenesis and proteasome inhibition (29), and is degraded through the proteasome pathway (30). The data obtained in the present study showed that sclareol increased the protein level of Cav1, and the combined treatment with bortezomib further enhanced the expression of Cav1. Based on these findings, it is possible that the combination of sclareol with bortezomib may have novel synergistic antitumor effects via upregulation of the cancer suppressor, Cav1. In line with this hypothesis, the present study found that bortezomib synergized with sclareol to reduce the viability of various types of cancer cell, including HeLa, HepG2, MCF-7, SW480 and SW620 cells, whereas treatment with bortezomib or sclareol alone at the same concentration had markedly lower inhibitory effects. Thus, the combination of bortezomib with sclareol may be a novel and promising approach in cancer therapy.
Previous reports have revealed the potential mechanism involved in the anticancer effect of Cav1. Cav-1 has been shown to prevent cancer growth via inhibition of the mitogen-activated protein kinase pathway (10) and to enhance the degradation of epidermal growth factor receptor (EGFR) (21). In the present study, the increased protein level of Cav1 was negatively correlated with the expression of SOD1, and the overexpression of Cav1 significantly suppressed the protein level of SOD1. These findings indicated a potential association between Cav1 and SOD1.
The expression of SOD1 has been linked to the resistance of cancer cells to pro-oxidant drugs and the anticancer drug. bortezomib (31), which raises the possibility that an SOD1 inhibitor can be used, not only as an antitumorigenic drug, but also as a molecule to challenge the drug resistance of cancer cells. The data obtained in the present study showed that the treatment of HeLa cells with sclareol led to downregulation of the protein level of SOD1, whereas the overexpression of Cav1 enhanced the suppressed expression of SOD1. These findings suggested that sclareol may function as an SOD1 inhibitor via the upregulation of Cav1. As the first anticancer drug to function as a proteasome inhibitor, bortezomib has been approved for the clinical treatment of patients with multiple myeloma (32), and has also been demonstrated to be an effective cell growth inhibitor in various cancer cell lines (33–36). However, the emergence of drug resistance has seriously affected the therapeutic effect of bortezomib. The overexpression of SOD1 has been shown to increase the resistance of cancer cells to bortezomib (31), and the results of the present study showed that combined sclareol and bortezomib treatment resulted in markedly lower protein levels of SOD1, compared with bortezomib treatment alone, which suggested that combined sclareol and bortezomib treatment may be a promising therapy in overcoming the challenge of bortezomib resistance.
Cav1 is important in Derlin-1- and p97-mediated cyclooxygenase-2 ubiquitination and degradation (19,20), and previous reports have shown that Cav1 enhances the ubiquitination and degradation of EGFR via endocytosis (21). However, how Cav1 promotes the suppressed expression of SOD1 remains to be fully elucidated. The present study found that inhibition of the lysosome rescued the decreased protein level of SOD1, which was induced by sclareol, thus Cav1 may interact with SOD1 to facilitate its degradation inside the lysosome. However, the protein level of SOD1 cannot be fully rescued by lysosome inhibition, which indicates Cav1 is not the only molecule to promote the degradation of SOD1 and that SOD1 is not only degraded by the lysosome-mediated pathway. Further detailed investigation is required to elucidate the exact mechanism involved.
In conclusion, the present study demonstrated the inhibitory effect of sclareol on the proliferation of HeLa cells. In addition, it was found that the anticancer effect of sclareol was enhanced when combined with bortezomib, which was demonstrated in various cancer cells. Further investigations revealed that the tumor suppressor, Cav1, enhanced the decreased expression of SOD1, which may be responsible for the anticancer effect of sclareol. These findings not only elucidated the potential mechanisms underlying the anticancer effect of sclareol, but also provided a novel and promising approach for cancer therapy and resolving drug resistance in cancer cells.
This study was supported by research grants from the Natural Science Foundation of Chengdu University (grant no. 2011XJZ14) and the Natural Science Foundation of China (grant no. 51402027).
Jemal A, Center MM, DeSantis C and Ward EM: Global patterns of cancer incidence and mortality rates and trends. Cancer Epidemiol Biomarkers Prev. 19:1893–1907. 2010. View Article : Google Scholar : PubMed/NCBI
Noori S, Hassan ZM and Salehian O: Sclareol reduces CD4+CD25+FoxP3+Treg cells in a breast cancer model in vivo. Iran J Immunol. 10:10–21. 2013.PubMed/NCBI
Noori S, Hassan ZM, Mohammadi M, Habibi Z, Sohrabi N and Bayanolhagh S: Sclareol modulates the Treg intra-tumoral infiltrated cell and inhibits tumor growth in vivo. Cellular Immunol. 263:148–153. 2010. View Article : Google Scholar
Wang L, He HS, Yu HL, Zeng Y, Han H, He N, Liu ZG, Wang ZY, Xu SJ and Xiong M: Sclareol, a plant diterpene, exhibits potent antiproliferative effects via the induction of apoptosis and mitochondrial membrane potential loss in osteosarcoma cancer cells. Mol Med Rep. 11:4273–4278. 2015.PubMed/NCBI
Sashidhara KV, Rosaiah JN, Kumar A, Bid HK, Konwar R and Chattopadhyay N: Cell growth inhibitory action of an unusual labdane diterpene, 13-epi-sclareol in breast and uterine cancers in vitro. Phytotherapy Res. 21:1105–1108. 2007. View Article : Google Scholar
Dimas K, Hatziantoniou S, Tseleni S, Khan H, Georgopoulos A, Alevizopoulos K, Wyche JH, Pantazis P and Demetzos C: Sclareol induces apoptosis in human HCT116 colon cancer cells in vitro and suppression of HCT116 tumor growth in immunodeficient mice. Apoptosis. 12:685–694. 2007. View Article : Google Scholar : PubMed/NCBI
Simmons GE, Taylor HE and Hildreth JEK: Caveolin-1 suppresses human immunodeficiency virus-1 replication by inhibiting acetylation of NF-κB. Virology. 432:110–119. 2012. View Article : Google Scholar : PubMed/NCBI
Garrean S, Gao XP, Brovkovych V, Shimizu J, Zhao YY, Vogel SM and Malik AB: Caveolin-1 regulates NF-kappaB activation and lung inflammatory response to sepsis induced by lipopolysaccharide. J Immunol. 177:4853–4860. 2006. View Article : Google Scholar : PubMed/NCBI
Wang XM, Kim HP, Song R and Choi AM: Caveolin-1 confers antiinflammatory effects in murine macrophages via the MKK3/p38 MAPK pathway. Am J Respir Cell Mol Biol. 34:434–442. 2006. View Article : Google Scholar : PubMed/NCBI
Huertas-Martinez J, Rello-Varona S, Herrero-Martin D, Barrau I, García-Monclús S, Sáinz-Jaspeado M, Lagares-Tena L, Núñez-Álvarez Y, Mateo-Lozano S, Mora J, et al: Caveolin-1 is down-regulated in alveolar rhabdomyosarcomas and negatively regulates tumor growth. Oncotarget. 5:9744–9755. 2014. View Article : Google Scholar : PubMed/NCBI
Bender FC, Reymond MA, Bron C and Quest AF: Caveolin-1 levels are down-regulated in human colon tumors and ectopic expression of caveolin-1 in colon carcinoma cell lines reduces cell tumorigenicity. Cancer Res. 60:5870–5878. 2000.PubMed/NCBI
Belanger MM, Roussel E and Couet J: Caveolin-1 is down-regulated in human lung carcinoma and acts as a candidate tumor suppressor gene. Chest. 125 Supply 5:S1062004. View Article : Google Scholar
Fischer LR, Igoudjil A, Magrané J, Li Y, Hansen JM, Manfredi G and Glass JD: SOD1 targeted to the mitochondrial intermembrane space prevents motor neuropathy in the Sod1 knockout mouse. Brain. 134(Pt 1): 196–209. 2011. View Article : Google Scholar : PubMed/NCBI
Igoudjil A, Magrané J, Fischer LR, Kim HJ, Hervias I, Dumont M, Cortez C, Glass JD, Starkov AA and Manfredi G: In vivo pathogenic role of mutant SOD1 localized in the mitochondrial intermembrane space. J Neurosci. 31:15826–15837. 2011. View Article : Google Scholar : PubMed/NCBI
Somwar R, Erdjument-Bromage H, Larsson E, Shum D, Lockwood WW, Yang G, Sander C, Ouerfelli O, Tempst PJ, Djaballah H and Varmus HE: Superoxide dismutase 1 (SOD1) is a target for a small molecule identified in a screen for inhibitors of the growth of lung adenocarcinoma cell lines. Proc Natl Acad Sci USA. 108:pp. 16375–16380. 2011; View Article : Google Scholar : PubMed/NCBI
Glasauer A, Sena LA, Diebold LP, Mazar AP and Chandel NS: Targeting SOD1 reduces experimental non-small-cell lung cancer. J Clin Invest. 124:117–128. 2014. View Article : Google Scholar : PubMed/NCBI
Kirchner P, Bug M and Meyer H: Ubiquitination of the N-terminal region of caveolin-1 regulates endosomal sorting by the VCP/p97 AAA-ATPase. J Biol Chem. 288:7363–7372. 2013. View Article : Google Scholar : PubMed/NCBI
Hayer A, Stoeber M, Ritz D, Engel S, Meyer HH and Helenius A: Caveolin-1 is ubiquitinated and targeted to intralumenal vesicles in endolysosomes for degradation. J Cell Biol. 191:615–629. 2010. View Article : Google Scholar : PubMed/NCBI
Chen SF, Wu CH, Lee YM, Tam K, Tsai YC, Liou JY and Shyue SK: Caveolin-1 interacts with Derlin-1 and promotes ubiquitination and degradation of cyclooxygenase-2 via collaboration with p97 complex. J Biol Chem. 288:33462–33469. 2013. View Article : Google Scholar : PubMed/NCBI
Chen SF, Liou JY, Huang TY, Lin YS, Yeh AL, Tam K, Tsai TH, Wu KK and Shyue SK: Caveolin-1 facilitates cyclooxygenase-2 protein degradation. J Cell Biochem. 109:356–362. 2010.PubMed/NCBI
Feldman R and Martinez JD: Growth suppression by ursodeoxycholic acid involves caveolin-1 enhanced degradation of EGFR. Biochim Biophys Acta. 1793:1387–1394. 2009. View Article : Google Scholar : PubMed/NCBI
Qi L, Zhang XD, Wu JC, Lin F, Wang J, DiFiglia M and Qin ZH: The role of chaperone-mediated autophagy in huntingtin degradation. PloS One. 7:e468342012. View Article : Google Scholar : PubMed/NCBI
Cuervo AM, Dice JF and Knecht E: A population of rat liver lysosomes responsible for the selective uptake and degradation of cytosolic proteins. J Biol Chem. 272:5606–5615. 1997. View Article : Google Scholar : PubMed/NCBI
Liang X, Wei SQ, Lee S, Fung JK, Zhang M, Tanaka A, Choi AM and Jin Y: p62 sequestosome 1/light chain 3b complex confers cytoprotection on lung epithelial cells after hyperoxia. Am J Respir Cell Mol Biol. 48:489–496. 2013. View Article : Google Scholar : PubMed/NCBI
Gómez-Sánchez R, Yakhine-Diop SM, Rodríguez-Arribas M, Bravo-San Pedro JM, Martínez-Chacón G, Uribe-Carretero E, de Castro DC Pinheiro, Pizarro-Estrella E, Fuentes JM and González-Polo RA: mRNA and protein dataset of autophagy markers (LC3 and p62) in several cell lines. Data Brief. 7:641–647. 2016. View Article : Google Scholar : PubMed/NCBI
Trimmer C, Bonuccelli G, Katiyar S, Sotgia F, Pestell RG, Lisanti MP and Capozza F: Cav1 suppresses tumor growth and metastasis in a murine model of cutaneous SCC through modulation of MAPK/AP-1 activation. Am J Pathol. 182:992–1004. 2013. View Article : Google Scholar : PubMed/NCBI
Aarhus M, Bruland O, Saetran HA, Mork SJ, Lund-Johansen M and Knappskog PM: Global gene expression profiling and tissue microarray reveal novel candidate genes and down-regulation of the tumor suppressor gene CAV1 in sporadic vestibular schwannomas. Neurosurgery. 67:998–1019. 2010. View Article : Google Scholar : PubMed/NCBI
Shi Y, Tan SH, Ng S, Zhou J, Yang ND, Koo GB, McMahon KA, Parton RG, Hill MM, Del Pozo MA, et al: Critical role of CAV1/caveolin-1 in cell stress responses in human breast cancer cells via modulation of lysosomal function and autophagy. Autophagy. 11:769–784. 2015. View Article : Google Scholar : PubMed/NCBI
Podar K, Shringarpure R, Tai YT, Simoncini M, Sattler M, Ishitsuka K, Richardson PG, Hideshima T, Chauhan D and Anderson KC: Caveolin-1 is required for vascular endothelial growth factor-triggered multiple myeloma cell migration and is targeted by bortezomib. Cancer Res. 64:7500–7506. 2004. View Article : Google Scholar : PubMed/NCBI
Mao M, Sudhahar V and Fukai T: P54: Nitroglycerin-induced loss of caveolin-1 results in eNOS dysfunction, peroxynitrite production and nitrate tolerance. Nitric Oxide 31, Supplement. 1:S362013. View Article : Google Scholar
Salem K, McCormick ML, Wendlandt E, Zhan F and Goel A: Copper-zinc superoxide dismutase-mediated redox regulation of bortezomib resistance in multiple myeloma. Redox Biol. 4:23–33. 2015. View Article : Google Scholar : PubMed/NCBI
Chen D, Frezza M, Schmitt S, Kanwar J and Dou QP: Bortezomib as the first proteasome inhibitor anticancer drug: Current status and future perspectives. Curr Cancer Drug Targets. 11:239–253. 2011. View Article : Google Scholar : PubMed/NCBI
Kao C, Chao A, Tsai CL, Chuang WC, Huang WP, Chen GC, Lin CY, Wang TH, Wang HS and Lai CH: Bortezomib enhances cancer cell death by blocking the autophagic flux through stimulating ERK phosphorylation. Cell Death Dis. 5:e15102014. View Article : Google Scholar : PubMed/NCBI
Kretowski R, Stypulkowska A and Cechowska-Pasko M: Efficient apoptosis and necrosis induction by proteasome inhibitor: Bortezomib in the DLD-1 human colon cancer cell line. Mol Cell Biochem. 398:165–173. 2015. View Article : Google Scholar : PubMed/NCBI
Miyamoto Y, Nakagawa S, Wada-Hiraike O, Seiki T, Tanikawa M, Hiraike H, Sone K, Nagasaka K, Oda K, Kawana K, et al: Sequential effects of the proteasome inhibitor bortezomib and chemotherapeutic agents in uterine cervical cancer cell lines. Oncol Rep. 29:51–57. 2013.PubMed/NCBI
Ando M, Hoyos V, Yagyu S, Tao W, Ramos CA, Dotti G, Brenner MK and Bouchier-Hayes L: Bortezomib sensitizes non-small cell lung cancer to mesenchymal stromal cell-delivered inducible caspase-9-mediated cytotoxicity. Cancer Gene Ther. 21:472–482. 2014. View Article : Google Scholar : PubMed/NCBI

redpajama_set_name: RedPajamaCommonCrawl


text:
Firefly's 'Win a BMW' Promotion
AirAsia flies you direct between Johor Bahru and Bangkok
Changi's Terminal 4 due to open 2017
by Lesley on May 16, 2015
Changi's new Terminal 4, slated to open on the site of the former Budget Terminal in 2017, will be a hybrid airport catering for both low cost and full service airlines.
Plans indicate that the airport will feature many self-service and automated options for passengers, allowing speedier check-in and bag drop as well as immigration clearance and boarding at the departure-gate. It is envisaged that the check-in terminals will be available throughout the day, allowing early arrivers the opportunity to complete their check-in and take advantage of the other services offered by the airport. Staff will be available to assist those unfamiliar with self check-in procedures.
With a much larger space than the old Budget Terminal, Terminal 4 is introducing a walk-through retail concept with more than 15,000 square metres of space dedicated to shopping and dining.
While the new terminal expected to handle mainly origin-destination traffic, it is expected that a dedicated free airside shuttle between T4 and Terminal 2 will be available for passengers to transfer to connections on non-T4 airlines. In addition, a free shuttle service between Terminal 4 and the other terminals will also be provided for the convenience of passengers and visitors enabling easy connection with public transport such as the MRT.
Cathay Pacific has booked its place the first confirmed airline customer and it is understood that the airport management is in discussion with a number of other potential customers to decide their position. As a full service airline, Cathay Pacific has unveiled plans for check-in and other airline specific needs including lounges.
UPDATE 23rd July 2015 – AirAsia to be the T4 anchor tenant.
Airport News, News
Changi Airportnew terminal
Changi Airportnew terminalAirport News
AirAsia relocates temporarily to Changi T1
Malaysia Airlines moves to T1 at Changi Airport
AirAsia named as Changi Airport's new hybrid Terminal 4 anchor tenant
Jetstar offers a Changi voucher treat
Jakarta opens new terminal at Soekarno-Hatta


text:
Q: A unhandled exception in a "after create" trigger preventing create I have an AFTER CREATE trigger on my schema that raises an exception; I'm trying to create a table. I understand that an unhandled exception could cause the query/operation/transaction (I couldn't find suitable word for this case) to terminate. But, when the exception is raised after creating the table, shouldn't the table already be created by then?
When creating a table after successful triggering it throws error an error:
create table test(testcol number);

Error:
SQL Error: ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at line 4

Trigger:
create or replace trigger ddl_trig_2812
after create
on schema
declare
eirit exception;
begin
raise eirit;
end;
/

A: The transaction begins with CREATE TABLE; then the AFTER CREATE trigger fires and raises an exception, i.e. table definition isn't "committed" into data dictionary tables (such as USER_TABLES, USER_TAB_COLUMNS, ...) but "rolled-back".
So - no, CREATE TABLE process hasn't been finished properly and you can't use that table as it isn't created because its creation was prevented by a trigger.

A: From the documentation:

In most cases, if a trigger runs a statement that raises an exception, and the exception is not handled by an exception handler, then the database rolls back the effects of both the trigger and its triggering statement.

It doesn't just cause it to terminate, as your question suggests. Your unhandled exception is causing the triggering statement - i.e. the create table - to be rolled back. When talking about DDL statements:

An implicit COMMIT occurs immediately before the database executes a DDL statement and a COMMIT or ROLLBACK occurs immediately afterward. In the preceding example, ... [if] the ALTER TABLE statement succeeds, then the database commits this statement; otherwise, the database rolls back this statement. ...

So this is expected behaviour.

A: One good illustration to verify this would be to check if the table actually exists within the trigger.
Lets say you RAISE  from the EXCEPTION block and query DBA_OBJECTS to see if object exists.
SQL> create or replace trigger ddl_trig_2812
  2  after create
  3  on schema
  4  declare
  5  v_table_name  DBA_OBJECTS.OBJECT_NAME%TYPE;
  6  eirit exception;
  7  begin
  8  select object_name into v_table_name from DBA_OBJECTS where object_name = 'ATEST';
  9  raise eirit;
 10  EXCEPTION
 11  WHEN OTHERS THEN
 12    DBMS_OUTPUT.PUT_LINE( 'TABLE CREATED '|| v_table_name );
 13    RAISE;
 14   END;
 15
 16  /

Trigger created.
Now, Lets create the table.
SQL> set serveroutput on;
SQL> create table atest ( a number);
TABLE CREATED ATEST
create table atest ( a number)
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at line 10

Although exception was raised, the table exists in the data dictionary as you can see above the message displayed from dbms_output.
Now, if we check whether the table exists,
    SQL> select * from atest;
    select * from atest
                  *
    ERROR at line 1:
    ORA-00942: table or view does not exist
SQL> select object_name from DBA_OBJECTS where object_name = 'ATEST'
  2  ;

no rows selected

It means, Oracle changes the data dictionary in the DDL triggers but rollbacks the transaction if error occurs in the trigger.

redpajama_set_name: RedPajamaStackExchange


text:
Q: Insert contents from #Temp table into real table I have a temp table where i have changed some values in the database and am trying to nsert these back into the real table but it is not working I have this below:
SELECT * INTO dbo.PackageProduct FROM #PackageP

where #PackageP is my temp table
I am getting this error after the second run:
There is already an object named 'PackageProduct' in the database.

A: If the table already exists you have to use INSERT as SELECT...INTO creates a new table:
INSERT dbo.PackageProduct (<columns...>)
SELECT (<columns...>) FROM #PackageP

A: TRY
INSERT INTO dbo.PackageProduct SELECT * FROM #PackageP

A: Assuming you've got the same number and order of columns in both tables try this:
INSERT INTO dbo.PackageProduct
SELECT *
FROM #PackageP

A: If you do select * into ... it will create a table, if the same name already exist then it will show error, and the error clearly identifies that there is already a object (table/view/proc... ) in the database. check with some other name or check the existing object is not required then drop it and then use your query or insert it into the table(if both your temp table and the existing object structure is same and it is a table).


text:
Lung transplantation in telomerase mutation carriers with pulmonary fibrosis.
Lung transplantation is the only intervention that prolongs survival in idiopathic pulmonary fibrosis (IPF). Telomerase mutations are the most common identifiable genetic cause of IPF, and at times, the telomere defect manifests in extrapulmonary disease such as bone marrow failure. The relevance of this genetic diagnosis for lung transplant management has not been examined. We gathered an international series of telomerase mutation carriers who underwent lung transplant in the U.S.A., Australia and Sweden. The median age at transplant was 52 years. Seven recipients are alive with a median follow-up of 1.9 years (range 6 months to 9 years); one died at 10 months. The most common complications were haematological, with recipients requiring platelet transfusion support (88%) and adjustment of immunosuppressives (100%). Four recipients (50%) required dialysis for tubular injury and calcineurin inhibitor toxicity. These complications occurred at significantly higher rates relative to historic series (p<0.0001). Our observations support the feasibility of lung transplantation in telomerase mutation carriers; however, severe post-transplant complications reflecting the syndromic nature of their disease appear to occur at higher rates. While these findings need to be expanded to other cohorts, caution should be exercised when approaching the transplant evaluation and management of this subset of pulmonary fibrosis patients.
Arcasoy, Murat Osman
Snyder, Laurie Dee
Silhan, LL; Shah, PD; Chambers, DC; Snyder, LD; Riise, GC; Wagner, CL; Hellström-Lindberg, E; Orens, JB; Mewton, JF; Danoff, SK; Arcasoy, MO; Armanios, M
Eur Respir J
10.1183/09031936.00060014
Postoperative Complications
Renal Insufficiency


XP-STAR (Auto-Link Blue STAR) realizes all the functions of official factory BENZ Star2000: reading out and erasing trouble code; reading the real-time data of sensor and actuator; coding and programming. It applies the latest high-tech central gateway system of car model 221/211 and 203 with software version updated to 2014.09, can enter all the Benz cars, such as autobus truck, saloon car, sports car, smart car and so on.
5.Package don't including software HDD,please notice. if you nee HDD, please choose from our website and buy together.


Microsoft continues to launch the newly announced Lumia 950 and the Lumia 950 XL in more countries with the latest on being Vietnam. Microsoft introduced both devices at an event held at Ho Chi Minh City in Vietnam. The Lumia 950 carries a 13,990,000VND ($616 US) price tag, while its big brother will cost 15,990,000VND ($704 US). Both handsets are up for pre-order in the country starting today with sales kicking off on December 21st (via Techrum.vn). The Display Dock accessory will also hit the retail shelves in the region costing 1,990,000VND ($88 US ).
The Redmond-based company is also offering a promotion with the Lumia 950 XL where customers who will pre-order the device can get a free Display Dock, a Mozo back cover and Microsoft Universal Wireless Keyboard. There's a catch here: the offer is only available for the first 500 customers who will purchase the handset between December 12th and December 20th.
In the meantime, take a look at our in-depth review of the Lumia 950 to see if it's really worth the money or check out our first impressions of the Lumia 950 XL and see how good the bigger Lumia is.
Thanks Steven McDolly for the tip!!!
Anyone interested in getting their hands on the Lumia 950 or Lumia 950 XL?


This image about Land Rover Lr3 Interior was posted on August 12, 2018 at 2:41 am. This blog post is uploaded in the Interior category. Land Rover Lr3 Interior is labelled with Land Rover Lr3 Interior, Land, Rover, Lr3, Interior..
a mark selected at random, as in a competition between two archers wandering over a specified area.
one of a group of fixed marks at a long distance.
an archer who shoots at such a mark.
[Croquet.]a ball that has been driven through all the arches and needs only to strike the last peg to be out of the game.
(at concerts or the like) a person who has a ticket for standing room only.
a senior boy scout, 18 years of age or older.
We'd prefer to discuss some tips about workbench, before speaking about Land Rover Lr3 Interior. There are some essential things you contemplate in selecting an office seat on your company and should know. Select a certain model office chairs, office chairs will often have a warranty of 24 months, both thighs of the seat, hydraulic, along with the forearms of the chair throughout the agreed (NEW).
Together with that, occasionally we are baffled. On the other-hand we likewise experience pity, office seats where we have been there it really is just the shape and shade have now been unacceptable, although Land Rover Lr3 Interior that we need while at the job is important.
Pick a couch in line with the budget / requires of one's company. Modify along with of the chair along with your flavor and shade of one's office furniture. Be sure to pick a couch that has an appropriate foam or comfortable whenever you sitdown.
Category: Interior. Black And White Interior Decor was published on December 8th, 2017 by and tagged as: Black And White Interior Decor, Black, And, White, Interior, Decor.
Category: Interior. Low Voltage Interior Lighting was published on October 27th, 2018 by and tagged as: Low Voltage Interior Lighting, Low, Voltage, Interior, Lighting.
Category: Interior. Custom Camper Interior was published on April 13th, 2018 by and tagged as: Custom Camper Interior, Custom, Camper, Interior.
Category: Interior. Nauvoo Temple Interior was published on March 23rd, 2018 by and tagged as: Nauvoo Temple Interior, Nauvoo, Temple, Interior.
Category: Interior. Nicest Car Interior was published on March 27th, 2018 by and tagged as: Nicest Car Interior, Nicest, Car, Interior.
Category: Interior. Land Rover Lr3 Interior was published on August 12th, 2018 by and tagged as: Land Rover Lr3 Interior, Land, Rover, Lr3, Interior.
Category: Interior. New Interior Doors was published on May 25th, 2018 by and tagged as: New Interior Doors, New, Interior, Doors.
Category: Interior. Indian Drawing Room Interior was published on October 20th, 2018 by and tagged as: Indian Drawing Room Interior, Indian, Drawing, Room, Interior.
Category: Interior. Electrical Shop Interior Design was published on June 26th, 2018 by and tagged as: Electrical Shop Interior Design, Electrical, Shop, Interior, Design.
Category: Interior. Interior Of Neptune was published on November 19th, 2017 by and tagged as: Interior Of Neptune, Interior, Of, Neptune.
Category: Interior. Interior Design Companies In London was published on April 29th, 2018 by and tagged as: Interior Design Companies In London, Interior, Design, Companies, In, London.


text:
La base du groupe statuaire de Domitius Ahenobarbus, également appelée par convention autel de Domitius Ahenobarbus, se compose d'une série de quatre plaques de marbre sculptées qui ornaient vraisemblablement un socle destiné à supporter des statues de culte et placé dans la cella d'un temple dédié à Neptune, situé à Rome, sur le Champ de Mars.

La frise est datée de la fin du , ce qui en fait le second plus ancien exemple de bas-relief romain connu à ce jour, le premier figurant sur la colonne érigée par le consul Lucius Aemilius Paullus Macedonicus en l'honneur de sa victoire à la bataille de Pydna en

Les panneaux sculptés sont toujours visibles aujourd'hui, une partie est exposée au musée du Louvre (Ma 975) et l'autre à la Glyptothèque de Munich (Inv. 239). Une copie de cette dernière partie est également visible au musée Pouchkine de Moscou.

Localisation
La base ornée des reliefs dite « de Domitius Ahenobarbus » devait se trouver dans le temple de Neptune construit près du Circus Flaminius, sur le Champ de Mars. Les vestiges de ce temple ont peut-être été retrouvés récemment sous l'église de Santa Maria in Poblicolis mais leur identification n'est pas certaine.

Histoire

Antiquité
Les reliefs semblent liés à la construction d'un temple dédié à Neptune sur le Champ de Mars. Le commanditaire, probablement Cnaeus Domitius Ahenobarbus, a voué un temple au dieu de la mer à la suite d'une victoire navale, peut-être la victoire remportée au large de Samos entre 129 et  sur Aristonicos qui a tenté de s'opposer à la donation testamentaire de Pergame à Rome effectuée par le roi Attale III. La construction ou la restauration d'un temple préexistant ne daterait que de , année où Cnaeus Domitius Ahenobarbus atteint le consulat.

Les reliefs de la base de la statue de culte, qui ne se composent à l'origine que des scènes mythologiques, auraient ensuite été complétés après la censure de Cnaeus Domitius Ahenobarbus en  avec un quatrième panneau. D'autres hypothèses avancent les censures de Lucius Valerius Flaccus et de Marcus Antonius qui pourraient également être reconnues dans les motifs des reliefs.

En , Cnaeus Domitius Ahenobarbus, descendant du précédent, partisan du parti républicain et des assassins de César, fait frapper des aureus à l'occasion d'une victoire navale dans l'Adriatique sur un partisan d'Octave où figurent à l'avers le profil de son ancêtre et au revers l'image d'un temple tétrastyle accompagnée de la légende «  ».

Renaissance
Les reliefs sont mentionnés en 1629 et en 1631 après avoir été mis au jour lors de grands travaux menés par la famille romaine des Santacroce entre 1598 et 1641, notamment la construction et l'agrandissement d'un palais près du Tibre sous la direction de l'architecte Peparelli. Les reliefs sont alors réutilisés dans la décoration du cortile du palais, leur présence dans le palais étant attestée à partir de 1683.

Description

Les reliefs ne font probablement pas partie à l'origine d'un autel, malgré la dénomination commune, mais d'une grande base rectangulaire longue de 5,60 mètres, large de 1,75 mètre et haute de 0,80 mètre, destinée à supporter les statues de culte. Parmi ces dernières, œuvres attribuées au sculpteur grec Scopas, on peut citer un important groupe statuaire dans lequel figurent Neptune, Thétis, Achille, les Néréides et les Tritons, ainsi que Phorcus, son cortège, des monstres marins et d'autres créatures fantastiques.

Les reliefs se composent de deux grands panneaux fixés sur les côtés longs de la base et de deux plus petits sur les petits côtés. L'un des grands panneaux, conservé au musée du Louvre, est typique de l'art civique romain et représente une scène qu'on ne retrouve qu'à Rome à cette époque : le recensement des citoyens. Les trois autres faces illustrent un thème mythologique dans un style hellénistique, les noces de Neptune et d'Amphitrite. Étant donné la différence de style et de sujet et le fait que les matériaux utilisés ne soient pas les mêmes, on peut supposer que les deux frises ne sont pas contemporaines. La frise mythologique semble avoir été exécutée en premier, couvrant trois côtés de la base qui devait être à l'origine adossée au mur du fond de la cella. Quelques années plus tard, la base est décalée du mur, laissant libre la quatrième face sur laquelle est apposé le dernier panneau.

La scène historique
Le panneau historique de l'autel, long de 5,65 mètres, haut de 80 centimètres et épais de 15 centimètres, en marbre de Paros, présente un bas-relief illustrant les différentes étapes d'un recensement des citoyens romains. Le relief, qui est un des premiers exemples de style continu, se lit de gauche à droite et peut être divisé en trois séquences : l'inscription des citoyens romains sur les registres du cens, la purification de l'armée près d'un autel dédié à Mars et la levée des soldats.

Première séquence
Tout à gauche du bas-relief, un employé du census (le scriba) inscrit sous la dictée l'identité et la nature des biens d'un citoyen qui se tient debout devant lui, des tablettes dans une main tandis que sa main gauche semble appuyer ses dires, consignés par le greffier. Ces données sont consignées dans un codex, composé de deux tabulae en bois, que le scriba tient sur ses genoux. À ses pieds, on aperçoit six de ces codex empilés. L'identité de ce personnage assis n'est pas assurée, un détail remettant en cause son identification au scriba : à ses pieds, on aperçoit ce qui pourrait être des calcei, chausses réservées aux personnages de rang sénatorial. Il pourrait donc s'agir d'un des deux censeurs.

C'est par cette scène que débute le cens, période pendant laquelle chaque citoyen romain est recensé. Le censeur, magistrat romain ici représenté assis derrière le citoyen qui effectue la professio, la main sur le cœur en signe de sa bonne foi, détermine ainsi en fonction de la richesse de chacun qui siègera au sénat et qui ira au combat, les Romains considérant que seuls les fortunés étaient à même de défendre leur cité car ils y avaient intérêt. Le censeur est représenté une main sur l'épaule d'un quatrième personnage vêtu d'une toge. Par ce geste (la manumissio), le censeur accepte sa déclaration et rend son arbitrage (la discriptio), ce qui clôt l'acte de classement. Le citoyen montre de la main un des fantassins, indiquant par là la centurie qu'il rejoint. Il pourrait ici s'agir d'une évocation de la censure de Cnaeus Domitius Ahenobarbus et de Lucius Caecilius Metellus en

Deuxième séquence
Vient ensuite une scène religieuse, la cérémonie du lustrum qui légitime l'acte de recensement, présidée par un des deux censeurs qui se tient à droite de l'autel dédié à Mars. Ce dernier est représenté en arme et en cuirasse à gauche de l'autel. À droite, trois victimaires amènent le taureau, le mouton et le porc (les suovetaurilia) qui seront sacrifiés en l'honneur du dieu afin de placer le départ des troupes sous de bons augures. Le censeur est aidé durant la cérémonie par de jeunes assistants (les camilli), l'un d'eux est en train de verser l'eau lustrale. Derrière la figure de Mars, deux musiciens accompagnent le sacrifice. L'un d'eux joue de la lyre et l'autre de la tibia. Ils semblent accompagner le camillus qui se tient derrière l'autel et qui chanterait la precatio. Derrière les victimes avance le deuxième censeur, il tient un étendard (vexillum).

Troisième séquence
Enfin, à l'extrémité droite du bas-relief sont représentés deux fantassins et un cavalier (eques) accompagné de son cheval. Avec les deux autres fantassins représentés entre la première et deuxième séquence, l'artiste rappelle ainsi l'existence de quatre classes de fantassins (pedites) mobilisables et de l'aristocratie qui constitue la cavalerie.

La scène mythologique
Les panneaux portant la scène mythologique, un thiase marin de style hellénistique tardif, sont constitués d'un marbre différent provenant d'Asie. Ils sont conservés à la glyptothèque de Munich. Les reliefs représentent probablement les noces de Neptune et Amphitrite.

Au milieu de la composition, Neptune et Amphitrite sont assis dans un char tiré par deux Tritons jouant de la musique. Ils sont entourés de nombreuses créatures fantastiques, Tritons et Néréides, qui font cortège au couple nuptial. À gauche, une Néréide chevauchant un taureau de mer apporte un présent. Devant elle, face au couple, avance la mère d'Amphitrite, Doris, montée sur un Triton à la tête de cheval et tenant une torche nuptiale dans chaque main pour éclairer le cortège. Sur sa droite, on aperçoit un Éros, créature associée à Vénus. Derrière le char du couple, une Néréide accompagnée de deux Érotes et chevauchant un hippocampe porte un autre présent.

Notes et références

Notes

Références
 Sources modernes :

 Autres sources modernes :

 Sources antiques :

Bibliographie

Ouvrages généraux

Analyses des reliefs

Articles connexes
 Temple de Neptune (Rome)

Champ de Mars (Rome)
Monument romain à Rome
Domitius Ahenobarbus
Collection d'antiquités étrusques et romaines du Louvre


text:
Q: android NDK: Is optimizing array copy worth it? For a school project I am creating an android app that involves streaming image data. I've finished all the requirements about a month and a half early, and am looking for ways to improve my app. One thing I heard of is using the android NDK to optimize heavily used pieces of code.
What my app does is simulate a live video coming in over a socket. I am simultaneously reading the pixel data from a UDP packet, and writing it to an int array, which I then use to update the image on the screen.
I'm trying to decide if trying to increase my frame rate (which is about 1 fps now, which is sufficient for my project) is the right path to follow for my remaining time, or if I should instead focus on adding new features.
Anyway, here is the code I am looking at:
public void updateBitmap(byte[] buf, int thisPacketLength, int standardOffset, int thisPacketOffset) {
    int pixelCoord = thisPacketOffset / 3 - 1;
    for (int bufCoord = standardOffset; bufCoord < thisPacketLength; bufCoord += 3) {
        pixelCoord++;
        pixelData[pixelCoord] = 0xFF << 24 | (buf[bufCoord + 2] << 16) & 0xFFFFFF | (buf[bufCoord + 1] << 8) & 0xFFFF | buf[bufCoord] & 0xFF;
    }
}

I call this function about 2000 times per second, so it definitely is the most used piece of code in my app. Any feedback on if this is worth optimizing?

A: Why not just give it a try? There are many guides to creating functions using NDK, you seem to have a good grasp of the reasoning to do so and understand the implications so it should be easy to translate this small function.
Compare the two approaches, you will no doubt learn something which is always good, and it will give you something to write about if you need to write a report to go with the project.


text:
/**@file tsip_dialog_options.c
 * @brief SIP dialog OPTIONS as per RFC 3261 section 11.
 *
 * @author Mamadou Diop <diopmamadou(at)doubango[dot]org>
 *

 */
#include "tinysip/dialogs/tsip_dialog_options.h"
#include "tinysip/parsers/tsip_parser_uri.h"

#include "tinysip/api/tsip_api_options.h"

#include "tinysip/headers/tsip_header_Dummy.h"
#include "tinysip/headers/tsip_header_Min_Expires.h"

#include "tinysip/transactions/tsip_transac_layer.h"

#include "tsk_memory.h"
#include "tsk_debug.h"
#include "tsk_time.h"

#define DEBUG_STATE_MACHINE											1
#define TSIP_DIALOG_OPTIONS_SIGNAL(self, type, code, phrase, options)	\
	tsip_options_event_signal(type, TSIP_DIALOG(self)->ss, code, phrase, options)

/* ======================== internal functions ======================== */
static int send_OPTIONS(tsip_dialog_options_t *self);
static int send_response(tsip_dialog_options_t *self, short status, const char* phrase, const tsip_request_t *request);
static int tsip_dialog_options_OnTerminated(tsip_dialog_options_t *self);

/* ======================== transitions ======================== */
static int tsip_dialog_options_Started_2_Sending_X_sendOPTIONS(va_list *app);
static int tsip_dialog_options_Started_2_Receiving_X_recvOPTIONS(va_list *app);
static int tsip_dialog_options_Sending_2_Sending_X_1xx(va_list *app);
static int tsip_dialog_options_Sending_2_Terminated_X_2xx(va_list *app);
static int tsip_dialog_options_Sending_2_Sending_X_401_407_421_494(va_list *app);
static int tsip_dialog_options_Sending_2_Terminated_X_300_to_699(va_list *app);
static int tsip_dialog_options_Sending_2_Terminated_X_cancel(va_list *app);
static int tsip_dialog_options_Receiving_2_Terminated_X_accept(va_list *app);
static int tsip_dialog_options_Receiving_2_Terminated_X_reject(va_list *app);
static int tsip_dialog_options_Any_2_Terminated_X_transportError(va_list *app);
static int tsip_dialog_options_Any_2_Terminated_X_Error(va_list *app);

/* ======================== conds ======================== */

/* ======================== actions ======================== */
typedef enum _fsm_action_e
{
	_fsm_action_sendOPTIONS = tsip_atype_options_send,
	_fsm_action_accept = tsip_atype_accept,
	_fsm_action_reject = tsip_atype_reject,
	_fsm_action_cancel = tsip_atype_cancel,
	_fsm_action_shutdown = tsip_atype_shutdown,
	_fsm_action_transporterror = tsip_atype_transport_error,

	_fsm_action_receiveOPTIONS = 0xFF,
	_fsm_action_1xx,
	_fsm_action_2xx,
	_fsm_action_401_407_421_494,
	_fsm_action_300_to_699,
	_fsm_action_error,
}
_fsm_action_t;

/* ======================== states ======================== */
typedef enum _fsm_state_e
{
	_fsm_state_Started,
	_fsm_state_Sending,
	_fsm_state_Receiving,
	_fsm_state_Terminated
}
_fsm_state_t;

int tsip_dialog_options_event_callback(const tsip_dialog_options_t *self, tsip_dialog_event_type_t type, const tsip_message_t *msg)
{
	int ret = -1;

	switch(type)
	{
	case tsip_dialog_i_msg:
		{
			if(msg){
				if(TSIP_MESSAGE_IS_RESPONSE(msg)){
					const tsip_action_t* action = tsip_dialog_keep_action(TSIP_DIALOG(self), msg) ? TSIP_DIALOG(self)->curr_action : tsk_null;
					if(TSIP_RESPONSE_IS_1XX(msg)){
						ret = tsip_dialog_fsm_act(TSIP_DIALOG(self), _fsm_action_1xx, msg, action);
					}
					else if(TSIP_RESPONSE_IS_2XX(msg)){
						ret = tsip_dialog_fsm_act(TSIP_DIALOG(self), _fsm_action_2xx, msg, action);
					}
					else if(TSIP_RESPONSE_CODE(msg) == 401 || TSIP_RESPONSE_CODE(msg) == 407 || TSIP_RESPONSE_CODE(msg) == 421 || TSIP_RESPONSE_CODE(msg) == 494){
						ret = tsip_dialog_fsm_act(TSIP_DIALOG(self), _fsm_action_401_407_421_494, msg, action);
					}
					else if(TSIP_RESPONSE_IS_3456(msg)){
						ret = tsip_dialog_fsm_act(TSIP_DIALOG(self), _fsm_action_300_to_699, msg, action);
					}
					else{ /* should never happen  */
						ret = tsip_dialog_fsm_act(TSIP_DIALOG(self), _fsm_action_error, msg, action);
					}
				}
				else if (TSIP_REQUEST_IS_OPTIONS(msg)){ /* have been checked by dialog layer...but */
					// REQUEST ==> Incoming OPTIONS
					ret = tsip_dialog_fsm_act(TSIP_DIALOG(self), _fsm_action_receiveOPTIONS, msg, tsk_null);
				}
			}
			break;
		}

	case tsip_dialog_canceled:
		{
			ret = tsip_dialog_fsm_act(TSIP_DIALOG(self), _fsm_action_cancel, msg, tsk_null);
			break;
		}

	case tsip_dialog_terminated:
	case tsip_dialog_timedout:
	case tsip_dialog_error:
	case tsip_dialog_transport_error:
		{
			ret = tsip_dialog_fsm_act(TSIP_DIALOG(self), _fsm_action_transporterror, msg, tsk_null);
			break;
		}

    default: break;
	}

	return ret;
}

tsip_dialog_options_t* tsip_dialog_options_create(const tsip_ssession_handle_t* ss)
{
	return tsk_object_new(tsip_dialog_options_def_t, ss);
}

int tsip_dialog_options_init(tsip_dialog_options_t *self)
{
	//const tsk_param_t* param;

	/* Initialize the state machine. */
	tsk_fsm_set(TSIP_DIALOG_GET_FSM(self),

			/*=======================
			* === Started ===
			*/
			// Started -> (send) -> Sending
			TSK_FSM_ADD_ALWAYS(_fsm_state_Started, _fsm_action_sendOPTIONS, _fsm_state_Sending, tsip_dialog_options_Started_2_Sending_X_sendOPTIONS, "tsip_dialog_options_Started_2_Sending_X_sendOPTIONS"),
			// Started -> (receive) -> Receiving
			TSK_FSM_ADD_ALWAYS(_fsm_state_Started, _fsm_action_receiveOPTIONS, _fsm_state_Receiving, tsip_dialog_options_Started_2_Receiving_X_recvOPTIONS, "tsip_dialog_options_Started_2_Receiving_X_recvOPTIONS"),
			// Started -> (Any) -> Started
			TSK_FSM_ADD_ALWAYS_NOTHING(_fsm_state_Started, "tsip_dialog_options_Started_2_Started_X_any"),

			/*=======================
			* === Sending ===
			*/
			// Sending -> (1xx) -> Sending
			TSK_FSM_ADD_ALWAYS(_fsm_state_Sending, _fsm_action_1xx, _fsm_state_Sending, tsip_dialog_options_Sending_2_Sending_X_1xx, "tsip_dialog_options_Sending_2_Sending_X_1xx"),
			// Sending -> (2xx) -> Terminated
			TSK_FSM_ADD_ALWAYS(_fsm_state_Sending, _fsm_action_2xx, _fsm_state_Terminated, tsip_dialog_options_Sending_2_Terminated_X_2xx, "tsip_dialog_options_Sending_2_Terminated_X_2xx"),
			// Sending -> (401/407/421/494) -> Sending
			TSK_FSM_ADD_ALWAYS(_fsm_state_Sending, _fsm_action_401_407_421_494, _fsm_state_Sending, tsip_dialog_options_Sending_2_Sending_X_401_407_421_494, "tsip_dialog_options_Sending_2_Sending_X_401_407_421_494"),
			// Sending -> (300_to_699) -> Terminated
			TSK_FSM_ADD_ALWAYS(_fsm_state_Sending, _fsm_action_300_to_699, _fsm_state_Terminated, tsip_dialog_options_Sending_2_Terminated_X_300_to_699, "tsip_dialog_options_Sending_2_Terminated_X_300_to_699"),
			// Sending -> (cancel) -> Terminated
			TSK_FSM_ADD_ALWAYS(_fsm_state_Sending, _fsm_action_cancel, _fsm_state_Terminated, tsip_dialog_options_Sending_2_Terminated_X_cancel, "tsip_dialog_options_Sending_2_Terminated_X_cancel"),
			// Sending -> (Any) -> Sending
			TSK_FSM_ADD_ALWAYS_NOTHING(_fsm_state_Sending, "tsip_dialog_options_Sending_2_Sending_X_any"),

			/*=======================
			* === Receiving ===
			*/
			// Receiving -> (accept) -> Terminated
			TSK_FSM_ADD_ALWAYS(_fsm_state_Receiving, _fsm_action_accept, _fsm_state_Terminated, tsip_dialog_options_Receiving_2_Terminated_X_accept, "tsip_dialog_options_Receiving_2_Terminated_X_accept"),
			// Receiving -> (rejected) -> Terminated
			TSK_FSM_ADD_ALWAYS(_fsm_state_Receiving, _fsm_action_reject, _fsm_state_Terminated, tsip_dialog_options_Receiving_2_Terminated_X_reject, "tsip_dialog_options_Receiving_2_Terminated_X_reject"),
			// Receiving -> (Any) -> Receiving
			TSK_FSM_ADD_ALWAYS_NOTHING(_fsm_state_Receiving, "tsip_dialog_options_Receiving_2_Receiving_X_any"),

			/*=======================
			* === Any ===
			*/
			// Any -> (transport error) -> Terminated
			TSK_FSM_ADD_ALWAYS(tsk_fsm_state_any, _fsm_action_transporterror, _fsm_state_Terminated, tsip_dialog_options_Any_2_Terminated_X_transportError, "tsip_dialog_options_Any_2_Terminated_X_transportError"),
			// Any -> (transport error) -> Terminated
			TSK_FSM_ADD_ALWAYS(tsk_fsm_state_any, _fsm_action_error, _fsm_state_Terminated, tsip_dialog_options_Any_2_Terminated_X_Error, "tsip_dialog_options_Any_2_Terminated_X_Error"),

			TSK_FSM_ADD_NULL());

	TSIP_DIALOG(self)->callback = TSIP_DIALOG_EVENT_CALLBACK_F(tsip_dialog_options_event_callback);

	return 0;
}

//--------------------------------------------------------
//				== STATE MACHINE BEGIN ==
//--------------------------------------------------------

/* Started -> (sendOPTIONS) -> Sending
*/
int tsip_dialog_options_Started_2_Sending_X_sendOPTIONS(va_list *app)
{
	tsip_dialog_options_t *self;

	self = va_arg(*app, tsip_dialog_options_t *);

	TSIP_DIALOG(self)->running = tsk_true;

	/* alert the user */
	TSIP_DIALOG_SIGNAL(self, tsip_event_code_dialog_connecting, "Dialog connecting");

	return send_OPTIONS(self);
}

/* Started -> (recvOPTIONS) -> Receiving
*/
int tsip_dialog_options_Started_2_Receiving_X_recvOPTIONS(va_list *app)
{
	tsip_dialog_options_t *self = va_arg(*app, tsip_dialog_options_t *);
	const tsip_request_t *request = va_arg(*app, const tsip_request_t *);

	/* Update last incoming MESSAGE */
	TSK_OBJECT_SAFE_FREE(self->last_iMessage);
	self->last_iMessage = tsk_object_ref((void*)request);

	/* Alert the user. */
	TSIP_DIALOG_OPTIONS_SIGNAL(self, tsip_i_options,
			tsip_event_code_dialog_request_incoming, "Incoming Request.", request);

	return 0;
}

/*	Sending -> (1xx) -> Sending
*/
int tsip_dialog_options_Sending_2_Sending_X_1xx(va_list *app)
{
	/*tsip_dialog_options_t *self = va_arg(*app, tsip_dialog_options_t *);*/
	/*const tsip_response_t *response = va_arg(*app, const tsip_response_t *);*/

	return 0;
}

/*	Sending -> (2xx) -> Sending
*/
int tsip_dialog_options_Sending_2_Terminated_X_2xx(va_list *app)
{
	tsip_dialog_options_t *self = va_arg(*app, tsip_dialog_options_t *);
	const tsip_response_t *response = va_arg(*app, const tsip_response_t *);

	/* Alert the user. */
	TSIP_DIALOG_OPTIONS_SIGNAL(self, tsip_ao_options,
		TSIP_RESPONSE_CODE(response), TSIP_RESPONSE_PHRASE(response), response);

	/* Reset curr action */
	tsip_dialog_set_curr_action(TSIP_DIALOG(self), tsk_null);

	return 0;
}

/*	Sending -> (401/407/421/494) -> Sending
*/
int tsip_dialog_options_Sending_2_Sending_X_401_407_421_494(va_list *app)
{
	tsip_dialog_options_t *self = va_arg(*app, tsip_dialog_options_t *);
	const tsip_response_t *response = va_arg(*app, const tsip_response_t *);
	int ret;

	if((ret = tsip_dialog_update(TSIP_DIALOG(self), response))){
		/* Alert the user. */
		TSIP_DIALOG_OPTIONS_SIGNAL(self, tsip_ao_options,
								   TSIP_RESPONSE_CODE(response), TSIP_RESPONSE_PHRASE(response), response);

		return ret;
	}

	return send_OPTIONS(self);
}

/*	Sending -> (300 to 699) -> Terminated
*/
int tsip_dialog_options_Sending_2_Terminated_X_300_to_699(va_list *app)
{
	tsip_dialog_options_t *self = va_arg(*app, tsip_dialog_options_t *);
	const tsip_response_t *response = va_arg(*app, const tsip_response_t *);

	/* Alert the user. */
	TSIP_DIALOG_OPTIONS_SIGNAL(self, tsip_ao_options,
		TSIP_RESPONSE_CODE(response), TSIP_RESPONSE_PHRASE(response), response);

	return 0;
}

/*	Sending -> (cancel) -> Terminated
*/
int tsip_dialog_options_Sending_2_Terminated_X_cancel(va_list *app)
{
	int ret;

	tsip_dialog_options_t *self = va_arg(*app, tsip_dialog_options_t *);
	/* const tsip_message_t *message = va_arg(*app, const tsip_message_t *); */

	/* RFC 3261 - 9.1 Client Behavior
	   A CANCEL request SHOULD NOT be sent to cancel a request other than INVITE.
	*/

	/* Cancel all transactions associated to this dialog (will also be done when the dialog is destroyed (worth nothing)) */
	ret = tsip_transac_layer_cancel_by_dialog(TSIP_DIALOG_GET_STACK(self)->layer_transac, TSIP_DIALOG(self));

	TSIP_DIALOG_SIGNAL(self, tsip_event_code_dialog_request_cancelled, "OPTIONS cancelled");

	return ret;
}

/*	Receiving -> (accept) -> Terminated
*/
int tsip_dialog_options_Receiving_2_Terminated_X_accept(va_list *app)
{
	tsip_dialog_options_t *self;
	const tsip_action_t* action;

	self = va_arg(*app, tsip_dialog_options_t *);
	va_arg(*app, tsip_message_t *);
	action = va_arg(*app, const tsip_action_t *);

	if(!self->last_iMessage){
		TSK_DEBUG_ERROR("There is non OPTIONS to accept()");
		/* Not an error ...but do not update current action */
	}
	else{
		tsip_response_t *response;
		int ret;

		/* curr_action is only used for outgoing requests */
		/* tsip_dialog_set_curr_action(TSIP_DIALOG(self), action); */

		/* send 200 OK */
		if((response = tsip_dialog_response_new(TSIP_DIALOG(self), 200, "OK", self->last_iMessage))){
			tsip_dialog_apply_action(response, action); /* apply action params to "this" response */
			if((ret = tsip_dialog_response_send(TSIP_DIALOG(self), response))){
				TSK_DEBUG_ERROR("Failed to send SIP response.");
				TSK_OBJECT_SAFE_FREE(response);
				return ret;
			}
			TSK_OBJECT_SAFE_FREE(response);
		}
		else{
			TSK_DEBUG_ERROR("Failed to create SIP response.");
			return -1;
		}
	}

	return 0;
}

/*	Receiving -> (reject) -> Terminated
*/
int tsip_dialog_options_Receiving_2_Terminated_X_reject(va_list *app)
{
	tsip_dialog_options_t *self;
	const tsip_action_t* action;

	self = va_arg(*app, tsip_dialog_options_t *);
	va_arg(*app, tsip_message_t *);
	action = va_arg(*app, const tsip_action_t *);

	if(!self->last_iMessage){
		TSK_DEBUG_ERROR("There is non OPTIONS to reject()");
		/* Not an error ...but do not update current action */
	}
	else{
		tsip_response_t *response;
		int ret;

		/* curr_action is only used for outgoing requests */
		/* tsip_dialog_set_curr_action(TSIP_DIALOG(self), action); */

		/* send 486 Rejected */
		if((response = tsip_dialog_response_new(TSIP_DIALOG(self), 486, "Rejected", self->last_iMessage))){
			tsip_dialog_apply_action(response, action); /* apply action params to "this" response */
			if((ret = tsip_dialog_response_send(TSIP_DIALOG(self), response))){
				TSK_DEBUG_ERROR("Failed to send SIP response.");
				TSK_OBJECT_SAFE_FREE(response);
				return ret;
			}
			TSK_OBJECT_SAFE_FREE(response);
		}
		else{
			TSK_DEBUG_ERROR("Failed to create SIP response.");
			return -1;
		}
	}

	return 0;
}

/*	Any -> (transport error) -> Terminated
*/
int tsip_dialog_options_Any_2_Terminated_X_transportError(va_list *app)
{
	/*tsip_dialog_options_t *self = va_arg(*app, tsip_dialog_options_t *);*/
	/*const tsip_message_t *message = va_arg(*app, const tsip_message_t *);*/

	return 0;
}

/*	Any -> (error) -> Terminated
*/
int tsip_dialog_options_Any_2_Terminated_X_Error(va_list *app)
{
	/*tsip_dialog_options_t *self = va_arg(*app, tsip_dialog_options_t *);*/
	/*const tsip_message_t *message = va_arg(*app, const tsip_message_t *);*/

	return 0;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//				== STATE MACHINE END ==
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++

int send_OPTIONS(tsip_dialog_options_t *self)
{
	tsip_request_t* request = tsk_null;
	int ret = -1;

	if(!self){
		return -1;
	}

	if(!(request = tsip_dialog_request_new(TSIP_DIALOG(self), "OPTIONS"))){
		return -2;
	}

	/* action parameters and payload*/
	if(TSIP_DIALOG(self)->curr_action){
		const tsk_list_item_t* item;
		tsk_list_foreach(item, TSIP_DIALOG(self)->curr_action->headers){
			TSIP_MESSAGE_ADD_HEADER(request, TSIP_HEADER_DUMMY_VA_ARGS(TSK_PARAM(item->data)->name, TSK_PARAM(item->data)->value));
		}
		if(TSIP_DIALOG(self)->curr_action->payload){
			tsip_message_add_content(request, tsk_null, TSK_BUFFER_DATA(TSIP_DIALOG(self)->curr_action->payload), TSK_BUFFER_SIZE(TSIP_DIALOG(self)->curr_action->payload));
		}
	}

	ret = tsip_dialog_request_send(TSIP_DIALOG(self), request);
	TSK_OBJECT_SAFE_FREE(request);

	return ret;
}

int send_response(tsip_dialog_options_t *self, short status, const char* phrase, const tsip_request_t *request)
{
	tsip_response_t *response;
	int ret = -1;

	response = tsip_dialog_response_new(TSIP_DIALOG(self), status, phrase, request);
	if(response){
		if(response->To && !response->To->tag){
			tsk_istr_t tag;
			tsk_strrandom(&tag);
			response->To->tag = tsk_strdup(tag);
		}
		ret = tsip_dialog_response_send(TSIP_DIALOG(self), response);
		TSK_OBJECT_SAFE_FREE(response);
	}

	return ret;
}

int tsip_dialog_options_OnTerminated(tsip_dialog_options_t *self)
{
	TSK_DEBUG_INFO("=== OPTIONS Dialog terminated ===");

	/* alert user */
	TSIP_DIALOG_SIGNAL(self, tsip_event_code_dialog_terminated,
		TSIP_DIALOG(self)->last_error.phrase ? TSIP_DIALOG(self)->last_error.phrase : "Dialog terminated");

	/* Remove from the dialog layer. */
	return tsip_dialog_remove(TSIP_DIALOG(self));
}

//========================================================
//	SIP dialog OPTIONS object definition
//
static tsk_object_t* tsip_dialog_options_ctor(tsk_object_t * self, va_list * app)
{
	tsip_dialog_options_t *dialog = self;
	if(dialog){
		tsip_ssession_handle_t *ss = va_arg(*app, tsip_ssession_handle_t *);

		/* Initialize base class */
		tsip_dialog_init(TSIP_DIALOG(self), tsip_dialog_OPTIONS, tsk_null, ss, _fsm_state_Started, _fsm_state_Terminated);

		/* FSM */
		TSIP_DIALOG_GET_FSM(self)->debug = DEBUG_STATE_MACHINE;
		tsk_fsm_set_callback_terminated(TSIP_DIALOG_GET_FSM(self), TSK_FSM_ONTERMINATED_F(tsip_dialog_options_OnTerminated), (const void*)dialog);

		/* Initialize the class itself */
		tsip_dialog_options_init(self);
	}
	return self;
}

static tsk_object_t* tsip_dialog_options_dtor(tsk_object_t * self)
{
	tsip_dialog_options_t *dialog = self;
	if(dialog){

		/* DeInitialize base class (will cancel all transactions) */
		tsip_dialog_deinit(TSIP_DIALOG(self));

		/* DeInitialize self */
		TSK_OBJECT_SAFE_FREE(dialog->last_iMessage);

		TSK_DEBUG_INFO("*** OPTIONS Dialog destroyed ***");
	}
	return self;
}

static int tsip_dialog_options_cmp(const tsk_object_t *obj1, const tsk_object_t *obj2)
{
	return tsip_dialog_cmp(obj1, obj2);
}

static const tsk_object_def_t tsip_dialog_options_def_s =
{
	sizeof(tsip_dialog_options_t),
	tsip_dialog_options_ctor,
	tsip_dialog_options_dtor,
	tsip_dialog_options_cmp,
};
const tsk_object_def_t *tsip_dialog_options_def_t = &tsip_dialog_options_def_s;