My roommate was poisoning my dog to get back at me, and more advice from Dear Prudence.

Photo illustration by Slate. Photo by Sonja Rachbauer/iStock/Getty Images Plus. Dear Prudence is online weekly to chat live with readers. Here’s an edited transcript of this week’s chat. Danny Lavery: Hi, everyone! We’ve got all the problems you could possibly want, and then some. Let’s chat! Q. Poisonous secret: I just […]

Dog laying on the ground next to an opened chocolate bar.
Photo illustration by Slate. Photo by Sonja Rachbauer/iStock/Getty Images Plus.

Dear Prudence is online weekly to chat live with readers. Here’s an edited transcript of this week’s chat.

Danny Lavery: Hi, everyone! We’ve got all the problems you could possibly want, and then some. Let’s chat!

Q. Poisonous secret: I just found out that my old roommate from a year ago poisoned my dog. Back when we lived together, my dog kept having severe stomach problems off and on for months. I took time off work, took the dog to the vet, and made more expensive visits to the emergency vet. No one could figure out what was wrong. Because I moved out and my dog is no longer getting sick, I figured it was an allergy to our last apartment or something. Then a close mutual friend who was a little tipsy told me that my old roommate would feed him scraps as a way of “getting back at me” when we had disagreements. He knew he was getting my dog sick and wanted to inconvenience me.

I thought he and I were good friends who only had the typical disagreements roommates can have. To this day, he is still very friendly with me. But I am furious! I can’t get back the time I took off work or the thousands of dollars I spent trying to help my dog. Worse yet, the fact he was willing to make my dog so sick without caring about his health is appalling. Is it worth confronting him? If we weren’t still on great terms, I would start beating the war drums. What do I do?

A: You are not on “great terms” with this guy! He poisoned your dog! Perhaps he pretends to be friendly when he sees you, but that’s not the same thing as being on great or even decent terms. This guy poisoned your dog! You have my permission to yell at him. You might also consider yelling at your tipsy friend who clued you in only after the fact. (It’s possible your mutual friend didn’t know until you’d moved out, but even so, they should have told you right away.) And feel free to warn any other mutual friends who might consider moving in with this guy in the future that he’s liable to kill their pets if they can’t agree on who should roll the trash bins out to the curb. But yes, my God, confront someone who tried to poison your dog; that’s certainly worth having confrontation over. It doesn’t have to be in person, especially if you’re worried you’d try to take a swing at him and end up in trouble yourself, but this is not something you should just shrug off.

How to Get Advice From Prudie:

• Send questions for publication to [email protected]. (Questions may be edited.)

• Join the live chat Mondays at noon. Submit your questions and comments here before or during the discussion.

• Call the voicemail of the Dear Prudence podcast at 401-371-DEAR (3327) to hear your question answered on a future episode of the show.

Q. My husband hates my appearance: I am a 31-year-old woman and I have a 2-year-old and a 3-year-old. After having two back-to-back high-risk pregnancies followed by having a hectic life with two sick children, I gained a lot of weight. However, about a year ago I decided to carve out a little time to get myself in shape. I have been feeling a lot better and think I look like my usual self.

However, my husband has been a little mean about my appearance. Despite my weight loss, he wants me to wear shapeware under my clothing every day, even though we are on lockdown and I almost never leave the house. It also hurts that he always says that even if I do lose all the weight, he honestly believes I’d need plastic surgery to look pretty, and he can’t understand why, since he’s willing to pay for it, I won’t even consider having work done. I have always felt I’d rather wake up ugly but myself than wake up every day as someone else. But his constant harping about how I should be ashamed of my appearance is starting to mess with my head.

To make matters worse, my children are picking up on it. My 3-year-old saw me eat half a sandwich at lunch and told me “Mommy, you eat too much” and stated that I have a big tummy. When I try to talk to my husband about how he’s hurting my feelings, he always blows up and screams at me, so I don’t like bringing it up. I don’t know what to do; I don’t want to get yelled at but I’m also starting to get really self-conscious about my appearance and I want my children to grow up into gentlemen.

A: I’m so sorry. This is just heartbreaking. It’s not “a little mean” to demand your partner wrap themselves in control-top hose every day; to say, “You’d need plastic surgery to look pretty”; to make such a show of controlling your food that your toddler-age children think it’s normal to berate their mother for eating lunch; or to scream at someone when they say you’re hurting their feelings. It’s monstrous, it’s abusive, and it’s ghastly.

I don’t want you to get yelled at, either. I don’t want your children to have to grow up with a father who treats their mother like that. I don’t want you to have to worry about this man’s approval for another minute. I think you should leave as soon as you can. Today, if you can. I think if you can’t leave today, you should tell someone else in your life what you told me. I think you should ask for help finding a divorce lawyer, a new place to stay, packing up your stuff—whatever you need to get away from your husband, as soon as you can. Good luck.

Q. Can’t walk you: My girlfriend basically moved into my condo during lockdown since her roommates are both high-risk and she works in medicine. I work from home, but her hours are obscene and her schedule has gotten worse—she often has to be into work by 4 a.m.

She hates taking the elevator down to the parking garage alone. She wakes me up and makes me escort her down. It is screwing up my sleep schedule—either I don’t get back to sleep or I will sleep through my alarm. I have nearly missed multiple meetings because of this. We keep fighting about it. My building has 24/7 security and cameras. You need a code even to get into the garage. My girlfriend was stalked in college so I understand where this is coming from. It can be unsettling early in the morning, but I need my sleep. I love this woman to death, but this is nuts.

A: I can appreciate just how much sleep deprivation, uncertainty, and pandemic-related stress affect one’s abilities to make reasonable decisions—what your girlfriend is going through sounds remarkably daunting, to say the least, and that’s without the additional complicating factor of her history of being stalked. But all of that simply warrants being conscientious and careful when you talk about this, and is not a reason to sacrifice your own sleep schedule and risk your own work.

If you’ve been fighting about it usually at the beginning (or end) of a shift, when the latest interrupted sleep cycle is still fresh in your mind, I’d recommend setting aside some time to talk about it on the weekend, during an afternoon when you’re reasonably well-rested, and to encourage her to think about what else she needs right now to make her own schedule bearable that goes beyond having you awake at 4 a.m. For example, if it’s being in an enclosed space that early in the day that distresses her, does she have the same experience taking the stairs? Is there a colleague she might occasionally carpool with? Something she could take with her on the walk from your apartment to her car to reassure her (I’m thinking more along the lines of a worry charm, not a defensive weapon)? I’m torn on whether to suggest you two read The Gift of Fear together—maybe The Body Keeps the Score would be a better start.

Q. Anxiety about medical bills: I’m a professional in my mid-30s who moved to the U.S. a few years ago to work. Lately, I’ve been suffering from minor depression (passive suicidal ideation, etc.) caused by recent life events and I think therapy might be in order. The problem is, I’ve heard so many horror stories about medical bills in the U.S. that I’m very wary of seeing a medical professional or therapist here. I suppose I should check with them in advance to see if they accept my insurance, but the mere fact that I need to do that gives me so much anxiety. I’m originally from a country with semi-socialized medicine—I would just walk in and never even worry about surprise medical bills. This anxiety has led me to avoid seeing medical professionals here altogether, despite the fact I have pretty good insurance (or so I’ve been told—I don’t understand how there are good and bad insurance policies). What should I do?

A: It’s a ghastly process, without question, but I do think I can relieve at least some of your anxiety about out-of-control medical bills when it comes to seeing a therapist. Since you have “good” insurance, the odds that you’ll be able to find someone in-network is pretty good. You can go to your insurance carrier’s website and search for local in-network providers there, which is an easy way to bypass a lot of the frustration that comes from finding a great therapist who doesn’t take insurance. Once your insurance has been approved and your co-pay established, you’ll have a very clear, consistent picture of what each session costs—it won’t be like getting a surprise bill for an ambulance ride or a stay in the emergency room, since your co-pay can be arranged before your first session.

If even that feels overwhelming, maybe you could ask a friend who’s more familiar with navigating American insurance companies to help you start a search. It wouldn’t take more than an hour or two of their time, and might go a long way toward getting you the help you need. Alternately, you might start with a local support group—those are often no- or very low-cost, are sometimes moderated by a licensed counselor, and are better than nothing. Since you don’t have to arrange anything with a medical office and just show up (either in-person or online, depending on local COVID restrictions), it might not feel quite so activating around your financial anxieties.

Q. Lending a hand: I have a friend, “Betty,” with whom I used to be close. Over the past couple of years we’ve drifted apart, and she has been really unsupportive of a lot of difficult things that happened to me.

During the pandemic, she decided to open a small side business. She’s messaged me about once a month to ask me to do something small, like share something about it on social media. I’ve done that when she’s asked. A few days ago, she texted me a similar request followed by a message that she was “hurt that I had to be asked to share things and that all of her other friends had been sharing things more often than me.” I wanted to text her back that it’s more than anything she’s done to help me in the past few years. I’ve tried to get a hold of her several times to get together for outdoor BBQs when the weather was nice and she blew me off all but once. She only seems to contact me when she needs something. I can’t figure out whether I should unload years’ worth of emotional feelings on her or just ghost her. Is it OK to ghost her? The last time I brought up her being unsupportive, she didn’t apologize and blamed me for how she acted. I don’t really care that the friendship has ended, but it just bothers me that she is so blatantly now using this relationship as a means to an end.

A: It’s fine to ghost her. She may get upset, but anyone who says something like “I can’t believe I have to ask you to sometimes do me favors, and you don’t just magically intuit what I want via mind-reading” does not have reasonable expectations when it comes to friendship. It’s also fine to want to seek a middle ground between “disappearing with a word” and “unloading years of emotions” on someone who’s unlikely to respond thoughtfully. What if you summarized the dynamic in a sentence or two and let her know you didn’t want to continue the friendship? That way you’d have the satisfaction of knowing you said what had been bothering you, but you might be able to avoid the exhaustion of a full-scale friend breakup where you relitigate the past five or 10 years. Sometimes ghosting feels like a relief, and sometimes it feels like a frustrating avoidance, so the question is really about what seems more meaningful to you.

Q. Seriously attached sister: My sister is obsessed with her boyfriend, in what I feel is an unhealthy way. She had a serious illness and was on disability for a few months and once told me that she sat at home and cried all day while he was at work because she missed him so much. He’s a nice guy, not abusive or anything, but it’s just too much. Now she’s recovered, and she recently got a job in his office building, specifically so they can see each other during the work day. It’s a job below her skill level and she hates it. She always complains about how horrible the job is (she’s never complained this much about previous jobs), but when I ask why she doesn’t find a new job, she says that if she did, she wouldn’t be able to see her boyfriend. Am I crazy or is this abnormal behavior?

A: I’m not sure if your sister cried all day once because she missed her boyfriend (while in the middle of dealing with a serious illness), or if she simply told you about it once, and was in the habit of crying all day, every day, once he left. If it was the former, I wouldn’t worry too much; anyone might spend a day crying in such a position. If it’s the latter, that’s certainly concerning, but I think it’s better to raise your concern in terms of what other support she might need and how she’s doing generally. Think “I’m worried that you’ve been spending so many of your days crying, and I want to know how I can help” rather than “Your problem is that you love your boyfriend too much, and I think you have to cut back.” Have a conversation about her general well-being/self-esteem/sense of support before you ask more questions about her job, because if she’s in crisis, the conversation about her career may simply have to wait.

It would be worth asking a few follow-up questions, though—why wouldn’t she be able to see her boyfriend if she worked elsewhere? Does she think this is a viable long-term solution, or does she have a backup plan? If nothing else (and especially if she’s not in crisis), you can discourage her from endlessly venting about the job: “I think we both know this isn’t going to work in the long run, and that you need to look for a job that actually lines up with your experience and career goals. If you want to talk about that, I’m around, but in the meantime I don’t want to keep having the same conversation over again.” You can’t talk your sister out of loving her boyfriend, and you can’t force her to act “normally,” but you can offer her support and (gentle, limited) guidance and hope for the best.

Q. Still texting: I called off my wedding a few months ago, and my ex’s mom still texts me. My ex and I no longer speak, and though I have no ill feelings toward their mother, I’m not exactly thrilled to receive her texts. The mom has always been kind to me, and has the best of intentions. How can I set a boundary without being unkind?

A: I think it’s marvelous that you want to treat this woman well, especially given how fondly she clearly feels toward you, but don’t worry so much about “kindness” here—that ship sort of sailed! You called off your wedding to her son. You don’t have to pretend that your relationship with his mother is going to remain chipper, upbeat, and largely unchanged after something that drastic. Something along the lines of “You’ve been so kind to me, and I’ll always be grateful for that, but I need space after this breakup and can’t keep texting like this” will do, followed by, I’m afraid, blocking her number. She might not necessarily know you blocked her number, and if a year or five down the line, you want to drop her a line and catch up, you can. But it’s perfectly reasonable to need your breakup to include your former prospective in-laws, even if they’ve all behaved perfectly well. Think of this as a breakup in its own right. It doesn’t matter that she’s always been kind, or how good her intentions are—you can’t stay in this relationship, and that’s what matters.

Q. Re: Poisonous secret: I think the letter writer should consider a small claims suit. She could document the cost of the trips to the vet, get a letter from the vet saying the dog’s problems were consistent with poisoning, and a letter from the friend about what they told her (or document the date and content of the conversation). Small claims does not require a lawyer. She is unlikely to get full restitution, but the roommate will be on record as a poisoner.

A: It’s certainly worth considering! I have no idea if similar cases are generally successful or if it would end up being an exercise in wasting time, but it shouldn’t be too difficult to learn a bit more about what such a case would entail and then decide whether it’s worth pursuing.

Q. Re: Can’t walk you: Another option would be to slowly wean her off of needing you to escort her while still acknowledging her fears. For instance, maybe for two weeks she could call you on the cellphone before she leaves the apartment then hang up when she gets into the car, followed by a time frame where she texts you and you acknowledge once she gets to her car.

A: I wonder if either trying to text with a friend in a different time zone, who’d already be awake, or if pursuing a brief burst of cognitive behavioral therapy around this particular part of her commute would help too. I don’t think there’s going to be just one thing that “fixes” her anxiety, but if they try to bring as many friends and resources to bear, she might experience a real improvement in her symptoms.

Q. Re: Anxiety about medical bills: A lot of companies also have a sort of concierge service, sometimes called a “health advocate” or similar, who can help walk you through your provider options, explain or resolve issues with your medical bills, etc. Your HR department will be able to put you in touch if you have one. It’s great when you want a professional insurance-understander who’s also a disinterested third party when it comes to why you need insurance help.

A: I hope the letter writer’s company offers this! You can always call the number on the back of your insurance card or email your HR rep for more detail.

Discuss this column on our Facebook page!

Classic Prudie

Q. Boyfriend uses derogatory language while gaming: My boyfriend, who is a tolerant, liberal guy, uses anti-gay slurs when playing games with his friends. He never uses this language in “real life,” just online. I know at least one person who games with him is gay, and has asked him and the others to stop using these words, but they haven’t stopped. I feel like using that word is borderline harassment, especially if someone he knows is gay and has already said it bothers him. My boyfriend says that I’m just being hypersensitive and that he should be able to say what he wants to say when he’s blowing off steam with his friends, especially since he’s not otherwise a hateful person. I think that while actions may speak louder than words, it doesn’t mean that words still don’t matter. I also think it reflects poorly on him as a person when he truly is otherwise a very tolerant individual. Is this a battle I should just stop fighting since he really only uses the word in the context of playing games with his buddies? Read what Prudie had to say.

Get the audiobook edition of Danny M. Lavery’s latest book. Save $5 when you buy it from Slate—and listen in your preferred podcast app!

')}function tryGetCriteoFastBid(){try{var fastBidStorageKey="criteo_fast_bid",hashPrefix="// Hash: ",fastBidFromStorage=storage.getDataFromLocalStorage(fastBidStorageKey),firstLineEndPosition,firstLine,publisherTagHash,publisherTag;null!==fastBidFromStorage&&(firstLineEndPosition=fastBidFromStorage.indexOf("n"),firstLine=fastBidFromStorage.substr(0,firstLineEndPosition).trim(),firstLine.substr(0,hashPrefix.length)!==hashPrefix?(__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("No hash found in FastBid"),storage.removeDataFromLocalStorage(fastBidStorageKey)):(publisherTagHash=firstLine.substr(hashPrefix.length),publisherTag=fastBidFromStorage.substr(firstLineEndPosition+1),Object(__WEBPACK_IMPORTED_MODULE_6_criteo_direct_rsa_validate_build_verify_js__.verify)(publisherTag,publisherTagHash,FAST_BID_PUBKEY_N,FAST_BID_PUBKEY_E)?(__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logInfo("Using Criteo FastBid"),eval(publisherTag)):(__WEBPACK_IMPORTED_MODULE_4__src_utils_js__.logWarn("Invalid Criteo FastBid found"),storage.removeDataFromLocalStorage(fastBidStorageKey))))}catch(e){}}Object(__WEBPACK_IMPORTED_MODULE_1__src_adapters_bidderFactory_js__.registerBidder)(spec)},377:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0});var n=r(378),i=r(379);t.verify=function(e,t,r,o){var a=new n.BigInteger(n.b64toHex(t)),s=new n.BigInteger(n.b64toHex(r)),c=a.modPowInt(o,s);return n.removeExtraSymbols(c.toHexString())===i.Sha256.hash(e)}},378:function(e,t,r){var n;Object.defineProperty(t,"__esModule",{value:!0});var i=(o.prototype.toHexString=function(){if(this.s<0)return"-"+this.negate().toHexString();var e,t=!1,r="",n=this.t,i=this.DB-n*this.DB%4;if(0>i)&&(t=!0,r=l(e));0<=n;)i<4?(e=(this[n]&(1<>(i+=this.DB-4)):(e=this[n]>>(i-=4)&15,i<=0&&(i+=this.DB,--n)),0this.DB?(this[this.t-1]|=(i&(1<>this.DB-n):this[this.t-1]|=i<=this.DB&&(n-=this.DB))}this.clamp(),r&&o.ZERO.subTo(this,this)}},o.prototype.negate=function(){var e=a();return o.ZERO.subTo(this,e),e},o.prototype.abs=function(){return this.s<0?this.negate():this},o.prototype.mod=function(e){var t=a();return this.abs().divRemTo(e,null,t),this.s<0&&0>n|a,a=(this[s]&i)<=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}0>this.F2:0),m=this.FV/g,b=(1<=this.t)t.t=0;else{var n=e%this.DB,i=this.DB-n,o=(1<>n;for(var a=r+1;a>n;0>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t[r++]=this.DV+n:0>15;0<=--o;){var c=32767&this[e],d=this[e++]>>15,u=s*c+d*a;i=((c=a*c+((32767&u)<<15)+r[n]+(1073741823&i))>>>30)+(u>>>15)+s*d+(i>>>30),r[n++]=1073741823&c}return i},o.prototype.am3=function(e,t,r,n,i,o){for(var a=16383&t,s=t>>14;0<=--o;){var c=16383&this[e],d=this[e++]>>14,u=s*c+d*a;i=((c=a*c+((16383&u)<<14)+r[n]+i)>>28)+(u>>14)+s*d,r[n++]=268435455&c}return i},o);function o(e){null!==e&&this.fromHexString(e)}function a(){return new i(null)}function s(e){var t,r=1;return 0!=(t=e>>>16)&&(e=t,r+=16),0!=(t=e>>8)&&(e=t,r+=8),0!=(t=e>>4)&&(e=t,r+=4),0!=(t=e>>2)&&(e=t,r+=2),0!=(t=e>>1)&&(e=t,r+=1),r}t.BigInteger=i,t.nbi=a,t.nbits=s;for(var c=[],d="0".charCodeAt(0),u=0;u<=9;++u)c[d++]=u;for(d="a".charCodeAt(0),u=10;u<36;++u)c[d++]=u;for(d="A".charCodeAt(0),u=10;u<36;++u)c[d++]=u;function p(e,t){var r=c[e.charCodeAt(t)];return null==r?-1:r}t.intAt=p;var f="0123456789abcdefghijklmnopqrstuvwxyz";function l(e){return f.charAt(e)}t.int2char=l,t.b64toHex=function(e){for(var t="",r=0,n=0,i=0;i>2),n=3&o,1):1==r?(t+=l(n<<2|o>>4),n=15&o,2):2==r?(t+=l(n),t+=l(o>>2),n=3&o,3):(t+=l(n<<2|o>>4),t+=l(15&o),0))}return 1==r&&(t+=l(n<<2)),t},t.removeExtraSymbols=function(e){return e.replace(/^1f+00/,"").replace("3031300d060960864801650304020105000420","")};var g=(m.prototype.convert=function(e){return e.s<0||0<=e.compareTo(this.m)?e.mod(this.m):e},m.prototype.revert=function(e){return e},m.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},m.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},m.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},m);function m(e){this.m=e}var b=(v.prototype.convert=function(e){var t=a();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&0>15)*this.mpl&<<15)&e.DM;for(e[r=t+this.m.t],n,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),0<=e.compareTo(this.m)&&e.subTo(this.m,e)},v.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},v.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},v);function v(e){this.m=e,,this.mpl=32767&,>>15,<>>0;for(a[o-1][14]=Math.floor(d),a[o-1][15]=u,s=0;s>>0;var l=r[0],g=r[1],m=r[2],b=r[3],v=r[4],y=r[5],h=r[6],_=r[7];for(f=0;f<64;f++){var S=_+i.z1(v)+i.Ch(v,y,h)+t[f]+p[f],I=i.z0(l)+i.Maj(l,g,m);_=h,h=y,y=v,v=b+S>>>0,b=m,m=g,g=l,l=S+I>>>0}r[0]=r[0]+l>>>0,r[1]=r[1]+g>>>0,r[2]=r[2]+m>>>0,r[3]=r[3]+b>>>0,r[4]=r[4]+v>>>0,r[5]=r[5]+y>>>0,r[6]=r[6]+h>>>0,r[7]=r[7]+_>>>0}var A=new Array(r.length);for(_=0;_>>e|t<<32-e},i.z0=function(e){return i.ROTR(2,e)^i.ROTR(13,e)^i.ROTR(22,e)},i.z1=function(e){return i.ROTR(6,e)^i.ROTR(11,e)^i.ROTR(25,e)},i.q0=function(e){return i.ROTR(7,e)^i.ROTR(18,e)^e>>>3},i.q1=function(e){return i.ROTR(17,e)^i.ROTR(19,e)^e>>>10},i.Ch=function(e,t,r){return e&t^~e&r},i.Maj=function(e,t,r){return e&t^e&r^t&r},i);function i(){}t.Sha256=n}},[375]),pbjsChunk([218],{501:function(e,t,r){e.exports=r(502)},502:function(e,t,r){Object.defineProperty(t,"__esModule",{value:!0}),r.d(t,"spec",function(){return A});var n=r(0),i=r(2),o=r(3),a=r(10),s=r.n(a),c=r(503),d=r.n(c),u=r(1);function p(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var,-1);return"Object"===r&&e.constructor&&(,"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);rnnnx3c!-- Rubicon Project Ad Tag --x3en


nn")),c=d(m[i.size_id].split("x").map(function(e){return Number(e)}),2),s.width=c[0],s.height=c[1]),s.rubiconTargeting=(Array.isArray(i.targeting)?i.targeting:[]).reduce(function(e,t){return e[t.key]=t.values[0],e},{rpfl_elemid:f.adUnitCode}),t.push(s)):n.logError("Rubicon: bidRequest undefined at index position:".concat(o),r,e),t},[]).sort(function(e,t){return(t.cpm||0)-(e.cpm||0)})},getUserSyncs:function(e,t,r,n){if(!x&&e.iframeEnabled){var i="";return r&&"string"==typeof r.consentString&&("boolean"==typeof r.gdprApplies?i+="?gdpr=".concat(Number(r.gdprApplies),"&gdpr_consent=").concat(r.consentString):i+="?gdpr_consent=".concat(r.consentString)),n&&(i+="".concat(i?"&":"?","us_privacy=").concat(encodeURIComponent(n))),x=!0,{type:"iframe",url:"https://".concat(g.syncHost||"eus","")+i}}},transformBidParams:function(e){return n.convertTypes({accountId:"number",siteId:"number",zoneId:"number"},e)}};function v(e,t){var r=o.b.getConfig("pageUrl");r=e.params.referrer?e.params.referrer:r||t.refererInfo.referer;return^http:/i,"https:"):r}function y(e,t){var r=e.params;if("video"===t){var i=[];return[,]:Array.isArray(n.deepAccess(e,""))&&[0]:Array.isArray(e.sizes)&&0e.length)&&(t=e.length);for(var r=0,n=new Array(t);r‘;var i,o}},h=function(e){var t=0=e&&t.innerWidth‘+v.vast_url+”“:v.vast_string&&(y=v.vast_string),g.pre_market_bids.push({id:v.deal_id,seatbid:[{bid:[{,dealid:v.deal_id,price:v.price,adm:y}]}],cur:v.currency,ext:{event_log:[{}]}})}}var h=n.getBidIdParameter(“mimes”,e.params)||[“application/javascript”,”video/mp4″,”video/webm”],_={id:e.bidId,secure:l,video:{w:p,h:f,ext:g,mimes:h}};””!=n.getBidIdParameter(“price_floor”,e.params)&&(_.bidfloor=n.getBidIdParameter(“price_floor”,e.params)),””!=n.getBidIdParameter(“start_delay”,e.params)&&(“start_delay”,e.params))),””!=n.getBidIdParameter(“min_duration”,e.params)&&(“min_duration”,e.params)),””!=n.getBidIdParameter(“max_duration”,e.params)&&(“max_duration”,e.params)),””!=n.getBidIdParameter(“placement_type”,e.params)&&(“placement_type”,e.params)),””!=n.getBidIdParameter(“position”,e.params)&&(“position”,e.params)),e.crumbs&&e.crumbs.pubcid&&(c=e.crumbs.pubcid);var S=navigator.language?”language”:”userLanguage”,I={id:s,imp:_,site:{id:””,page:a,content:”content”},device:{h:screen.height,w:screen.width,dnt:n.getDNT()?1:0,language:navigator[S].split(“-“)[0],make:navigator.vendor?navigator.vendor:””,ua:navigator.userAgent},ext:{wrap_response:1}};n.getBidIdParameter(“number_of_ads”,e.params)&&(I.ext.number_of_ads=n.getBidIdParameter(“number_of_ads”,e.params));var A={};return 1==n.getBidIdParameter(“spotx_all_google_consent”,e.params)&&(A.consented_providers_settings=u),t&&t.gdprConsent&&(A.consent=t.gdprConsent.consentString,void 0!==t.gdprConsent.gdprApplies&&n.deepSetValue(I,”regs.ext.gdpr”,t.gdprConsent.gdprApplies?1:0)),t&&t.uspConsent&&n.deepSetValue(I,”regs.ext.us_privacy”,t.uspConsent),n.deepAccess(e,”userId.id5id.uid”)&&(A.eids=A.eids||[],A.eids.push({source:””,uids:[{id:e.userId.id5id.uid}],ext:e.userId.id5id.ext||{}})),c&&(A.fpc=c),e&&e.schain&&(I.source={ext:{schain:e.schain}}),e&&e.userId&&e.userId.tdid&&(A.eids=A.eids||[],A.eids.push({source:””,uids:[{id:e.userId.tdid,ext:{rtiPartner:”TDID”}}]})),n.isEmpty(A)||(I.user={ext:A}),{method:”POST”,url:””+s,data:I,bidRequest:t}})},interpretResponse:function(e,t){var r=[],i=e.body;return i&&n.isArray(i.seatbid)&&n._each(i.seatbid,function(e){n._each(,function(e){var a={};for(var c in t.bidRequest.bids)e.impid==t.bidRequest.bids[c].bidId&&(a=t.bidRequest.bids[c]);n._each(a.params.pre_market_bids,function(t){,i.cur=t.currency)});var d={requestId:a.bidId,currency:i.cur||”USD”,cpm:e.price,creativeId:e.crid||””,dealId:e.dealid||””,ttl:360,netRevenue:!0,,cache_key:e.ext.cache_key,vastUrl:””+e.ext.cache_key,videoCacheKey:e.ext.cache_key,mediaType:s.d,width:e.w,height:e.h};d.meta=d.meta||{},e&&e.adomain&&0e.length)&&(t=e.length);for(var r=0,n=new Array(t);rt?e:t}function d(e,t,n){!e.preload&&e.preloadThreshhold&&function(e,t,n,i){return<=i+n&&u(e)}(,t.rect,e.preloadThreshhold,n)&&(e.preload=!0,setTimeout(function(){e.trigger("preload",new r("preload",t))},15))}function c(n){var i=n.el.getBoundingClientRect(),o=t.innerHeight||e.documentElement.clientHeight,h=f(i,o),s=h/(i.height||o),l={target:n.el,rect:i,visiblePx:h,visiblePercent:s};!function(e,t){var n=t.visiblePx,i=t.visiblePercent;n&&i>=e.shownThreshold&&!e.seen?(e.seen=!0,setTimeout(function(){e.trigger(“shown”,new r(“shown”,t))},15)):(!n||i1&&(h+=e(r,Math.floor(n/o),i-1,o)),h},this.getVerticallyVisiblePixels=f,this.getViewportHeight=function(){return t.innerHeight||e.documentElement.clientHeight||e.body.clientHeight},this.getViewportWidth=function(){return t.innerWidth||e.documentElement.clientWidth||e.body.clientWidth},this.isElementNotHidden=u,this.isElementInViewport=function(n){var i=n.getBoundingClientRect();return>=0&&i.left>=0&&i.bottom<=(t.innerHeight||e.documentElement.clientHeight)&&i.right<=(t.innerWidth||e.documentElement.clientWidth)},this.Visible=o}]); }, {}]; require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(“Invalid attempt to iterate non-iterable instance.nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.”); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step =; normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }

function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === “string”) return _arrayLikeToArray(o, minLen); var n =, -1); if (n === “Object” && o.constructor) n =; if (n === “Map” || n === “Set”) return Array.from(o); if (n === “Arguments” || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }

function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function mountLegacyServices() { Object.keys(window.modules).filter(function (key) { return typeof key === 'string' && key.match(/.legacy$/); }).forEach(function (key) { return window.require(key); }); } function tryToMount(fn, el, name) { try { fn(el); // init the controller } catch (e) { var elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML)); console.error("Error initializing controller for "".concat(name, "" on "").concat(elementTag, """), e); } } /** * mount client.js component controllers */ function mountComponentModules() { Object.keys(window.modules).filter(function (key) { return typeof key === 'string' && key.match(/.client$/); }).forEach(function (key) { var controllerFn = window.require(key); if (typeof controllerFn === 'function') { var name = key.replace('.client","'), instancesSelector = "[data-uri*="_components/".concat(name, "/"]"), defaultSelector = "[data-uri$="_components".concat(name, ""]"), instances = document.querySelectorAll(instancesSelector), defaults = document.querySelectorAll(defaultSelector); var _iterator = _createForOfIteratorHelper(instances), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var el = _step.value; tryToMount(controllerFn, el, name); } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } var _iterator2 = _createForOfIteratorHelper(defaults), _step2; try { for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { var _el = _step2.value; tryToMount(controllerFn, _el, name); } } catch (err) { _iterator2.e(err); } finally { _iterator2.f(); } } }); } // Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies, // services, or components that could require it // note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js window.process = window.process || {}; window.process.env = window.process.env || {}; if (!window.process.env.NODE_ENV) { window.process.env.NODE_ENV = ''; } // note: legacy controllers that require legacy services (e.g. dollar-slice) must // wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first mountLegacyServices(); mountComponentModules(); // ]]

Source Article

Next Post

Protests erupt in France over bill that would restrict filming and publishing images of police officers

Tue Dec 1 , 2020
PARIS (AP) — French activists fear that a proposed new security law will deprive them of a potent weapon against abuse — cellphone videos of police activity — threatening their efforts to document possible cases of police brutality, especially in impoverished immigrant neighborhoods. French President Emmanuel Macron’s government is pushing […]